private void AddBackgroundSprites(SerialisableTile serialisableTile, InGameOverworldTile tile) { InGameOverworldTileBackgroundPlacer tileBackgroundPlacer = new InGameOverworldTileBackgroundPlacer(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 OverworldDefaultPathType(), new TileConnectionScoreInfo(serialisableTilePathBackground.TileConnectionScore)); } else if (type.Equals(typeof(SerialisableTileBaseWater))) { tileBackgroundPlacer.PlaceBackground <OverworldTileBaseWater>(); } else if (type.Equals(typeof(SerialisableTileBaseGround))) { SerialisableTileBaseGround serialisableTileBaseGround = (SerialisableTileBaseGround)JsonUtility.FromJson(serialisableTileBackground.SerialisedData, type); tileBackgroundPlacer.PlaceGround(new OverworldDefaultGroundType(), new TileConnectionScoreInfo(serialisableTileBaseGround.TileConnectionScore)); } else { Logger.Error($"Unknown background of type {type}"); } } }
private void AddCornerFillers(SerialisableTile serialisableTile, InGameOverworldTile tile) { InGameOverworldTileBackgroundPlacer tileBackgroundPlacer = new InGameOverworldTileBackgroundPlacer(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}"); } } }