예제 #1
0
 public void PrepareMapping()
 {
     HandlerMapping.Add(typeof(GameMenu), typeof(GameMenuHandler));
     HandlerMapping.Add(typeof(ShopMenu), typeof(ShopMenuHandler));
     HandlerMapping.Add(typeof(ItemGrabMenu), typeof(ItemGrabMenuHandler));
     HandlerMapping.Add(typeof(CraftingPage), typeof(CraftingMenuHandler));
     HandlerMapping.Add(typeof(JunimoNoteMenu), typeof(JunimoNoteMenuHandler));
 }
예제 #2
0
 public bool TryRegisterMenu(Type menuType)
 {
     if (HandlerMapping.TryGetHandler(menuType, out IMenuHandler handler))
     {
         HandlerMapping.Add(menuType, handler);
         Log.Debug($"API: Registered {menuType}, handled by {handler.GetType()}");
         return(true);
     }
     Log.Error($"API: Don't know how to handle {menuType}, not registered!");
     return(false);
 }
예제 #3
0
 private void InterceptOtherMods()
 {
     foreach (var kvp in OtherMods.AsEnumerable())
     {
         string modID = kvp.Key;
         if (!Mod.Registry.IsLoaded(modID))
         {
             continue;
         }
         Log.Debug($"{modID} detected, registering its menus:");
         foreach (var t in kvp.Value)
         {
             HandlerMapping.Add(t.Item1, t.Item2);
             Log.Debug($"  Registered {t.Item1} to be handled by {t.Item2.Name}");
         }
     }
 }