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

◆ BuildCondition() [2/2]

static bool BuildCondition ( PlayerBase player,
ActionTarget target,
ItemBase item,
bool camera_check,
int constraction_index )
staticprotected

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

921 {
922 Object targetObject = target.GetObject();
923 if ( targetObject && targetObject.CanUseConstruction() )
924 {
925 BaseBuildingBase base_building = BaseBuildingBase.Cast( targetObject );
926 ConstructionActionData construction_action_data = player.GetConstructionActionData();
927 construction_action_data.SetTarget( targetObject );
928
929 ConstructionPart constrution_part;
930 if ( item )
931 {
932 constrution_part = construction_action_data.GetBuildPartAtIndex(constraction_index);
933 }
934 else
935 {
936 constrution_part = construction_action_data.GetBuildPartNoToolAtIndex(constraction_index);
937 }
938
939 //Debug
940 /*
941 if ( constrution_part )
942 {
943 Construction construction = base_building.GetConstruction();
944 construction.IsColliding( constrution_part.GetPartName() );
945 }
946 */
947
948 if ( constrution_part )
949 {
950 //camera and position checks
951 bool position_check = ( base_building.MustBeBuiltFromOutside() && !base_building.IsPlayerInside(player, constrution_part.GetMainPartName()) ) || ( !base_building.MustBeBuiltFromOutside() && base_building.IsPlayerInside(player, constrution_part.GetMainPartName()) );
952 if ( position_check && !player.GetInputController().CameraIsFreeLook() )
953 {
954 //Camera check (client-only)
955 if ( camera_check )
956 {
957 if ( GetGame() && ( !GetGame().IsDedicatedServer() ) )
958 {
959 return !base_building.IsFacingCamera( constrution_part.GetMainPartName() );
960 }
961 }
962
963 return true;
964 }
965 }
966 }
967
968 return false;
969 }
override bool IsPlayerInside(PlayerBase player, string selection)
Определения Fence.c:615
override bool MustBeBuiltFromOutside()
Определения ShelterSite.c:88
override bool IsFacingCamera(string selection)
Определения Fence.c:678
Определения Fence.c:2
ConstructionPart GetBuildPartNoToolAtIndex(int idx)
Определения ConstructionActionData.c:193
void SetTarget(Object target)
Определения ConstructionActionData.c:78
ConstructionPart GetBuildPartAtIndex(int idx)
Определения ConstructionActionData.c:184
string GetMainPartName()
Определения ConstructionPart.c:35
Определения ObjectTyped.c:2
proto native CGame GetGame()

Перекрестные ссылки ActionTarget, ConstructionActionData::GetBuildPartAtIndex(), ConstructionActionData::GetBuildPartNoToolAtIndex(), GetGame(), ConstructionPart::GetMainPartName(), BaseBuildingBase::IsFacingCamera(), BaseBuildingBase::IsPlayerInside(), BaseBuildingBase::MustBeBuiltFromOutside() и ConstructionActionData::SetTarget().