3 string m_SoundsetBuildStart;
4 string m_SoundsetBuildLoop;
5 string m_SoundsetBuildFinish;
14 m_Text =
"#build_shelter_leather";
36 if ( constrution_part )
39 switch (constrution_part.GetName())
42 ret =
"#build_shelter_leather";
46 ret =
"#build_shelter_fabric";
50 ret =
"#build_shelter_stick";
64 if ( constrution_part )
66 switch (constrution_part.GetName())
69 m_Text =
"#build_shelter_leather";
73 m_Text =
"#build_shelter_fabric";
77 m_Text =
"#build_shelter_stick";
111 if (player.GetBrokenLegs() ==
eBrokenLegs.BROKEN_LEGS)
114 if (target.GetObject() && !target.GetObject().CanUseConstructionBuild())
116 if ( player.IsPlacingLocal() || player.IsPlacingServer() )
119 if ( (!
GetGame().IsDedicatedServer()) )
121 if ( MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item,
m_VariantID ) )
133 if ( super.SetupAction( player, target, item, action_data, extra_data ) )
135 if ( !
GetGame().IsDedicatedServer() )
148 BuildPartActionData action_data =
new BuildPartActionData;
154 super.WriteToContext(ctx, action_data);
156 ctx.Write(BuildPartActionData.Cast(action_data).m_PartType);
162 super.ReadFromContext(ctx, action_recive_data);
165 if ( ctx.Read(part_type) )
176 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
178 super.HandleReciveData(action_recive_data, action_data);
186 Construction construction = base_building.GetConstruction();
187 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
190 check_data.m_PartName = part_name;
191 check_data.m_AdditionalExcludes.Insert(action_data.m_Player);
193 return !construction.IsCollidingEx( check_data ) && construction.CanBuildPart( part_name, action_data.m_MainItem,
false );
196 override void OnStart( ActionData action_data )
198 super.OnStart(action_data);
199 action_data.m_Player.TryHideItemInHands(
true);
204 super.OnStartClient(action_data);
212 super.OnStartAnimationLoopClient(action_data);
217 override void OnEnd( ActionData action_data )
219 super.OnEnd(action_data);
220 action_data.m_Player.TryHideItemInHands(
false);
225 super.OnEndClient(action_data);
234 Construction construction = base_building.GetConstruction();
236 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
238 if ( !construction.IsColliding( part_name ) && construction.CanBuildPart( part_name, action_data.m_MainItem,
false ) )
241 construction.BuildPartServer( action_data.m_Player, part_name,
AT_BUILD_PART );
247 super.OnFinishProgressClient(action_data);
256 if (constrution_part)
258 switch (constrution_part.GetName())
261 m_SoundsetBuildStart =
"Shelter_Leather_Build_Start_SoundSet";
262 m_SoundsetBuildLoop =
"Shelter_Leather_Build_Loop_SoundSet";
263 m_SoundsetBuildFinish =
"Shelter_Leather_Build_Finish_SoundSet";
267 m_SoundsetBuildStart =
"Shelter_Fabric_Build_Start_SoundSet";
268 m_SoundsetBuildLoop =
"Shelter_Fabric_Build_Loop_SoundSet";
269 m_SoundsetBuildFinish =
"Shelter_Fabric_Build_Finish_SoundSet";
273 m_SoundsetBuildStart =
"Shelter_Wooden_Stick_Build_Start_SoundSet";
274 m_SoundsetBuildLoop =
"Shelter_Wooden_Stick_Build_Loop_SoundSet";
275 m_SoundsetBuildFinish =
"Shelter_Wooden_Stick_Build_Finish_SoundSet";
279 m_SoundsetBuildStart =
"";
280 m_SoundsetBuildLoop =
"";
281 m_SoundsetBuildFinish =
"";
323 return "Base_building";
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
void DetermineConstructionSounds(ActionData action_data)
override bool UseMainItem()
void StopActionLoopSound()
void DestroyActionLoopSound()
void PlayActionLoopSound(ActionData action_data)
override string GetSoundCategory(ActionData action_data)
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnEndClient(ActionData action_data)
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
void ~ActionBuildShelter()
override bool ActionConditionContinue(ActionData action_data)
override void OnStartAnimationLoopClient(ActionData action_data)
override void OnEnd(ActionData action_data)
override bool HasAlternativeInterrupt()
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
override void OnStart(ActionData action_data)
override void OnStartClient(ActionData action_data)
override bool CanBeUsedLeaning()
void ActionBuildShelter()
override void OnFinishProgressServer(ActionData action_data)
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
void PlayActionStartSound(ActionData action_data)
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
override void OnFinishProgressClient(ActionData action_data)
override void CreateConditionComponents()
override string GetText()
EffectSound m_BuildLoopSound
void PlayActionFinishSound(ActionData action_data)
override ActionData CreateActionData()
override bool HasProgress()
ConstructionPart GetBuildPartNoToolAtIndex(int idx)
Wrapper class for managing sound through SEffectManager.
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
void SetSoundFadeOut(float fade_out)
Set the sound fade out duration.
bool IsSoundPlaying()
Get whether EffectSound is currently playing.
void SoundStop()
Stops sound.
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Manager class for managing Effect (EffectParticle, EffectSound)
static EffectSound PlaySound(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound.
static void DestroyEffect(Effect effect)
Unregisters, stops and frees the Effect.
Serialization general interface. Serializer API works with:
void CollisionCheckData()
void Construction(BaseBuildingBase parent)
DayZPlayerConstants
defined in C++
proto native CGame GetGame()