using Syntriax.Engine.Core;
using Syntriax.Engine.Physics2D.Abstract;

namespace Syntriax.Engine.Physics2D;

public class Collider2DShapeBehaviour : Collider2DBehaviourBase, IShapeCollider2D
{
    public Shape2D ShapeWorld { get => _shapeWorld; protected set => _shapeWorld = value; }
    public Shape2D ShapeLocal { get; set; } = Shape2D.Square;

    private Shape2D _shapeWorld = Shape2D.Square.CreateCopy();

    public override void CalculateCollider() => Transform.TransformShape(ShapeLocal, ref _shapeWorld);

    public Collider2DShapeBehaviour() { }
    public Collider2DShapeBehaviour(Shape2D shape)
    {
        ShapeLocal = shape;
        ShapeWorld.CreateCopy();
    }
}