24 static const int FERTILIZER_USAGE = 200;
26 private int m_WaterQuantity;
27 static private int m_WaterNeeded = 190;
28 static private int m_WaterMax = 200;
31 float m_FertilizerUsage;
32 float m_FertilizerQuantity;
33 float m_FertilizerQuantityMax;
37 string m_FertilizerType =
"";
39 int m_WateredState = eWateredState.DRY;
40 string m_DiggedSlotComponent;
43 private GardenBase m_Garden;
45 float m_HarvestingEfficiency;
51 void Slot(
float base_fertility )
55 Init( base_fertility );
71 void SetSlotIndex(
int index)
81 void SetSlotId(
int id)
113 plant.SetGarden(m_Garden);
118 void SetWater(
int val )
120 val = Math.Clamp( val, 0, m_WaterMax );
121 m_WaterQuantity = val;
137 void GiveWater(
float consumed_quantity )
139 m_WaterQuantity = Math.Clamp(m_WaterQuantity + consumed_quantity, 0.0,
GetWaterMax());
140 m_Garden.SetWaterQuantity(GetSlotIndex(), m_WaterQuantity);
143 if (m_WateredState == eWateredState.DRY && !needsWater)
145 SetWateredState(eWateredState.WET);
146 m_Garden.SlotWaterStateUpdate(
this);
149 else if (m_WateredState == eWateredState.WET && needsWater)
151 SetWateredState(eWateredState.DRY);
152 m_Garden.SlotWaterStateUpdate(
this);
158 if (!GetPlant() && GetSeed() && !
NeedsWater())
164 if ( m_WaterQuantity < GetWaterUsage() )
188 return m_WaterQuantity;
196 float GetFertilityMax()
198 return m_FertilizerUsage;
201 void SetFertility(
float fertility)
203 m_Fertility = fertility;
206 float GetFertilizerQuantity()
208 return m_FertilizerQuantity;
211 void SetFertilizerQuantity(
float fertility)
213 m_FertilizerQuantity = fertility;
214 m_Garden.SetFertilizerQuantity(GetSlotIndex(), Math.Ceil(m_FertilizerQuantity));
216 if (m_FertilizerQuantityMax != 0 && m_FertilizerQuantity >= m_FertilizerQuantityMax)
219 m_Garden.SlotFertilityStateUpdate(
this);
223 float GetFertilizerQuantityMax()
225 return m_FertilizerQuantityMax;
228 void SetFertilizerQuantityMax(
float quantMax)
230 m_FertilizerQuantityMax = quantMax;
233 string GetFertilityType()
235 return m_FertilizerType;
238 void SetFertilityType(
string type)
240 m_FertilizerType = type;
243 int GetFertilityState()
245 return m_FertilityState;
248 void SetFertilityState(
int newState)
250 if (m_FertilityState == newState)
253 m_FertilityState = newState;
254 m_Garden.SlotFertilityStateUpdate(
this);
257 int GetWateredState()
259 return m_WateredState;
262 void SetWateredState(
int newState)
264 if (m_WateredState == newState)
267 m_WateredState = newState;
268 if (m_WateredState == eWateredState.WET)
272 else if (m_WateredState == eWateredState.DRY)
277 m_Garden.SlotWaterStateUpdate(
this);
280 float GetWaterUsage()
282 return m_WaterNeeded;
298 m_Garden.SetSlotState(GetSlotIndex(), new_state);
303 if (
m_State == eGardenSlotState.STATE_DIGGED)
313 if (
m_State == eGardenSlotState.STATE_PLANTED)
321 void Init(
float base_fertility )
323 m_Fertility = base_fertility;
324 m_FertilizerUsage = FERTILIZER_USAGE;
325 m_FertilizerQuantity = 0.0;
326 m_FertilizerType =
"";
328 m_WateredState = eWateredState.DRY;
329 m_WaterQuantity = 0.0;
330 m_HarvestingEfficiency = 1.0;
331 m_State = eGardenSlotState.STATE_DIGGED;
340 string GetSlotComponent()
342 return m_DiggedSlotComponent;
349 ctx.
Read( m_Fertility );
350 ctx.
Read( m_FertilizerUsage );
351 ctx.
Read( m_FertilizerQuantity );
353 if ( !ctx.
Read( m_FertilizerType ) )
354 m_FertilizerType =
"";
356 ctx.
Read( m_HarvestingEfficiency );
360 if ( version >= 102 )
362 if(!ctx.
Read( m_Fertility ))
365 if(!ctx.
Read( m_FertilizerUsage ))
368 if(!ctx.
Read( m_FertilizerQuantity ))
371 if(!ctx.
Read( m_HarvestingEfficiency ))
377 if (!ctx.
Read( m_FertilizerType ))
379 m_FertilizerType =
"";
386 if(!ctx.
Read( wateredState ))
392 SetWateredState(wateredState);
401 ctx.
Write( m_Fertility );
402 ctx.
Write( m_FertilizerUsage );
403 ctx.
Write( m_FertilizerQuantity );
404 ctx.
Write( m_HarvestingEfficiency );
406 ctx.
Write( m_FertilizerType );
407 ctx.
Write( m_WateredState );
class GP5GasMask extends MaskBase ItemBase
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
enum EObjectTemperatureState m_State
void SetGarden(GardenBase gardenBase)
void OnStoreSaveCustom(ParamsWriteContext ctx)
bool OnStoreLoadCustom(ParamsReadContext ctx, int version)
void SetState(bool state)
proto native void ObjectDelete(Object obj)
proto bool Write(void value_out)
proto bool Read(void value_in)
Serializer ParamsReadContext
proto native CGame GetGame()
Serializer ParamsWriteContext
proto native int GetState()
returns one of STATE_...