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

◆ RefreshFireplaceVisuals()

void RefreshFireplaceVisuals ( )
protected

single stone; everything else hidden

hide stones stack completely

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

664 {
665 if (IsHologram())
666 {
667 return;
668 }
669
670 // Light
671 #ifndef SERVER
672 if (IsBurning())
673 {
674 //turn light on
675 if (!GetLightEntity())
676 {
677 SetLightEntity(FireplaceLight.Cast(ScriptedLightBase.CreateLight(FireplaceLight, GetPosition(), 20)));
678 GetLightEntity().AttachOnMemoryPoint(this, "light");
679 }
680
681 if (GetLightEntity() && GetLightEntity().GetBrightness() > 0)
682 {
683 // change brightness based on the distance of player to the fireplace
684 Object player = GetGame().GetPlayer();
685 float lightDist = m_LightDistance;
686
687 if (IsOven())
688 {
689 lightDist = 50;
690 }
691
692 if (player)
693 {
694 if (vector.DistanceSq(player.GetPosition(), this.GetPosition()) > lightDist * lightDist)
695 {
696 GetLightEntity().FadeBrightnessTo(0, 5);
697 }
698 else
699 {
700 GetLightEntity().FadeBrightnessTo(FireplaceLight.m_FireplaceBrightness, 5);
701 }
702 }
703
704 // The following solves an issue with the light point clipping through narrow geometry
706 {
707 GetLightEntity().SetInteriorMode();
708 }
709 else
710 {
711 GetLightEntity().SetExteriorMode();
712 }
713 }
714 }
715 else
716 {
717 //turn light off
718 if (GetLightEntity())
719 {
720 GetLightEntity().FadeOut();
721 }
722 }
723 #endif
724
725 //set default burn parameters based on fireplace type
727 {
729 }
730 else if (HasStoneCircle())
731 {
733 }
734 else
735 {
737 }
738
739 // Oven attachments
740 if (IsOven())
741 {
742 //lock attachment slots
744 {
746 }
747 }
748 else
749 {
750 //unlock attachment slots
752 {
753 LockOvenAttachments(false);
754 }
755 }
756
757 //VISUAL STATES
758 //Fuel state
759 if (GetGame().IsServer())
760 {
761 // Sticks state
763 SetAnimationPhase(ANIMATION_STICKS, 0);
764 else
765 SetAnimationPhase(ANIMATION_STICKS, 1);
766
767 // Firewood state
769 {
770 if (IsBurning() && HasAshes())
771 {
772 SetAnimationPhase(ANIMATION_BURNT_WOOD, 0); // Because this might not be set under certain circumstances
773 SetAnimationPhase(ANIMATION_WOOD, 1);
774 }
775 else if (IsWet() || !IsBurning())
776 {
777 SetAnimationPhase(ANIMATION_BURNT_WOOD, 1);
778 SetAnimationPhase(ANIMATION_WOOD, 0);
779 }
780 else
781 {
782 SetAnimationPhase(ANIMATION_BURNT_WOOD, 1);
783 SetAnimationPhase(ANIMATION_WOOD, 0);
784 }
785 }
786 else
787 {
788 SetAnimationPhase(ANIMATION_WOOD, 1);
789 SetAnimationPhase(ANIMATION_BURNT_WOOD, 1);
790 }
791
792 // Kindling state
793 if (GetKindlingCount() != 0)
794 SetAnimationPhase(ANIMATION_KINDLING, 0);
795 else
796 SetAnimationPhase(ANIMATION_KINDLING, 1);
797
798 // Ashes state
799 if (HasAshes())
800 SetAnimationPhase(ANIMATION_ASHES, 0);
801 else
802 SetAnimationPhase(ANIMATION_ASHES, 1);
803
804 // Stone variations
805 if (HasStones())
806 {
807 if (HasStoneCircle())
808 {
809 SetAnimationPhase(ANIMATION_STONES, 0);
810 SetAnimationPhase(ANIMATION_STONE, 1);
811 }
812 else if (IsOven())
813 {
814 SetAnimationPhase(ANIMATION_OVEN, 0);
815 SetAnimationPhase(ANIMATION_STONE, 1);
816 }
817 else
818 {
820 SetAnimationPhase(ANIMATION_STONES, 1);
821 SetAnimationPhase(ANIMATION_OVEN, 1);
822 SetAnimationPhase(ANIMATION_STONE, 0);
823 }
824 }
825 else
826 {
827 SetAnimationPhase(ANIMATION_STONE, 1);
828 }
829 }
830
831 //refresh physics (with delay)
833 }
ATTACHMENT_FIREWOOD
Определения FireplaceBase.c:185
int m_OvenAttachmentsLockState
Определения FireplaceBase.c:29
const string ANIMATION_OVEN
Определения FireplaceBase.c:172
void LockOvenAttachments(bool lock)
Определения FireplaceBase.c:2686
bool IsBarrelWithHoles()
Определения FireplaceBase.c:537
ATTACHMENT_STICKS
Определения FireplaceBase.c:184
float m_LightDistance
Определения FireplaceBase.c:97
void SetFuelBurnRateMP(float value)
Определения FireplaceBase.c:1699
bool HasAshes()
Определения FireplaceBase.c:1631
FireplaceLight GetLightEntity()
Определения FireplaceBase.c:2556
bool HasStones()
Определения FireplaceBase.c:1652
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:1619
bool IsWet()
Определения FireplaceBase.c:2390
bool IsIndoorOven()
Определения FireplaceBase.c:547
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:1647
const string ANIMATION_KINDLING
Определения FireplaceBase.c:165
bool IsOven()
Определения FireplaceBase.c:1643
const string ANIMATION_STICKS
Определения FireplaceBase.c:166
const string ANIMATION_STONE
Определения FireplaceBase.c:169
bool IsFireplaceIndoor()
Определения FireplaceBase.c:542
bool IsItemTypeAttached(typename item_type)
Определения FireplaceBase.c:1589
const string ANIMATION_BURNT_WOOD
Определения FireplaceBase.c:168
void SetLightEntity(FireplaceLight light)
Определения FireplaceBase.c:2561
int GetKindlingCount()
Returns count of all kindling type items (define in 'm_KindlingTypes') attached to fireplace.
Определения FireplaceBase.c:1520
override bool IsHologram()
Определения ItemBase.c:5753
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
Определения 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().