Remove HasEmbeddedPalette from sequences.
This commit is contained in:
@@ -19,26 +19,6 @@ using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA.Mods.Common.Graphics
|
||||
{
|
||||
public class EmbeddedSpritePalette
|
||||
{
|
||||
readonly uint[] filePalette = null;
|
||||
readonly Dictionary<int, uint[]> framePalettes = null;
|
||||
|
||||
public EmbeddedSpritePalette(uint[] filePalette = null, Dictionary<int, uint[]> framePalettes = null)
|
||||
{
|
||||
this.filePalette = filePalette;
|
||||
this.framePalettes = framePalettes;
|
||||
}
|
||||
|
||||
public bool TryGetPaletteForFrame(int frame, out uint[] palette)
|
||||
{
|
||||
if (framePalettes == null || !framePalettes.TryGetValue(frame, out palette))
|
||||
palette = filePalette;
|
||||
|
||||
return palette != null;
|
||||
}
|
||||
}
|
||||
|
||||
public class DefaultSpriteSequenceLoader : ISpriteSequenceLoader
|
||||
{
|
||||
static readonly MiniYaml NoData = new MiniYaml(null);
|
||||
@@ -256,11 +236,6 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
[Desc("X, Y offset to apply to the depth sprite.")]
|
||||
static readonly SpriteSequenceField<float2> DepthSpriteOffset = new SpriteSequenceField<float2>(nameof(DepthSpriteOffset), float2.Zero);
|
||||
|
||||
[Desc("Make a custom palette embedded in the sprite available to the PaletteFromEmbeddedSpritePalette trait.")]
|
||||
static readonly SpriteSequenceField<bool> HasEmbeddedPalette = new SpriteSequenceField<bool>(nameof(HasEmbeddedPalette), false);
|
||||
|
||||
public readonly uint[] EmbeddedPalette;
|
||||
|
||||
protected virtual string GetSpriteFilename(ModData modData, string tileset, string image, string sequence, MiniYaml data, MiniYaml defaults)
|
||||
{
|
||||
return LoadField(Filename, data, defaults);
|
||||
@@ -502,19 +477,6 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
if (LoadField(HasEmbeddedPalette, data, defaults))
|
||||
{
|
||||
var filename = GetSpriteFilename(modData, tileSet, image, sequence, data, defaults);
|
||||
if (filename == null)
|
||||
throw new YamlException($"Sequence {image}.{sequence} does not define a filename.");
|
||||
|
||||
var metadata = cache.FrameMetadata(filename);
|
||||
var i = frames != null ? frames[0] : start;
|
||||
var palettes = metadata?.GetOrDefault<EmbeddedSpritePalette>();
|
||||
if (palettes == null || !palettes.TryGetPaletteForFrame(i, out EmbeddedPalette))
|
||||
throw new YamlException($"Cannot export palette from {filename}: frame {i} does not define an embedded palette.");
|
||||
}
|
||||
|
||||
var boundSprites = SpriteBounds(sprites, frames, start, facings, length, stride, transpose);
|
||||
if (shadowStart > 0)
|
||||
boundSprites = boundSprites.Concat(SpriteBounds(sprites, frames, shadowStart, facings, length, stride, transpose));
|
||||
|
||||
Reference in New Issue
Block a user