public void Cache(int x, int y, int tile, int NW, int N, int NE, int E, int SE, int S, int SW, int W) { var terrain = TerrainManager.Instance.GetTerrain(tile); if (terrain == null) { _sprites = null; return; } _terrain = terrain; Helper = new TerrainHelper(_terrain); Helper.CachePoints(_terrain.Type); var tileset = TilesetManager.Instance.GetTileset(terrain.Tileset); if (tileset == null) { _sprites = null; return; } destX = x; destY = y; switch (terrain.Type) { case TerrainType.RMVX_Ground: _sprites[0] = SetSprite(Helper.CalculateNW_RMVX_Ground(tile, NW, N, W), 0); _sprites[1] = SetSprite(Helper.CalculateNE_RMVX_Ground(tile, N, NE, E), 1); _sprites[2] = SetSprite(Helper.CalculateSW_RMVX_Ground(tile, W, SW, S), 2); _sprites[3] = SetSprite(Helper.CalculateSE_RMVX_Ground(tile, S, SE, E), 3); break; case TerrainType.RMVX_Cliff: _sprites[0] = SetSprite(Helper.CalculateNW_RMVX_Cliff(tile, NW, N, W), 0); _sprites[1] = SetSprite(Helper.CalculateNE_RMVX_Cliff(tile, N, NE, E), 1); _sprites[2] = SetSprite(Helper.CalculateSW_RMVX_Cliff(tile, W, SW, S), 2); _sprites[3] = SetSprite(Helper.CalculateSE_RMVX_Cliff(tile, S, SE, E), 3); break; } }
public TerrainSelectedEventArgs(TerrainTile terrain) { _terrain = terrain; }
/// <summary> /// Sets a terrain tile /// </summary> /// <param name="layer">Layer to set the terrain to</param> /// <param name="terrain">TerrainTile to set down</param> /// <param name="destX">X co-ordinate to place to</param> /// <param name="destY">Y co-ordinate to place to</param> public void SetTerrain(EditorTileLayer layer, TerrainTile terrain, int destX, int destY) { if (destX < 0 || destY < 0 || destX > Width - 1 || destY > Height - 1) return; layer.Tiles[destX, destY].Tileset = 0; layer.Tiles[destX, destY].X = destX; layer.Tiles[destX, destY].Y = destY; layer.Tiles[destX, destY].SrcX = 0; layer.Tiles[destX, destY].SrcY = 0; layer.Tiles[destX, destY].Terrain = terrain.ID; }
/// <summary> /// Handles the <see cref="DialogTerrain"/> form, checks all the directories and builds the <see cref="Terrain"/> object. /// </summary> public void NewTerrain() { using (var dialog = new DialogTerrain()) { var result = dialog.ShowDialog(); if (result != DialogResult.OK) return; var name = dialog.TerrainName; var type = dialog.TerrainType; var tileset = dialog.TilesetID; var x = dialog.SelectionX; var y = dialog.SelectionY; var width = dialog.SelectionWidth; var height = dialog.SelectionHeight; if (CheckTerrain(name)) { MessageBox.Show(@"Terrain with this name already exists.", @"New Terrain"); return; } var index = 1; while (true) { var exit = true; foreach (var tmp in Terrain) { if (tmp.ID == index) exit = false; } if (exit) break; index++; } var terrain = new TerrainTile(index, name, type, tileset, x, y, width, height); Terrain.Add(terrain); SaveTerrain(index); if (TerrainAdded != null) TerrainAdded.Invoke(this, new TerrainAddedEventArgs(terrain)); } }
public TerrainAddedEventArgs(TerrainTile terrainTile) { _terrainTile = terrainTile; }
public TerrainChangedEventArgs(TerrainTile oldTerrain, TerrainTile newTerrain) { _oldTerrain = oldTerrain; _newTerrain = newTerrain; }