public Field(Tile parentTile, Rectangle rect, TerrainEnum terrain, bool openLeft = true, bool openRight = true, bool openTop = true, bool openBottom = true) { ParentTile = parentTile; Rect = rect; OriginRect = rect; Terrain = terrain; OpenBottom = openBottom; OpenLeft = openLeft; OpenRight = openRight; OpenTop = openTop; ObjectsOnField = new Collection<object>(); }
public void MoveOffsetY(int y, Tile startingTile = null, bool recursive = true) { OffsetY += y; if (!recursive) { return; } if (TileOnRight != null && startingTile != TileOnRight) { TileOnRight.MoveOffsetY(y); } }
public void ConnectTileToTop(Tile tile) { if (TopConnectionPoint == null) { return; } TileOnTop = tile; tile.TileOnBottom = this; var diffX = (int)(TopConnectionPoint.Value.X - tile.BottomConnectionPoint.Value.X); tile.MoveOffsetY((int)TopConnectionPoint.Value.Y + OffsetY - tile.Height); tile.MoveOffsetX(diffX + OffsetX, this); }
public void MoveOffsetX(int x, Tile startingTile = null, bool recursive = true) { OffsetX += x; if (!recursive) { return; } if (TileOnRight != null && startingTile != TileOnRight) { TileOnRight.MoveOffsetX(x, this); } if (TileOnBottom != null && startingTile != TileOnBottom) { TileOnBottom.MoveOffsetX(x, this); } }
public void ConnectTileToBottom(Tile tile) { if (BottomConnectionPoint == null) { return; } TileOnBottom = tile; tile.TileOnTop = this; var diffX = (int)(BottomConnectionPoint.Value.X - tile.TopConnectionPoint.Value.X); tile.MoveOffsetY((int)BottomConnectionPoint.Value.Y + OffsetY); tile.MoveOffsetX(diffX + OffsetX); }
public void ConnectTileToLeft(Tile tile) { if (LeftConnectionPoint == null) { return; } TileOnLeft = tile; tile.TileOnRight = this; var diffY = (int)(LeftConnectionPoint.Value.Y - tile.RightConnectionPoint.Value.Y); tile.MoveOffsetX((int)LeftConnectionPoint.Value.X + OffsetX - tile.Width, this); tile.MoveOffsetY(diffY + OffsetY, this); }
public void ConnectTileToRight(Tile tile) { if (RightConnectionPoint == null) { return; } TileOnRight = tile; tile.TileOnLeft = this; var diffY = (int)(RightConnectionPoint.Value.Y - tile.LeftConnectionPoint.Value.Y); tile.MoveOffsetX((int)RightConnectionPoint.Value.X + OffsetX); tile.MoveOffsetY(diffY + OffsetY); }
protected Tile CreateTile(string key, Tile tile) { AddTile(key, tile); return tile; }
public void AddTile(string key, Tile tile) { Width = tile.Image.Width; Height = tile.Image.Height; tiles.Add(key, tile); }