using System;
using Syntriax.Engine.Core.Abstract;
namespace Syntriax.Engine.Physics2D.Abstract;
///
/// Represents a 2D collider.
///
public interface ICollider2D : IBehaviour, IAssignableTransform
{
///
/// Event triggered when a collision is detected.
///
Action? OnCollisionDetected { get; set; }
///
/// Event triggered when a collision is resolved.
///
Action? OnCollisionResolved { get; set; }
///
/// Event triggered when another triggers this .
///
Action? OnTriggered { get; set; }
///
/// The associated with the .
///
IRigidBody2D? RigidBody2D { get; }
///
/// The value indicating whether the is a trigger.
///
bool IsTrigger { get; set; }
///
/// Recalculates properties.
///
void Recalculate();
}