public override void PlaceAttribute(EditorOverworldTile tile) { if (tile.TileMainMaterial.GetType() != typeof(GroundMainMaterial)) { return; } EditorOverworldTileAttributePlacer tileAttributePlacer = new EditorOverworldTileAttributePlacer(tile); OverworldTileAttributeRemover tileAttributeRemover = new OverworldTileAttributeRemover(tile); ITileAttribute MazeLevelEntry = (MazeLevelEntry)tile.GetAttributes().FirstOrDefault(attribute => attribute is MazeLevelEntry); if (MazeLevelEntry == null) { tileAttributeRemover.RemovePlayerSpawnpoint(); tileAttributeRemover.RemoveTileObstacle(); Logger.Log(Logger.Editor, $"Now place maze entry at {tile.GridLocation.X}, {tile.GridLocation.Y}"); tileAttributePlacer.PlaceMazeLevelEntry(); return; } tileAttributeRemover.RemoveMazeLevelEntry(); }
public override void PlaceBackground(EditorOverworldTile tile) { if (tile.TileMainMaterial.GetType() != typeof(GroundMainMaterial)) { return; } EditorOverworldTileBackgroundPlacer tileBackgroundPlacer = new EditorOverworldTileBackgroundPlacer(tile); OverworldTileBackgroundRemover tileBackgroundRemover = new OverworldTileBackgroundRemover(tile); ITileBackground overworldTilePath = (OverworldTilePath)tile.GetBackgrounds().FirstOrDefault(background => background is OverworldTilePath); if (overworldTilePath == null) { OverworldTileAttributeRemover tileAttributeRemover = new OverworldTileAttributeRemover(tile); tileAttributeRemover.RemoveTileObstacle(); tileBackgroundPlacer.PlacePath(new OverworldDefaultPathType()); return; } // This path already exists on this tile, so remove it tileBackgroundRemover.RemovePath(); }