// Fonction qui remplace une tuile existante par un nouveau type de tuile public void ReplaceTile(TileCoordinates deadTileCoords, int newTileType, out GridTile newTile) { GridTile deadTile = _gameGridTiles[deadTileCoords.tileX, deadTileCoords.tileY]; float tileWidth = deadTile.tileDimensions.x; // Assignation du bon prefab et spawnPos GameObject tilePrefab = GetTileFromID(newTileType); Vector3 spawnPos = deadTile.transform.position; // Instantiation GameObject go = Instantiate(tilePrefab, spawnPos, Quaternion.identity); // TEMP Instantiation sous le DebugManager if (DebugManager.instance != null) { go.transform.SetParent(DebugManager.instance.gridDebug.transform); } // Assignation des paramètres sur les OBJETS de tuile newTile = go.GetComponent <GridTile>(); newTile.tileX = deadTile.tileX; newTile.tileY = deadTile.tileY; newTile.tileName = deadTile.tileName; newTile.tileType = newTileType; newTile.PlanetHeat = deadTile.PlanetHeat; newTile.InitializeTile(deadTile.tileDimensions, _currentGridMode, _currentGridInfo); newTile.TransferObjectList(deadTile.CurrentObjectsInTile); // Remplacement de la tuile dans les arrays2D _gameGrid[deadTile.tileX, deadTile.tileY] = newTileType; _gameGridTiles[deadTile.tileX, deadTile.tileY] = newTile; deadTile.TriggerNeighbourTilesUpdates(); deadTile.DisableTile(); }