Remove internal state from ISpriteSequence API.
This commit is contained in:
@@ -61,9 +61,9 @@ namespace OpenRA.Graphics
|
|||||||
var imageRenderable = new SpriteRenderable(image, pos, offset, CurrentSequence.ZOffset + zOffset, palette, CurrentSequence.Scale, alpha, float3.Ones, tintModifiers, IsDecoration,
|
var imageRenderable = new SpriteRenderable(image, pos, offset, CurrentSequence.ZOffset + zOffset, palette, CurrentSequence.Scale, alpha, float3.Ones, tintModifiers, IsDecoration,
|
||||||
rotation);
|
rotation);
|
||||||
|
|
||||||
if (CurrentSequence.ShadowStart >= 0)
|
|
||||||
{
|
|
||||||
var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc());
|
var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc());
|
||||||
|
if (shadow != null)
|
||||||
|
{
|
||||||
var shadowRenderable = new SpriteRenderable(shadow, pos, offset, CurrentSequence.ShadowZOffset + zOffset, palette, CurrentSequence.Scale, 1f, float3.Ones, tintModifiers,
|
var shadowRenderable = new SpriteRenderable(shadow, pos, offset, CurrentSequence.ShadowZOffset + zOffset, palette, CurrentSequence.Scale, 1f, float3.Ones, tintModifiers,
|
||||||
true, rotation);
|
true, rotation);
|
||||||
return new IRenderable[] { shadowRenderable, imageRenderable };
|
return new IRenderable[] { shadowRenderable, imageRenderable };
|
||||||
@@ -80,9 +80,9 @@ namespace OpenRA.Graphics
|
|||||||
var alpha = CurrentSequence.GetAlpha(CurrentFrame);
|
var alpha = CurrentSequence.GetAlpha(CurrentFrame);
|
||||||
var imageRenderable = new UISpriteRenderable(Image, WPos.Zero + offset, imagePos, CurrentSequence.ZOffset + zOffset, palette, scale, alpha, rotation);
|
var imageRenderable = new UISpriteRenderable(Image, WPos.Zero + offset, imagePos, CurrentSequence.ZOffset + zOffset, palette, scale, alpha, rotation);
|
||||||
|
|
||||||
if (CurrentSequence.ShadowStart >= 0)
|
|
||||||
{
|
|
||||||
var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc());
|
var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc());
|
||||||
|
if (shadow != null)
|
||||||
|
{
|
||||||
var shadowPos = pos - new int2((int)(scale * shadow.Size.X / 2), (int)(scale * shadow.Size.Y / 2));
|
var shadowPos = pos - new int2((int)(scale * shadow.Size.X / 2), (int)(scale * shadow.Size.Y / 2));
|
||||||
var shadowRenderable = new UISpriteRenderable(shadow, WPos.Zero + offset, shadowPos, CurrentSequence.ShadowZOffset + zOffset, palette, scale, 1f, rotation);
|
var shadowRenderable = new UISpriteRenderable(shadow, WPos.Zero + offset, shadowPos, CurrentSequence.ShadowZOffset + zOffset, palette, scale, 1f, rotation);
|
||||||
return new IRenderable[] { shadowRenderable, imageRenderable };
|
return new IRenderable[] { shadowRenderable, imageRenderable };
|
||||||
|
|||||||
@@ -22,16 +22,12 @@ namespace OpenRA.Graphics
|
|||||||
public interface ISpriteSequence
|
public interface ISpriteSequence
|
||||||
{
|
{
|
||||||
string Name { get; }
|
string Name { get; }
|
||||||
int Start { get; }
|
|
||||||
int Length { get; }
|
int Length { get; }
|
||||||
int Stride { get; }
|
|
||||||
int Facings { get; }
|
int Facings { get; }
|
||||||
int InterpolatedFacings { get; }
|
int InterpolatedFacings { get; }
|
||||||
int Tick { get; }
|
int Tick { get; }
|
||||||
int ZOffset { get; }
|
int ZOffset { get; }
|
||||||
int ShadowStart { get; }
|
|
||||||
int ShadowZOffset { get; }
|
int ShadowZOffset { get; }
|
||||||
int[] Frames { get; }
|
|
||||||
Rectangle Bounds { get; }
|
Rectangle Bounds { get; }
|
||||||
bool IgnoreWorldTint { get; }
|
bool IgnoreWorldTint { get; }
|
||||||
float Scale { get; }
|
float Scale { get; }
|
||||||
|
|||||||
@@ -83,16 +83,12 @@ namespace OpenRA.Mods.Common.Graphics
|
|||||||
public string Filename => exception.FileName;
|
public string Filename => exception.FileName;
|
||||||
|
|
||||||
string ISpriteSequence.Name => throw exception;
|
string ISpriteSequence.Name => throw exception;
|
||||||
int ISpriteSequence.Start => throw exception;
|
|
||||||
int ISpriteSequence.Length => throw exception;
|
int ISpriteSequence.Length => throw exception;
|
||||||
int ISpriteSequence.Stride => throw exception;
|
|
||||||
int ISpriteSequence.Facings => throw exception;
|
int ISpriteSequence.Facings => throw exception;
|
||||||
int ISpriteSequence.InterpolatedFacings => throw exception;
|
int ISpriteSequence.InterpolatedFacings => throw exception;
|
||||||
int ISpriteSequence.Tick => throw exception;
|
int ISpriteSequence.Tick => throw exception;
|
||||||
int ISpriteSequence.ZOffset => throw exception;
|
int ISpriteSequence.ZOffset => throw exception;
|
||||||
int ISpriteSequence.ShadowStart => throw exception;
|
|
||||||
int ISpriteSequence.ShadowZOffset => throw exception;
|
int ISpriteSequence.ShadowZOffset => throw exception;
|
||||||
int[] ISpriteSequence.Frames => throw exception;
|
|
||||||
Rectangle ISpriteSequence.Bounds => throw exception;
|
Rectangle ISpriteSequence.Bounds => throw exception;
|
||||||
bool ISpriteSequence.IgnoreWorldTint => throw exception;
|
bool ISpriteSequence.IgnoreWorldTint => throw exception;
|
||||||
float ISpriteSequence.Scale => throw exception;
|
float ISpriteSequence.Scale => throw exception;
|
||||||
@@ -135,7 +131,6 @@ namespace OpenRA.Mods.Common.Graphics
|
|||||||
|
|
||||||
[Desc("Frame index to start from.")]
|
[Desc("Frame index to start from.")]
|
||||||
static readonly SpriteSequenceField<int> Start = new SpriteSequenceField<int>(nameof(Start), 0);
|
static readonly SpriteSequenceField<int> Start = new SpriteSequenceField<int>(nameof(Start), 0);
|
||||||
int ISpriteSequence.Start => start;
|
|
||||||
int start;
|
int start;
|
||||||
|
|
||||||
[Desc("Number of frames to use. Does not have to be the total amount the sprite sheet has.")]
|
[Desc("Number of frames to use. Does not have to be the total amount the sprite sheet has.")]
|
||||||
@@ -145,7 +140,6 @@ namespace OpenRA.Mods.Common.Graphics
|
|||||||
|
|
||||||
[Desc("Overrides Length if a different number of frames is defined between facings.")]
|
[Desc("Overrides Length if a different number of frames is defined between facings.")]
|
||||||
static readonly SpriteSequenceField<int> Stride = new SpriteSequenceField<int>(nameof(Stride), -1);
|
static readonly SpriteSequenceField<int> Stride = new SpriteSequenceField<int>(nameof(Stride), -1);
|
||||||
int ISpriteSequence.Stride => stride;
|
|
||||||
int stride;
|
int stride;
|
||||||
|
|
||||||
[Desc("The amount of directions the unit faces. Use negative values to rotate counter-clockwise.")]
|
[Desc("The amount of directions the unit faces. Use negative values to rotate counter-clockwise.")]
|
||||||
@@ -175,7 +169,6 @@ namespace OpenRA.Mods.Common.Graphics
|
|||||||
[Desc("If the shadow is not part of the sprite, but baked into the same sprite sheet at a fixed offset, " +
|
[Desc("If the shadow is not part of the sprite, but baked into the same sprite sheet at a fixed offset, " +
|
||||||
"set this to the frame index where it starts.")]
|
"set this to the frame index where it starts.")]
|
||||||
static readonly SpriteSequenceField<int> ShadowStart = new SpriteSequenceField<int>(nameof(ShadowStart), -1);
|
static readonly SpriteSequenceField<int> ShadowStart = new SpriteSequenceField<int>(nameof(ShadowStart), -1);
|
||||||
int ISpriteSequence.ShadowStart => shadowStart;
|
|
||||||
readonly int shadowStart;
|
readonly int shadowStart;
|
||||||
|
|
||||||
[Desc("Set Z-Offset for the separate shadow. Used by the later Westwood 2.5D titles.")]
|
[Desc("Set Z-Offset for the separate shadow. Used by the later Westwood 2.5D titles.")]
|
||||||
@@ -185,7 +178,6 @@ namespace OpenRA.Mods.Common.Graphics
|
|||||||
|
|
||||||
[Desc("The individual frames to play instead of going through them sequentially from the `Start`.")]
|
[Desc("The individual frames to play instead of going through them sequentially from the `Start`.")]
|
||||||
static readonly SpriteSequenceField<int[]> Frames = new SpriteSequenceField<int[]>(nameof(Frames), null);
|
static readonly SpriteSequenceField<int[]> Frames = new SpriteSequenceField<int[]>(nameof(Frames), null);
|
||||||
int[] ISpriteSequence.Frames => frames;
|
|
||||||
int[] frames;
|
int[] frames;
|
||||||
|
|
||||||
[Desc("Don't apply terrain lighting or colored overlays.")]
|
[Desc("Don't apply terrain lighting or colored overlays.")]
|
||||||
|
|||||||
Reference in New Issue
Block a user