12 m_ActionData.m_ActionComponent =
new CAContinuousTime(m_ActionData.m_MainItem.GetDeployTime());
76 if (!poActionData.m_MainItem)
79 EntityAI entity_for_placing = poActionData.m_MainItem;
86 if (poActionData.m_Player.GetHologramServer())
91 poActionData.m_Player.GetHologramServer().EvaluateCollision(poActionData.m_MainItem);
92 if (
GetGame().IsMultiplayer() && poActionData.m_Player.GetHologramServer().IsColliding())
95 poActionData.m_Player.GetHologramServer().PlaceEntity(entity_for_placing);
98 poActionData.m_Player.GetHologramServer().CheckPowerSource();
103 Debug.
Log(
string.Format(
"Hologram of %1 found, deployment successful.", poActionData.m_MainItem),
"hologramLogs");
104 Debug.
Log(
string.Format(
"Pos Comparison | player: %1 | hologram: %2 | action data: %3", poActionData.m_Player.GetPosition(),poActionData.m_Player.GetLocalProjectionPosition(),position),
"hologramLogs");
110 Debug.
Log(
string.Format(
"Expected hologram of %1 not found, failing deployment!", poActionData.m_MainItem),
Type().
ToString());
116 position = poActionData.m_Player.GetPosition();
117 orientation = poActionData.m_Player.GetOrientation();
118 position = position + (poActionData.m_Player.GetDirection() *
POSITION_OFFSET);
123 poActionData.m_MainItem.SetIsBeingPlaced(
false);
126 entity_for_placing.OnPlacementComplete(poActionData.m_Player, position, orientation);
127 poActionData.m_Player.PlacingCompleteServer();
134 super.OnItemLocationChanged(item);
136 if (!
GetGame().IsDedicatedServer())
145 super.OnUpdate(action_data);
149 if (item == action_data.m_MainItem)
152 item.GetInventory().GetCurrentInventoryLocation(loc);
170 player.PredictiveDropEntity(item);
175 if (action_data.m_MainItem.IsBasebuildingKit())
178 EntityAI entity_for_placing = action_data.m_MainItem;
179 vector rotation_matrix[3];
187 if (entity_for_placing.GetInventory().GetCurrentInventoryLocation(source))
189 destination.
SetGroundEx(entity_for_placing, position, direction);
192 action_data.m_Player.ServerTakeToDst(source, destination);
202 action_data.m_Player.GetInventory().TakeToDst(
InventoryMode.LOCAL, source, destination);
204 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()
bool ActionUsesHologram()
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.
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
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.
proto native bool IsCLIParam(string param)
Returns if command line argument is present.