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

◆ CanRepairPart()

bool CanRepairPart ( string partName,
ItemBase tool = null,
PlayerBase player = null,
bool facingCheck = false )
protected

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

792 {
793 ConstructionPart constructionPart = GetConstructionPart(partName);
794 if (constructionPart)
795 {
796 //damage check
797 string zoneName;
798 if (!DamageSystem.GetDamageZoneFromComponentName(m_EntityParent, partName, zoneName)) //no zone, no repair
799 return false;
800
801 float currentZoneHealthLevel = m_EntityParent.GetHealthLevel(zoneName);
802 if (currentZoneHealthLevel == GameConstants.STATE_PRISTINE || currentZoneHealthLevel == GameConstants.STATE_RUINED)
803 return false;
804
805 ConstructionPart part = GetConstructionPart(partName);
806 if (!part.CanBeRepaired(currentZoneHealthLevel, tool, player))
807 return false;
808
809 if (!player) //for debug purposes, I guess?
810 return true;
811
812 //materials check
813 if (!HasMaterials(partName,true))
814 return false;
815
816 //facing and position checks
817 if (!ConstructionDirectionCheck(player, constructionPart, EConstructionDirCheckType.INDOORS) || !ConstructionDirectionCheck(player, constructionPart, EConstructionDirCheckType.REFERENCE_DIRECTION))
818 return false;
819
820 if (!m_EntityParent.IsFacingPlayerEx(player, partName) && !player.GetInputController().CameraIsFreeLook())
821 {
822 //Camera check (client-only)
823 if (!g_Game.IsDedicatedServer())
824 {
825 if (facingCheck)
826 {
827 if (m_EntityParent.IsFacingCamera(partName))
828 return false;
829 }
830 }
831
832 ConstructionActionData cad = player.GetConstructionActionData();
833 cad.SetTargetPart(constructionPart);
834 return true;
835 }
836 }
837
838 return false;
839 }
ConstructionPart GetConstructionPart()
Определения ActionPartInfo.c:235
bool HasMaterials(string part_name, bool repairing=false)
Определения ConstructionBase.c:1122
bool ConstructionDirectionCheck(PlayerBase player, ConstructionPart part, EConstructionDirCheckType type)
Определения ConstructionBase.c:924
EntityAI m_EntityParent
Определения ConstructionBase.c:45
DayZGame g_Game
Определения DayZGame.c:4074
void SetTargetPart(ConstructionPart target_part)
Определения ConstructionActionData.c:121
bool CanBeRepaired(int zoneHealthLevel, ItemBase tool=null, PlayerBase player=null)
Определения ConstructionPart.c:177
Instanced construction part data classes for dynamic data, statics now stored on EntityType level in ...
Определения ConstructionPart.c:4
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
const int STATE_PRISTINE
Определения 3_Game/DayZ/constants.c:913

Перекрестные ссылки ConstructionPart::CanBeRepaired(), ConstructionDirectionCheck(), g_Game, GetConstructionPart(), HasMaterials(), m_EntityParent, ConstructionActionData::SetTargetPart(), GameConstants::STATE_PRISTINE и GameConstants::STATE_RUINED.