Add a workaround for the legacy map editor.
This commit is contained in:
@@ -219,7 +219,7 @@ namespace OpenRA.Editor
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var info = Program.Rules.Actors[a];
|
var info = Program.Rules.Actors[a];
|
||||||
if (!info.Traits.Contains<RenderSimpleInfo>()) continue;
|
if (!info.Traits.Contains<ILegacyEditorRenderInfo>()) continue;
|
||||||
|
|
||||||
var etf = info.Traits.GetOrDefault<EditorTilesetFilterInfo>();
|
var etf = info.Traits.GetOrDefault<EditorTilesetFilterInfo>();
|
||||||
if (etf != null && etf.ExcludeTilesets != null
|
if (etf != null && etf.ExcludeTilesets != null
|
||||||
@@ -228,10 +228,10 @@ namespace OpenRA.Editor
|
|||||||
&& !etf.RequireTilesets.Contains(tileset.Id)) continue;
|
&& !etf.RequireTilesets.Contains(tileset.Id)) continue;
|
||||||
|
|
||||||
var templatePalette = shadowedPalette;
|
var templatePalette = shadowedPalette;
|
||||||
var rsi = info.Traits.GetOrDefault<RenderSimpleInfo>();
|
var rsi = info.Traits.GetOrDefault<ILegacyEditorRenderInfo>();
|
||||||
|
|
||||||
// exception for desert buildings
|
// exception for desert buildings
|
||||||
if (rsi != null && rsi.Palette != null && rsi.Palette.Contains("terrain"))
|
if (rsi != null && rsi.EditorPalette != null && rsi.EditorPalette.Contains("terrain"))
|
||||||
templatePalette = palette;
|
templatePalette = palette;
|
||||||
|
|
||||||
var template = RenderUtils.RenderActor(info, tileset, templatePalette);
|
var template = RenderUtils.RenderActor(info, tileset, templatePalette);
|
||||||
|
|||||||
@@ -47,8 +47,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
public static ActorTemplate RenderActor(ActorInfo info, TileSet tileset, IPalette p)
|
public static ActorTemplate RenderActor(ActorInfo info, TileSet tileset, IPalette p)
|
||||||
{
|
{
|
||||||
var image = RenderSprites.GetImage(info);
|
var image = info.Traits.Get<ILegacyEditorRenderInfo>().EditorImage(info);
|
||||||
|
|
||||||
using (var s = GlobalFileSystem.OpenWithExts(image, tileset.Extensions))
|
using (var s = GlobalFileSystem.OpenWithExts(image, tileset.Extensions))
|
||||||
{
|
{
|
||||||
var shp = new ShpReader(s);
|
var shp = new ShpReader(s);
|
||||||
|
|||||||
@@ -265,4 +265,10 @@ namespace OpenRA.Traits
|
|||||||
return a.TraitsImplementing<IDisable>().Any(d => d.Disabled);
|
return a.TraitsImplementing<IDisable>().Any(d => d.Disabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ILegacyEditorRenderInfo
|
||||||
|
{
|
||||||
|
string EditorPalette { get; }
|
||||||
|
string EditorImage(ActorInfo actor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ using OpenRA.Traits;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.RA.Render
|
namespace OpenRA.Mods.RA.Render
|
||||||
{
|
{
|
||||||
public class RenderSimpleInfo : RenderSpritesInfo, Requires<IBodyOrientationInfo>
|
public class RenderSimpleInfo : RenderSpritesInfo, ILegacyEditorRenderInfo, Requires<IBodyOrientationInfo>
|
||||||
{
|
{
|
||||||
public override object Create(ActorInitializer init) { return new RenderSimple(init.self); }
|
public override object Create(ActorInitializer init) { return new RenderSimple(init.self); }
|
||||||
|
|
||||||
@@ -26,6 +26,9 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
return anim.Render(WPos.Zero, WVec.Zero, 0, pr, Scale);
|
return anim.Render(WPos.Zero, WVec.Zero, 0, pr, Scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string EditorPalette { get { return Palette; } }
|
||||||
|
public string EditorImage(ActorInfo actor) { return RenderSimple.GetImage(actor); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RenderSimple : RenderSprites, IAutoSelectionSize
|
public class RenderSimple : RenderSprites, IAutoSelectionSize
|
||||||
|
|||||||
Reference in New Issue
Block a user