public abstract bool Collide(Grid grid);
public override bool Collide(Grid grid) { return grid.Collide(Bounds); }
public override bool Collide(Grid grid) { foreach (var c in colliders) if (c.Collide(grid)) return true; return false; }
public override bool Collide(Grid grid) { return grid.Collide(this); }
public override bool Collide(Grid grid) { throw new NotImplementedException(); }