Merge pull request #6320 from Mailaender/smudge-offset
Unhardcoded and self-documented more resource/smudge parameters
This commit is contained in:
@@ -17,8 +17,10 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
// HACK: The editor is getting really unmaintanable...
|
// HACK: The editor is getting really unmaintanable...
|
||||||
public readonly string EditorSprite;
|
public readonly string EditorSprite;
|
||||||
|
|
||||||
public readonly string[] Variants = { };
|
public readonly string[] Variants = { };
|
||||||
public readonly string Palette = "terrain";
|
public readonly string Palette = "terrain";
|
||||||
|
public readonly string Sequence = "resources";
|
||||||
public readonly int ResourceType = 1;
|
public readonly int ResourceType = 1;
|
||||||
|
|
||||||
public readonly int ValuePerUnit = 0;
|
public readonly int ValuePerUnit = 0;
|
||||||
@@ -47,7 +49,7 @@ namespace OpenRA.Traits
|
|||||||
Variants = new Dictionary<string, Sprite[]>();
|
Variants = new Dictionary<string, Sprite[]>();
|
||||||
foreach (var v in info.Variants)
|
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));
|
var sprites = Exts.MakeArray(seq.Length, x => seq.GetSprite(x));
|
||||||
Variants.Add(v, sprites);
|
Variants.Add(v, sprites);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ using OpenRA.Traits;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
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<ResourceLayer>, Requires<ResourceTypeInfo> { }
|
public class ResourceLayerInfo : TraitInfo<ResourceLayer>, Requires<ResourceTypeInfo> { }
|
||||||
|
|
||||||
public class ResourceLayer : IRenderOverlay, IWorldLoaded, ITickRender
|
public class ResourceLayer : IRenderOverlay, IWorldLoaded, ITickRender
|
||||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA
|
|||||||
var c = render[cell];
|
var c = render[cell];
|
||||||
if (c.Sprite != null)
|
if (c.Sprite != null)
|
||||||
new SpriteRenderable(c.Sprite, wr.world.Map.CenterOfCell(cell),
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,14 +16,21 @@ using OpenRA.Traits;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
|
[Desc("Attach this to the world actor.", "Order of the layers defines the Z sorting.")]
|
||||||
public class SmudgeLayerInfo : ITraitInfo
|
public class SmudgeLayerInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly string Type = "Scorch";
|
public readonly string Type = "Scorch";
|
||||||
|
|
||||||
|
[Desc("Sprite sequence name")]
|
||||||
public readonly string Sequence = "scorch";
|
public readonly string Sequence = "scorch";
|
||||||
|
|
||||||
public readonly int SmokePercentage = 25;
|
public readonly int SmokePercentage = 25;
|
||||||
|
|
||||||
|
[Desc("Sprite sequence name")]
|
||||||
public readonly string SmokeType = "smoke_m";
|
public readonly string SmokeType = "smoke_m";
|
||||||
|
|
||||||
|
public readonly string Palette = "terrain";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new SmudgeLayer(this); }
|
public object Create(ActorInitializer init) { return new SmudgeLayer(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +127,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Render(WorldRenderer wr)
|
public void Render(WorldRenderer wr)
|
||||||
{
|
{
|
||||||
var pal = wr.Palette("terrain");
|
var pal = wr.Palette(Info.Palette);
|
||||||
|
|
||||||
foreach (var kv in tiles)
|
foreach (var kv in tiles)
|
||||||
{
|
{
|
||||||
@@ -131,7 +138,7 @@ namespace OpenRA.Mods.RA
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
new SpriteRenderable(kv.Value.Sprite, world.Map.CenterOfCell(kv.Key),
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user