private void AddBackgroundSprites(SerialisableTile serialisableTile, InGameMazeTile tile) { InGameMazeTileBackgroundPlacer tileBackgroundPlacer = new InGameMazeTileBackgroundPlacer(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.PlaceBackground <MazeTileBaseWater>(); } else { Logger.Error($"Unknown TileBackgroundId {serialisableTileBackground.TileBackgroundId}"); } } }
private void AddCornerFillers(SerialisableTile serialisableTile, InGameMazeTile tile) { InGameMazeTileBackgroundPlacer tileBackgroundPlacer = new InGameMazeTileBackgroundPlacer(tile); // corner filler is also an IBackground foreach (SerialisableTileCornerFiller serialisableTileCornerFiller in serialisableTile.TileCornerFillers) { if (Enum.TryParse(serialisableTileCornerFiller.TileCorner, out TileCorner tileCorner)) { tileBackgroundPlacer.PlaceCornerFiler(tileCorner); } else { Logger.Error($"Could not parse the TileCorner value{serialisableTileCornerFiller.TileCorner}"); } } }