Nouvelle map

Change plant maturity
This commit is contained in:
Hactarus 2020-04-25 17:37:18 +02:00
parent 27919d7e28
commit a06be0fc21
78 changed files with 15 additions and 6777 deletions

View file

@ -4,6 +4,6 @@
"MaxHourlyBackups": 24, "MaxHourlyBackups": 24,
"MaxDailyBackups": 7, "MaxDailyBackups": 7,
"MaxWeeklyBackups": 10, "MaxWeeklyBackups": 10,
"BackupFrequencyInHours": 0.25, "BackupFrequencyInHours": 0.5,
"HeadBackupEnabled": false "HeadBackupEnabled": false
} }

View file

@ -1,9 +1,6 @@
{ {
"CollaborationPreset": "LowCollaboration", "CollaborationPreset": "MediumCollaboration",
"UnlearnRefundRate": 0.5, "SkillGainMultiplier": 1.5,
"SpecialtyCostMultiplier": 0.5,
"SkillGainMultiplier": 1.8,
"SpecialtyExperienceDivisor": 20.0,
"SpecialtyExperiencePerLevel": 25.0, "SpecialtyExperiencePerLevel": 25.0,
"PlayerExperiencePerSpecialtyExperience": 0.0 "PlayerExperiencePerSpecialtyExperience": 0.0
} }

View file

@ -4,8 +4,8 @@
"DiscordAddress": "https://discord.gg/YngMK69", "DiscordAddress": "https://discord.gg/YngMK69",
"Password": "", "Password": "",
"Description": "[<color=#000000>B<color=#FDDA24>E<color=#EF3340>L<color=#ffffff>/<color=#0055A4>F<color=#FFFFFF>R<color=#EF4135>A<color=#ffffff>]<b><color=#ffffff>Cresi", "Description": "[<color=#000000>B<color=#FDDA24>E<color=#EF3340>L<color=#ffffff>/<color=#0055A4>F<color=#FFFFFF>R<color=#EF4135>A<color=#ffffff>]<b><color=#ffffff>Cresi",
"DetailedDescription": "Serveur Belgo-Francais, serveur Discord ouvert.", "DetailedDescription": "Serveur Belgo-Francais, serveur Discord ouvert.<br>Monde réparti en plusieurs villages unifié par un centre-ville.<br>A votre première connexion rejoignez un village pour vous etablir.<br><br>La construction / recolte est bloqué hors des villages",
"ServerCategory": "None", "ServerCategory": "Established",
"IPAddress": "Any", "IPAddress": "Any",
"RemoteAddress": "eco.cresi.be", "RemoteAddress": "eco.cresi.be",
"GameServerPort": 3000, "GameServerPort": 3000,

View file

