mirror of
https://old.git.ood.ovh/eco/server-config.git
synced 2025-04-28 22:28:51 +02:00
Nouvelle map
Change plant maturity
This commit is contained in:
parent
27919d7e28
commit
a06be0fc21
78 changed files with 15 additions and 6777 deletions
|
@ -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
|
||||||
}
|
}
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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 { }
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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(); } }
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue