ModernUO/Projects/UOContent/Regions/RegionJsonRegistration.cs
Kamron Batman 0a9bfb0558
fix: Drastically simplifies regions (#1400)
### Summary
- [X] Gets rid of the Dtos
- [X] Simplifies the json serializer registration
- [X] Adds a custom `RegionByName` JsonConverter that can look up other regions that have already been registered.


### BREAKING CHANGE
1. **Child regions must appear after their parents in the JSON file**
2. In the regions json file, _"Parent"_ can no longer be just a string. It must be an object that includes the map.
      - ```json
        "Parent": { "Name": "Britain", "Map": "Felucca" }
        ```
2023-05-19 16:39:40 -07:00

63 lines
2.3 KiB
C#

namespace Server.Regions;
public static class RegionJsonRegistration
{
public static void Configure()
{
RegionJsonSerializer.Register<BaseRegion>();
RegionJsonSerializer.Register<TownRegion>();
RegionJsonSerializer.Register<DungeonRegion>();
RegionJsonSerializer.Register<GuardedRegion>();
// Travel registricted regions
RegionJsonSerializer.Register<GreenAcresRegion>();
RegionJsonSerializer.Register<JailRegion>();
RegionJsonSerializer.Register<MondainRegion>();
RegionJsonSerializer.Register<NewMaginciaRegion>();
RegionJsonSerializer.Register<NoHousingRegion>();
RegionJsonSerializer.Register<NoHousingGuardedRegion>();
RegionJsonSerializer.Register<NoTravelSpellsAllowedRegion>();
RegionJsonSerializer.Register<TwistedWealdDesertRegion>();
// Damage boost regions
RegionJsonSerializer.Register<CrystalFieldRegion>();
RegionJsonSerializer.Register<IcyRiverRegion>();
RegionJsonSerializer.Register<AcidRiverRegion>();
RegionJsonSerializer.Register<PoisonedTreeRegion>();
RegionJsonSerializer.Register<LostCityEntranceRegion>();
RegionJsonSerializer.Register<PoisonedCemeteryRegion>();
// Wrong Jail
RegionJsonSerializer.Register<WrongLevel3Region>();
RegionJsonSerializer.Register<WrongJailRegion>();
// Blackthorn Dungeon
RegionJsonSerializer.Register<BlackthornDungeonRegion>();
RegionJsonSerializer.Register<CousteauPerronHouseRegion>();
RegionJsonSerializer.Register<ApprenticeRegion>();
RegionJsonSerializer.Register<SeaMarketRegion>();
// Exploring the Deep
RegionJsonSerializer.Register<ExploringDeepCreaturesRegion>();
RegionJsonSerializer.Register<UnderwaterRegion>();
// Exodus Dungeon
RegionJsonSerializer.Register<ExodusDungeonRegion>();
// Doom
RegionJsonSerializer.Register<DoomGuardianRegion>();
// Tokuno
RegionJsonSerializer.Register<TokunoDocksRegion>();
// Tomb of Kings
RegionJsonSerializer.Register<TombOfKingsRegion>();
RegionJsonSerializer.Register<ToKBridgeRegion>();
// Myrmidex
RegionJsonSerializer.Register<BattleRegion>();
}
}