7class InteractCodeLockActionReciveData : ActionReciveData
32 if (super.SetupAction( player, target, item, action_data, extra_data))
34 if (!
g_Game.IsDedicatedServer())
37 if (!codeLock || (codeLock && !codeLock.
HasEnergy()))
40 if (!codeLock.GetHierarchyRoot())
54 super.WriteToContext(ctx, action_data);
57 if (!interactActionData)
66 if (!action_recive_data)
67 action_recive_data =
new InteractCodeLockActionReciveData;
69 super.ReadFromContext(ctx, action_recive_data);
70 InteractCodeLockActionReciveData interactReciveData = InteractCodeLockActionReciveData.Cast(action_recive_data);
72 bool isFacingBackside =
false;
73 if (!ctx.
Read(isFacingBackside))
76 interactReciveData.m_IsFacingBackside = isFacingBackside;
79 if (!ctx.
Read(lockPos))
81 interactReciveData.m_CodeLockPosition = lockPos;
88 super.HandleReciveData(action_recive_data, action_data);
90 InteractCodeLockActionReciveData interactReciveData = InteractCodeLockActionReciveData.Cast(action_recive_data);
99 if (!super.ActionCondition(player, target, item))
102 bool isFacingBackside =
false;
104 if (!codeLock || (codeLock && !codeLock.
HasEnergy()))
107 if (!
g_Game.IsDedicatedServer())
109 if (!codeLock.GetHierarchyRoot())
118 m_Text =
"#STR_LOCK_CODELOCK";
126 m_Text =
"#STR_ENTER_CODE";
129 else if (isFacingBackside)
131 m_Text =
"#STR_UNLOCK_CODELOCK";
138 if (!isFacingBackside && codeLock.
CanSetCode())
168 ErrorEx(
string.Format(
"[ActionInteractCodeLockItem] Client claimed backside but server disagrees, physical release rejected! Player=%1 | Lock=%2", action_data.
m_Player, codeLock),
ErrorExSeverity.INFO);
174 codeLock.StartItemSoundServer(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS);
215 if (!codeLock.GetHierarchyRoot())
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
vector m_CodeLockPosition
InteractCodeLockActionData m_IsFacingBackside
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
ref ActionTarget m_Target
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
override bool CanBeSetFromInventory()
override void CreateConditionComponents()
override void OnExecuteClient(ActionData action_data)
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
override void OnExecuteServer(ActionData action_data)
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
override ActionData CreateActionData()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void HandleCodelockClient(ActionData actionData)
override void OnExecute(ActionData action_data)
Only handles single player/offline handling.
CodeLockComponent GetCodeLockComponent()
bool HasBruteForceProtection()
bool IsPlayerOnBackside(PlayerBase player)
void SetLockState(bool state)
void SetTargetLock(CodeLockComponent lock)
vector m_CodeLockPosition
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