DayZ 1.28
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ RefreshFireplaceVisuals()

void RefreshFireplaceVisuals ( )
protected

single stone; everything else hidden

hide stones stack completely

См. определение в файле FireplaceBase.c строка 665

666 {
667 if (IsHologram())
668 {
669 return;
670 }
671
672 // Light
673 #ifndef SERVER
674 if (IsBurning())
675 {
676 //turn light on
677 if (!GetLightEntity())
678 {
679 SetLightEntity(FireplaceLight.Cast(ScriptedLightBase.CreateLight(FireplaceLight, GetPosition(), 20)));
680 GetLightEntity().AttachOnMemoryPoint(this, "light");
681 }
682
683 if (GetLightEntity() && GetLightEntity().GetBrightness() > 0)
684 {
685 // change brightness based on the distance of player to the fireplace
686 Object player = GetGame().GetPlayer();
687 float lightDist = m_LightDistance;
688
689 if (IsOven())
690 {
691 lightDist = 50;
692 }
693
694 if (player)
695 {
696 if (vector.DistanceSq(player.GetPosition(), this.GetPosition()) > lightDist * lightDist)
697 {
698 GetLightEntity().FadeBrightnessTo(0, 5);
699 }
700 else
701 {
702 GetLightEntity().FadeBrightnessTo(FireplaceLight.m_FireplaceBrightness, 5);
703 }
704 }
705
706 // The following solves an issue with the light point clipping through narrow geometry
708 {
709 GetLightEntity().SetInteriorMode();
710 }
711 else
712 {
713 GetLightEntity().SetExteriorMode();
714 }
715 }
716 }
717 else
718 {
719 //turn light off
720 if (GetLightEntity())
721 {
722 GetLightEntity().FadeOut();
723 }
724 }
725 #endif
726
727 //set default burn parameters based on fireplace type
729 {
731 }
732 else if (HasStoneCircle())
733 {
735 }
736 else
737 {
739 }
740
741 // Oven attachments
742 if (IsOven())
743 {
744 //lock attachment slots
746 {
748 }
749 }
750 else
751 {
752 //unlock attachment slots
754 {
755 LockOvenAttachments(false);
756 }
757 }
758
759 //VISUAL STATES
760 //Fuel state
761 if (GetGame().IsServer())
762 {
763 // Sticks state
765 SetAnimationPhase(ANIMATION_STICKS, 0);
766 else
767 SetAnimationPhase(ANIMATION_STICKS, 1);
768
769 // Firewood state
771 {
772 if (IsBurning() && HasAshes())
773 {
774 SetAnimationPhase(ANIMATION_BURNT_WOOD, 0); // Because this might not be set under certain circumstances
775 SetAnimationPhase(ANIMATION_WOOD, 1);
776 }
777 else if (IsWet() || !IsBurning())
778 {
779 SetAnimationPhase(ANIMATION_BURNT_WOOD, 1);
780 SetAnimationPhase(ANIMATION_WOOD, 0);
781 }
782 else
783 {
784 SetAnimationPhase(ANIMATION_BURNT_WOOD, 1);
785 SetAnimationPhase(ANIMATION_WOOD, 0);
786 }
787 }
788 else
789 {
790 SetAnimationPhase(ANIMATION_WOOD, 1);
791 SetAnimationPhase(ANIMATION_BURNT_WOOD, 1);
792 }
793
794 // Kindling state
795 if (GetKindlingCount() != 0)
796 SetAnimationPhase(ANIMATION_KINDLING, 0);
797 else
798 SetAnimationPhase(ANIMATION_KINDLING, 1);
799
800 // Ashes state
801 if (HasAshes())
802 SetAnimationPhase(ANIMATION_ASHES, 0);
803 else
804 SetAnimationPhase(ANIMATION_ASHES, 1);
805
806 // Stone variations
807 if (HasStones())
808 {
809 if (HasStoneCircle())
810 {
811 SetAnimationPhase(ANIMATION_STONES, 0);
812 SetAnimationPhase(ANIMATION_STONE, 1);
813 }
814 else if (IsOven())
815 {
816 SetAnimationPhase(ANIMATION_OVEN, 0);
817 SetAnimationPhase(ANIMATION_STONE, 1);
818 }
819 else
820 {
822 SetAnimationPhase(ANIMATION_STONES, 1);
823 SetAnimationPhase(ANIMATION_OVEN, 1);
824 SetAnimationPhase(ANIMATION_STONE, 0);
825 }
826 }
827 else
828 {
829 SetAnimationPhase(ANIMATION_STONE, 1);
830 }
831 }
832
833 //refresh physics (with delay)
835 }
ATTACHMENT_FIREWOOD
Определения FireplaceBase.c:185
int m_OvenAttachmentsLockState
Определения FireplaceBase.c:29
const string ANIMATION_OVEN
Определения FireplaceBase.c:172
void LockOvenAttachments(bool lock)
Определения FireplaceBase.c:2703
bool IsBarrelWithHoles()
Определения FireplaceBase.c:539
ATTACHMENT_STICKS
Определения FireplaceBase.c:184
float m_LightDistance
Определения FireplaceBase.c:97
void SetFuelBurnRateMP(float value)
Определения FireplaceBase.c:1707
bool HasAshes()
Определения FireplaceBase.c:1633
FireplaceLight GetLightEntity()
Определения FireplaceBase.c:2573
bool HasStones()
Определения FireplaceBase.c:1660
const string ANIMATION_ASHES
Определения FireplaceBase.c:164
void RefreshFireplacePhysics()
const string ANIMATION_STONES
Определения FireplaceBase.c:170
ATTACHMENT_STONES
Определения FireplaceBase.c:199
const float FUEL_BURN_RATE_OVEN
Определения FireplaceBase.c:68
bool IsBurning()
Определения FireplaceBase.c:1621
bool IsWet()
Определения FireplaceBase.c:2397
bool IsIndoorOven()
Определения FireplaceBase.c:549
const string ANIMATION_WOOD
Определения FireplaceBase.c:167
const float FUEL_BURN_RATE_DEFAULT
min height of ceiling for fire to be ignited
Определения FireplaceBase.c:66
const float FUEL_BURN_RATE_STONES
Определения FireplaceBase.c:67
bool HasStoneCircle()
Определения FireplaceBase.c:1655
const string ANIMATION_KINDLING
Определения FireplaceBase.c:165
bool IsOven()
Определения FireplaceBase.c:1651
const string ANIMATION_STICKS
Определения FireplaceBase.c:166
const string ANIMATION_STONE
Определения FireplaceBase.c:169
bool IsFireplaceIndoor()
Определения FireplaceBase.c:544
bool IsItemTypeAttached(typename item_type)
Определения FireplaceBase.c:1591
const string ANIMATION_BURNT_WOOD
Определения FireplaceBase.c:168
void SetLightEntity(FireplaceLight light)
Определения FireplaceBase.c:2578
int GetKindlingCount()
Returns count of all kindling type items (define in 'm_KindlingTypes') attached to fireplace.
Определения FireplaceBase.c:1522
override bool IsHologram()
Определения ItemBase.c:5825
override ScriptCallQueue GetCallQueue(int call_category)
Определения DayZGame.c:1187
proto native DayZPlayer GetPlayer()
Определения ObjectTyped.c:2
proto void Call(func fn, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
Определения EnConvert.c:106
proto native CGame GetGame()
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9
const int CALL_CATEGORY_GAMEPLAY
Определения 3_Game/tools/tools.c:10

Перекрестные ссылки ANIMATION_ASHES, ANIMATION_BURNT_WOOD, ANIMATION_KINDLING, ANIMATION_OVEN, ANIMATION_STICKS, ANIMATION_STONE, ANIMATION_STONES, ANIMATION_WOOD, ATTACHMENT_FIREWOOD, ATTACHMENT_STICKS, ATTACHMENT_STONES, ScriptCallQueue::Call(), CALL_CATEGORY_GAMEPLAY, vector::DistanceSq(), FUEL_BURN_RATE_DEFAULT, FUEL_BURN_RATE_OVEN, FUEL_BURN_RATE_STONES, CGame::GetCallQueue(), GetGame(), GetKindlingCount(), GetLightEntity(), CGame::GetPlayer(), GetPosition, HasAshes(), HasStoneCircle(), HasStones(), FireplaceBase::IsBarrelWithHoles(), IsBurning(), IsFireplaceIndoor(), IsHologram(), FireplaceBase::IsIndoorOven(), IsItemTypeAttached(), IsOven(), IsWet(), LockOvenAttachments(), m_LightDistance, m_OvenAttachmentsLockState, RefreshFireplacePhysics(), SetFuelBurnRateMP() и SetLightEntity().

Используется в EEInit(), FireplaceBase::EEItemAttached(), FireplaceIndoor::EEItemAttached(), FireplaceBase::EEItemDetached(), FireplaceIndoor::EEItemDetached(), OnVariablesSynchronized(), SetItemToConsume() и Synchronize().