87 {
88 Object target_object = target.GetObject();
89 if ( target_object && target_object.CanUseConstruction() )
90 {
91 string part_name = target_object.GetActionComponentName( target.GetComponentIndex() );
92
95 ConstructionPart construction_part = construction.GetConstructionPartToDestroy( part_name );
96
97 if ( construction_part )
98 {
99
100 if ( !player.GetInputController().CameraIsFreeLook() &&
IsInReach(player, target, UAMaxDistances.DEFAULT) && !player.GetInputController().CameraIsFreeLook() )
101 {
102
103 if ( camera_check )
104 {
106 {
107 if ( !ent.IsFacingCamera( part_name ) )
108 {
109 return false;
110 }
111 }
112 }
113
114 ConstructionActionData construction_action_data = player.GetConstructionActionData();
116
117 return true;
118 }
119 }
120 }
121
122 return false;
123 }
bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
void ConstructionBase(EntityAI parent)
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)
void SetTargetPart(ConstructionPart target_part)