public static void SetCurrentMansus(Mansus mansus) { if (mansus == CurrentMansus) { return; } if (mansus != DefaultMansus) { SetCurrentMansus(DefaultMansus); // Reset to default, and then apply modification } CurrentMansus = mansus; var tabletop = Registry.Get <TabletopManager>(); if (mansus.Map != null) { var mapAnimation = MansusAnim.GetValue(tabletop) as MapAnimation; mapAnimation.GetComponent <Image>().sprite = mansus.Map; } var doorSlots = DoorSlots.GetValue(tabletop.mapTokenContainer) as DoorSlot[]; foreach (var door in doorSlots) { var doorName = door.portalType.ToString().ToLower(); if (mansus.Doors.ContainsKey(doorName)) { ModifyDoor(door, mansus.Doors[doorName]); } } }
private static void OnLegacyLoad(ServiceInitializationEvent <TabletopManager> .PostInit e) { BackupDefaultMansus(e.Service); var legacy = Registry.Get <Character>().ActiveLegacy.Extra(); if (legacy.ContainsKey("mansus") && legacy["mansus"].ToString() != "") { LegacyMansus = Registry.Get <Compendium>().GetEntityById <Mansus>(legacy["mansus"].ToString()); } else { LegacyMansus = DefaultMansus; } SetCurrentMansus(LegacyMansus); }
private static void BackupDefaultMansus(TabletopManager tabletop) { if (DefaultMansus != null) { return; } var mapAnimation = MansusAnim.GetValue(tabletop) as MapAnimation; var doorSlots = DoorSlots.GetValue(tabletop.mapTokenContainer) as DoorSlot[]; DefaultMansus = new Mansus("default") { Map = mapAnimation.GetComponent <Image>().sprite, Doors = new Dictionary <string, Door>() }; foreach (var door in doorSlots) { var doorName = door.portalType.ToString().ToLower(); DefaultMansus.Doors[doorName] = BackupDoor(door); } Registry.Get <Compendium>().TryAddEntity(DefaultMansus); }