5 void ActionBuildPartInstantDebug()
7 m_Text =
"build part debug";
23 ConstructionActionData cad = player.GetConstructionActionData();
30 if (DiagMenu.GetBool(
DiagMenuIDs.BASEBUILDING_FULLDEBUG))
40 m_InfoData =
new ActionInfoDataConstructionPossible();
55 ConstructionActionData cad = player.GetConstructionActionData();
56 if (cad.GetFastConstructionMode() != EConstructionDebugModes.INSTANT)
60 if (!Class.CastTo(ent,target.GetObject()))
63 if (player.IsPlacingLocal() || player.IsPlacingServer())
67 if (player.GetBrokenLegs() ==
eBrokenLegs.BROKEN_LEGS)
70 if (!ent.CanUseConstruction() || !ent.CanUseConstructionBuild())
73 if ((!
GetGame().IsDedicatedServer()))
78 if (MiscGameplayFunctions.ComplexBuildCollideCheckClient(player, target, item,
m_VariantID))
91 string partName = BuildPartActionData.Cast(action_data).m_PartType;
95 checkData.m_PartName = partName;
100 if (action_data.
m_Player.GetConstructionActionData().GetFastConstructionMode())
103 if (!construction.IsCollidingEx(checkData) && canBuild)
112 BuildPartActionData action_data =
new BuildPartActionData();
118 if (super.SetupAction(player, target, item, action_data, extra_data))
120 if (!
g_Game.IsDedicatedServer())
131 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
133 BuildPartActionData.Cast(action_data).m_PartType = part.
GetPartName();
138 super.WriteToContext(ctx, action_data);
140 ctx.
Write(BuildPartActionData.Cast(action_data).m_PartType);
145 action_recive_data =
new BuildPartActionReciveData();
146 super.ReadFromContext(ctx, action_recive_data);
149 if (ctx.
Read(partType))
151 BuildPartActionReciveData.Cast(action_recive_data).m_PartType = partType;
160 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
162 super.HandleReciveData(action_recive_data, action_data);
164 BuildPartActionData.Cast(action_data).m_PartType = BuildPartActionReciveData.Cast(action_recive_data).m_PartType;
176 ActionInfoDataConstructionPossible info = ActionInfoDataConstructionPossible.Cast(
m_InfoData);
177 ConstructionActionData cad = player.GetConstructionActionData();
179 info.SetConstructionPart(part);
185 return info.CanDisplayInfo();
193 ConstructionActionData cad = player.GetConstructionActionData();
199 if (!ent.IsPlayerInsideEx(player, part.
GetPartName()))
206 if (!construction.ConstructionDirectionCheck(player, part, EConstructionDirCheckType.INDOORS))
208 if (!construction.ConstructionInsiderBoxCheck(player, part))
219 return cad.GetBuildPartInstantAtIndex(
m_VariantID);
ActionData CreateActionData()
bool CanBeUsedInFreelook()
ref ActionInfoDataBase m_InfoData
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
void CreateConditionComponents()
ref CCIBase m_ConditionItem
void OnStartServer(ActionData action_data)
ref CCTBase m_ConditionTarget
bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
void ComposeBuildActionDataClient(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
bool GatherInfoData(PlayerBase player, ActionTarget target, ItemBase item)
bool PositioningCheck(PlayerBase player, ActionTarget target)
Can build from the inside only, if applicable.
ConstructionPart GetTargetPart(ConstructionActionData cad)
Does not work on server, since variants are not updated there (invoker does not invoke)
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
void ConstructionBase(EntityAI parent)
void CollisionCheckData()
EConstructionInfoCategories
void ConstructionPart(string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array< string > required_parts)
class GP5GasMask extends MaskBase ItemBase
void ReadFromContext(ParamsReadContext ctx)
void WriteToContext(ParamsWriteContext ctx)
ref ActionTarget m_Target
override bool MustBeBuiltFromOutside()
proto bool Write(void value_out)
proto bool Read(void value_in)
Serializer ParamsReadContext
Serializer ParamsWriteContext
proto void Insert(int index, string input)
Inserts a string into the n-th index, increasing the string length by the size of the input.