void SubscribeAllTiles(Tilemap map, Dictionary <Vector3Int, TileData> tiles, List <MockRuleTile> subscribedTiles) { var size = map.size; for (int row = -size.y / 2; row < size.y; row++) { for (int col = -size.x / 2; col < size.x; col++) { var pos = new Vector3Int(col, row, 0); MockRuleTile tile = map.GetTile(pos) as MockRuleTile; if (tile != null) { if (!subscribedTiles.Contains(tile)) { Action <Vector3Int, TileData> act = null; act = (position, tiledata) => { if (!tiles.ContainsKey(position)) { tiles.Add(position, tiledata); } else { tiles[position] = tiledata; } }; tile.OnGetTileData += act; subscribedTiles.Add(tile); } } } } }
void ConverteToBseTile(Tilemap map) { var size = map.size; for (int row = -size.y / 2; row < size.y; row++) { for (int col = -size.x / 2; col < size.x; col++) { var pos = new Vector3Int(col, row, 0); MockRuleTile oldTile = map.GetTile(pos) as MockRuleTile; if (oldTile != null) { if (!old_new_Tiles.ContainsKey(oldTile)) { var newTile = oldTile.RealTile; map.SetTile(pos, newTile); old_new_Tiles.Add(oldTile, newTile); } else { map.SetTile(pos, old_new_Tiles[oldTile]); } } } } map.RefreshAllTiles(); Debug.Log("Convrting tilemap to real tiles in " + map.gameObject.name + " completed"); }
void ConverteToSimpleTile(Tilemap map) { var size = map.size; for (int row = -size.y / 2; row < size.y; row++) { for (int col = -size.x / 2; col < size.x; col++) { var pos = new Vector3Int(col, row, 0); RuleTile oldTile = map.GetTile(pos) as RuleTile; if (oldTile != null) { MockRuleTile newTile; if (!old_new_Tiles.ContainsKey(oldTile)) { newTile = new MockRuleTile(oldTile); old_new_Tiles.Add(oldTile, newTile); } else { newTile = old_new_Tiles[oldTile]; } map.SetTile(pos, newTile); } } } }