Merge pull request #6029 from pchote/gametomods

Move *Renderables and Render* out of Game.
This commit is contained in:
Matthias Mailänder
2014-07-23 06:54:42 +02:00
34 changed files with 56 additions and 21 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -148,7 +148,6 @@
<Compile Include="Traits\RejectsOrders.cs" />
<Compile Include="Traits\Player\DeveloperMode.cs" />
<Compile Include="Traits\Player\PlayerResources.cs" />
<Compile Include="Traits\Render\RenderSimple.cs" />
<Compile Include="Traits\RevealsShroud.cs" />
<Compile Include="Traits\Selectable.cs" />
<Compile Include="Traits\SelectionDecorations.cs" />
@@ -193,17 +192,12 @@
<Compile Include="Network\UPnP.cs" />
<Compile Include="Widgets\ClientTooltipRegionWidget.cs" />
<Compile Include="Graphics\Renderable.cs" />
<Compile Include="Traits\Render\RenderSprites.cs" />
<Compile Include="Graphics\Voxel.cs" />
<Compile Include="Graphics\VoxelRenderer.cs" />
<Compile Include="Graphics\VoxelLoader.cs" />
<Compile Include="Graphics\VoxelProvider.cs" />
<Compile Include="Traits\BodyOrientation.cs" />
<Compile Include="Graphics\VoxelAnimation.cs" />
<Compile Include="Graphics\VoxelRenderable.cs" />
<Compile Include="Graphics\TextRenderable.cs" />
<Compile Include="Graphics\BeamRenderable.cs" />
<Compile Include="Graphics\ContrailRenderable.cs" />
<Compile Include="Widgets\ViewportControllerWidget.cs" />
<Compile Include="Traits\Player\FrozenActorLayer.cs" />
<Compile Include="Graphics\Theater.cs" />

View File

@@ -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);
}
}

View File

@@ -16,6 +16,7 @@ using OpenRA.Graphics;
using OpenRA.Mods.RA;
using OpenRA.Mods.RA.Buildings;
using OpenRA.Mods.RA.Orders;
using OpenRA.Mods.RA.Render;
using OpenRA.Network;
using OpenRA.Traits;
using OpenRA.Widgets;

View File

@@ -9,6 +9,7 @@
#endregion
using OpenRA.Graphics;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.Cnc

View File

@@ -9,6 +9,7 @@
#endregion
using OpenRA.Graphics;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.Cnc

View File

@@ -9,6 +9,7 @@
#endregion
using OpenRA.Graphics;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Buildings

View File

