33 SetVisibleDuringDaylight(
true);
36 SetFlareVisible(
false);
37 SetAmbientColor(1.0, 0.0, 0.0);
38 SetDiffuseColor(1.0, 0.0, 0.0);
40 SetDisableShadowsWithinRadius(-1);
68 Land_Underground_Panel.RegisterEntrance(
this);
69 RegisterNetSyncVariableFloat(
"m_AnimPhase", 0, 1, 5);
81 Land_Underground_Panel.UnregisterEntrance(
this);
126 GetGame().GetWorld().UpdatePathgraphDoorByAnimationSourceName(
this,
"EntranceDoor");
133 if (!Land_Underground_Panel.m_Panels)
135 foreach (Land_Underground_Panel
p: Land_Underground_Panel.m_Panels)
137 if (
p.GetClosestDoor() ==
this)
211 GetGame().RegisterNetworkStaticObject(
this);
223 super.OnVariablesSynchronized();
243 if (
GetGame().IsDedicatedServer())
360 m_AnimTimerDoorServer.Run(
AdjustTime(GetOpeningTime()),
this,
"OnUpdateServer",
"OnFinishedTimerServer", 0,
false, 1);
361 m_NavmeshTimer =
new Timer();
362 m_NavmeshTimer.Run(3,
this,
"NavmeshUpdate",
NULL,
true);
363 RequestLatentTransition(
AdjustTime(GetOpeningTime()));
366 m_AnimTimerDoorServer.Stop();
368 m_NavmeshTimer =
null;
384 m_NavmeshTimer =
new Timer();
385 m_NavmeshTimer.Run(3,
this,
"NavmeshUpdate",
NULL,
true);
386 m_AnimTimerDoorServer.Run(0,
this,
"OnUpdateServer",
"OnFinishedTimerServer",
AdjustTime(GetOpeningTime()),
false, 1);
387 RequestLatentTransition(
AdjustTime(GetOpeningTime()));
391 m_NavmeshTimer =
null;
409 if (MemoryPointExists(
"SirenLightPos"))
411 pos = GetMemoryPointPos(
"SirenLightPos");
412 pos = ModelToWorld(pos);
415 ErrorEx(
"GetLightPosition could not locate memory point 'SirenLightPos'");
524 SetAnimationPhaseNow(
"EntranceDoor", m_AnimPhase);
Param4< int, int, string, int > TSelectableActionInfoWithColor
void OnUpdateClient(ActionData action_data)
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
enum EUndegroundEntranceState AlarmLight()
const string ENGINE_SOUNDSET_LOOP_IN
const string LOCKING_SOUNDSET
override void HandleAudioPlayback(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
vector GetLightPosition()
enum EUndegroundEntranceState MAIN
Land_Underground_EntranceBase m_SirenSound
override void OnDoorStateChangedServer(EUndegroundEntranceState newState)
EffectSound m_DoorEngineSoundIn
const string DOORMOVING_SOUNDSET_LOOP
EffectSound m_DoorMovementSoundLoop
const string DOORMOVING_SOUNDSET_LOOP_OUT
override void CleanUpOnClosedClient()
override void CreateLights()
void SoundEnded(Effect eff)
enum EUndegroundEntranceState SMALL
EffectSound m_DoorEngineSoundOut
const float LIGHT_ROT_SPEED
EffectSound m_DoorEngineSoundLoop
const string DOORMOVING_SOUNDSET_LOOP_IN
EffectSound m_LockingSound
EffectSound m_DoorMovementSoundOut
EffectSound m_DoorMovementSoundIn
const string ENGINE_SOUNDSET_LOOP_OUT
const string ENGINE_SOUNDSET_LOOP
override void HandleVisualPlayback(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
const string SIREN_SOUNDSET
float AdjustTime(float originalTime)
AnimationTimer class. This timer is for animating float value. usage:
Wrapper class for managing sound through SEffectManager.
EntranceLight m_InteriorLight2
EUndegroundEntranceState m_DoorState
bool CanManipulate(Param param=null)
void SetDoorStateServer(EUndegroundEntranceState newState)
void OnUpdateClient(float timeSlice)
void GetConnectedPanels(array< Land_Underground_Panel > panels)
void OnDoorStateChangedClient(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
ref array< Land_Underground_Panel > m_ConnectedPanels
void HandleAudioPlayback(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
void Land_Underground_EntranceBase()
void CleanUpOnClosedClient()
EUndegroundEntranceState m_DoorStatePrev
bool IsInitDoorStateSync()
bool CheckShouldPlayPersistent(EUndegroundEntranceState state, EUndegroundEntranceState lastValidState)
ref AnimationTimer m_AnimTimerDoorServer
void ~Land_Underground_EntranceBase()
override void OnVariablesSynchronized()
override void EOnPostSimulate(IEntity other, float timeSlice)
float AdjustTime(float originalTime, float adjustedTime=-1)
void OnDoorStateChangedServer(EUndegroundEntranceState newState)
EUndegroundDoorType m_DoorType
void CleanUpOnDeleteClient()
EntranceLight m_InteriorLight1
void HandleVisualPlayback(EUndegroundEntranceState newState, EUndegroundEntranceState prevState)
void OnFinishedTimerServer()
void OpenServer(bool force=false)
void Manipulate(Param param=null)
EntranceLight m_InteriorLight3
void RequestLatentTransition(float time, EUndegroundEntranceState targetState=EUndegroundEntranceState.UNINITIALIZED)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Manager class for managing Effect (EffectParticle, EffectSound)
static bool DestroySound(EffectSound sound_effect)
Legacy, backwards compatibility.
Serialization general interface. Serializer API works with:
proto native CGame GetGame()
EntityEvent
Entity events for event-mask, or throwing event from code.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
const int SAT_DEBUG_ACTION