123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- class PluginHorticulture extends PluginBase
- {
- ref map<string, ref PlantMaterialHealth> m_PlantMaterials;
-
- void PluginHorticulture()
- {
- m_PlantMaterials = new map<string, ref PlantMaterialHealth>;
-
- LoadFromCfg();
- }
- void LoadFromCfg()
- {
- string cfg_access = "CfgHorticulture"; // it is stored in dz\gear\cultivation\cfgHorticulture.hpp
- int cfg_horticulture_count = GetGame().ConfigGetChildrenCount( cfg_access );
- for ( int i = 0; i < cfg_horticulture_count; i++ )
- {
- string cfg_class_name = "";
- GetGame().ConfigGetChildName( cfg_access, i, cfg_class_name );
- string cfg_class_access = cfg_access + " " + cfg_class_name;
- int cfg_class_count = GetGame().ConfigGetChildrenCount( cfg_class_access );
-
- for ( int j = 0; j < cfg_class_count; j++ )
- {
- string cfg_subclass_name = "";
- GetGame().ConfigGetChildName( cfg_class_access, j, cfg_subclass_name );
- string cfg_subclass_access = cfg_class_access + " " + cfg_subclass_name;
-
- int cfg_subclass_count = GetGame().ConfigGetChildrenCount( cfg_subclass_access );
-
- PlantMaterialHealth plantMaterialHealth = NULL;
-
- if ( cfg_class_name == "Plants" )
- {
- plantMaterialHealth = new PlantMaterialHealth;
- m_PlantMaterials.Set( cfg_subclass_name, plantMaterialHealth );
- }
-
- for ( int k = 0; k < cfg_subclass_count; k++ )
- {
- string cfg_variable_name = "";
- GetGame().ConfigGetChildName( cfg_subclass_access, k, cfg_variable_name );
- string cfg_variable_access = cfg_subclass_access + " " + cfg_variable_name;
-
- if ( cfg_class_name == "Plants" )
- {
- string string_param = "";
- GetGame().ConfigGetText( cfg_variable_access, string_param );
-
- if ( cfg_variable_name == "infestedTex" )
- {
- plantMaterialHealth.m_InfestedTex = string_param;
- }
- else if ( cfg_variable_name == "infestedMat" )
- {
- plantMaterialHealth.m_InfestedMat = string_param;
- }
- else if ( cfg_variable_name == "healthyTex" )
- {
- plantMaterialHealth.m_HealthyTex = string_param;
- }
- else if ( cfg_variable_name == "healthyMat" )
- {
- plantMaterialHealth.m_HealthyMat = string_param;
- }
- }
- }
- }
- }
- }
-
- string GetPlantType( Object obj )
- {
- string seed_type = obj.GetType();
-
- string plant_type = "";
- GetGame().ConfigGetText( "cfgVehicles " + seed_type + " Horticulture PlantType", plant_type );
-
- return plant_type;
- }
- float GetSurfaceFertility( string surface_type )
- {
- float fertility = 0.8;
- if ( surface_type == "hlina" || surface_type == "CRGrass1" || surface_type == "CRGrass2" || surface_type == "CRForest1" || surface_type == "CRForest2" || surface_type == "CRGrit1" )
- {
- fertility = 0.8;
- }
-
- return fertility;
- }
- bool GiveWormsToPlayer( PlayerBase player, float chance )
- {
- if ( Math.RandomFloat01() <= chance )
- {
- ItemBase item = ItemBase.Cast( player.GetHumanInventory().CreateInInventory("Food_Worm") );
- item.SetQuantity( 1 );
- return true;
- }
-
- return false;
- }
- PlantMaterialHealth GetPlantMaterial( string plant_type )
- {
- if ( m_PlantMaterials.Contains(plant_type) )
- {
- return m_PlantMaterials.Get(plant_type);
- }
-
- return NULL;
- }
- }
|