38 if (!
g_Game.IsDedicatedServer())
40 if (player.IsPlacingLocal())
42 Hologram hologram = player.GetHologramLocal();
58 if (
g_Game.IsDedicatedServer())
60 if (action_data.
m_Player.IsPlacingServer())
62 if (
g_Game.IsMultiplayer())
65 if (!action_data.
m_Player.GetHologramServer().IsColliding())
79 if (super.SetupAction(player, target, item, action_data, extra_data))
87 if (!
g_Game.IsDedicatedServer())
89 Hologram hologram = player.GetHologramLocal();
121 if (
g_Game.IsMultiplayer())
122 poActionData.
m_Player.PlacingCompleteLocal();
127 super.OnStartServer(action_data);
133 if (
g_Game.IsMultiplayer())
142 poActionData.
m_MainItem.SetIsBeingPlaced(
true);
145 if (poActionData.
m_MainItem.GetPlaceSoundset() !=
string.Empty)
146 poActionData.
m_MainItem.StartItemSoundServer(SoundConstants.ITEM_PLACE);
149 poActionData.
m_MainItem.StartItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
169 super.OnFinishProgressServer(action_data);
172 action_data.
m_MainItem.StartItemSoundServer(SoundConstants.ITEM_DEPLOY);
174 action_data.
m_MainItem.StopItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
176 if (!
g_Game.IsMultiplayer())
177 action_data.
m_Player.PlacingCompleteLocal();
182 super.OnEndClient(action_data);
190 poActionData.
m_Player.PlacingCancelLocal();
193 poActionData.
m_Player.GetActionManager().RequestEndAction();
194 if (poActionData.
m_Player.GetHologramLocal())
195 poActionData.
m_Player.GetHologramLocal().SetUpdatePosition(
true);
207 super.OnEndServer(action_data);
210 if (!poActionData || !poActionData.
m_MainItem)
215 poActionData.
m_MainItem.SetIsBeingPlaced(
false);
217 if (
g_Game.IsMultiplayer())
219 poActionData.
m_Player.PlacingCancelServer();
224 poActionData.
m_Player.PlacingCancelLocal();
225 poActionData.
m_Player.PlacingCancelServer();
237 poActionData.
m_MainItem.StopItemSoundServer(SoundConstants.ITEM_DEPLOY_LOOP);
245 if (!
g_Game.IsDedicatedServer())
257 super.WriteToContext(ctx, action_data);
269 if (!action_recive_data)
272 super.ReadFromContext(ctx, action_recive_data);
275 vector entity_position =
"0 0 0";
276 vector entity_orientation =
"0 0 0";
277 if (!ctx.
Read(entity_position))
279 if (!ctx.
Read(entity_orientation))
290 super.HandleReciveData(action_recive_data, action_data);
301 Debug.
Log(
string.Format(
"HandleReciveData | received pos: %1", action_data_po.
m_Position),
"hologramLogs");
310 if (item.IsHeavyBehaviour())
314 else if (item.IsOneHandedBehaviour())
318 else if (item.IsTwoHandedBehaviour())
324 Debug.
Log(
"Error: check " + item +
" behaviour");
329 if (item.IsHeavyBehaviour())
333 else if (item.IsOneHandedBehaviour())
337 else if (item.IsTwoHandedBehaviour())
343 Debug.
Log(
"Error: check " + item +
" behaviour");
override void OnFinishProgressServer(ActionData action_data)
override void OnStartAnimationLoop(ActionData action_data)
override void OnFinishProgressClient(ActionData action_data)
bool ActionConditionContinue(ActionData action_data)
void OnEndServer(ActionData action_data)
void OnStartClient(ActionData action_data)
bool CanBeUsedWithBrokenLegs()
void OnStartServer(ActionData action_data)
bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
void ClearInventoryReservationEx(ActionData action_data)
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
bool HasProgress()
For UI: hiding of progress bar.
void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
bool IsDeploymentAction()
Is an action directly related to deployment/advanced placing.
void OnEndClient(ActionData action_data)
void DropDuringPlacing()
DEPRECATED.
PlaceObjectActionReciveData ActionReciveData ActionDeployObject()
override bool HasAlternativeInterrupt()
void SetupAnimation(ItemBase item)
override bool ActionUsesHologram()
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
void ReadFromContext(ParamsReadContext ctx)
void WriteToContext(ParamsWriteContext ctx)
InventoryLocationType
types of Inventory Location
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.
void SetUpdatePosition(bool state)
vector GetProjectionOrientation()
EntityAI GetProjectionEntity()
vector GetProjectionPosition()
proto native int GetType()
returns type of InventoryLocation
override bool IsBasebuildingKit()
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
Serializer ParamsWriteContext
static const string Empty
proto native bool IsCLIParam(string param)
Returns if command line argument is present.