diff --git a/OpenRA.Mods.Common/Traits/World/PaletteFromCurrentTileset.cs b/OpenRA.Mods.Common/Traits/World/PaletteFromCurrentTileset.cs index 7ae53e7c1e..e1e8ab34fb 100644 --- a/OpenRA.Mods.Common/Traits/World/PaletteFromCurrentTileset.cs +++ b/OpenRA.Mods.Common/Traits/World/PaletteFromCurrentTileset.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("Loads the palette specified in the tileset definition")] - class PaletteFromCurrentTilesetInfo : ITraitInfo + public class PaletteFromCurrentTilesetInfo : ITraitInfo { [FieldLoader.Require, PaletteDefinition] [Desc("internal palette name")] @@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Traits public object Create(ActorInitializer init) { return new PaletteFromCurrentTileset(init.World, this); } } - class PaletteFromCurrentTileset : ILoadsPalettes, IProvidesAssetBrowserPalettes + public class PaletteFromCurrentTileset : ILoadsPalettes, IProvidesAssetBrowserPalettes { readonly World world; readonly PaletteFromCurrentTilesetInfo info; diff --git a/OpenRA.Mods.TS/UtilityCommands/LegacyRulesImporter.cs b/OpenRA.Mods.TS/UtilityCommands/LegacyRulesImporter.cs index d46fd97771..17212db4f2 100644 --- a/OpenRA.Mods.TS/UtilityCommands/LegacyRulesImporter.cs +++ b/OpenRA.Mods.TS/UtilityCommands/LegacyRulesImporter.cs @@ -47,10 +47,10 @@ namespace OpenRA.Mods.TS.UtilityCommands var terrainObjects = rulesIni.GetSection("TerrainTypes").Select(b => b.Value).Distinct(); Console.WriteLine("# Terrain Objects"); Console.WriteLine(); - ImportStructures(terrainObjects); + ImportStructures(terrainObjects, true); } - void ImportStructures(IEnumerable structures) + void ImportStructures(IEnumerable structures, bool useTerrainPalette = false) { foreach (var building in structures) { @@ -143,9 +143,32 @@ namespace OpenRA.Mods.TS.UtilityCommands var buildup = artSection.GetValue("Buildup", string.Empty); if (!string.IsNullOrEmpty(buildup) && buildup != "none") Console.WriteLine("\tWithMakeAnimation:"); + + + var terrainPalette = artSection.GetValue("TerrainPalette", string.Empty); + if (!string.IsNullOrEmpty(terrainPalette)) + bool.TryParse(terrainPalette, out useTerrainPalette); + + var remapable = artSection.GetValue("Remapable", string.Empty); + if (!string.IsNullOrEmpty(remapable) && remapable == "yes") + useTerrainPalette = false; } + var isAnimated = rulesSection.GetValue("IsAnimated", string.Empty); + if (!string.IsNullOrEmpty(isAnimated) && isAnimated == "yes") + useTerrainPalette = false; + Console.WriteLine("\tRenderSprites:"); + if (useTerrainPalette) + { + if (Game.ModData.DefaultRules.Actors.ContainsKey("world")) + { + var terrainPaletteDefintion = Game.ModData.DefaultRules.Actors["world"].TraitInfos(); + if (terrainPaletteDefintion.Any()) + Console.WriteLine("\t\tPalette: " + terrainPaletteDefintion.Last().Name); + } + } + Console.WriteLine("\tWithSpriteBody:"); Console.WriteLine("\tAutoSelectionSize:"); Console.WriteLine("\tBodyOrientation:\n\t\tUseClassicPerspectiveFudge: False\n\t\tQuantizedFacings: 1");