Extensions & Frame Restructuring

Implemented Custom Extensions for SpriteMaps (*.smap), Animations (*.anim) and AnimationSets (*.animset).

Also restructured Frame to be a container for SpriteMapRegions rather than an extension of them. This will enable easier access to updating them when loading SpriteMaps in the Editor.
This commit is contained in:
quinnvoker
2018-11-25 21:28:32 -08:00
parent f57a0334cf
commit 3e24ac9527
8 changed files with 47 additions and 75 deletions
+1 -17
View File
@@ -11,11 +11,8 @@ namespace QURO.AnimationLibrary
public bool IsStillImage => Frames.Length <= 1;
public Animation()
public Animation() : this("unnamed", new Frame[] { new Frame() }, false)
{
Name = "unnamed";
Frames = new Frame[] { new Frame() };
IsLooping = false;
}
public Animation(string name, Frame[] frames, bool loop)
@@ -24,18 +21,5 @@ namespace QURO.AnimationLibrary
Frames = frames;
IsLooping = loop;
}
public Animation(string name, Rectangle[] sourceRects, float delay, bool loop)
{
Name = name;
Frames = new Frame[sourceRects.Length];
for(int index = 0; index < sourceRects.Length; index++)
{
Frames[index] = new Frame(sourceRects[index], delay);
}
IsLooping = loop;
}
}
}
+8 -33
View File
@@ -3,47 +3,22 @@ using Microsoft.Xna.Framework;
namespace QURO.AnimationLibrary
{
public class Frame : SpriteMapRegion
public class Frame
{
public SpriteMapRegion Sprite { get; set; }
public float Delay { get; set; }
public Frame()
public string Name { get { return Sprite.Name; } }
public Rectangle Bounds { get { return Sprite.Bounds; } }
public Vector2 Origin { get { return Sprite.Origin; } }
public Frame() : this(new SpriteMapRegion(), 0)
{
Name = "empty";
Bounds = Rectangle.Empty;
Origin = Vector2.Zero;
Delay = 0;
}
public Frame(SpriteMapRegion sprite, float delay)
{
Name = sprite.Name;
Bounds = sprite.Bounds;
Origin = sprite.Origin;
Delay = delay;
}
public Frame(string name, Rectangle bounds, float delay, Vector2 origin)
{
Name = name;
Bounds = bounds;
Origin = origin;
Delay = delay;
}
public Frame(Rectangle bounds, float delay, Vector2 origin)
{
Name = "unnamed";
Bounds = bounds;
Origin = origin;
Delay = delay;
}
public Frame(Rectangle bounds, float delay)
{
Name = "unnamed";
Bounds = bounds;
Origin = Vector2.Zero;
Sprite = sprite;
Delay = delay;
}
}