92 lines
2.0 KiB
C#
92 lines
2.0 KiB
C#
using SFML.Graphics;
|
|
using SFML.System;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Firebird2D.SceneSystem.Actors
|
|
{
|
|
public enum ResizeMode
|
|
{
|
|
Resize,
|
|
DontResize,
|
|
CutImage
|
|
}
|
|
|
|
public enum AnchorPoint
|
|
{
|
|
topLeft,
|
|
topMiddle,
|
|
topRight,
|
|
bottomLeft,
|
|
bottomMiddle,
|
|
bottomRight,
|
|
LeftMiddle,
|
|
RightMiddle,
|
|
Center
|
|
}
|
|
|
|
public enum AnchorMode
|
|
{
|
|
stayInValue,
|
|
stayInRatio,
|
|
stayInPlace
|
|
}
|
|
|
|
public struct Anchors
|
|
{
|
|
public bool top;
|
|
public bool left;
|
|
public bool right;
|
|
public bool bottom;
|
|
|
|
AnchorPoint anchorPoint;
|
|
|
|
AnchorMode anchorMode;
|
|
|
|
|
|
public Anchors() : this(true, true, false, false, AnchorPoint.Center, AnchorMode.stayInValue) { }
|
|
|
|
public Anchors(bool top, bool left, bool right, bool bottom) : this(top, left, right, bottom, AnchorPoint.Center, AnchorMode.stayInValue) { }
|
|
|
|
|
|
public Anchors(bool top, bool left, bool right, bool bottom, AnchorPoint anchorPoint) : this(top, left, right, bottom, anchorPoint, AnchorMode.stayInValue) { }
|
|
|
|
public Anchors(bool top, bool left, bool right, bool bottom, AnchorPoint anchorPoint, AnchorMode anchorMode)
|
|
{
|
|
this.top = top;
|
|
this.left = left;
|
|
this.right = right;
|
|
this.bottom = bottom;
|
|
this.anchorPoint = anchorPoint;
|
|
this.anchorMode = anchorMode;
|
|
}
|
|
}
|
|
|
|
public interface I_BaseActor
|
|
{
|
|
|
|
public string Name { get; }
|
|
|
|
public ResizeMode resizeMode { get; set; }
|
|
|
|
public Anchors Anchors { get; set; }
|
|
|
|
public Vector2f Position { get; set; }
|
|
|
|
public Vector2f Size { get; set; }
|
|
|
|
public Vector2f Rotation { get; set; }
|
|
|
|
public void render(RenderWindow window);
|
|
|
|
public void tick(int timeDifference);
|
|
|
|
public void onWindowResize(int width, int height);
|
|
|
|
|
|
}
|
|
}
|