71 {
72 PlaceObjectActionData poActionData = PlaceObjectActionData.Cast(action_data);
73 if (!poActionData)
74 return;
75
77 return;
78
80
84
85
87 {
88 if (poActionData.
m_Player.GetHologramServer())
89 {
92
94 if (
g_Game.IsMultiplayer() && poActionData.
m_Player.GetHologramServer().IsColliding())
95 return;
96
97 poActionData.
m_Player.GetHologramServer().PlaceEntity(entity_for_placing);
98
99 if (
g_Game.IsMultiplayer())
100 poActionData.
m_Player.GetHologramServer().CheckPowerSource();
101
102 #ifdef DEVELOPER
104 {
105 Debug.Log(
string.Format(
"Hologram of %1 found, deployment successful.", poActionData.
m_MainItem),
"hologramLogs");
106 Debug.Log(
string.Format(
"Pos Comparison | player: %1 | hologram: %2 | action data: %3", poActionData.
m_Player.GetPosition(),poActionData.
m_Player.GetLocalProjectionPosition(),
position),
"hologramLogs");
107 }
108 #endif
109 }
110 else
111 {
113 return;
114 }
115 }
116 else
117 {
121 }
122
124 poActionData.
m_MainItem.SetIsBeingPlaced(
false);
126
128 poActionData.
m_Player.PlacingCompleteServer();
129
131 }
void ClearActionJuncture(ActionData action_data)
bool ActionUsesHologram()
void MoveEntityToFinalPosition(ActionData action_data, vector position, vector orientation)
const float POSITION_OFFSET
ref array< ItemBase > m_MovedItems
proto native bool IsCLIParam(string param)
Returns if command line argument is present.