public static Tile Create(this TileType type, Vector2i position) { switch(type) { case TileType.Block: return new Block(position); case TileType.Spike: return new Spike(position); } throw new ArgumentException("Unexpected type " + type); }
public Spike(Vector2i position) : base(position) { }
public Tile(Vector2i position) : base(position.X, position.Y, 1, 1) { Position = position; Fixed = true; }
public Block(Vector2i position) : base(position) { }