62 if (player.IsPlacingLocal() || player.IsPlacingServer())
66 if (player.GetBrokenLegs() ==
eBrokenLegs.BROKEN_LEGS)
70 if (target.GetObject() && (!target.GetObject().CanUseConstructionBuild() || target.GetObject().CanUseHandConstruction()))
73 if ((!
GetGame().IsDedicatedServer()))
75 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item,
m_VariantID))
87 Construction construction = base_building.GetConstruction();
88 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
91 check_data.m_PartName = part_name;
92 check_data.m_AdditionalExcludes.Insert(action_data.
m_Player);
94 bool canBuild = construction.CanBuildPart(part_name, action_data.
m_MainItem,
true);
97 bool collides = construction.IsCollidingEx(check_data);
99 return !collides && canBuild;
110 Construction construction = base_building.GetConstruction();
112 string part_name = BuildPartActionData.Cast(action_data).m_PartType;
115 check_data.m_PartName = part_name;
116 check_data.m_AdditionalExcludes.Insert(action_data.
m_Player);
118 if (!construction.IsCollidingEx(check_data) && construction.CanBuildPart(part_name, action_data.
m_MainItem,
true))
130 BuildPartActionData action_data =
new BuildPartActionData;
137 if (super.SetupAction(player, target, item, action_data, extra_data))
141 if (!
GetGame().IsDedicatedServer())
176 super.WriteToContext(ctx, action_data);
178 ctx.
Write(BuildPartActionData.Cast(action_data).m_PartType);
184 super.ReadFromContext(ctx, action_recive_data);
187 if (ctx.
Read(part_type))
200 super.HandleReciveData(action_recive_data, action_data);
208 string partName = BuildPartActionData.Cast(action_data).m_PartType;
210 string message =
string.Format(
"Built %1 on %2 with %3", partName, action_data.
m_Target.GetObject().GetDisplayName(), action_data.
m_MainItem.GetDisplayName());
protected float m_SpecialtyWeight
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
protected int m_VariantID
protected bool m_FullBody
protected int m_StanceMask
BuildPartActionReciveData m_PartType
override bool HasProgress()
override bool UseMainItem()
class ActionTargets ActionTarget
void CollisionCheckData()
void Construction(BaseBuildingBase parent)
protected ActionData m_ActionData
float SetCallbackDuration(ItemBase item)
override void CreateActionComponent()
override void OnFinishProgressServer(ActionData action_data)
override bool CanBeUsedLeaning()
override bool ActionConditionContinue(ActionData action_data)
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
protected void SetBuildingAnimation(ItemBase item)
override string GetAdminLogMessage(ActionData action_data)
override ActionData CreateActionData()
override void CreateConditionComponents()
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
bool HasAlternativeInterrupt()
ref CABase m_ActionComponent
ref ActionTarget m_Target
protected int m_CommandUID
protected m_CallbackClass
ConstructionPart GetBuildPartAtIndex(int idx)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Serialization general interface. Serializer API works with:
proto bool Write(void value_out)
proto bool Read(void value_in)
const float BASEBUILDING_CONSTRUCT_MEDIUM
DayZPlayerConstants
defined in C++
proto native CGame GetGame()