namespace Eco.Mods.TechTree { // [DoNotLocalize] } // WORLD LAYER INFO namespace Eco.Mods.WorldLayers { using Eco.Shared.Localization; using Eco.Shared.Math; using Eco.Shared.Utils; using Eco.Simulation.WorldLayers.Layers; public partial class PlantLayerSettingsFireweed : PlantLayerSettings { public PlantLayerSettingsFireweed() : base() { this.Name = "Fireweed"; this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Fireweed"), Localizer.DoStr("Population")); this.InitMultiplier = 1; this.SyncToClient = false; this.Range = new Range(0f, 1f); this.RenderRange = new Range(0f, 0.333333f); this.MinColor = new Color(1f, 1f, 1f); this.MaxColor = new Color(0f, 1f, 0f); this.Percent = false; this.SumRelevant = true; this.Unit = "Fireweed"; this.VoxelsPerEntry = 5; this.Category = WorldLayerCategory.Plant; this.ValueType = WorldLayerValueType.Percent; this.AreaDescription = ""; } } } namespace Eco.Mods.Organisms { using System.Collections.Generic; using Eco.Gameplay.Plants; using Eco.Mods.TechTree; using Eco.Shared.Localization; using Eco.Shared.Math; using Eco.Shared.Serialization; using Eco.Simulation; using Eco.Simulation.Types; using Eco.World.Blocks; [Serialized] public partial class Fireweed : PlantEntity { public Fireweed(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { } public Fireweed() { } static PlantSpecies species; public partial class FireweedSpecies : PlantSpecies { public FireweedSpecies() : base() { species = this; this.InstanceType = typeof(Fireweed); // Info this.Decorative = false; this.Name = "Fireweed"; this.DisplayName = Localizer.DoStr("Fireweed"); // Lifetime this.MaturityAgeDays = 0.8f; // Generation // Food this.CalorieValue = 4; // Resources this.PostHarvestingGrowth = 0; this.PickableAtPercent = 0; this.ResourceList = new List() { new SpeciesResource(typeof(FireweedShootsItem), new Range(1, 5), 1), new SpeciesResource(typeof(FireweedSeedItem), new Range(1, 2), 0.3f) }; this.ResourceBonusAtGrowth = 0.9f; // Visuals this.BlockType = typeof(FireweedBlock); // Climate this.ReleasesCO2ppmPerDay = -0.00001f; // WorldLayers this.MaxGrowthRate = 0.01f; this.MaxDeathRate = 0.005f; this.SpreadRate = 0.001f; this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f }); this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.15f, MaxResourceContent = 0.3f }); this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f }); this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.05f, MaxResourceContent = 0.1f }); this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 }); this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 }); this.GenerationSpawnCountPerPoint = new Range(6, 8); this.GenerationSpawnPointMultiplier = 0.2f; this.IdealTemperatureRange = new Range(0.24f, 0.28f); this.IdealMoistureRange = new Range(0.44f, 0.48f); this.IdealWaterRange = new Range(0, 0.1f); this.WaterExtremes = new Range(0, 0.2f); this.TemperatureExtremes = new Range(0.2f, 0.3f); this.MoistureExtremes = new Range(0.2f, 0.5f); this.MaxPollutionDensity = 0.7f; this.PollutionDensityTolerance = 0.1f; this.VoxelsPerEntry = 5; } } } [Serialized] [Reapable] [MoveEfficiency(0.8f)] public partial class FireweedBlock : PlantBlock { } }