From 5b4f8d1446fa84ed47ab2f0c1ccec246030238ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 23 Aug 2014 20:24:54 +0200 Subject: [PATCH 1/2] unhardcode and self-document more resource/smudge parameters --- OpenRA.Game/Traits/World/ResourceType.cs | 4 +++- OpenRA.Mods.RA/World/SmudgeLayer.cs | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Traits/World/ResourceType.cs b/OpenRA.Game/Traits/World/ResourceType.cs index c6927a97a4..9b983a39a5 100644 --- a/OpenRA.Game/Traits/World/ResourceType.cs +++ b/OpenRA.Game/Traits/World/ResourceType.cs @@ -17,8 +17,10 @@ namespace OpenRA.Traits { // HACK: The editor is getting really unmaintanable... public readonly string EditorSprite; + public readonly string[] Variants = { }; public readonly string Palette = "terrain"; + public readonly string Sequence = "resources"; public readonly int ResourceType = 1; public readonly int ValuePerUnit = 0; @@ -47,7 +49,7 @@ namespace OpenRA.Traits Variants = new Dictionary(); foreach (var v in info.Variants) { - var seq = world.Map.SequenceProvider.GetSequence("resources", v); + var seq = world.Map.SequenceProvider.GetSequence(Info.Sequence, v); var sprites = Exts.MakeArray(seq.Length, x => seq.GetSprite(x)); Variants.Add(v, sprites); } diff --git a/OpenRA.Mods.RA/World/SmudgeLayer.cs b/OpenRA.Mods.RA/World/SmudgeLayer.cs index 85ef43ccd0..6bb76cee7c 100644 --- a/OpenRA.Mods.RA/World/SmudgeLayer.cs +++ b/OpenRA.Mods.RA/World/SmudgeLayer.cs @@ -19,11 +19,17 @@ namespace OpenRA.Mods.RA public class SmudgeLayerInfo : ITraitInfo { public readonly string Type = "Scorch"; + + [Desc("Sprite sequence name")] public readonly string Sequence = "scorch"; public readonly int SmokePercentage = 25; + + [Desc("Sprite sequence name")] public readonly string SmokeType = "smoke_m"; + public readonly string Palette = "terrain"; + public object Create(ActorInitializer init) { return new SmudgeLayer(this); } } @@ -120,7 +126,7 @@ namespace OpenRA.Mods.RA public void Render(WorldRenderer wr) { - var pal = wr.Palette("terrain"); + var pal = wr.Palette(Info.Palette); foreach (var kv in tiles) { From 8649475b91e99b81e9d01599318476ce187a37d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 24 Aug 2014 08:16:59 +0200 Subject: [PATCH 2/2] document engine limitations --- OpenRA.Mods.RA/World/ResourceLayer.cs | 4 ++-- OpenRA.Mods.RA/World/SmudgeLayer.cs | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/World/ResourceLayer.cs b/OpenRA.Mods.RA/World/ResourceLayer.cs index b7bf86fbe5..06dd6ea0c6 100644 --- a/OpenRA.Mods.RA/World/ResourceLayer.cs +++ b/OpenRA.Mods.RA/World/ResourceLayer.cs @@ -17,7 +17,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { - [Desc("Attach this to the world actor.")] + [Desc("Attach this to the world actor.", "Order of the layers defines the Z sorting.")] public class ResourceLayerInfo : TraitInfo, Requires { } public class ResourceLayer : IRenderOverlay, IWorldLoaded, ITickRender @@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA var c = render[cell]; if (c.Sprite != null) new SpriteRenderable(c.Sprite, wr.world.Map.CenterOfCell(cell), - WVec.Zero, -511, c.Type.Palette, 1f, true).Render(wr); + WVec.Zero, -511, c.Type.Palette, 1f, true).Render(wr); // TODO ZOffset is ignored } } diff --git a/OpenRA.Mods.RA/World/SmudgeLayer.cs b/OpenRA.Mods.RA/World/SmudgeLayer.cs index 6bb76cee7c..e05108f08b 100644 --- a/OpenRA.Mods.RA/World/SmudgeLayer.cs +++ b/OpenRA.Mods.RA/World/SmudgeLayer.cs @@ -16,6 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { + [Desc("Attach this to the world actor.", "Order of the layers defines the Z sorting.")] public class SmudgeLayerInfo : ITraitInfo { public readonly string Type = "Scorch"; @@ -137,7 +138,7 @@ namespace OpenRA.Mods.RA continue; new SpriteRenderable(kv.Value.Sprite, world.Map.CenterOfCell(kv.Key), - WVec.Zero, -511, pal, 1f, true).Render(wr); + WVec.Zero, -511, pal, 1f, true).Render(wr); // TODO ZOffset is ignored } } }