@@ -10,6 +10,7 @@
using OpenRA.Effects;
using OpenRA.Traits;
using OpenRA.Mods.RA.Render;
namespace OpenRA.Mods.Cnc
{

View File

@@ -13,7 +13,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA.Buildings
{
public class LaysTerrainInfo : ITraitInfo, Requires<BuildingInfo>, Requires<RenderSpritesInfo>
public class LaysTerrainInfo : ITraitInfo, Requires<BuildingInfo>
{
[Desc("The terrain template to place. If the template is PickAny, then" +
"the actor footprint will be filled with this tile.")]

View File

@@ -9,6 +9,7 @@
#endregion
using OpenRA.Graphics;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.RA

View File

@@ -11,6 +11,7 @@
using System.Collections.Generic;
using System.Linq;
using OpenRA.Mods.RA.Buildings;
using OpenRA.Mods.RA.Render;
using OpenRA.Primitives;
using OpenRA.Traits;

View File

@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Mods.RA.Orders;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.RA

View File

@@ -15,6 +15,7 @@ using System.Linq;
using OpenRA.Effects;
using OpenRA.GameRules;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Effects

View File

@@ -13,6 +13,7 @@ using System.Collections.Generic;
using System.Drawing;
using OpenRA.Effects;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
namespace OpenRA.Mods.RA.Effects
{

View File

@@ -11,6 +11,7 @@
using System.Collections.Generic;
using System.Drawing;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.RA

View File

@@ -11,6 +11,7 @@
using System.Collections.Generic;
using OpenRA.Effects;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
namespace OpenRA.Mods.RA.Effects
{

View File

@@ -13,6 +13,7 @@ using System.Drawing;
using OpenRA.Effects;
using OpenRA.GameRules;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
namespace OpenRA.Mods.RA.Effects
{

View File

@@ -14,6 +14,7 @@ using System.Linq;
using OpenRA.Effects;
using OpenRA.GameRules;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Effects

View File

@@ -9,8 +9,9 @@
#endregion
using System.Drawing;
using OpenRA.Graphics;
namespace OpenRA.Graphics
namespace OpenRA.Mods.RA.Graphics
{
public struct BeamRenderable : IRenderable
{

View File

@@ -10,8 +10,9 @@
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
namespace OpenRA.Graphics
namespace OpenRA.Mods.RA.Graphics
{
public struct ContrailRenderable : IRenderable
{

View File

@@ -10,8 +10,9 @@
using System;
using System.Drawing;
using OpenRA.Graphics;
namespace OpenRA.Graphics
namespace OpenRA.Mods.RA.Graphics
{
public struct TextRenderable : IRenderable
{

View File

@@ -11,8 +11,9 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
namespace OpenRA.Graphics
namespace OpenRA.Mods.RA.Graphics
{
public struct VoxelRenderable : IRenderable
{

View File

@@ -11,6 +11,7 @@
using System;
using System.Linq;
using OpenRA.Traits;
using OpenRA.Mods.RA.Render;
namespace OpenRA.Mods.RA
{

View File

@@ -18,7 +18,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA
{
[Desc("This actor will remain visible (but not updated visually) under fog, once discovered.")]
public class FrozenUnderFogInfo : ITraitInfo, Requires<BuildingInfo>, Requires<RenderSpritesInfo>
public class FrozenUnderFogInfo : ITraitInfo, Requires<BuildingInfo>
{
public readonly bool StartsRevealed = false;

View File

@@ -521,6 +521,12 @@
<Compile Include="Widgets\Logic\InstallMusicLogic.cs" />
<Compile Include="Render\WithActiveAnimation.cs" />
<Compile Include="SupportPowers\SpawnActorPower.cs" />
<Compile Include="Render\RenderSimple.cs" />
<Compile Include="Render\RenderSprites.cs" />
<Compile Include="Graphics\BeamRenderable.cs" />
<Compile Include="Graphics\ContrailRenderable.cs" />
<Compile Include="Graphics\TextRenderable.cs" />
<Compile Include="Graphics\VoxelRenderable.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj">

View File

@@ -11,6 +11,7 @@
using System.Collections.Generic;
using System.Drawing;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Render

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information
/*
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
@@ -11,10 +11,11 @@
using System;
using System.Collections.Generic;
using OpenRA.Graphics;
using OpenRA.Traits;
namespace 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); }
@@ -25,6 +26,9 @@ namespace OpenRA.Traits
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

View File

@@ -12,9 +12,10 @@ using System;
using System.Collections.Generic;
using System.Linq;
using OpenRA.Graphics;
using OpenRA.Traits;
using OpenRA.Primitives;
namespace OpenRA.Traits
namespace OpenRA.Mods.RA.Render
{
public class RenderSpritesInfo : ITraitInfo
{

View File

@@ -11,6 +11,7 @@
using System.Collections.Generic;
using OpenRA.Graphics;
using OpenRA.Traits;
using OpenRA.Mods.RA.Graphics;
namespace OpenRA.Mods.RA.Render
{

View File

@@ -12,6 +12,7 @@ using System;
using OpenRA.Effects;
using OpenRA.Mods.RA.Activities;
using OpenRA.Mods.RA.Effects;
using OpenRA.Mods.RA.Render;
using OpenRA.Primitives;
using OpenRA.Traits;

View File

@@ -10,6 +10,7 @@
using OpenRA.Graphics;
using OpenRA.Traits;
using OpenRA.Mods.RA.Render;
namespace OpenRA.Mods.RA
{

View File

@@ -15,6 +15,7 @@ using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Buildings;
using OpenRA.Mods.RA.Orders;
using OpenRA.Mods.RA.Render;
using OpenRA.Network;
using OpenRA.Primitives;
using OpenRA.Traits;

View File

@@ -13,6 +13,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
using OpenRA.Widgets;