12 m_ActionData.m_ActionComponent =
new CAContinuousTime(m_ActionData.m_MainItem.GetDeployTime());
72 if (!action_data.m_MainItem)
75 EntityAI entity_for_placing = action_data.m_MainItem;
80 if (action_data.m_Player.GetHologramServer())
82 position = action_data.m_Player.GetLocalProjectionPosition();
83 orientation = action_data.m_Player.GetLocalProjectionOrientation();
85 action_data.m_Player.GetHologramServer().EvaluateCollision(action_data.m_MainItem);
86 if (
GetGame().IsMultiplayer() && action_data.m_Player.GetHologramServer().IsColliding())
89 action_data.m_Player.GetHologramServer().PlaceEntity(entity_for_placing);
92 action_data.m_Player.GetHologramServer().CheckPowerSource();
96 position = action_data.m_Player.GetPosition();
97 orientation = action_data.m_Player.GetOrientation();
98 position = position + (action_data.m_Player.GetDirection() *
POSITION_OFFSET);
103 action_data.m_MainItem.SetIsBeingPlaced(
false);
106 entity_for_placing.OnPlacementComplete(action_data.m_Player, position, orientation);
107 action_data.m_Player.PlacingCompleteServer();
114 super.OnItemLocationChanged(item);
116 if (!
GetGame().IsDedicatedServer())
125 super.OnUpdate(action_data);
129 if (item == action_data.m_MainItem)
132 item.GetInventory().GetCurrentInventoryLocation(loc);
150 player.PredictiveDropEntity(item);
155 if (action_data.m_MainItem.IsBasebuildingKit())
158 EntityAI entity_for_placing = action_data.m_MainItem;
159 vector rotation_matrix[3];
167 if (entity_for_placing.GetInventory().GetCurrentInventoryLocation(source))
169 destination.
SetGroundEx(entity_for_placing, position, direction);
172 action_data.m_Player.ServerTakeToDst(source, destination);
182 action_data.m_Player.GetInventory().TakeToDst(
InventoryMode.LOCAL, source, destination);
184 action_data.m_Player.GetDayZPlayerInventory().RedirectToHandEvent(
InventoryMode.LOCAL, source, destination);
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
void DropDuringPlacing()
DEPRECATED.
ActionEat CreateActionComponent
InventoryLocationType
types of Inventory Location
bool InventoryReservation(ActionData action_data)
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
void ActionContinuousBase()
override bool HasTarget()
void DropDuringPlacing(PlayerBase player)
override void OnFinishProgressServer(ActionData action_data)
override void OnItemLocationChanged(ItemBase item)
override void OnUpdate(ActionData action_data)
void MoveEntityToFinalPosition(ActionData action_data, vector position, vector orientation)
override ActionData CreateActionData()
override Vector2 GetCameraUDAngle()
override void CreateConditionComponents()
const float POSITION_OFFSET
override bool HasProgress()
ref array< ItemBase > m_MovedItems
void MoveEntityToFinalPositionSinglePlayer(ActionData action_data, InventoryLocation source, InventoryLocation destination)
bool ClearJunctureEx(Man player, notnull EntityAI item)
Super root of all classes in Enforce script.
proto native int GetType()
returns type of InventoryLocation
proto native void SetGroundEx(EntityAI e, vector pos, float dir[4])
sets current inventory location type to Ground with transformation mat
override bool IsBasebuildingKit()
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto void MatrixToQuat(vector mat[3], out float d[4])
Converts rotation matrix to quaternion.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.