Core.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using GadgetCore;
  2. using GadgetCore.API;
  3. using HarmonyLib;
  4. using System;
  5. using System.Reflection;
  6. namespace IronmanChest
  7. {
  8. internal static class Core
  9. {
  10. public static GadgetLogger logger;
  11. public static int settingAmountPages
  12. {
  13. get
  14. {
  15. var fieldInfo = GetFieldInfo("settingAmountPages");
  16. if (fieldInfo != null)
  17. return (int)fieldInfo.GetValue(null);
  18. return 12;
  19. }
  20. }
  21. public static int settingAmountSlots
  22. {
  23. get
  24. {
  25. var fieldInfo = GetFieldInfo("settingAmountSlots");
  26. if (fieldInfo != null)
  27. return (int)fieldInfo.GetValue(null);
  28. return 5 * 6;
  29. }
  30. }
  31. private static FieldInfo GetFieldInfo(string f)
  32. {
  33. bool active = false;
  34. foreach (var gadget in Gadgets.ListAllEnabledGadgets())
  35. if (gadget.Info?.ModName == "Storage Expansion")
  36. {
  37. active = true;
  38. break;
  39. }
  40. if (!active)
  41. return null;
  42. foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
  43. {
  44. if (a.FullName.StartsWith("StorageExpansion,"))
  45. {
  46. return AccessTools.Field(a.GetType("StorageExpansion.Core"), f);
  47. }
  48. }
  49. return null;
  50. }
  51. public static bool IsSoftcore()
  52. {
  53. foreach (var gadget in Gadgets.ListAllEnabledGadgets())
  54. if (gadget.Info?.ModName == "Softcore")
  55. return true;
  56. return false;
  57. }
  58. }
  59. }