OnCollide component

This commit is contained in:
Matt Thorson 2020-05-29 17:40:31 -07:00
parent b16f9ae8ba
commit 9bad58cf2d

View File

@ -0,0 +1,36 @@
using System.Collections;
namespace Strawberry
{
public class OnCollide<T> : Component where T : Entity
{
// Takes as parameter the T collided with. Return false to stop checking for collisions until next frame.
public delegate bool(T) Action;
public this(delegate bool(T) action)
: base(true, false)
{
Action = action;
}
public override void Started()
{
}
public override void Update()
{
if (Action != null)
{
let list = Entity.Scene.All<T>(scope List<T>());
for (let t in list)
if (Entity.Check(t) && !Action(t))
break;
}
}
public override void Draw()
{
}
}
}