33 if (!
GetGame().IsDedicatedServer())
35 if (player.IsPlacingLocal())
37 if (!player.GetHologramLocal().IsColliding())
39 if (item.
CanBePlaced(player, player.GetHologramLocal().GetProjectionEntity().GetPosition()))
54 if (
GetGame().IsDedicatedServer())
56 if (action_data.m_Player.IsPlacingServer())
59 action_data.m_Player.GetHologramServer().EvaluateCollision(action_data.m_MainItem);
61 if (!action_data.m_Player.GetHologramServer().IsColliding())
63 if (action_data.m_MainItem.CanBePlaced(action_data.m_Player, action_data.m_Player.GetHologramServer().GetProjectionEntity().GetPosition()))
75 if (super.SetupAction(player, target, item, action_data, extra_data))
80 if (!
GetGame().IsDedicatedServer())
82 player.GetHologramLocal().SetUpdatePosition(
false);
84 Hologram hologram = player.GetHologramLocal();
87 poActionData.
m_Position = player.GetHologramLocal().GetProjectionPosition();
88 poActionData.
m_Orientation = player.GetHologramLocal().GetProjectionOrientation();
90 poActionData.m_Player.SetLocalProjectionPosition(poActionData.
m_Position);
91 poActionData.m_Player.SetLocalProjectionOrientation(poActionData.
m_Orientation);
99 if (!action_data.m_MainItem)
115 action_data.m_Player.PlacingCompleteLocal();
120 super.OnStartServer(action_data);
130 EntityAI entity_for_placing = action_data.m_MainItem;
131 poActionData.m_Player.SetLocalProjectionPosition(poActionData.
m_Position);
132 poActionData.m_Player.SetLocalProjectionOrientation(poActionData.
m_Orientation);
134 if (action_data.m_MainItem)
136 poActionData.m_Player.PlacingStartServer(action_data.m_MainItem);
139 action_data.m_MainItem.SetIsBeingPlaced(
true);
145 action_data.m_Player.PlacingStartServer(action_data.m_MainItem);
146 action_data.m_MainItem.SetIsBeingPlaced(
true);
150 if (item.GetPlaceSoundset() !=
string.Empty)
151 item.StartItemSoundServer(SoundConstants.ITEM_PLACE);
154 item.StartItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
163 EntityAI entity_for_placing = action_data.m_MainItem;
164 vector position = action_data.m_Player.GetLocalProjectionPosition();
165 vector orientation = action_data.m_Player.GetLocalProjectionOrientation();
169 entity_for_placing.OnPlacementComplete(action_data.m_Player, position, orientation);
174 super.OnFinishProgressServer(action_data);
178 item.StartItemSoundServer(SoundConstants.ITEM_DEPLOY);
183 super.OnEndClient(action_data);
188 action_data.m_Player.PlacingCancelLocal();
191 poActionData.m_Player.GetActionManager().RequestEndAction();
192 if (action_data.m_Player.GetHologramLocal())
193 action_data.m_Player.GetHologramLocal().SetUpdatePosition(
true);
198 action_data.m_Player.PredictiveTakeEntityToHands(action_data.m_MainItem);
205 super.OnEndServer(action_data);
207 if (!action_data || !action_data.m_MainItem)
214 action_data.m_MainItem.SetIsBeingPlaced(
false);
218 action_data.m_Player.PlacingCancelServer();
223 action_data.m_Player.PlacingCancelLocal();
224 action_data.m_Player.PlacingCancelServer();
229 if (action_data.m_MainItem.IsBasebuildingKit())
231 action_data.m_MainItem.Delete();
241 item.StopItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
246 if (!
GetGame().IsDedicatedServer())
248 if (action_data.m_Player.GetItemInHands())
249 ActiondeployObjectCB.Cast(action_data.m_Callback).DropDuringPlacing();
253 ClearInventoryReservationEx(action_data);
261 super.WriteToContext(ctx, action_data);
271 if (!action_recive_data)
274 super.ReadFromContext(ctx, action_recive_data);
277 vector entity_position =
"0 0 0";
278 vector entity_orientation =
"0 0 0";
279 if (!ctx.
Read(entity_position))
281 if (!ctx.
Read(entity_orientation))
292 super.HandleReciveData(action_recive_data, action_data);
305 if (item.IsHeavyBehaviour())
309 else if (item.IsOneHandedBehaviour())
313 else if (item.IsTwoHandedBehaviour())
319 Debug.
Log(
"Error: check " + item +
" behaviour");
324 if (item.IsHeavyBehaviour())
328 else if (item.IsOneHandedBehaviour())
332 else if (item.IsTwoHandedBehaviour())
338 Debug.
Log(
"Error: check " + item +
" behaviour");
override void OnFinishProgressServer(ActionData action_data)
override void OnStartAnimationLoop(ActionData action_data)
override bool HasProgress()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnEndServer(ActionData action_data)
override void OnStartServer(ActionData action_data)
override bool ActionConditionContinue(ActionData action_data)
override void OnFinishProgressClient(ActionData action_data)
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
override bool HasAlternativeInterrupt()
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
void DropDuringPlacing()
DEPRECATED.
PlaceObjectActionReciveData ActionReciveData ActionDeployObject()
override bool CanBeUsedWithBrokenLegs()
override bool IsDeploymentAction()
void SetupAnimation(ItemBase item)
override void OnStartClient(ActionData action_data)
override void OnEndClient(ActionData action_data)
class ActionTargets ActionTarget
void ReadFromContext(ParamsReadContext ctx)
void WriteToContext(ParamsWriteContext ctx)
InventoryLocationType
types of Inventory Location
bool ClearJunctureEx(Man player, notnull EntityAI item)
proto native bool AddActionJuncture(Man player, notnull EntityAI item, int timeout_ms)
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
proto native int GetType()
returns type of InventoryLocation
override string GetDeploySoundset()
override string GetLoopDeploySoundset()
override bool CanBePlaced(Man player, vector position)
override bool IsDeployable()
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
proto bool Write(void value_out)
proto bool Read(void value_in)
DayZPlayerConstants
defined in C++
Serializer ParamsReadContext
proto native CGame GetGame()
Serializer ParamsWriteContext
static const string Empty