Index: binaries/data/mods/public/art/actors/props/structures/britons/barracks_struct1.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/structures/britons/barracks_struct1.xml
+++ binaries/data/mods/public/art/actors/props/structures/britons/barracks_struct1.xml
@@ -5,12 +5,24 @@
props/brit_barracks_struct1.dae
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
player_trans_ao_parallax_spec.xml
Index: binaries/data/mods/public/art/actors/props/structures/celts/blacksmith_armorstand_wood.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/structures/celts/blacksmith_armorstand_wood.xml
+++ binaries/data/mods/public/art/actors/props/structures/celts/blacksmith_armorstand_wood.xml
@@ -11,5 +11,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
player_trans_parallax_spec.xml
Index: binaries/data/mods/public/art/actors/props/structures/celts/blacksmith_bucket_water.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/structures/celts/blacksmith_bucket_water.xml
+++ binaries/data/mods/public/art/actors/props/structures/celts/blacksmith_bucket_water.xml
@@ -5,9 +5,21 @@
props/celt_blacksmith_bucket_water.dae
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
player_water.xml
Index: binaries/data/mods/public/art/actors/props/structures/celts/special.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/structures/celts/special.xml
+++ binaries/data/mods/public/art/actors/props/structures/celts/special.xml
@@ -5,11 +5,23 @@
props/celt_sb_roof.dae
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
player_trans_parallax_spec.xml
Index: binaries/data/mods/public/art/actors/props/structures/gauls/farmstead_struct1.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/structures/gauls/farmstead_struct1.xml
+++ binaries/data/mods/public/art/actors/props/structures/gauls/farmstead_struct1.xml
@@ -5,12 +5,24 @@
props/gaul_farmstead_struct1.dae
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
player_trans_ao_parallax_spec.xml
Index: binaries/data/mods/public/art/actors/structures/carthaginians/embassy_celtic.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/carthaginians/embassy_celtic.xml
+++ binaries/data/mods/public/art/actors/structures/carthaginians/embassy_celtic.xml
@@ -17,6 +17,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/barracks.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/barracks.xml
+++ binaries/data/mods/public/art/actors/structures/celts/barracks.xml
@@ -20,6 +20,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/civic_centre.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/civic_centre.xml
+++ binaries/data/mods/public/art/actors/structures/celts/civic_centre.xml
@@ -18,6 +18,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/dock.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/dock.xml
+++ binaries/data/mods/public/art/actors/structures/celts/dock.xml
@@ -17,6 +17,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/farmstead.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/farmstead.xml
+++ binaries/data/mods/public/art/actors/structures/celts/farmstead.xml
@@ -11,14 +11,26 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/homestead.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/homestead.xml
+++ binaries/data/mods/public/art/actors/structures/celts/homestead.xml
@@ -20,6 +20,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/house.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/house.xml
+++ binaries/data/mods/public/art/actors/structures/celts/house.xml
@@ -25,12 +25,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/hut.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/hut.xml
+++ binaries/data/mods/public/art/actors/structures/celts/hut.xml
@@ -16,6 +16,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/kennel.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/kennel.xml
+++ binaries/data/mods/public/art/actors/structures/celts/kennel.xml
@@ -11,14 +11,26 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/market_newest.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/market_newest.xml
+++ binaries/data/mods/public/art/actors/structures/celts/market_newest.xml
@@ -12,13 +12,25 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/plot_corral.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/plot_corral.xml
+++ binaries/data/mods/public/art/actors/structures/celts/plot_corral.xml
@@ -19,6 +19,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/storehouse.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/storehouse.xml
+++ binaries/data/mods/public/art/actors/structures/celts/storehouse.xml
@@ -18,6 +18,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/celts/temple.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/celts/temple.xml
+++ binaries/data/mods/public/art/actors/structures/celts/temple.xml
@@ -18,11 +18,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/fndn_celt_dock.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/fndn_celt_dock.xml
+++ binaries/data/mods/public/art/actors/structures/fndn_celt_dock.xml
@@ -14,5 +14,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
no_trans_norm_spec.xml
Index: binaries/data/mods/public/art/actors/structures/gauls/civic_centre.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/gauls/civic_centre.xml
+++ binaries/data/mods/public/art/actors/structures/gauls/civic_centre.xml
@@ -19,6 +19,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/gauls/house.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/gauls/house.xml
+++ binaries/data/mods/public/art/actors/structures/gauls/house.xml
@@ -11,6 +11,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
structural/gaul_house_a.dae
Index: binaries/data/mods/public/art/actors/structures/gauls/market.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/gauls/market.xml
+++ binaries/data/mods/public/art/actors/structures/gauls/market.xml
@@ -19,6 +19,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/structures/gauls/scout_tower.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/gauls/scout_tower.xml
+++ binaries/data/mods/public/art/actors/structures/gauls/scout_tower.xml
@@ -34,6 +34,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/maps/skirmishes/alpine_valleys_2p.xml
===================================================================
--- binaries/data/mods/public/maps/skirmishes/alpine_valleys_2p.xml
+++ binaries/data/mods/public/maps/skirmishes/alpine_valleys_2p.xml
@@ -39,6 +39,7 @@
-
\ No newline at end of file
+
Index: binaries/data/mods/public/simulation/components/BiomeManager.js
===================================================================
--- binaries/data/mods/public/simulation/components/BiomeManager.js
+++ binaries/data/mods/public/simulation/components/BiomeManager.js
@@ -0,0 +1,43 @@
+/**
+ * A manager class for biomes.
+ * @class
+ * @constructor
+ */
+function BiomeManager() {}
+
+/**
+ * Defines the XML schema and help strings of the manaager.
+ * @memberof BiomeManager
+ */
+BiomeManager.prototype.Schema =
+ "";
+
+/**
+ * Initializes the current map's biome.
+ * @memberof BiomeManager
+ */
+BiomeManager.prototype.Init = function()
+{
+ this.biome = "";
+}
+
+/**
+ * Sets the current map's biome.
+ * @param {string} biome - The new biome.
+ * @memberof BiomeManager
+ */
+BiomeManager.prototype.SetBiome = function(biome)
+{
+ this.biome = biome;
+}
+
+/**
+ * Returns the current map's biome.
+ * @memberof BiomeManager
+ */
+BiomeManager.prototype.GetBiome = function()
+{
+ return this.biome;
+}
+
+Engine.RegisterSystemComponentType(IID_BiomeManager, "BiomeManager", BiomeManager);
Index: binaries/data/mods/public/simulation/components/BiomeReplacer.js
===================================================================
--- binaries/data/mods/public/simulation/components/BiomeReplacer.js
+++ binaries/data/mods/public/simulation/components/BiomeReplacer.js
@@ -0,0 +1,83 @@
+/**
+ * A manager class for biomes.
+ * @class
+ * @constructor
+ */
+function BiomeReplacer() {}
+
+/**
+ * Defines the XML schema and help strings of the component.
+ * @memberof BiomeReplacer
+ */
+BiomeReplacer.prototype.Schema = `
+ Defines the variants an entity can assume depending on a map biome.
+
+
+
+ generic/alpine
+ winter
+
+
+
+
+
+
+
+
+
+
+ tokens
+
+
+
+
+
+
+
+
+
+ `;
+
+/**
+ * Initializes the biome replacer.
+ * @memberof BiomeReplacer
+ */
+BiomeReplacer.prototype.Init = function()
+{
+
+}
+
+
+/**
+ * @param {{ "from": number, "to": number }} msg - Message containing the old new owner.
+ * @memberof BiomeReplacer
+ */
+BiomeReplacer.prototype.OnCreate = function(msg)
+{
+
+ const currentBiome = Engine.QueryInterface(SYSTEM_ENTITY, IID_BiomeManager)?.GetBiome();
+
+ if (!currentBiome)
+ return;
+
+ let cmpVisual = Engine.QueryInterface(this.entity, IID_Visual);
+
+ if (!cmpVisual)
+ return;
+
+ for (const variantName of Object.keys(this.template.Variants))
+ {
+ const variant = this.template.Variants[variantName];
+ if (!variant.AffectedBiomes || !variant.AffectedBiomes._string)
+ continue;
+
+ const affectedBiomes = variant.AffectedBiomes._string.split(" ");
+ if (affectedBiomes.indexOf(currentBiome) !== -1)
+ {
+ cmpVisual.SelectAnimation(variant.ActorVariant, false, 1.0);
+ return;
+ }
+ }
+};
+
+Engine.RegisterComponentType(IID_BiomeReplacer, "BiomeReplacer", BiomeReplacer);
Index: binaries/data/mods/public/simulation/components/interfaces/BiomeManager.js
===================================================================
--- binaries/data/mods/public/simulation/components/interfaces/BiomeManager.js
+++ binaries/data/mods/public/simulation/components/interfaces/BiomeManager.js
@@ -0,0 +1 @@
+Engine.RegisterInterface("BiomeManager");
Index: binaries/data/mods/public/simulation/components/interfaces/BiomeReplacer.js
===================================================================
--- binaries/data/mods/public/simulation/components/interfaces/BiomeReplacer.js
+++ binaries/data/mods/public/simulation/components/interfaces/BiomeReplacer.js
@@ -0,0 +1 @@
+Engine.RegisterInterface("BiomeReplacer");
Index: binaries/data/mods/public/simulation/helpers/InitGame.js
===================================================================
--- binaries/data/mods/public/simulation/helpers/InitGame.js
+++ binaries/data/mods/public/simulation/helpers/InitGame.js
@@ -41,6 +41,11 @@
cmpRangeManager.ExploreMap(i);
}
+ if (settings.Biome)
+ {
+ Engine.QueryInterface(SYSTEM_ENTITY, IID_BiomeManager)?.SetBiome(settings.Biome);
+ }
+
const cmpAIManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AIManager);
for (let i = 0; i < settings.PlayerData.length; ++i)
{
Index: binaries/data/mods/public/simulation/templates/special/filter/construction.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/special/filter/construction.xml
+++ binaries/data/mods/public/simulation/templates/special/filter/construction.xml
@@ -5,4 +5,5 @@
+
Index: binaries/data/mods/public/simulation/templates/special/filter/preview.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/special/filter/preview.xml
+++ binaries/data/mods/public/simulation/templates/special/filter/preview.xml
@@ -1,5 +1,6 @@
+
Index: binaries/data/mods/public/simulation/templates/structures/gaul/house.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/gaul/house.xml
+++ binaries/data/mods/public/simulation/templates/structures/gaul/house.xml
@@ -1,5 +1,13 @@
+
+
+
+ generic/alpine
+ winter
+
+
+
gaul
Tegia