Add a workaround for the legacy map editor.
This commit is contained in:
@@ -219,7 +219,7 @@ namespace OpenRA.Editor
|
||||
try
|
||||
{
|
||||
var info = Program.Rules.Actors[a];
|
||||
if (!info.Traits.Contains<RenderSimpleInfo>()) continue;
|
||||
if (!info.Traits.Contains<ILegacyEditorRenderInfo>()) continue;
|
||||
|
||||
var etf = info.Traits.GetOrDefault<EditorTilesetFilterInfo>();
|
||||
if (etf != null && etf.ExcludeTilesets != null
|
||||
@@ -228,10 +228,10 @@ namespace OpenRA.Editor
|
||||
&& !etf.RequireTilesets.Contains(tileset.Id)) continue;
|
||||
|
||||
var templatePalette = shadowedPalette;
|
||||
var rsi = info.Traits.GetOrDefault<RenderSimpleInfo>();
|
||||
var rsi = info.Traits.GetOrDefault<ILegacyEditorRenderInfo>();
|
||||
|
||||
// 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;
|
||||
|
||||
var template = RenderUtils.RenderActor(info, tileset, templatePalette);
|
||||
|
||||
@@ -47,8 +47,7 @@ namespace OpenRA.Editor
|
||||
|
||||
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))
|
||||
{
|
||||
var shp = new ShpReader(s);
|
||||
|
||||
@@ -265,4 +265,10 @@ namespace OpenRA.Traits
|
||||
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
|
||||
{
|
||||
public class RenderSimpleInfo : RenderSpritesInfo, Requires<IBodyOrientationInfo>
|
||||
public class RenderSimpleInfo : RenderSpritesInfo, ILegacyEditorRenderInfo, Requires<IBodyOrientationInfo>
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
public string EditorPalette { get { return Palette; } }
|
||||
public string EditorImage(ActorInfo actor) { return RenderSimple.GetImage(actor); }
|
||||
}
|
||||
|
||||
public class RenderSimple : RenderSprites, IAutoSelectionSize
|
||||
|
||||
Reference in New Issue
Block a user