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

◆ ActionCondition()

override bool ActionCreateGreenhouseGardenPlot::ActionCondition ( PlayerBase player,
ActionTarget target,
ItemBase item )
inlineprivate

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

31 {
32 if ( !target )
33 return false;
34
35 if ( player.IsPlacingLocal() )
36 return false;
37
38 if (!CfgGameplayHandler.GetDisableColdAreaPlacementCheck() && player.GetInColdArea())
39 return false;
40
41 Object target_object = target.GetObject();
42
43 Land_Misc_Greenhouse greenHouse = Land_Misc_Greenhouse.Cast( target_object );
44 Land_Misc_Polytunnel polytunnel = Land_Misc_Polytunnel.Cast( target_object) ;
45
46 if ( target_object && ( greenHouse || polytunnel ) )
47 {
48 string action_selection = target_object.GetActionComponentName( target.GetComponentIndex() );
49 //Update selections in model, name the desired part Soil to improve action condition check
50 if ( action_selection != "soil" )
51 return false;
52
53 //check if there is any gardenplot objects in the current building
54 ref array<Object> nearest_objects = new array<Object>;
55 ref array<CargoBase> proxy_cargos = new array<CargoBase>;
56 vector pos = target_object.GetPosition();
57 pos[1] = pos[1] - 1; //Lower by one meter for check if plot already present
58 GetGame().GetObjectsAtPosition3D( pos, 2, nearest_objects, proxy_cargos );
59
60 for ( int i = 0; i < nearest_objects.Count(); ++i )
61 {
62 Object object = nearest_objects.Get( i );
63
64 if ( object.IsInherited( GardenPlot ) )
65 {
66 return false;
67 }
68 }
69
70 return true;
71 }
72
73 return false;
74 }
class Land_Misc_Greenhouse extends BuildingSuper Land_Misc_Polytunnel()
Определения Land_Misc_Greenhouse.c:11
void Land_Misc_Greenhouse()
Определения Land_Misc_Greenhouse.c:12
proto native void GetObjectsAtPosition3D(vector pos, float radius, out array< Object > objects, out array< CargoBase > proxyCargos)
Returns list of all objects in sphere "radius" around position "pos".
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки ActionTarget, CfgGameplayHandler::GetDisableColdAreaPlacementCheck(), GetGame(), CGame::GetObjectsAtPosition3D(), Land_Misc_Greenhouse() и Land_Misc_Polytunnel().