fix: collider2Ds not updating collider after new assignment
This commit is contained in:
parent
2535a1d6ec
commit
26a80452bc
@ -10,7 +10,7 @@ public abstract class Collider2DBehaviourBase : Behaviour2D, ICollider2D
|
||||
public event ICollider2D.CollisionResolvedEventHandler? OnCollisionResolved = null;
|
||||
public event ICollider2D.TriggeredEventHandler? OnTriggered = null;
|
||||
|
||||
protected bool NeedsRecalculation { get; private set; } = true;
|
||||
protected bool NeedsRecalculation { get; set; } = true;
|
||||
protected IRigidBody2D? _rigidBody2D = null;
|
||||
|
||||
public IRigidBody2D? RigidBody2D => _rigidBody2D;
|
||||
|
@ -6,9 +6,19 @@ namespace Syntriax.Engine.Physics2D;
|
||||
public class Collider2DCircleBehaviour : Collider2DBehaviourBase, ICircleCollider2D
|
||||
{
|
||||
public Circle CircleWorld { get; protected set; } = Circle.UnitCircle;
|
||||
public Circle CircleLocal { get; set; } = Circle.UnitCircle;
|
||||
public Circle CircleLocal
|
||||
{
|
||||
get => _circleLocal;
|
||||
set
|
||||
{
|
||||
_circleLocal = value;
|
||||
NeedsRecalculation = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override void CalculateCollider() => CircleWorld = Transform.TransformCircle(CircleLocal);
|
||||
private Circle _circleLocal = Circle.UnitCircle;
|
||||
|
||||
public override void CalculateCollider() => CircleWorld = Transform.Transform(CircleLocal);
|
||||
|
||||
public Collider2DCircleBehaviour() { }
|
||||
public Collider2DCircleBehaviour(Circle circle) => CircleLocal = circle;
|
||||
|
@ -6,11 +6,20 @@ 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;
|
||||
public Shape2D ShapeLocal
|
||||
{
|
||||
get => _shapeLocal;
|
||||
set
|
||||
{
|
||||
_shapeLocal = value;
|
||||
NeedsRecalculation = true;
|
||||
}
|
||||
}
|
||||
|
||||
private Shape2D _shapeWorld = Shape2D.Square.CreateCopy();
|
||||
private Shape2D _shapeWorld = Shape2D.Square;
|
||||
private Shape2D _shapeLocal = Shape2D.Square;
|
||||
|
||||
public override void CalculateCollider() => Transform.TransformShape(ShapeLocal, ref _shapeWorld);
|
||||
public override void CalculateCollider() => ShapeLocal.Transform(Transform, ref _shapeWorld);
|
||||
|
||||
public Collider2DShapeBehaviour() { }
|
||||
public Collider2DShapeBehaviour(Shape2D shape)
|
||||
|
Loading…
x
Reference in New Issue
Block a user