@ -1,6 +1,6 @@
{ {
"$id": "1", "$id": "1",
"Seed": 1118860169, "Seed": 1818130429,
"Dimensions": { "Dimensions": {
"x": 100, "x": 100,
"y": 100 "y": 100
@ -8,9 +8,9 @@
"WaterLevel": 45, "WaterLevel": 45,
"Height": 160, "Height": 160,
"SpawnLocation": { "SpawnLocation": {
"x": 629, "x": 1,
"y": 0, "y": 0,
"z": 756 "z": 1
}, },
"HeightmapModule": { "HeightmapModule": {
"$id": "2", "$id": "2",

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsAgave : PlantLayerSettings
{
public PlantLayerSettingsAgave() : base()
{
this.Name = "Agave";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Agave"), 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 = "Agave";
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 Agave : PlantEntity
{
public Agave(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Agave() { }
static PlantSpecies species;
public partial class AgaveSpecies : PlantSpecies
{
public AgaveSpecies() : base()
{
species = this;
this.InstanceType = typeof(Agave);
// Info
this.Decorative = false;
this.Name = "Agave";
this.DisplayName = Localizer.DoStr("Agave");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(AgaveLeavesItem), new Range(2, 6), 1),
new SpeciesResource(typeof(AgaveSeedItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(AgaveBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.GenerationSpawnCountPerPoint = new Range(5, 11);
this.GenerationSpawnPointMultiplier = 0.1f;
this.IdealTemperatureRange = new Range(0.75f, 0.85f);
this.IdealMoistureRange = new Range(0.1f, 0.25f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.7f, 1);
this.MoistureExtremes = new Range(0, 0.35f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class AgaveBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsArcticWillow : PlantLayerSettings
{
public PlantLayerSettingsArcticWillow() : base()
{
this.Name = "ArcticWillow";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Arctic Willow"), 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 = "Arctic Willow";
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 ArcticWillow : PlantEntity
{
public ArcticWillow(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public ArcticWillow() { }
static PlantSpecies species;
public partial class ArcticWillowSpecies : PlantSpecies
{
public ArcticWillowSpecies() : base()
{
species = this;
this.InstanceType = typeof(ArcticWillow);
// Info
this.Decorative = false;
this.Name = "ArcticWillow";
this.DisplayName = Localizer.DoStr("Arctic Willow");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1),
new SpeciesResource(typeof(ArcticWillowSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(ArcticWillowBlock);
// 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 = 2 });
this.BlanketSpawnPercent = 0.3f;
this.IdealTemperatureRange = new Range(0.12f, 0.28f);
this.IdealMoistureRange = new Range(0.36f, 0.48f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.1f, 0.3f);
this.MoistureExtremes = new Range(0.2f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class ArcticWillowBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsBarrelCactus : PlantLayerSettings
{
public PlantLayerSettingsBarrelCactus() : base()
{
this.Name = "BarrelCactus";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Barrel Cactus"), 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 = "Barrel Cactus";
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 BarrelCactus : PlantEntity
{
public BarrelCactus(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public BarrelCactus() { }
static PlantSpecies species;
public partial class BarrelCactusSpecies : PlantSpecies
{
public BarrelCactusSpecies() : base()
{
species = this;
this.InstanceType = typeof(BarrelCactus);
// Info
this.Decorative = false;
this.Name = "BarrelCactus";
this.DisplayName = Localizer.DoStr("Barrel Cactus");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(2, 6), 1),
new SpeciesResource(typeof(BarrelCactusSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(BarrelCactusBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.GenerationSpawnCountPerPoint = new Range(3, 8);
this.GenerationSpawnPointMultiplier = 0.1f;
this.IdealTemperatureRange = new Range(0.8f, 0.9f);
this.IdealMoistureRange = new Range(0.1f, 0.2f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.7f, 1);
this.MoistureExtremes = new Range(0, 0.38f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class BarrelCactusBlock :
PlantBlock { }
}

View file

@ -1,109 +0,0 @@
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 PlantLayerSettingsBeans : PlantLayerSettings
{
public PlantLayerSettingsBeans() : base()
{
this.Name = "Beans";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Beans"), 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 = "Beans";
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 Beans : PlantEntity
{
public Beans(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Beans() { }
static PlantSpecies species;
public partial class BeansSpecies : PlantSpecies
{
public BeansSpecies() : base()
{
species = this;
this.InstanceType = typeof(Beans);
// Info
this.Decorative = false;
this.Name = "Beans";
this.DisplayName = Localizer.DoStr("Beans");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 6;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(BeansItem), new Range(1, 6), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(BeansBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.5f, 0.55f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.45f, 0.65f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
public partial class BeansBlock :
InteractablePlantBlock { }
}

View file

@ -1,110 +0,0 @@
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 PlantLayerSettingsBeets : PlantLayerSettings
{
public PlantLayerSettingsBeets() : base()
{
this.Name = "Beets";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Beets"), 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 = "Beets";
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 Beets : PlantEntity
{
public Beets(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Beets() { }
static PlantSpecies species;
public partial class BeetsSpecies : PlantSpecies
{
public BeetsSpecies() : base()
{
species = this;
this.InstanceType = typeof(Beets);
// Info
this.Decorative = false;
this.Name = "Beets";
this.DisplayName = Localizer.DoStr("Beets");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 6;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(BeetItem), new Range(1, 6), 1),
new SpeciesResource(typeof(BeetSeedItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(BeetsBlock);
// 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.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.3f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.5f, 0.55f);
this.IdealMoistureRange = new Range(0.32f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
public partial class BeetsBlock :
InteractablePlantBlock { }
}

View file

@ -1,113 +0,0 @@
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 PlantLayerSettingsBigBluestem : PlantLayerSettings
{
public PlantLayerSettingsBigBluestem() : base()
{
this.Name = "BigBluestem";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Big Bluestem"), 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 = "Big Bluestem";
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 BigBluestem : PlantEntity
{
public BigBluestem(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public BigBluestem() { }
static PlantSpecies species;
public partial class BigBluestemSpecies : PlantSpecies
{
public BigBluestemSpecies() : base()
{
species = this;
this.InstanceType = typeof(BigBluestem);
// Info
this.Decorative = false;
this.Name = "BigBluestem";
this.DisplayName = Localizer.DoStr("Big Bluestem");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0.2f;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.RequireHarvestable = false;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(2, 7), 1),
new SpeciesResource(typeof(BigBluestemSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(BigBluestemBlock);
// 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.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.BlanketSpawnPercent = 0.35f;
this.IdealTemperatureRange = new Range(0.63f, 0.79f);
this.IdealMoistureRange = new Range(0.32f, 0.48f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.82f);
this.MoistureExtremes = new Range(0.28f, 0.52f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.8f)]
public partial class BigBluestemBlock :
PlantBlock { }
}

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "Birch"; this.Name = "Birch";
this.DisplayName = Localizer.DoStr("Birch"); this.DisplayName = Localizer.DoStr("Birch");
// Lifetime // Lifetime
this.MaturityAgeDays = 5; this.MaturityAgeDays = 1;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -1,110 +0,0 @@
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 PlantLayerSettingsBoleteMushroom : PlantLayerSettings
{
public PlantLayerSettingsBoleteMushroom() : base()
{
this.Name = "BoleteMushroom";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Bolete Mushroom"), 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 = "Bolete Mushroom";
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 BoleteMushroom : PlantEntity
{
public BoleteMushroom(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public BoleteMushroom() { }
static PlantSpecies species;
public partial class BoleteMushroomSpecies : PlantSpecies
{
public BoleteMushroomSpecies() : base()
{
species = this;
this.InstanceType = typeof(BoleteMushroom);
// Info
this.Decorative = false;
this.Name = "BoleteMushroom";
this.DisplayName = Localizer.DoStr("Bolete Mushroom");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(BoleteMushroomsItem), new Range(1, 5), 1),
new SpeciesResource(typeof(BoleteMushroomSporesItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(BoleteMushroomBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
public partial class BoleteMushroomBlock :
InteractablePlantBlock { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsBunchgrass : PlantLayerSettings
{
public PlantLayerSettingsBunchgrass() : base()
{
this.Name = "Bunchgrass";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Bunchgrass"), 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 = "Bunchgrass";
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 Bunchgrass : PlantEntity
{
public Bunchgrass(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Bunchgrass() { }
static PlantSpecies species;
public partial class BunchgrassSpecies : PlantSpecies
{
public BunchgrassSpecies() : base()
{
species = this;
this.InstanceType = typeof(Bunchgrass);
// Info
this.Decorative = false;
this.Name = "Bunchgrass";
this.DisplayName = Localizer.DoStr("Bunchgrass");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0.2f;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.RequireHarvestable = false;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1),
new SpeciesResource(typeof(BunchgrassSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(BunchgrassBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// 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.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.6f, 0.65f);
this.IdealMoistureRange = new Range(0.4f, 0.45f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.6f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class BunchgrassBlock :
PlantBlock { }
}

View file

@ -1,109 +0,0 @@
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 PlantLayerSettingsCamas : PlantLayerSettings
{
public PlantLayerSettingsCamas() : base()
{
this.Name = "Camas";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Camas"), 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 = "Camas";
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 Camas : PlantEntity
{
public Camas(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Camas() { }
static PlantSpecies species;
public partial class CamasSpecies : PlantSpecies
{
public CamasSpecies() : base()
{
species = this;
this.InstanceType = typeof(Camas);
// Info
this.Decorative = false;
this.Name = "Camas";
this.DisplayName = Localizer.DoStr("Camas");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(CamasBulbItem), new Range(1, 6), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(CamasBlock);
// 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.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.4f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.15f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.6f, 0.7f);
this.IdealMoistureRange = new Range(0.45f, 0.5f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.45f, 0.65f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Diggable]
public partial class CamasBlock :
PlantBlock { }
}

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "Cedar"; this.Name = "Cedar";
this.DisplayName = Localizer.DoStr("Cedar"); this.DisplayName = Localizer.DoStr("Cedar");
// Lifetime // Lifetime
this.MaturityAgeDays = 5; this.MaturityAgeDays = 2;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "Ceiba"; this.Name = "Ceiba";
this.DisplayName = Localizer.DoStr("Ceiba"); this.DisplayName = Localizer.DoStr("Ceiba");
// Lifetime // Lifetime
this.MaturityAgeDays = 6; this.MaturityAgeDays = 2.5f;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -1,110 +0,0 @@
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 PlantLayerSettingsClam : PlantLayerSettings
{
public PlantLayerSettingsClam() : base()
{
this.Name = "Clam";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Clam"), 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 = "Clam";
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 Clam : PlantEntity
{
public Clam(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Clam() { }
static PlantSpecies species;
public partial class ClamSpecies : PlantSpecies
{
public ClamSpecies() : base()
{
species = this;
this.InstanceType = typeof(Clam);
// Info
this.Decorative = false;
this.Name = "Clam";
this.DisplayName = Localizer.DoStr("Clam");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
this.Water = true;
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(ClamItem), new Range(1, 2), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(ClamBlock);
// Climate
this.ReleasesCO2ppmPerDay = 0;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "UnderwaterFertileGround", ConsumedCapacityPerPop = 6 });
this.BlanketSpawnPercent = 0.3f;
this.IdealTemperatureRange = new Range(0.5f, 0.9f);
this.IdealMoistureRange = new Range(0.1f, 0.9f);
this.IdealWaterRange = new Range(0.5f, 1);
this.WaterExtremes = new Range(0.4f, 1.1f);
this.TemperatureExtremes = new Range(0.38f, 1);
this.MoistureExtremes = new Range(0, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[UnderWater]
public partial class ClamBlock :
InteractablePlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsCommonGrass : PlantLayerSettings
{
public PlantLayerSettingsCommonGrass() : base()
{
this.Name = "CommonGrass";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Common Grass"), 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 = "Common Grass";
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 CommonGrass : PlantEntity
{
public CommonGrass(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public CommonGrass() { }
static PlantSpecies species;
public partial class CommonGrassSpecies : PlantSpecies
{
public CommonGrassSpecies() : base()
{
species = this;
this.InstanceType = typeof(CommonGrass);
// Info
this.Decorative = false;
this.Name = "CommonGrass";
this.DisplayName = Localizer.DoStr("Common Grass");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 0.8f;
// Resources
this.PostHarvestingGrowth = 0.2f;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.RequireHarvestable = false;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(CommonGrassBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.BlanketSpawnPercent = 0.2f;
this.IdealTemperatureRange = new Range(0.52f, 0.78f);
this.IdealMoistureRange = new Range(0.32f, 0.48f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.48f, 0.82f);
this.MoistureExtremes = new Range(0.28f, 0.52f);
this.MaxPollutionDensity = 1;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class CommonGrassBlock :
PlantBlock { }
}

View file

@ -1,109 +0,0 @@
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 PlantLayerSettingsCookeinaMushroom : PlantLayerSettings
{
public PlantLayerSettingsCookeinaMushroom() : base()
{
this.Name = "CookeinaMushroom";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Cookeina Mushroom"), 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 = "Cookeina Mushroom";
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 CookeinaMushroom : PlantEntity
{
public CookeinaMushroom(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public CookeinaMushroom() { }
static PlantSpecies species;
public partial class CookeinaMushroomSpecies : PlantSpecies
{
public CookeinaMushroomSpecies() : base()
{
species = this;
this.InstanceType = typeof(CookeinaMushroom);
// Info
this.Decorative = false;
this.Name = "CookeinaMushroom";
this.DisplayName = Localizer.DoStr("Cookeina Mushroom");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(CookeinaMushroomsItem), new Range(1, 4), 1),
new SpeciesResource(typeof(CookeinaMushroomSporesItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(CookeinaMushroomBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
public partial class CookeinaMushroomBlock :
InteractablePlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsCorn : PlantLayerSettings
{
public PlantLayerSettingsCorn() : base()
{
this.Name = "Corn";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Corn"), 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 = "Corn";
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 Corn : PlantEntity
{
public Corn(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Corn() { }
static PlantSpecies species;
public partial class CornSpecies : PlantSpecies
{
public CornSpecies() : base()
{
species = this;
this.InstanceType = typeof(Corn);
// Info
this.Decorative = false;
this.Name = "Corn";
this.DisplayName = Localizer.DoStr("Corn");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 8;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(CornItem), new Range(1, 6), 1),
new SpeciesResource(typeof(CornSeedItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(CornBlock);
// 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.4f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.4f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.45f, 0.48f);
this.IdealMoistureRange = new Range(0.32f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[MoveEfficiency(0.6666f)]
public partial class CornBlock :
InteractablePlantBlock { }
}

View file

@ -1,113 +0,0 @@
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 PlantLayerSettingsCreosoteBush : PlantLayerSettings
{
public PlantLayerSettingsCreosoteBush() : base()
{
this.Name = "CreosoteBush";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Creosote Bush"), 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 = "Creosote Bush";
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 CreosoteBush : PlantEntity
{
public CreosoteBush(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public CreosoteBush() { }
static PlantSpecies species;
public partial class CreosoteBushSpecies : PlantSpecies
{
public CreosoteBushSpecies() : base()
{
species = this;
this.InstanceType = typeof(CreosoteBush);
// Info
this.Decorative = false;
this.Name = "CreosoteBush";
this.DisplayName = Localizer.DoStr("Creosote Bush");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2.5f;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1),
new SpeciesResource(typeof(CreosoteBushSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(CreosoteBushBlock);
// 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.4f, MaxResourceContent = 0.5f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.3f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 5 });
this.GenerationSpawnCountPerPoint = new Range(5, 11);
this.GenerationSpawnPointMultiplier = 0.1f;
this.IdealTemperatureRange = new Range(0.75f, 0.85f);
this.IdealMoistureRange = new Range(0.1f, 0.25f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.7f, 1);
this.MoistureExtremes = new Range(0, 0.35f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class CreosoteBushBlock :
PlantBlock { }
}

View file

@ -1,108 +0,0 @@
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 PlantLayerSettingsCriminiMushroom : PlantLayerSettings
{
public PlantLayerSettingsCriminiMushroom() : base()
{
this.Name = "CriminiMushroom";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Crimini Mushroom"), 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 = "Crimini Mushroom";
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 CriminiMushroom : PlantEntity
{
public CriminiMushroom(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public CriminiMushroom() { }
static PlantSpecies species;
public partial class CriminiMushroomSpecies : PlantSpecies
{
public CriminiMushroomSpecies() : base()
{
species = this;
this.InstanceType = typeof(CriminiMushroom);
// Info
this.Decorative = false;
this.Name = "CriminiMushroom";
this.DisplayName = Localizer.DoStr("Crimini Mushroom");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 1;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(CriminiMushroomsItem), new Range(1, 6), 1),
new SpeciesResource(typeof(CriminiMushroomSporesItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(CriminiMushroomBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3.6f });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
public partial class CriminiMushroomBlock :
InteractablePlantBlock { }
}

View file

@ -1,108 +0,0 @@
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 PlantLayerSettingsDeerLichen : PlantLayerSettings
{
public PlantLayerSettingsDeerLichen() : base()
{
this.Name = "DeerLichen";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Deer Lichen"), 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 = "Deer Lichen";
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 DeerLichen : PlantEntity
{
public DeerLichen(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public DeerLichen() { }
static PlantSpecies species;
public partial class DeerLichenSpecies : PlantSpecies
{
public DeerLichenSpecies() : base()
{
species = this;
this.InstanceType = typeof(DeerLichen);
// Info
this.Decorative = false;
this.Name = "DeerLichen";
this.DisplayName = Localizer.DoStr("Deer Lichen");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 1;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(DeerLichenBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.BlanketSpawnPercent = 0.6f;
this.IdealTemperatureRange = new Range(0.11f, 0.23f);
this.IdealMoistureRange = new Range(0.05f, 0.58f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.1f, 0.31f);
this.MoistureExtremes = new Range(0, 0.62f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class DeerLichenBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsDesertMoss : PlantLayerSettings
{
public PlantLayerSettingsDesertMoss() : base()
{
this.Name = "DesertMoss";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Desert Moss"), 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 = "Desert Moss";
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 DesertMoss : PlantEntity
{
public DesertMoss(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public DesertMoss() { }
static PlantSpecies species;
public partial class DesertMossSpecies : PlantSpecies
{
public DesertMossSpecies() : base()
{
species = this;
this.InstanceType = typeof(DesertMoss);
// Info
this.Decorative = false;
this.Name = "DesertMoss";
this.DisplayName = Localizer.DoStr("Desert Moss");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2.5f;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(DesertMossBlock);
// 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.3f, MaxResourceContent = 0.15f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3.5f });
this.GenerationSpawnCountPerPoint = new Range(5, 11);
this.GenerationSpawnPointMultiplier = 0.1f;
this.IdealTemperatureRange = new Range(0.85f, 0.95f);
this.IdealMoistureRange = new Range(0.2f, 0.25f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.7f, 1);
this.MoistureExtremes = new Range(0, 0.35f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class DesertMossBlock :
PlantBlock { }
}

View file

@ -1,113 +0,0 @@
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 PlantLayerSettingsDwarfWillow : PlantLayerSettings
{
public PlantLayerSettingsDwarfWillow() : base()
{
this.Name = "DwarfWillow";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Dwarf Willow"), 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 = "Dwarf Willow";
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 DwarfWillow : PlantEntity
{
public DwarfWillow(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public DwarfWillow() { }
static PlantSpecies species;
public partial class DwarfWillowSpecies : PlantSpecies
{
public DwarfWillowSpecies() : base()
{
species = this;
this.InstanceType = typeof(DwarfWillow);
// Info
this.Decorative = false;
this.Name = "DwarfWillow";
this.DisplayName = Localizer.DoStr("Dwarf Willow");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 3;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(DwarfWillowSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(DwarfWillowBlock);
// 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(20, 25);
this.GenerationSpawnPointMultiplier = 0.2f;
this.IdealTemperatureRange = new Range(0.11f, 0.19f);
this.IdealMoistureRange = new Range(0.24f, 0.48f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.1f, 0.2f);
this.MoistureExtremes = new Range(0.1f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class DwarfWillowBlock :
PlantBlock { }
}

View file

@ -1,114 +0,0 @@
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 PlantLayerSettingsFern : PlantLayerSettings
{
public PlantLayerSettingsFern() : base()
{
this.Name = "Fern";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Fern"), 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 = "Fern";
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 Fern : PlantEntity
{
public Fern(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Fern() { }
static PlantSpecies species;
public partial class FernSpecies : PlantSpecies
{
public FernSpecies() : base()
{
species = this;
this.InstanceType = typeof(Fern);
// Info
this.Decorative = false;
this.Name = "Fern";
this.DisplayName = Localizer.DoStr("Fern");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(FiddleheadsItem), new Range(1, 6), 1),
new SpeciesResource(typeof(FernSporeItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(FernBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.GenerationSpawnCountPerPoint = new Range(7, 13);
this.GenerationSpawnPointMultiplier = 0.2f;
this.IdealTemperatureRange = new Range(0.45f, 0.55f);
this.IdealMoistureRange = new Range(0.5f, 0.55f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.45f, 0.65f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.8f)]
public partial class FernBlock :
InteractablePlantBlock { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsFilmyFern : PlantLayerSettings
{
public PlantLayerSettingsFilmyFern() : base()
{
this.Name = "FilmyFern";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Filmy Fern"), 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 = "Filmy Fern";
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 FilmyFern : PlantEntity
{
public FilmyFern(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public FilmyFern() { }
static PlantSpecies species;
public partial class FilmyFernSpecies : PlantSpecies
{
public FilmyFernSpecies() : base()
{
species = this;
this.InstanceType = typeof(FilmyFern);
// Info
this.Decorative = false;
this.Name = "FilmyFern";
this.DisplayName = Localizer.DoStr("Filmy Fern");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 4), 1),
new SpeciesResource(typeof(FilmyFernSporeItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(FilmyFernBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.BlanketSpawnPercent = 0.3f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class FilmyFernBlock :
InteractablePlantBlock { }
}

View file

@ -1,103 +0,0 @@
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 PlantLayerSettingsFir : PlantLayerSettings
{
public PlantLayerSettingsFir() : base()
{
this.Name = "Fir";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Fir"), Localizer.DoStr("Population"));
this.InitMultiplier = 1;
this.SyncToClient = false;
this.Range = new Range(0f, 1f);
this.RenderRange = new Range(0f, 0.05f);
this.MinColor = new Color(1f, 1f, 1f);
this.MaxColor = new Color(0f, 1f, 0f);
this.Percent = false;
this.SumRelevant = true;
this.Unit = "Fir";
this.VoxelsPerEntry = 20;
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 Fir : TreeEntity
{
public Fir(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Fir() { }
static TreeSpecies species;
public partial class FirSpecies : TreeSpecies
{
public FirSpecies() : base()
{
species = this;
this.InstanceType = typeof(Fir);
// Info
this.Decorative = false;
this.Name = "Fir";
this.DisplayName = Localizer.DoStr("Fir");
// Lifetime
this.MaturityAgeDays = 5.5f;
// Generation
// Food
this.CalorieValue = 10;
// Resources
this.PostHarvestingGrowth = 0;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(LogItem), new Range(0, 50), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
// Climate
this.ReleasesCO2ppmPerDay = -0.002f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "CanopySpace", ConsumedCapacityPerPop = 26 });
this.BlanketSpawnPercent = 0.5f;
this.IdealTemperatureRange = new Range(0.23f, 0.35f);
this.IdealMoistureRange = new Range(0.45f, 0.55f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.19f, 0.4f);
this.MoistureExtremes = new Range(0.23f, 0.61f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 20;
}
}
}
}

View file

@ -1,113 +0,0 @@
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<SpeciesResource>()
{
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 { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsHeliconia : PlantLayerSettings
{
public PlantLayerSettingsHeliconia() : base()
{
this.Name = "Heliconia";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Heliconia"), 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 = "Heliconia";
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 Heliconia : PlantEntity
{
public Heliconia(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Heliconia() { }
static PlantSpecies species;
public partial class HeliconiaSpecies : PlantSpecies
{
public HeliconiaSpecies() : base()
{
species = this;
this.InstanceType = typeof(Heliconia);
// Info
this.Decorative = false;
this.Name = "Heliconia";
this.DisplayName = Localizer.DoStr("Heliconia");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(HeliconiaSeedItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(HeliconiaBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.BlanketSpawnPercent = 0.2f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.3333f)]
public partial class HeliconiaBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsHuckleberry : PlantLayerSettings
{
public PlantLayerSettingsHuckleberry() : base()
{
this.Name = "Huckleberry";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Huckleberry"), 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 = "Huckleberry";
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 Huckleberry : PlantEntity
{
public Huckleberry(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Huckleberry() { }
static PlantSpecies species;
public partial class HuckleberrySpecies : PlantSpecies
{
public HuckleberrySpecies() : base()
{
species = this;
this.InstanceType = typeof(Huckleberry);
// Info
this.Decorative = false;
this.Name = "Huckleberry";
this.DisplayName = Localizer.DoStr("Huckleberry");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0.5f;
this.PickableAtPercent = 0.8f;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(HuckleberriesItem), new Range(1, 8), 1),
new SpeciesResource(typeof(HuckleberrySeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(HuckleberryBlock);
// 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.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.15f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.IdealTemperatureRange = new Range(0.42f, 0.55f);
this.IdealMoistureRange = new Range(0.48f, 0.53f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.45f, 0.65f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[MoveEfficiency(0.5f)]
public partial class HuckleberryBlock :
InteractablePlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsJointfir : PlantLayerSettings
{
public PlantLayerSettingsJointfir() : base()
{
this.Name = "Jointfir";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Jointfir"), 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 = "Jointfir";
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 Jointfir : PlantEntity
{
public Jointfir(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Jointfir() { }
static PlantSpecies species;
public partial class JointfirSpecies : PlantSpecies
{
public JointfirSpecies() : base()
{
species = this;
this.InstanceType = typeof(Jointfir);
// Info
this.Decorative = false;
this.Name = "Jointfir";
this.DisplayName = Localizer.DoStr("Jointfir");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(2, 6), 1),
new SpeciesResource(typeof(JointfirSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(JointfirBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.GenerationSpawnCountPerPoint = new Range(5, 9);
this.GenerationSpawnPointMultiplier = 0.3f;
this.IdealTemperatureRange = new Range(0.7f, 0.86f);
this.IdealMoistureRange = new Range(0.19f, 0.32f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.65f, 0.92f);
this.MoistureExtremes = new Range(0.12f, 0.38f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.7f)]
public partial class JointfirBlock :
PlantBlock { }
}

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "Joshua"; this.Name = "Joshua";
this.DisplayName = Localizer.DoStr("Joshua"); this.DisplayName = Localizer.DoStr("Joshua");
// Lifetime // Lifetime
this.MaturityAgeDays = 4.5f; this.MaturityAgeDays = 3;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsKelp : PlantLayerSettings
{
public PlantLayerSettingsKelp() : base()
{
this.Name = "Kelp";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Kelp"), 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 = "Kelp";
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 Kelp : PlantEntity
{
public Kelp(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Kelp() { }
static PlantSpecies species;
public partial class KelpSpecies : PlantSpecies
{
public KelpSpecies() : base()
{
species = this;
this.InstanceType = typeof(Kelp);
// Info
this.Decorative = false;
this.Name = "Kelp";
this.DisplayName = Localizer.DoStr("Kelp");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
this.Water = true;
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(KelpItem), new Range(1, 3), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(KelpBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// 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.05f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "UnderwaterFertileGround", ConsumedCapacityPerPop = 4 });
this.BlanketSpawnPercent = 0.5f;
this.IdealTemperatureRange = new Range(0.5f, 0.9f);
this.IdealMoistureRange = new Range(0.1f, 0.9f);
this.IdealWaterRange = new Range(0.5f, 1);
this.WaterExtremes = new Range(0.4f, 1.1f);
this.TemperatureExtremes = new Range(0.38f, 1);
this.MoistureExtremes = new Range(0, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[UnderWater, Reapable]
[MoveEfficiency(0.5f)]
public partial class KelpBlock :
PlantBlock { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsKingFern : PlantLayerSettings
{
public PlantLayerSettingsKingFern() : base()
{
this.Name = "KingFern";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("King Fern"), 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 = "King Fern";
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 KingFern : PlantEntity
{
public KingFern(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public KingFern() { }
static PlantSpecies species;
public partial class KingFernSpecies : PlantSpecies
{
public KingFernSpecies() : base()
{
species = this;
this.InstanceType = typeof(KingFern);
// Info
this.Decorative = false;
this.Name = "KingFern";
this.DisplayName = Localizer.DoStr("King Fern");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(KingFernSporeItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(KingFernBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.BlanketSpawnPercent = 0.2f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable, Diggable]
[MoveEfficiency(0.3333f)]
public partial class KingFernBlock :
PlantBlock { }
}

View file

@ -1,109 +0,0 @@
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 PlantLayerSettingsLatticeMushroom : PlantLayerSettings
{
public PlantLayerSettingsLatticeMushroom() : base()
{
this.Name = "LatticeMushroom";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Lattice Mushroom"), 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 = "Lattice Mushroom";
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 LatticeMushroom : PlantEntity
{
public LatticeMushroom(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public LatticeMushroom() { }
static PlantSpecies species;
public partial class LatticeMushroomSpecies : PlantSpecies
{
public LatticeMushroomSpecies() : base()
{
species = this;
this.InstanceType = typeof(LatticeMushroom);
// Info
this.Decorative = false;
this.Name = "LatticeMushroom";
this.DisplayName = Localizer.DoStr("Lattice Mushroom");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 3;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(LatticeMushroomSporesItem), new Range(1, 2), 0.3f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(LatticeMushroomBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.GenerationSpawnCountPerPoint = new Range(2, 5);
this.GenerationSpawnPointMultiplier = 0.015f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
public partial class LatticeMushroomBlock :
InteractablePlantBlock { }
}

View file

@ -1,110 +0,0 @@
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 PlantLayerSettingsLupine : PlantLayerSettings
{
public PlantLayerSettingsLupine() : base()
{
this.Name = "Lupine";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Lupine"), 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 = "Lupine";
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 Lupine : PlantEntity
{
public Lupine(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Lupine() { }
static PlantSpecies species;
public partial class LupineSpecies : PlantSpecies
{
public LupineSpecies() : base()
{
species = this;
this.InstanceType = typeof(Lupine);
// Info
this.Decorative = false;
this.Name = "Lupine";
this.DisplayName = Localizer.DoStr("Lupine");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(LupineBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.GenerationSpawnCountPerPoint = new Range(15, 20);
this.GenerationSpawnPointMultiplier = 0.15f;
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 LupineBlock :
PlantBlock { }
}

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "Oak"; this.Name = "Oak";
this.DisplayName = Localizer.DoStr("Oak"); this.DisplayName = Localizer.DoStr("Oak");
// Lifetime // Lifetime
this.MaturityAgeDays = 7; this.MaturityAgeDays = 4;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsOceanSpray : PlantLayerSettings
{
public PlantLayerSettingsOceanSpray() : base()
{
this.Name = "OceanSpray";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Ocean Spray"), 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 = "Ocean Spray";
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 OceanSpray : PlantEntity
{
public OceanSpray(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public OceanSpray() { }
static PlantSpecies species;
public partial class OceanSpraySpecies : PlantSpecies
{
public OceanSpraySpecies() : base()
{
species = this;
this.InstanceType = typeof(OceanSpray);
// Info
this.Decorative = false;
this.Name = "OceanSpray";
this.DisplayName = Localizer.DoStr("Ocean Spray");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 1;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(OceanSpraySeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(OceanSprayBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.5f, 0.55f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.45f, 0.65f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.3333f)]
public partial class OceanSprayBlock :
PlantBlock { }
}

View file

@ -1,104 +0,0 @@
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 PlantLayerSettingsOldGrowthRedwood : PlantLayerSettings
{
public PlantLayerSettingsOldGrowthRedwood() : base()
{
this.Name = "OldGrowthRedwood";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Old Growth Redwood"), Localizer.DoStr("Population"));
this.InitMultiplier = 1;
this.SyncToClient = false;
this.Range = new Range(0f, 1f);
this.RenderRange = new Range(0f, 0.05f);
this.MinColor = new Color(1f, 1f, 1f);
this.MaxColor = new Color(0f, 1f, 0f);
this.Percent = false;
this.SumRelevant = true;
this.Unit = "Old Growth Redwood";
this.VoxelsPerEntry = 20;
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 OldGrowthRedwood : TreeEntity
{
public OldGrowthRedwood(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public OldGrowthRedwood() { }
static TreeSpecies species;
public partial class OldGrowthRedwoodSpecies : TreeSpecies
{
public OldGrowthRedwoodSpecies() : base()
{
species = this;
this.InstanceType = typeof(OldGrowthRedwood);
// Info
this.Decorative = false;
this.NoSpread = true;
this.Name = "OldGrowthRedwood";
this.DisplayName = Localizer.DoStr("Old Growth Redwood");
// Lifetime
this.MaturityAgeDays = 30;
// Generation
// Food
this.CalorieValue = 50;
// Resources
this.PostHarvestingGrowth = 0;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(LogItem), new Range(450, 500), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
// Climate
this.ReleasesCO2ppmPerDay = -0.004f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "CanopySpace", ConsumedCapacityPerPop = 20 });
this.BlanketSpawnPercent = 0.3f;
this.IdealTemperatureRange = new Range(0.22f, 0.48f);
this.IdealMoistureRange = new Range(0.42f, 0.48f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.18f, 0.52f);
this.MoistureExtremes = new Range(0.39f, 0.51f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 20;
}
}
}
}

View file

@ -1,108 +0,0 @@
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 PlantLayerSettingsOrchid : PlantLayerSettings
{
public PlantLayerSettingsOrchid() : base()
{
this.Name = "Orchid";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Orchid"), 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 = "Orchid";
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 Orchid : PlantEntity
{
public Orchid(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Orchid() { }
static PlantSpecies species;
public partial class OrchidSpecies : PlantSpecies
{
public OrchidSpecies() : base()
{
species = this;
this.InstanceType = typeof(Orchid);
// Info
this.Decorative = false;
this.Name = "Orchid";
this.DisplayName = Localizer.DoStr("Orchid");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 1;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(OrchidSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(OrchidBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class OrchidBlock :
InteractablePlantBlock { }
}

View file

@ -1,102 +0,0 @@
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 PlantLayerSettingsPalm : PlantLayerSettings
{
public PlantLayerSettingsPalm() : base()
{
this.Name = "Palm";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Palm"), Localizer.DoStr("Population"));
this.InitMultiplier = 1;
this.SyncToClient = false;
this.Range = new Range(0f, 1f);
this.RenderRange = new Range(0f, 0.05f);
this.MinColor = new Color(1f, 1f, 1f);
this.MaxColor = new Color(0f, 1f, 0f);
this.Percent = false;
this.SumRelevant = true;
this.Unit = "Palm";
this.VoxelsPerEntry = 20;
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 Palm : TreeEntity
{
public Palm(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Palm() { }
static TreeSpecies species;
public partial class PalmSpecies : TreeSpecies
{
public PalmSpecies() : base()
{
species = this;
this.InstanceType = typeof(Palm);
// Info
this.Decorative = false;
this.Name = "Palm";
this.DisplayName = Localizer.DoStr("Palm");
// Lifetime
this.MaturityAgeDays = 4.5f;
// Generation
// Food
this.CalorieValue = 12;
// Resources
this.PostHarvestingGrowth = 0;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(LogItem), new Range(0, 30), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
// Climate
this.ReleasesCO2ppmPerDay = -0.001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "CanopySpace", ConsumedCapacityPerPop = 1 });
this.BlanketSpawnPercent = 0.3f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 20;
}
}
}
}

View file

@ -1,113 +0,0 @@
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 PlantLayerSettingsPapaya : PlantLayerSettings
{
public PlantLayerSettingsPapaya() : base()
{
this.Name = "Papaya";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Papaya"), 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 = "Papaya";
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 Papaya : PlantEntity
{
public Papaya(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Papaya() { }
static PlantSpecies species;
public partial class PapayaSpecies : PlantSpecies
{
public PapayaSpecies() : base()
{
species = this;
this.InstanceType = typeof(Papaya);
// Info
this.Decorative = false;
this.Name = "Papaya";
this.DisplayName = Localizer.DoStr("Papaya");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0.5f;
this.PickableAtPercent = 0.8f;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PapayaItem), new Range(1, 6), 1),
new SpeciesResource(typeof(PapayaSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(PapayaBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.GenerationSpawnCountPerPoint = new Range(4, 5);
this.GenerationSpawnPointMultiplier = 0.1f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable, Chopable]
public partial class PapayaBlock :
InteractablePlantBlock { }
}

View file

@ -1,108 +0,0 @@
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 PlantLayerSettingsPeatMoss : PlantLayerSettings
{
public PlantLayerSettingsPeatMoss() : base()
{
this.Name = "PeatMoss";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Peat Moss"), 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 = "Peat Moss";
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 PeatMoss : PlantEntity
{
public PeatMoss(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public PeatMoss() { }
static PlantSpecies species;
public partial class PeatMossSpecies : PlantSpecies
{
public PeatMossSpecies() : base()
{
species = this;
this.InstanceType = typeof(PeatMoss);
// Info
this.Decorative = false;
this.Name = "PeatMoss";
this.DisplayName = Localizer.DoStr("Peat Moss");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(PeatMossBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.BlanketSpawnPercent = 0.6f;
this.IdealTemperatureRange = new Range(0.17f, 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.12f, 0.3f);
this.MoistureExtremes = new Range(0.2f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class PeatMossBlock :
PlantBlock { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsPineapple : PlantLayerSettings
{
public PlantLayerSettingsPineapple() : base()
{
this.Name = "Pineapple";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Pineapple"), 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 = "Pineapple";
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 Pineapple : PlantEntity
{
public Pineapple(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Pineapple() { }
static PlantSpecies species;
public partial class PineappleSpecies : PlantSpecies
{
public PineappleSpecies() : base()
{
species = this;
this.InstanceType = typeof(Pineapple);
// Info
this.Decorative = false;
this.Name = "Pineapple";
this.DisplayName = Localizer.DoStr("Pineapple");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0.5f;
this.PickableAtPercent = 0.8f;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PineappleItem), new Range(1, 3), 1),
new SpeciesResource(typeof(PineappleSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(PineappleBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.8f)]
public partial class PineappleBlock :
InteractablePlantBlock { }
}

View file

@ -1,113 +0,0 @@
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 PlantLayerSettingsPricklyPear : PlantLayerSettings
{
public PlantLayerSettingsPricklyPear() : base()
{
this.Name = "PricklyPear";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Prickly Pear"), 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 = "Prickly Pear";
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 PricklyPear : PlantEntity
{
public PricklyPear(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public PricklyPear() { }
static PlantSpecies species;
public partial class PricklyPearSpecies : PlantSpecies
{
public PricklyPearSpecies() : base()
{
species = this;
this.InstanceType = typeof(PricklyPear);
// Info
this.Decorative = false;
this.Name = "PricklyPear";
this.DisplayName = Localizer.DoStr("Prickly Pear");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0.5f;
this.PickableAtPercent = 0.8f;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PricklyPearFruitItem), new Range(1, 4), 1),
new SpeciesResource(typeof(PricklyPearSeedItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(PricklyPearBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.5f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.3f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 4.5f });
this.GenerationSpawnCountPerPoint = new Range(2, 5);
this.GenerationSpawnPointMultiplier = 0.1f;
this.IdealTemperatureRange = new Range(0.72f, 0.85f);
this.IdealMoistureRange = new Range(0.25f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.7f, 1);
this.MoistureExtremes = new Range(0, 0.35f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[MoveEfficiency(0.625f)]
public partial class PricklyPearBlock :
InteractablePlantBlock { }
}

View file

@ -1,109 +0,0 @@
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 PlantLayerSettingsPumpkin : PlantLayerSettings
{
public PlantLayerSettingsPumpkin() : base()
{
this.Name = "Pumpkin";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Pumpkin"), 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 = "Pumpkin";
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 Pumpkin : PlantEntity
{
public Pumpkin(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Pumpkin() { }
static PlantSpecies species;
public partial class PumpkinSpecies : PlantSpecies
{
public PumpkinSpecies() : base()
{
species = this;
this.InstanceType = typeof(Pumpkin);
// Info
this.Decorative = false;
this.Name = "Pumpkin";
this.DisplayName = Localizer.DoStr("Pumpkin");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 8;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PumpkinItem), new Range(1, 4), 1),
new SpeciesResource(typeof(PumpkinSeedItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(PumpkinBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.52f, 0.55f);
this.IdealMoistureRange = new Range(0.32f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[MoveEfficiency(0.8f)]
public partial class PumpkinBlock :
InteractablePlantBlock { }
}

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "Redwood"; this.Name = "Redwood";
this.DisplayName = Localizer.DoStr("Redwood"); this.DisplayName = Localizer.DoStr("Redwood");
// Lifetime // Lifetime
this.MaturityAgeDays = 6; this.MaturityAgeDays = 2;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -1,108 +0,0 @@
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 PlantLayerSettingsRice : PlantLayerSettings
{
public PlantLayerSettingsRice() : base()
{
this.Name = "Rice";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Rice"), 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 = "Rice";
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 Rice : PlantEntity
{
public Rice(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Rice() { }
static PlantSpecies species;
public partial class RiceSpecies : PlantSpecies
{
public RiceSpecies() : base()
{
species = this;
this.InstanceType = typeof(Rice);
// Info
this.Decorative = false;
this.Name = "Rice";
this.DisplayName = Localizer.DoStr("Rice");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(RiceItem), new Range(1, 9), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(RiceBlock);
// 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.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3.6f });
this.IdealTemperatureRange = new Range(0.47f, 0.49f);
this.IdealMoistureRange = new Range(0.32f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class RiceBlock :
InteractablePlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsSagebrush : PlantLayerSettings
{
public PlantLayerSettingsSagebrush() : base()
{
this.Name = "Sagebrush";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Sagebrush"), 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 = "Sagebrush";
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 Sagebrush : PlantEntity
{
public Sagebrush(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Sagebrush() { }
static PlantSpecies species;
public partial class SagebrushSpecies : PlantSpecies
{
public SagebrushSpecies() : base()
{
species = this;
this.InstanceType = typeof(Sagebrush);
// Info
this.Decorative = false;
this.Name = "Sagebrush";
this.DisplayName = Localizer.DoStr("Sagebrush");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2.5f;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 4), 1),
new SpeciesResource(typeof(SagebrushSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(SagebrushBlock);
// 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.3f, MaxResourceContent = 0.15f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3.5f });
this.IdealTemperatureRange = new Range(0.85f, 0.95f);
this.IdealMoistureRange = new Range(0.1f, 0.2f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.7f, 1);
this.MoistureExtremes = new Range(0, 0.38f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class SagebrushBlock :
PlantBlock { }
}

View file

@ -63,7 +63,7 @@ namespace Eco.Mods.Organisms
this.Name = "SaguaroCactus"; this.Name = "SaguaroCactus";
this.DisplayName = Localizer.DoStr("Saguaro Cactus"); this.DisplayName = Localizer.DoStr("Saguaro Cactus");
// Lifetime // Lifetime
this.MaturityAgeDays = 4; this.MaturityAgeDays = 1.5f;
// Generation // Generation
// Food // Food
this.CalorieValue = 12; this.CalorieValue = 12;

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsSalal : PlantLayerSettings
{
public PlantLayerSettingsSalal() : base()
{
this.Name = "Salal";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Salal"), 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 = "Salal";
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 Salal : PlantEntity
{
public Salal(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Salal() { }
static PlantSpecies species;
public partial class SalalSpecies : PlantSpecies
{
public SalalSpecies() : base()
{
species = this;
this.InstanceType = typeof(Salal);
// Info
this.Decorative = false;
this.Name = "Salal";
this.DisplayName = Localizer.DoStr("Salal");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 0.5f;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.RequireHarvestable = false;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 4), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(SalalBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.08f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.05f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.05f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.05f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.BlanketSpawnPercent = 0.4f;
this.IdealTemperatureRange = new Range(0.22f, 0.78f);
this.IdealMoistureRange = new Range(0.52f, 0.58f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.19f, 0.81f);
this.MoistureExtremes = new Range(0.48f, 0.62f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class SalalBlock :
PlantBlock { }
}

View file

@ -1,110 +0,0 @@
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 PlantLayerSettingsSaxifrage : PlantLayerSettings
{
public PlantLayerSettingsSaxifrage() : base()
{
this.Name = "Saxifrage";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Saxifrage"), 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 = "Saxifrage";
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 Saxifrage : PlantEntity
{
public Saxifrage(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Saxifrage() { }
static PlantSpecies species;
public partial class SaxifrageSpecies : PlantSpecies
{
public SaxifrageSpecies() : base()
{
species = this;
this.InstanceType = typeof(Saxifrage);
// Info
this.Decorative = false;
this.Name = "Saxifrage";
this.DisplayName = Localizer.DoStr("Saxifrage");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 4), 1),
new SpeciesResource(typeof(SaxifrageSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(SaxifrageBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// 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.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2 });
this.BlanketSpawnPercent = 0.3f;
this.IdealTemperatureRange = new Range(0.18f, 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.15f, 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 SaxifrageBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsSeagrass : PlantLayerSettings
{
public PlantLayerSettingsSeagrass() : base()
{
this.Name = "Seagrass";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Seagrass"), 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 = "Seagrass";
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 Seagrass : PlantEntity
{
public Seagrass(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Seagrass() { }
static PlantSpecies species;
public partial class SeagrassSpecies : PlantSpecies
{
public SeagrassSpecies() : base()
{
species = this;
this.InstanceType = typeof(Seagrass);
// Info
this.Decorative = false;
this.Name = "Seagrass";
this.DisplayName = Localizer.DoStr("Seagrass");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
this.Water = true;
// Food
this.CalorieValue = 3;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 4), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(SeagrassBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// 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.05f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "UnderwaterFertileGround", ConsumedCapacityPerPop = 4 });
this.BlanketSpawnPercent = 0.5f;
this.IdealTemperatureRange = new Range(0.5f, 0.9f);
this.IdealMoistureRange = new Range(0.1f, 0.9f);
this.IdealWaterRange = new Range(0.5f, 1);
this.WaterExtremes = new Range(0.4f, 1.1f);
this.TemperatureExtremes = new Range(0.38f, 1);
this.MoistureExtremes = new Range(0, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[UnderWater, Reapable]
[MoveEfficiency(0.5f)]
public partial class SeagrassBlock :
PlantBlock { }
}

View file

@ -1,102 +0,0 @@
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 PlantLayerSettingsSpruce : PlantLayerSettings
{
public PlantLayerSettingsSpruce() : base()
{
this.Name = "Spruce";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Spruce"), Localizer.DoStr("Population"));
this.InitMultiplier = 1;
this.SyncToClient = false;
this.Range = new Range(0f, 1f);
this.RenderRange = new Range(0f, 0.05f);
this.MinColor = new Color(1f, 1f, 1f);
this.MaxColor = new Color(0f, 1f, 0f);
this.Percent = false;
this.SumRelevant = true;
this.Unit = "Spruce";
this.VoxelsPerEntry = 20;
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 Spruce : TreeEntity
{
public Spruce(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Spruce() { }
static TreeSpecies species;
public partial class SpruceSpecies : TreeSpecies
{
public SpruceSpecies() : base()
{
species = this;
this.InstanceType = typeof(Spruce);
// Info
this.Decorative = false;
this.Name = "Spruce";
this.DisplayName = Localizer.DoStr("Spruce");
// Lifetime
this.MaturityAgeDays = 5.5f;
// Generation
// Food
this.CalorieValue = 12;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(LogItem), new Range(0, 50), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
// Climate
this.ReleasesCO2ppmPerDay = -0.002f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "CanopySpace", ConsumedCapacityPerPop = 26 });
this.BlanketSpawnPercent = 0.5f;
this.IdealTemperatureRange = new Range(0.23f, 0.35f);
this.IdealMoistureRange = new Range(0.45f, 0.55f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.19f, 0.4f);
this.MoistureExtremes = new Range(0.23f, 0.61f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 20;
}
}
}
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsSunflower : PlantLayerSettings
{
public PlantLayerSettingsSunflower() : base()
{
this.Name = "Sunflower";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Sunflower"), 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 = "Sunflower";
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 Sunflower : PlantEntity
{
public Sunflower(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Sunflower() { }
static PlantSpecies species;
public partial class SunflowerSpecies : PlantSpecies
{
public SunflowerSpecies() : base()
{
species = this;
this.InstanceType = typeof(Sunflower);
// Info
this.Decorative = false;
this.Name = "Sunflower";
this.DisplayName = Localizer.DoStr("Sunflower");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 3;
// Resources
this.PostHarvestingGrowth = 0;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 5), 1),
new SpeciesResource(typeof(SunflowerSeedItem), new Range(2, 4), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(SunflowerBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.4f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.4f, MaxResourceContent = 0.4f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.45f, 0.48f);
this.IdealMoistureRange = new Range(0.32f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.3333f)]
public partial class SunflowerBlock :
PlantBlock { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsSwitchgrass : PlantLayerSettings
{
public PlantLayerSettingsSwitchgrass() : base()
{
this.Name = "Switchgrass";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Switchgrass"), 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 = "Switchgrass";
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 Switchgrass : PlantEntity
{
public Switchgrass(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Switchgrass() { }
static PlantSpecies species;
public partial class SwitchgrassSpecies : PlantSpecies
{
public SwitchgrassSpecies() : base()
{
species = this;
this.InstanceType = typeof(Switchgrass);
// Info
this.Decorative = false;
this.Name = "Switchgrass";
this.DisplayName = Localizer.DoStr("Switchgrass");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 0.5f;
// Resources
this.PostHarvestingGrowth = 0.2f;
this.ScythingKills = false;
this.PickableAtPercent = 0;
this.RequireHarvestable = false;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(SwitchgrassBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Nitrogen", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.02f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.BlanketSpawnPercent = 0.35f;
this.IdealTemperatureRange = new Range(0.42f, 0.62f);
this.IdealMoistureRange = new Range(0.32f, 0.48f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.38f, 0.62f);
this.MoistureExtremes = new Range(0.28f, 0.52f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.8f)]
public partial class SwitchgrassBlock :
PlantBlock { }
}

View file

@ -1,112 +0,0 @@
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 PlantLayerSettingsTaro : PlantLayerSettings
{
public PlantLayerSettingsTaro() : base()
{
this.Name = "Taro";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Taro"), 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 = "Taro";
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 Taro : PlantEntity
{
public Taro(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Taro() { }
static PlantSpecies species;
public partial class TaroSpecies : PlantSpecies
{
public TaroSpecies() : base()
{
species = this;
this.InstanceType = typeof(Taro);
// Info
this.Decorative = false;
this.Name = "Taro";
this.DisplayName = Localizer.DoStr("Taro");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 4;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(TaroRootItem), new Range(1, 4), 1),
new SpeciesResource(typeof(TaroSeedItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(TaroBlock);
// 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.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.02f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.04f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.3f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 2.5f });
this.BlanketSpawnPercent = 0.2f;
this.IdealTemperatureRange = new Range(0.65f, 0.75f);
this.IdealMoistureRange = new Range(0.75f, 0.95f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.6f, 0.8f);
this.MoistureExtremes = new Range(0.7f, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Diggable]
[MoveEfficiency(0.3333f)]
public partial class TaroBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsTomatoes : PlantLayerSettings
{
public PlantLayerSettingsTomatoes() : base()
{
this.Name = "Tomatoes";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Tomatoes"), 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 = "Tomatoes";
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 Tomatoes : PlantEntity
{
public Tomatoes(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Tomatoes() { }
static PlantSpecies species;
public partial class TomatoesSpecies : PlantSpecies
{
public TomatoesSpecies() : base()
{
species = this;
this.InstanceType = typeof(Tomatoes);
// Info
this.Decorative = false;
this.Name = "Tomatoes";
this.DisplayName = Localizer.DoStr("Tomatoes");
this.IsConsideredNearbyFoodDuringSpawnCheck = true;
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0.5f;
this.PickableAtPercent = 0.8f;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(TomatoItem), new Range(1, 5), 1),
new SpeciesResource(typeof(TomatoSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(TomatoesBlock);
// 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.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3.5f });
this.IdealTemperatureRange = new Range(0.7f, 0.75f);
this.IdealMoistureRange = new Range(0.42f, 0.45f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[MoveEfficiency(0.6666f)]
public partial class TomatoesBlock :
InteractablePlantBlock { }
}

View file

@ -1,108 +0,0 @@
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 PlantLayerSettingsTrillium : PlantLayerSettings
{
public PlantLayerSettingsTrillium() : base()
{
this.Name = "Trillium";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Trillium"), 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 = "Trillium";
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 Trillium : PlantEntity
{
public Trillium(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Trillium() { }
static PlantSpecies species;
public partial class TrilliumSpecies : PlantSpecies
{
public TrilliumSpecies() : base()
{
species = this;
this.InstanceType = typeof(Trillium);
// Info
this.Decorative = false;
this.Name = "Trillium";
this.DisplayName = Localizer.DoStr("Trillium");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1),
new SpeciesResource(typeof(TrilliumSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(TrilliumBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.42f, 0.55f);
this.IdealMoistureRange = new Range(0.48f, 0.53f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.45f, 0.65f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
public partial class TrilliumBlock :
PlantBlock { }
}

View file

@ -1,107 +0,0 @@
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 PlantLayerSettingsUrchin : PlantLayerSettings
{
public PlantLayerSettingsUrchin() : base()
{
this.Name = "Urchin";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Urchin"), 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 = "Urchin";
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 Urchin : PlantEntity
{
public Urchin(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Urchin() { }
static PlantSpecies species;
public partial class UrchinSpecies : PlantSpecies
{
public UrchinSpecies() : base()
{
species = this;
this.InstanceType = typeof(Urchin);
// Info
this.Decorative = false;
this.Name = "Urchin";
this.DisplayName = Localizer.DoStr("Urchin");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
this.Water = true;
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(UrchinItem), new Range(1, 3), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(UrchinBlock);
// Climate
this.ReleasesCO2ppmPerDay = 0;
// 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.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "UnderwaterFertileGround", ConsumedCapacityPerPop = 6 });
this.BlanketSpawnPercent = 0.2f;
this.IdealTemperatureRange = new Range(0.5f, 0.9f);
this.IdealMoistureRange = new Range(0.1f, 0.9f);
this.IdealWaterRange = new Range(0.5f, 1);
this.WaterExtremes = new Range(0.4f, 1.1f);
this.TemperatureExtremes = new Range(0.38f, 1);
this.MoistureExtremes = new Range(0, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[UnderWater]
public partial class UrchinBlock :
InteractablePlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsWaterweed : PlantLayerSettings
{
public PlantLayerSettingsWaterweed() : base()
{
this.Name = "Waterweed";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Waterweed"), 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 = "Waterweed";
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 Waterweed : PlantEntity
{
public Waterweed(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Waterweed() { }
static PlantSpecies species;
public partial class WaterweedSpecies : PlantSpecies
{
public WaterweedSpecies() : base()
{
species = this;
this.InstanceType = typeof(Waterweed);
// Info
this.Decorative = false;
this.Name = "Waterweed";
this.DisplayName = Localizer.DoStr("Waterweed");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
this.Water = true;
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 4), 1)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(WaterweedBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.000005f;
// 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.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.01f, MaxResourceContent = 0.01f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "UnderwaterFertileGround", ConsumedCapacityPerPop = 6 });
this.BlanketSpawnPercent = 0.7f;
this.IdealTemperatureRange = new Range(0.5f, 0.9f);
this.IdealMoistureRange = new Range(0.1f, 0.9f);
this.IdealWaterRange = new Range(0, 0.03f);
this.WaterExtremes = new Range(0, 0.05f);
this.TemperatureExtremes = new Range(0.38f, 1);
this.MoistureExtremes = new Range(0, 1);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[UnderWater, Reapable]
[MoveEfficiency(0.5f)]
public partial class WaterweedBlock :
PlantBlock { }
}

View file

@ -1,111 +0,0 @@
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 PlantLayerSettingsWheat : PlantLayerSettings
{
public PlantLayerSettingsWheat() : base()
{
this.Name = "Wheat";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("Wheat"), 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 = "Wheat";
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 Wheat : PlantEntity
{
public Wheat(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public Wheat() { }
static PlantSpecies species;
public partial class WheatSpecies : PlantSpecies
{
public WheatSpecies() : base()
{
species = this;
this.InstanceType = typeof(Wheat);
// Info
this.Decorative = false;
this.Name = "Wheat";
this.DisplayName = Localizer.DoStr("Wheat");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 5;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(WheatItem), new Range(1, 6), 1),
new SpeciesResource(typeof(WheatSeedItem), new Range(1, 2), 0.2f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(WheatBlock);
// 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.3f, MaxResourceContent = 0.3f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.2f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Potassium", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.1f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.15f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.IdealTemperatureRange = new Range(0.55f, 0.58f);
this.IdealMoistureRange = new Range(0.32f, 0.35f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.4f, 0.8f);
this.MoistureExtremes = new Range(0.3f, 0.5f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.5f)]
public partial class WheatBlock :
PlantBlock { }
}

View file

@ -1,110 +0,0 @@
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 PlantLayerSettingsWhiteBursage : PlantLayerSettings
{
public PlantLayerSettingsWhiteBursage() : base()
{
this.Name = "WhiteBursage";
this.DisplayName = string.Format("{0} {1}", Localizer.DoStr("White Bursage"), 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 = "White Bursage";
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 WhiteBursage : PlantEntity
{
public WhiteBursage(WorldPosition3i mapPos, PlantPack plantPack) : base(species, mapPos, plantPack) { }
public WhiteBursage() { }
static PlantSpecies species;
public partial class WhiteBursageSpecies : PlantSpecies
{
public WhiteBursageSpecies() : base()
{
species = this;
this.InstanceType = typeof(WhiteBursage);
// Info
this.Decorative = false;
this.Name = "WhiteBursage";
this.DisplayName = Localizer.DoStr("White Bursage");
// Lifetime
this.MaturityAgeDays = 0.8f;
// Generation
// Food
this.CalorieValue = 2;
// Resources
this.PostHarvestingGrowth = 0;
this.PickableAtPercent = 0;
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(PlantFibersItem), new Range(1, 3), 1),
new SpeciesResource(typeof(WhiteBursageSeedItem), new Range(1, 2), 0.1f)
};
this.ResourceBonusAtGrowth = 0.9f;
// Visuals
this.BlockType = typeof(WhiteBursageBlock);
// Climate
this.ReleasesCO2ppmPerDay = -0.00001f;
// WorldLayers
this.MaxGrowthRate = 0.01f;
this.MaxDeathRate = 0.005f;
this.SpreadRate = 0.001f;
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "Phosphorus", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.2f });
this.ResourceConstraints.Add(new ResourceConstraint() { LayerName = "SoilMoisture", HalfSpeedConcentration = 0.1f, MaxResourceContent = 0.05f });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "FertileGround", ConsumedCapacityPerPop = 1 });
this.CapacityConstraints.Add(new CapacityConstraint() { CapacityLayerName = "ShrubSpace", ConsumedCapacityPerPop = 3 });
this.BlanketSpawnPercent = 0.6f;
this.IdealTemperatureRange = new Range(0.75f, 0.85f);
this.IdealMoistureRange = new Range(0.2f, 0.32f);
this.IdealWaterRange = new Range(0, 0.1f);
this.WaterExtremes = new Range(0, 0.2f);
this.TemperatureExtremes = new Range(0.65f, 0.9f);
this.MoistureExtremes = new Range(0.12f, 0.38f);
this.MaxPollutionDensity = 0.7f;
this.PollutionDensityTolerance = 0.1f;
this.VoxelsPerEntry = 5;
}
}
}
[Serialized]
[Reapable]
[MoveEfficiency(0.7f)]
public partial class WhiteBursageBlock :
PlantBlock { }
}

View file

@ -1,57 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class BighornSheep : AnimalEntity
{
public BighornSheep(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class BighornSheepSpecies : AnimalSpecies
{
public BighornSheepSpecies() : base()
{
species = this;
this.InstanceType = typeof(BighornSheep);
// Info
this.Name = "BighornSheep";
this.DisplayName = Localizer.DoStr("BighornSheep");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(DwarfWillow), typeof(PricklyPear), typeof(Agave), typeof(Sagebrush)};
this.CalorieValue = 100f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(BighornCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(HerdAnimalBrain);
this.WanderingSpeed = 1f;
this.Speed = 5.5f;
this.Health = 3.2f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.HeadDistance = 0.9f;
this.TimeLayToStand = 2.5f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,65 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.Organisms.Behaviors;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Bison : AnimalEntity
{
public Bison(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class BisonSpecies : AnimalSpecies
{
public BisonSpecies() : base()
{
species = this;
this.InstanceType = typeof(Bison);
// Info
this.Name = "Bison";
this.DisplayName = Localizer.DoStr("Bison");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() { typeof(CommonGrass), typeof(Bunchgrass), typeof(Wheat), typeof(BigBluestem), typeof(Switchgrass) };
this.CalorieValue = 500f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(BisonCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(HerdAnimalBrain);
this.WanderingSpeed = 0.8f;
this.Speed = 4f;
this.Health = 7f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 0.6f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.HeadDistance = 1f;
this.TimeLayToStand = 4f;
this.TimeStandToLay = 3f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
public override void FleeFrom(Vector3 position)
{
base.FleeFrom(position);
GroupBehaviors.SyncFleePosition(this);
}
}
}

View file

@ -1,64 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.Organisms.Behaviors;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Deer : AnimalEntity
{
public Deer(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class DeerSpecies : AnimalSpecies
{
public DeerSpecies() : base()
{
species = this;
this.InstanceType = typeof(Deer);
// Info
this.Name = "Deer";
this.DisplayName = Localizer.DoStr("Deer");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Huckleberry), typeof(Fern), typeof(Beans), typeof(Salal), typeof(Corn), typeof(Bunchgrass), typeof(Wheat)};
this.CalorieValue = 200f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(DeerCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(LandAnimalBrain);
this.WanderingSpeed = 1f;
this.Speed = 5.5f;
this.Health = 3.2f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.HeadDistance = 1f;
this.TimeLayToStand = 2.5f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
public override void FleeFrom(Vector3 position)
{
base.FleeFrom(position);
GroupBehaviors.SyncFleePosition(this);
}
}
}

View file

@ -1,57 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Elk : AnimalEntity
{
public Elk(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class ElkSpecies : AnimalSpecies
{
public ElkSpecies() : base()
{
species = this;
this.InstanceType = typeof(Elk);
// Info
this.Name = "Elk";
this.DisplayName = Localizer.DoStr("Elk");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Huckleberry), typeof(Fern), typeof(Beans), typeof(Salal)};
this.CalorieValue = 200f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(ElkCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(LandAnimalBrain);
this.WanderingSpeed = 1f;
this.Speed = 5.5f;
this.Health = 3.2f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.HeadDistance = 1f;
this.TimeLayToStand = 2.5f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,56 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Fox : AnimalEntity
{
public Fox(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class FoxSpecies : AnimalSpecies
{
public FoxSpecies() : base()
{
species = this;
this.InstanceType = typeof(Fox);
// Info
this.Name = "Fox";
this.DisplayName = Localizer.DoStr("Fox");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Hare), typeof(Turkey)};
this.CalorieValue = 100f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(FoxCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(LandPredatorBrain);
this.WanderingSpeed = 1.5f;
this.Speed = 5f;
this.Health = 2f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 0.9f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.TimeLayToStand = 2.5f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,55 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Hare : AnimalEntity
{
public Hare(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class HareSpecies : AnimalSpecies
{
public HareSpecies() : base()
{
species = this;
this.InstanceType = typeof(Hare);
// Info
this.Name = "Hare";
this.DisplayName = Localizer.DoStr("Hare");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Camas), typeof(Wheat), typeof(Bunchgrass), typeof(Sagebrush), typeof(Corn), typeof(Huckleberry), typeof(BigBluestem)};
this.CalorieValue = 50f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(HareCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(HerdAnimalBrain);
this.WanderingSpeed = 1f;
this.Speed = 5f;
this.Health = 1f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 0.8f;
this.FleePlayers = true;
this.AttackRange = 1f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,64 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.Organisms.Behaviors;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class MountainGoat : AnimalEntity
{
public MountainGoat(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class MountainGoatSpecies : AnimalSpecies
{
public MountainGoatSpecies() : base()
{
species = this;
this.InstanceType = typeof(MountainGoat);
// Info
this.Name = "MountainGoat";
this.DisplayName = Localizer.DoStr("MountainGoat");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(PeatMoss), typeof(Saxifrage), typeof(Lupine), typeof(Fireweed), typeof(DwarfWillow), typeof(ArcticWillow)};
this.CalorieValue = 100f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(MountainGoatCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(HerdAnimalBrain);
this.WanderingSpeed = 1.2f;
this.Speed = 5.5f;
this.Health = 3.2f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.HeadDistance = 0.75f;
this.TimeLayToStand = 2.5f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
public override void FleeFrom(Vector3 position)
{
base.FleeFrom(position);
GroupBehaviors.SyncFleePosition(this);
}
}
}

View file

@ -1,140 +0,0 @@
namespace Eco.Mods.Organisms
{
using System;
using System.Collections.Generic;
using Eco.Mods.Organisms.Behaviors;
using Eco.Gameplay.Animals;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Shared.States;
using Eco.Shared.Utils;
using Eco.Simulation.Agents;
using Eco.Simulation.Agents.AI;
using Eco.Simulation.Types;
using Eco.Simulation.WorldLayers;
using Eco.Mods.TechTree;
public class Otter : AnimalEntity
{
public Otter(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class OtterSpecies : AnimalSpecies
{
public OtterSpecies() : base()
{
species = this;
this.InstanceType = typeof(Otter);
// Info
this.Name = "Otter";
this.DisplayName = Localizer.DoStr("Otter");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Clam), typeof(Urchin), typeof(Tuna), typeof(Salmon), typeof(Trout)};
this.CalorieValue = 50f;
// Movement
this.Flying = false;
this.Swimming = true;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(OtterCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(Brain<Otter>);
this.WanderingSpeed = 1f;
this.Speed = 2f;
this.Health = 1f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
// Otters can spawn on land or water
public override bool IsValidSpawnPosition(Vector3i pos) { return true; }
}
// Otter specific behavior
private bool floating;
private class BT : FunctionalBehaviorTree<Otter> { }
public static readonly Func<Otter, BTStatus> OtterTreeRoot;
public static readonly Func<Otter, BTStatus> OtterLandTree;
public static readonly Func<Otter, BTStatus> OtterFloatingTree;
public static readonly Func<Otter, BTStatus> OtterDivingTree;
static Otter()
{
const float MinIdleTime = 3f;
const float MaxIdleTime = 10f;
const float MinFloatIdleTime = 10f;
const float MaxFloatIdleTime = 20f;
const float ChanceToIdle = 0.3f;
const float ChanceToSurface = 0.3f;
const float ChanceToDive = 0.1f;
const float TimeToStopFloating = 2f;
const float DiveAlertness = 200;
const float MaxHeightAboveSeaLevel = 5;
OtterLandTree =
BT.If(x => !World.World.IsUnderwater(x.Position.WorldPosition3i),
BT.Selector(
MovementBehaviors.AmphibiousFlee,
BT.If(x => RandomUtil.Chance(ChanceToIdle),
Brain.PlayAnimation(AnimalAnimationState.Idle, _ => RandomUtil.Range(MinIdleTime, MaxIdleTime))),
BT.If(x => x.Position.y > WorldLayerManager.ClimateSim.State.SeaLevel + MaxHeightAboveSeaLevel,
x => MovementBehaviors.RouteToWater(x, x.Species.WanderingSpeed, AnimalAnimationState.Wander)),
BT.If(MovementBehaviors.ShouldReturnHome,
MovementBehaviors.AmphibiousWanderHome),
MovementBehaviors.AmphibiousWander));
OtterFloatingTree =
BT.If(x => x.floating,
BT.Selector(
BT.If(x => x.AnimationState == AnimalAnimationState.FloatingIdle,
// floating otters need time to flip back over before doing other things
Brain.PlayFixedTimeAnimation(AnimalAnimationState.SurfaceSwimming, TimeToStopFloating)),
BT.If(x => x.Alertness > DiveAlertness,
// dive when scared
BT.Success(x => x.floating = false),
BT.Selector(MovementBehaviors.SwimFlee, MovementBehaviors.SwimWander)),
MovementBehaviors.AmphibiousFlee,
BT.If(x => RandomUtil.Chance(ChanceToDive),
BT.Success(x => x.floating = false),
MovementBehaviors.SwimWander),
BT.If(MovementBehaviors.ShouldReturnHome,
MovementBehaviors.AmphibiousWanderHome),
BT.If(x => RandomUtil.Chance(ChanceToIdle),
Brain.PlayAnimation(AnimalAnimationState.FloatingIdle, _ => RandomUtil.Range(MinFloatIdleTime, MaxFloatIdleTime))),
MovementBehaviors.AmphibiousWander));
OtterDivingTree =
BT.Selector(
MovementBehaviors.SwimFlee,
BT.If(MovementBehaviors.ShouldReturnHome,
BT.Success(x => x.floating = true),
MovementBehaviors.SwimWanderHomeSurface),
BT.If(x => x.Alertness < DiveAlertness && RandomUtil.Chance(ChanceToSurface),
BT.Success(x => x.floating = true),
MovementBehaviors.SwimWanderSurface),
BT.If(x => RandomUtil.Chance(1 - ChanceToIdle),
MovementBehaviors.SwimWander),
Brain.PlayAnimation(AnimalAnimationState.SwimmingIdle, _ => RandomUtil.Range(MinIdleTime, MaxIdleTime)));
OtterTreeRoot =
BT.Selector(
OtterLandTree,
// TODO: dive for food & eat on surface (need tummy eating animation)
OtterFloatingTree,
OtterDivingTree
);
Brain<Otter>.SharedBehavior = OtterTreeRoot;
}
}
}

View file

@ -1,55 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Salmon : AnimalEntity
{
public Salmon(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class SalmonSpecies : AnimalSpecies
{
public SalmonSpecies() : base()
{
species = this;
this.InstanceType = typeof(Salmon);
// Info
this.Name = "Salmon";
this.DisplayName = Localizer.DoStr("Salmon");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Waterweed)};
this.CalorieValue = 50f;
// Movement
this.Flying = false;
this.Swimming = true;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(SalmonItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(FishBrain);
this.WanderingSpeed = 1f;
this.Speed = 2f;
this.Health = 1f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,85 +0,0 @@
namespace Eco.Mods.Organisms
{
using System;
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Gameplay.Interactions;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Shared.Networking;
using Eco.Shared.States;
using Eco.Shared.Utils;
using Eco.Simulation.Agents;
using Eco.Simulation.Agents.AI;
using Eco.Simulation.Types;
public class Tortoise : AnimalEntity
{
public Tortoise(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class TortoiseSpecies : AnimalSpecies
{
public TortoiseSpecies() : base()
{
species = this;
this.InstanceType = typeof(Tortoise);
// Info
this.Name = "Tortoise";
this.DisplayName = Localizer.DoStr("Tortoise");
// Lifetime
this.MaturityAgeDays = 2f;
// Food
this.FoodSources = new List<System.Type>() { typeof(Sagebrush), typeof(CreosoteBush), typeof(PricklyPear), typeof(Agave) };
this.CalorieValue = 10f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(RawMeatItem), new Range(1f, 2f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(Brain<Tortoise>);
this.WanderingSpeed = 0.1f;
this.Speed = 0.2f;
this.Health = 1f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
// tortoise behavior
private class BT : FunctionalBehaviorTree<Tortoise> { }
public static readonly Func<Tortoise, BTStatus> TortoiseTreeRoot;
static Tortoise()
{
const float MinHidingTime = 5f;
const float MaxHidingTime = 10f;
TortoiseTreeRoot =
BT.Selector(
// Tortoise hide instead of fleeing, fixed time to block pointless flee interruptions
BT.If(x => x.Alertness > Animal.FleeThreshold,
Brain.PlayFixedTimeAnimation(AnimalAnimationState.Hiding, _ => RandomUtil.Range(MinHidingTime, MaxHidingTime))),
LandAnimalBrain.LandAnimalTreeRoot);
Brain<Tortoise>.SharedBehavior = TortoiseTreeRoot;
}
public override bool TryApplyDamage(INetObject damager, float damage, InteractionContext context, Type damageDealer = null)
{
// turtle power! (or uhh tortoise power!)
return base.TryApplyDamage(damager, this.AnimationState == AnimalAnimationState.Hiding ? damage / 4 : damage, context, damageDealer);
}
}
}

View file

@ -1,55 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Trout : AnimalEntity
{
public Trout(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class TroutSpecies : AnimalSpecies
{
public TroutSpecies() : base()
{
species = this;
this.InstanceType = typeof(Trout);
// Info
this.Name = "Trout";
this.DisplayName = Localizer.DoStr("Trout");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Waterweed)};
this.CalorieValue = 25f;
// Movement
this.Flying = false;
this.Swimming = true;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(TroutItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(FishBrain);
this.WanderingSpeed = 1f;
this.Speed = 2f;
this.Health = 1f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,55 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Tuna : AnimalEntity
{
public Tuna(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class TunaSpecies : AnimalSpecies
{
public TunaSpecies() : base()
{
species = this;
this.InstanceType = typeof(Tuna);
// Info
this.Name = "Tuna";
this.DisplayName = Localizer.DoStr("Tuna");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() { typeof(Kelp), typeof(Seagrass) };
this.CalorieValue = 100f;
// Movement
this.Flying = false;
this.Swimming = true;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(TunaItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(FishBrain);
this.WanderingSpeed = 1f;
this.Speed = 2f;
this.Health = 1f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 1f;
this.FleePlayers = true;
this.AttackRange = 1f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,56 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Types;
public class Turkey : AnimalEntity
{
public Turkey(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class TurkeySpecies : AnimalSpecies
{
public TurkeySpecies() : base()
{
species = this;
this.InstanceType = typeof(Turkey);
// Info
this.Name = "Turkey";
this.DisplayName = Localizer.DoStr("Turkey");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() { typeof(Bunchgrass), typeof(Camas) };
this.CalorieValue = 75f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(TurkeyCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(LandAnimalBrain);
this.WanderingSpeed = 1f;
this.Speed = 3.5f;
this.Health = 1.8f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 0.5f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.TimeLayToStand = 3.5f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
}
}

View file

@ -1,60 +0,0 @@
namespace Eco.Mods.Organisms
{
using System.Collections.Generic;
using Eco.Gameplay.Animals;
using Eco.Mods.TechTree;
using Eco.Shared.Localization;
using Eco.Shared.Math;
using Eco.Simulation.Agents;
using Eco.Simulation.Time;
using Eco.Simulation.Types;
public class Wolf : AnimalEntity
{
public Wolf(Animal parent, Vector3 pos, bool corpse = false) : base(parent, pos, species, corpse) { }
static AnimalSpecies species;
public class WolfSpecies : AnimalSpecies
{
public WolfSpecies() : base()
{
species = this;
this.InstanceType = typeof(Wolf);
// Info
this.Name = "Wolf";
this.DisplayName = Localizer.DoStr("Wolf");
// Lifetime
this.MaturityAgeDays = 1f;
// Food
this.FoodSources = new List<System.Type>() {typeof(Hare), typeof(Elk), typeof(MountainGoat), typeof(Deer)};
this.CalorieValue = 100f;
// Movement
this.Flying = false;
this.Swimming = false;
// Resources
this.ResourceList = new List<SpeciesResource>()
{
new SpeciesResource(typeof(WolfCarcassItem), new Range(1f, 1f)),
};
this.ResourceBonusAtGrowth = 0.9f;
// Behavior
this.BrainType = typeof(LandPredatorBrain);
this.WanderingSpeed = 0.7f;
this.Speed = 5.5f;
this.Health = 1.5f;
this.Damage = 1f;
this.DelayBetweenAttacksRangeSec = new Range(0.8f, 2.5f);
this.FearFactor = 0.5f;
this.FleePlayers = true;
this.AttackRange = 1f;
this.HeadDistance = 0.8f;
this.TimeLayToStand = 4f;
// Climate
this.ReleasesCO2ppmPerDay = 0f;
}
}
public override bool ShouldSleep { get { return !WorldTime.IsNight(); } }
}
}