terrain palette auto detection
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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<string> structures)
|
||||
void ImportStructures(IEnumerable<string> 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<PaletteFromCurrentTilesetInfo>();
|
||||
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");
|
||||
|
||||
Reference in New Issue
Block a user