/// <summary> /// Destroy the feature for the given tile and layer /// </summary> void destroyFeature(Tile tile, TileFeature.Layer featureLayerToRemove) { if (inUseControllers.TryGetValue(tile.parentChunkKey, out GridController chunkController)) { chunkController.removeFeature(tile, featureLayerToRemove); } }
/// <summary> /// Remove a feature from a tile by the layer /// </summary> public void removeFeature(Tile tile, TileFeature.Layer featureLayerToRemove) { if (visibleFeatures.TryGetValue(tile.axialKey, out Dictionary <TileFeature.Layer, GameObject> features)) { if (features.TryGetValue(featureLayerToRemove, out GameObject oldFeatureModel)) { features.Remove(featureLayerToRemove); Destroy(oldFeatureModel); } } }
/// <summary> /// Make a new event /// </summary> /// <param name="tile"></param> /// <param name="feature"></param> public TileFeatureDestroyed(Tile tile, TileFeature.Layer removedLayer) { updatedTile = tile; this.removedLayer = removedLayer; }
/// <summary> /// Remove the feature on the given layer for the given tile. /// </summary> /// <param name="selectedTile"></param> /// <param name="layer"></param> public abstract void remove(Tile tile, TileFeature.Layer layer);
/// <summary> /// Remove the feature for the selected tile layer /// </summary> public override void remove(Tile tile, TileFeature.Layer layer) { this[getChunkKeyFor(tile)]?.remove(tile, layer); }