DayZ 1.28
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 bool OnStoreLoad( ParamsReadContext ctx, int version )
13 {
14 if ( !super.OnStoreLoad(ctx, version) )
15 return false;
16
17 if ( !m_ClutterCutter )
18 {
20 m_ClutterCutter.SetOrientation( GetOrientation() );
21 }
22
23 return true;
24 }
25
26 override void EEDelete(EntityAI parent)
27 {
28 super.EEDelete(parent);
29
30 if (m_ClutterCutter && GetGame())
31 {
33 m_ClutterCutter = NULL;
34 }
35 }
36
37 override bool IsInventoryVisible()
38 {
39 return true;
40 }
41
42 override int GetGardenSlotsCount()
43 {
44 return GARDEN_SLOT_COUNT;
45 }
46
48 {
49 HideSelection("SeedBase_1");
50 HideSelection("SeedBase_2");
51 HideSelection("SeedBase_3");
52 HideSelection("SeedBase_4");
53 HideSelection("SeedBase_5");
54 HideSelection("SeedBase_6");
55 HideSelection("SeedBase_7");
56 HideSelection("SeedBase_8");
57 HideSelection("SeedBase_9");
58 HideSelection("slotCovered_01");
59 HideSelection("slotCovered_02");
60 HideSelection("slotCovered_03");
61 HideSelection("slotCovered_04");
62 HideSelection("slotCovered_05");
63 HideSelection("slotCovered_06");
64 HideSelection("slotCovered_07");
65 HideSelection("slotCovered_08");
66 HideSelection("slotCovered_09");
67 }
68
69 //================================================================
70 // ADVANCED PLACEMENT
71 //================================================================
72
73 override void OnPlacementStarted( Man player )
74 {
76 }
77
78 override void OnHologramBeingPlaced( Man player )
79 {
81 }
82
83 override void OnPlacementComplete( Man player, vector position = "0 0 0", vector orientation = "0 0 0" )
84 {
85 super.OnPlacementComplete( player, position, orientation );
86
87 // To properly move the clutter cutter from spawn position, it must be deleted and created again.
89 {
91 m_ClutterCutter = NULL;
92 }
93
94 if (!m_ClutterCutter)
95 {
97 m_ClutterCutter.SetOrientation( orientation );
98 }
99
100 SyncSlots();
101 }
102
103 override bool CanBePlaced( Man player, vector position )
104 {
105 string surface_type;
106 float surfaceHeight = GetGame().SurfaceGetType3D( position[0], position[1], position[2], surface_type );
107 if ((position[1] - surfaceHeight) > PLACEMENT_HEIGHT_LIMIT)
108 return false;
109
110 return GetGame().IsSurfaceFertile(surface_type);
111 }
112
113 override bool IsTakeable()
114 {
115 return false;
116 }
117
118 override bool CanPutInCargo( EntityAI parent )
119 {
120 return false;
121 }
122
123 override bool CanRemoveFromCargo( EntityAI parent )
124 {
125 return false;
126 }
127
128 //hands
129 override bool CanPutIntoHands( EntityAI parent )
130 {
131 return false;
132 }
133}
134
135//class GardenPlotOutside : GardenPlot {}
136class GardenPlotPolytunnel : GardenPlot
137{
138 private const int POLYTUNNEL_SLOT_COUNT = 13;
139 override int GetGardenSlotsCount()
140 {
142 }
143
144 override void OnPlacementComplete( Man player, vector position = "0 0 0", vector orientation = "0 0 0" )
145 {
146 if ( g_Game.IsServer() || !g_Game.IsMultiplayer() )
147 {
148 SyncSlots();
149 }
150 }
151
152 override void RefreshSlots()
153 {
154 HideSelection("SeedBase_1");
155 HideSelection("SeedBase_2");
156 HideSelection("SeedBase_3");
157 HideSelection("SeedBase_4");
158 HideSelection("SeedBase_5");
159 HideSelection("SeedBase_6");
160 HideSelection("SeedBase_7");
161 HideSelection("SeedBase_8");
162 HideSelection("SeedBase_9");
163 HideSelection("SeedBase_10");
164 HideSelection("SeedBase_11");
165 HideSelection("SeedBase_12");
166 HideSelection("SeedBase_13");
167 }
168}
169class GardenPlotGreenhouse : GardenPlot
170{
171 override void OnPlacementComplete( Man player, vector position = "0 0 0", vector orientation = "0 0 0" )
172 {
173 if ( g_Game.IsServer() || !g_Game.IsMultiplayer() )
174 {
175 SyncSlots();
176 }
177 }
178}
179
180class GardenPlotPlacing extends GardenPlot
181{
182 override void EOnInit(IEntity other, int extra) {};
183 override void RefreshSlots() {};
184 override void SyncSlots() {};
185}
vector GetOrientation()
Определения AreaDamageManager.c:306
const int ECE_PLACE_ON_SURFACE
Определения CentralEconomy.c:37
DayZGame g_Game
Определения DayZGame.c:3868
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Определения ExplosivesBase.c:140
override void SyncSlots()
Определения GardenPlot.c:184
class GardenPlot extends GardenBase POLYTUNNEL_SLOT_COUNT
override int GetGardenSlotsCount()
Определения GardenPlot.c:139
override void RefreshSlots()
Определения GardenPlot.c:152
override void EOnInit(IEntity other, int extra)
Определения TestFramework.c:235
bool IsSurfaceFertile(string surface)
Checks if the surface is fertile.
Определения Global/game.c:1222
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)
override void EEDelete(EntityAI parent)
Определения GardenPlot.c:26
void GardenPlot()
Определения GardenPlot.c:7
void RefreshSlots()
Определения GardenPlot.c:47
const float PLACEMENT_HEIGHT_LIMIT
Определения GardenPlot.c:5
override bool IsInventoryVisible()
Определения GardenPlot.c:37
const int GARDEN_SLOT_COUNT
Определения GardenPlot.c:4
override void OnPlacementStarted(Man player)
Определения GardenPlot.c:73
override bool CanPutInCargo(EntityAI parent)
Определения GardenPlot.c:118
override bool CanPutIntoHands(EntityAI parent)
Определения GardenPlot.c:129
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Определения GardenPlot.c:12
override bool IsTakeable()
Определения GardenPlot.c:113
override bool CanBePlaced(Man player, vector position)
Определения GardenPlot.c:103
Object m_ClutterCutter
Определения GardenPlot.c:3
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Определения GardenPlot.c:83
override bool CanRemoveFromCargo(EntityAI parent)
Определения GardenPlot.c:123
override int GetGardenSlotsCount()
Определения GardenPlot.c:42
override void OnHologramBeingPlaced(Man player)
Определения GardenPlot.c:78
Определения GardenPlot.c:2
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
Определения GardenPlot.c:171
Определения ObjectTyped.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9