Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
pluginhorticulture.c
Go to the documentation of this file.
1 class PluginHorticulture extends PluginBase
2 {
3  ref map<string, ref PlantMaterialHealth> m_PlantMaterials;
4 
5  void PluginHorticulture()
6  {
7  m_PlantMaterials = new map<string, ref PlantMaterialHealth>;
8 
9  LoadFromCfg();
10  }
11 
12  void LoadFromCfg()
13  {
14  string cfg_access = "CfgHorticulture"; // it is stored in dz\gear\cultivation\cfgHorticulture.hpp
15  int cfg_horticulture_count = GetGame().ConfigGetChildrenCount( cfg_access );
16 
17  for ( int i = 0; i < cfg_horticulture_count; i++ )
18  {
19  string cfg_class_name = "";
20  GetGame().ConfigGetChildName( cfg_access, i, cfg_class_name );
21  string cfg_class_access = cfg_access + " " + cfg_class_name;
22 
23  int cfg_class_count = GetGame().ConfigGetChildrenCount( cfg_class_access );
24 
25  for ( int j = 0; j < cfg_class_count; j++ )
26  {
27  string cfg_subclass_name = "";
28  GetGame().ConfigGetChildName( cfg_class_access, j, cfg_subclass_name );
29  string cfg_subclass_access = cfg_class_access + " " + cfg_subclass_name;
30 
31  int cfg_subclass_count = GetGame().ConfigGetChildrenCount( cfg_subclass_access );
32 
33  PlantMaterialHealth plantMaterialHealth = NULL;
34 
35  if ( cfg_class_name == "Plants" )
36  {
37  plantMaterialHealth = new PlantMaterialHealth;
38  m_PlantMaterials.Set( cfg_subclass_name, plantMaterialHealth );
39  }
40 
41  for ( int k = 0; k < cfg_subclass_count; k++ )
42  {
43  string cfg_variable_name = "";
44  GetGame().ConfigGetChildName( cfg_subclass_access, k, cfg_variable_name );
45  string cfg_variable_access = cfg_subclass_access + " " + cfg_variable_name;
46 
47  if ( cfg_class_name == "Plants" )
48  {
49  string string_param = "";
50  GetGame().ConfigGetText( cfg_variable_access, string_param );
51 
52  if ( cfg_variable_name == "infestedTex" )
53  {
54  plantMaterialHealth.m_InfestedTex = string_param;
55  }
56  else if ( cfg_variable_name == "infestedMat" )
57  {
58  plantMaterialHealth.m_InfestedMat = string_param;
59  }
60  else if ( cfg_variable_name == "healthyTex" )
61  {
62  plantMaterialHealth.m_HealthyTex = string_param;
63  }
64  else if ( cfg_variable_name == "healthyMat" )
65  {
66  plantMaterialHealth.m_HealthyMat = string_param;
67  }
68  }
69  }
70  }
71  }
72  }
73 
74  string GetPlantType( Object obj )
75  {
76  string seed_type = obj.GetType();
77 
78  string plant_type = "";
79  GetGame().ConfigGetText( "cfgVehicles " + seed_type + " Horticulture PlantType", plant_type );
80 
81  return plant_type;
82  }
83 
84  float GetSurfaceFertility( string surface_type )
85  {
86  float fertility = 0.8;
87  if ( surface_type == "hlina" || surface_type == "CRGrass1" || surface_type == "CRGrass2" || surface_type == "CRForest1" || surface_type == "CRForest2" || surface_type == "CRGrit1" )
88  {
89  fertility = 0.8;
90  }
91 
92  return fertility;
93  }
94 
95  bool GiveWormsToPlayer( PlayerBase player, float chance )
96  {
97  if ( Math.RandomFloat01() <= chance )
98  {
99  ItemBase item = ItemBase.Cast( player.GetHumanInventory().CreateInInventory("Food_Worm") );
100  item.SetQuantity( 1 );
101  return true;
102  }
103 
104  return false;
105  }
106 
107  PlantMaterialHealth GetPlantMaterial( string plant_type )
108  {
109  if ( m_PlantMaterials.Contains(plant_type) )
110  {
111  return m_PlantMaterials.Get(plant_type);
112  }
113 
114  return NULL;
115  }
116 }
ItemBase
Definition: inventoryitem.c:730
GetGame
proto native CGame GetGame()
PlantMaterialHealth
Definition: plantmaterial.c:1
PluginBase
Definition: pluginadminlog.c:1
PlayerBase
Definition: playerbaseclient.c:1
map
map
Definition: controlsxboxnew.c:3
Object
Definition: objecttyped.c:1
LoadFromCfg
void LoadFromCfg()
Definition: pluginlifespan.c:56
Math
Definition: enmath.c:6