private void AddBackgroundSprites(SerialisableTile serialisableTile, EditorMazeTile tile) { EditorMazeTileBackgroundPlacer tileBackgroundPlacer = new EditorMazeTileBackgroundPlacer(tile); foreach (SerialisableTileBackground serialisableTileBackground in serialisableTile.TileBackgrounds) { Type type = Type.GetType(serialisableTileBackground.BackgroundType); if (type.Equals(typeof(SerialisableTilePathBackground))) { SerialisableTilePathBackground serialisableTilePathBackground = (SerialisableTilePathBackground)JsonUtility.FromJson(serialisableTileBackground.SerialisedData, type); tileBackgroundPlacer.PlacePath(new MazeLevelDefaultPathType(), new TileConnectionScoreInfo(serialisableTilePathBackground.TileConnectionScore)); } else if (type.Equals(typeof(SerialisableTileBaseGround))) { SerialisableTileBaseGround serialisableTileBaseGround = (SerialisableTileBaseGround)JsonUtility.FromJson(serialisableTileBackground.SerialisedData, type); tileBackgroundPlacer.PlaceGround(new MazeLevelDefaultGroundType(), new TileConnectionScoreInfo(serialisableTileBaseGround.TileConnectionScore)); } else if (type.Equals(typeof(SerialisableTileBaseWater))) { tileBackgroundPlacer.PlaceCoveringBaseWater(); } else { Logger.Error($"Unknown TileBackgroundType {serialisableTileBackground.BackgroundType}"); } } }
public override void PlaceBackground(EditorMazeTile tile) { if (tile.TileMainMaterial.GetType() != typeof(GroundMainMaterial)) { return; } EditorMazeTileBackgroundPlacer tileBackgroundPlacer = new EditorMazeTileBackgroundPlacer(tile); MazeTileBackgroundRemover tileBackgroundRemover = new MazeTileBackgroundRemover(tile); ITileBackground mazeTilePath = (MazeTilePath)tile.GetBackgrounds().FirstOrDefault(background => background is MazeTilePath); if (mazeTilePath == null) { MazeTileAttributeRemover tileAttributeRemover = new MazeTileAttributeRemover(tile); tileAttributeRemover.RemoveTileObstacle(); tileBackgroundPlacer.PlacePath(new MazeLevelDefaultPathType()); return; } // This path already exists on this tile, so remove it tileBackgroundRemover.RemovePath(); }