DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
GardenPlot.c
См. документацию.
1class GardenPlot extends GardenBase
2{
4 private const int GARDEN_SLOT_COUNT = 9;
5 private const float PLACEMENT_HEIGHT_LIMIT = 0.3; // Y coord placement limit - this is important when server has collision checks disabled
6
7 void GardenPlot()
8 {
9 SetBaseFertility(0.5);
10 }
11
12 override void EEInit()
13 {
14 super.EEInit();
15 }
16
17 override bool OnStoreLoad( ParamsReadContext ctx, int version )
18 {
19 if ( !super.OnStoreLoad(ctx, version) )
20 return false;
21
22 if ( !m_ClutterCutter )
23 {
25 m_ClutterCutter.SetOrientation( GetOrientation() );
26 }
27
28 return true;
29 }
30
31 override void EEDelete(EntityAI parent)
32 {
33 super.EEDelete(parent);
34
35 if (m_ClutterCutter && GetGame())
36 {
38 m_ClutterCutter = NULL;
39 }
40 }
41
42 override bool IsInventoryVisible()
43 {
44 return true;
45 }
46
47 override int GetGardenSlotsCount()
48 {
49 return GARDEN_SLOT_COUNT;
50 }
51
53 {
54 HideSelection("SeedBase_1");
55 HideSelection("SeedBase_2");
56 HideSelection("SeedBase_3");
57 HideSelection("SeedBase_4");
58 HideSelection("SeedBase_5");
59 HideSelection("SeedBase_6");
60 HideSelection("SeedBase_7");
61 HideSelection("SeedBase_8");
62 HideSelection("SeedBase_9");
63 HideSelection("slotCovered_01");
64 HideSelection("slotCovered_02");
65 HideSelection("slotCovered_03");
66 HideSelection("slotCovered_04");
67 HideSelection("slotCovered_05");
68 HideSelection("slotCovered_06");
69 HideSelection("slotCovered_07");
70 HideSelection("slotCovered_08");
71 HideSelection("slotCovered_09");
72 }
73
74 //================================================================
75 // ADVANCED PLACEMENT
76 //================================================================
77
78 override void OnPlacementStarted( Man player )
79 {
81 }
82
83 override void OnHologramBeingPlaced( Man player )
84 {
86 }
87
88 override void OnPlacementComplete( Man player, vector position = "0 0 0", vector orientation = "0 0 0" )
89 {
90 super.OnPlacementComplete( player, position, orientation );
91
92 PlayerBase player_base = PlayerBase.Cast( player );
93 //vector pos = player_base.GetLocalProjectionPosition();
94 //vector ori = player_base.GetLocalProjectionOrientation();
95
96 if ( GetGame().IsServer() )
97 {
98 // To properly move the clutter cutter from spawn position, it must be deleted and created again.
100 {
102 m_ClutterCutter = NULL;
103 }
104
105 if (!m_ClutterCutter)
106 {
108 m_ClutterCutter.SetOrientation( orientation );
109 }
110 }
111 }
112
113 override bool CanBePlaced( Man player, vector position )
114 {
115 string surface_type;
116 float surfaceHeight = GetGame().SurfaceGetType3D( position[0], position[1], position[2], surface_type );
117 if ((position[1] - surfaceHeight) > PLACEMENT_HEIGHT_LIMIT)
118 return false;
119
120 return GetGame().IsSurfaceFertile(surface_type);
121 }
122
123 override bool IsTakeable()
124 {
125 return false;
126 }
127
128 override bool CanPutInCargo( EntityAI parent )
129 {
130 return false;
131 }
132
133 override bool CanRemoveFromCargo( EntityAI parent )
134 {
135 return false;
136 }
137
138 //hands
139 override bool CanPutIntoHands( EntityAI parent )
140 {
141 return false;
142 }
143}
144
145//class GardenPlotOutside : GardenPlot {}
146class GardenPlotPolytunnel : GardenPlot
147{
148 private const int POLYTUNNEL_SLOT_COUNT = 13;
149 override int GetGardenSlotsCount()
150 {
152 }
153
154 override void RefreshSlots()
155 {
156 HideSelection("SeedBase_1");
157 HideSelection("SeedBase_2");
158 HideSelection("SeedBase_3");
159 HideSelection("SeedBase_4");
160 HideSelection("SeedBase_5");
161 HideSelection("SeedBase_6");
162 HideSelection("SeedBase_7");
163 HideSelection("SeedBase_8");
164 HideSelection("SeedBase_9");
165 HideSelection("SeedBase_10");
166 HideSelection("SeedBase_11");
167 HideSelection("SeedBase_12");
168 HideSelection("SeedBase_13");
169 }
170}
171class GardenPlotGreenhouse : GardenPlot {}
172
173class GardenPlotPlacing extends GardenPlot
174{
175 override void EOnInit(IEntity other, int extra) {};
176 override void RefreshSlots() {};
177 override void SyncSlots() {};
178}
vector GetOrientation()
Определения AreaDamageManager.c:306
const int ECE_PLACE_ON_SURFACE
Определения CentralEconomy.c:37
override void SyncSlots()
Определения GardenPlot.c:177
class GardenPlot extends GardenBase POLYTUNNEL_SLOT_COUNT
override int GetGardenSlotsCount()
Определения GardenPlot.c:149
override void RefreshSlots()
Определения GardenPlot.c:154
override void EOnInit(IEntity other, int extra)
Определения TestFramework.c:235
bool IsSurfaceFertile(string surface)
Checks if the surface is fertile.
Определения Game.c:1167
proto float SurfaceGetType3D(float x, float y, float z, out string type)
Y input: Maximum Y to trace down from; Returns: Y position the surface was found.
proto native Object CreateObjectEx(string type, vector pos, int iFlags, int iRotation=RF_DEFAULT)
Creates object of certain type.
proto native void ObjectDelete(Object obj)
Определения Building.c:6
override void EEDelete(EntityAI parent)
Определения GardenPlot.c:31
void GardenPlot()
Определения GardenPlot.c:7
void RefreshSlots()
Определения GardenPlot.c:52
const float PLACEMENT_HEIGHT_LIMIT
Определения GardenPlot.c:5
override bool IsInventoryVisible()
Определения GardenPlot.c:42
override void EEInit()
Определения GardenPlot.c:12
const int GARDEN_SLOT_COUNT
Определения GardenPlot.c:4
override void OnPlacementStarted(Man player)
Определения GardenPlot.c:78
override bool CanPutInCargo(EntityAI parent)
Определения GardenPlot.c:128
override bool CanPutIntoHands(EntityAI parent)
Определения GardenPlot.c:139
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Определения GardenPlot.c:17
override bool IsTakeable()
Определения GardenPlot.c:123
override bool CanBePlaced(Man player, vector position)
Определения GardenPlot.c:113
Object m_ClutterCutter
Определения GardenPlot.c:3
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Определения GardenPlot.c:88
override bool CanRemoveFromCargo(EntityAI parent)
Определения GardenPlot.c:133
override int GetGardenSlotsCount()
Определения GardenPlot.c:47
override void OnHologramBeingPlaced(Man player)
Определения GardenPlot.c:83
Определения GardenPlot.c:2
Определения EnEntity.c:165
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9