DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ RepairCondition()

bool ActionRepairPart::RepairCondition ( PlayerBase player,
ActionTarget target,
ItemBase item,
bool camera_check )
inlineprotected

См. определение в файле ActionRepairPart.c строка 182

183 {
184 string zone_name;
185
186 Object target_object = target.GetObject();
187 if ( target_object && target_object.CanUseConstruction() )
188 {
189 string part_name = target_object.GetActionComponentName( target.GetComponentIndex() );
190
191 BaseBuildingBase base_building = BaseBuildingBase.Cast( target_object );
192 Construction construction = base_building.GetConstruction();
193 ConstructionPart construction_part = construction.GetConstructionPart( part_name );
194
195 if ( construction_part )
196 {
197 //camera and position checks
198 if ( !base_building.IsFacingPlayer( player, part_name ) && !player.GetInputController().CameraIsFreeLook() && base_building.HasProperDistance( construction_part.GetMainPartName(), player ) )
199 {
200 //Camera check (client-only)
201 if ( camera_check )
202 {
203 if ( GetGame() && ( !GetGame().IsDedicatedServer() ) )
204 {
205 if ( base_building.IsFacingCamera( part_name ) )
206 {
207 return false;
208 }
209 }
210 }
211
212 //damage check
213 DamageSystem.GetDamageZoneFromComponentName(base_building,part_name,zone_name);
214 if ( base_building.GetHealthLevel(zone_name) < GameConstants.STATE_WORN || base_building.GetHealthLevel(zone_name) == GameConstants.STATE_RUINED )
215 {
216 return false;
217 }
218
219 //materials check
220 if ( !construction.HasMaterials(part_name,true) )
221 {
222 return false;
223 }
224
225 ConstructionActionData construction_action_data = player.GetConstructionActionData();
226 construction_action_data.SetTargetPart( construction_part );
227 return true;
228 }
229 }
230 }
231
232 return false;
233 }
void BaseBuildingBase()
Определения BaseBuildingBase.c:1328
void Construction(BaseBuildingBase parent)
Определения Construction.c:26
override bool IsFacingCamera(string selection)
Определения Fence.c:678
override bool IsFacingPlayer(PlayerBase player, string selection)
Определения Fence.c:651
override bool HasProperDistance(string selection, PlayerBase player)
Определения Fence.c:703
void SetTargetPart(ConstructionPart target_part)
Определения ConstructionActionData.c:88
string GetMainPartName()
Определения ConstructionPart.c:35
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки ActionTarget, Construction(), GetGame(), ConstructionPart::GetMainPartName(), BaseBuildingBase::HasProperDistance(), BaseBuildingBase::IsFacingCamera(), BaseBuildingBase::IsFacingPlayer(), ConstructionActionData::SetTargetPart(), GameConstants::STATE_RUINED и GameConstants::STATE_WORN.

Используется в ActionCondition() и ActionConditionContinue().