CoreGadget.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using GadgetCore.API;
  2. using GadgetCore.Util;
  3. using RecipeMenuCore.API;
  4. using System.Collections;
  5. using UnityEngine;
  6. namespace Subworlds
  7. {
  8. [Gadget("SubworldCore", LoadAfter: new string[] { "RecipeMenuCore" }, Dependencies: new string[] { "RecipeMenuCore" })]
  9. public class CoreGadget : Gadget<CoreGadget>
  10. {
  11. public const string MOD_VERSION = "1.0"; // Set this to the version of your mod.
  12. public const string CONFIG_VERSION = "1.0"; // Increment this whenever you change your mod's config file.
  13. protected override void LoadConfig()
  14. {
  15. Config.Load();
  16. string fileVersion = Config.ReadString("ConfigVersion", CONFIG_VERSION, comments: "The Config Version (not to be confused with mod version)");
  17. if (fileVersion != CONFIG_VERSION)
  18. {
  19. Config.Reset();
  20. Config.WriteString("ConfigVersion", CONFIG_VERSION, comments: "The Config Version (not to be confused with mod version)");
  21. }
  22. Config.Save();
  23. }
  24. public override string GetModDescription()
  25. {
  26. return "A mod that adds ships that can be reaided.";
  27. }
  28. protected override void Initialize()
  29. {
  30. Logger.Log("Subworlds v" + Info.Mod.Version);
  31. Core.logger = Logger;
  32. ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, "port5", "", null as Texture2D).Register("port5");
  33. TileInfo tile = new TileInfo(TileType.INTERACTIVE, null as Texture2D, new GameObject("port5"), itemInfo).Register("port5");
  34. Core.itemOldTex = new ItemInfo(ItemType.GENERIC, "Old Tec", "Some piece of old\ntechnology", GadgetCoreAPI.LoadTexture2D("Core/iOldTec.png"));
  35. ItemRegistry.Singleton.Register(Core.itemOldTex, "oldtec");
  36. Core.itemOldTexShield = new ItemInfo(ItemType.OFFHAND, "Old Tec Shield", "", GadgetCoreAPI.LoadTexture2D("Core/iOldTecShield.png"), Stats: new EquipStats(1, 1, 1, 1, 3, 0),
  37. HeldTex: GadgetCoreAPI.LoadTexture2D("Core/iOldTecShield.png"));
  38. ItemRegistry.Singleton.Register(Core.itemOldTexShield, "oldtecshield");
  39. Core.itemOldTexHelmet = new ItemInfo(ItemType.HELMET, "Old Tec Helmet", "", GadgetCoreAPI.LoadTexture2D("Core/iOldTecHelmet.png"), Stats: new EquipStats(1, 1, 1, 1, 3, 0),
  40. HeadTex: GadgetCoreAPI.LoadTexture2D("Core/hOldTecHelmet.png"));
  41. ItemRegistry.Singleton.Register(Core.itemOldTexHelmet, "oldtechelmet");
  42. Core.itemOldTexArmor = new ItemInfo(ItemType.ARMOR, "Old Tec Armor", "", GadgetCoreAPI.LoadTexture2D("Core/iOldTecArmor.png"), Stats: new EquipStats(1, 1, 1, 1, 3, 0),
  43. BodyTex: GadgetCoreAPI.LoadTexture2D("Core/bOldTecArmor.png"), ArmTex: GadgetCoreAPI.LoadTexture2D("Core/aOldTecArmor.png"));
  44. ItemRegistry.Singleton.Register(Core.itemOldTexArmor, "oldtecarmor");
  45. Core.itemOldTexDroid = new ItemInfo(ItemType.DROID, "Old Tec Droid", "", GadgetCoreAPI.LoadTexture2D("Core/iOldTecDroid.png"), Stats: new EquipStats(1, 1, 1, 1, 3, 0),
  46. BodyTex: GadgetCoreAPI.LoadTexture2D("Core/dOldTecDroidBase.png"), HeadTex: GadgetCoreAPI.LoadTexture2D("Core/dOldTecDroidTop.png"));
  47. ItemRegistry.Singleton.Register(Core.itemOldTexDroid, "oldtecdroid");
  48. Core.itemOldTexMod = new ItemInfo(ItemType.MOD, "GearModStackSize+", "GEAR MOD\nAttach to weapons\nand armor in Mech City.", GadgetCoreAPI.LoadTexture2D("Core/iOldTecMod.png"));
  49. ItemRegistry.Singleton.Register(Core.itemOldTexMod, "oldtecmod");
  50. var recipePage = new RecipePage(RecipePageType.UniversalCrafter, "Old Tec", GadgetCoreAPI.LoadTexture2D("Core/recipesOldTec.png")).Register();
  51. recipePage.AddRecipePageEntry(new RecipePageEntry(Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 133, Core.itemOldTexShield.GetID(), allwaysShowInput: true));
  52. recipePage.AddRecipePageEntry(new RecipePageEntry(Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 123, Core.itemOldTexHelmet.GetID(), allwaysShowInput: true));
  53. recipePage.AddRecipePageEntry(new RecipePageEntry(Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 103, Core.itemOldTexArmor.GetID(), allwaysShowInput: true));
  54. recipePage.AddRecipePageEntry(new RecipePageEntry(Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 113, Core.itemOldTexDroid.GetID(), allwaysShowInput: true));
  55. recipePage.AddRecipePageEntry(new RecipePageEntry(Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 210, Core.itemOldTexMod.GetID(), allwaysShowInput: true));
  56. var universalCrafter = ((CraftMenuInfo)MenuRegistry.Singleton["Gadget Core:Crafter Menu"]);
  57. universalCrafter.AddCraftPerformer(CraftMenuInfo.CreateSimpleCraftPerformer(
  58. Tuple.Create(new int[] { Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 133 }, new Item(Core.itemOldTexShield.GetID(), 1, 0, 0, 0, new int[3], new int[3]), 0)));
  59. universalCrafter.AddCraftPerformer(CraftMenuInfo.CreateSimpleCraftPerformer(
  60. Tuple.Create(new int[] { Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 123 }, new Item(Core.itemOldTexHelmet.GetID(), 1, 0, 0, 0, new int[3], new int[3]), 0)));
  61. universalCrafter.AddCraftPerformer(CraftMenuInfo.CreateSimpleCraftPerformer(
  62. Tuple.Create(new int[] { Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 103 }, new Item(Core.itemOldTexArmor.GetID(), 1, 0, 0, 0, new int[3], new int[3]), 0)));
  63. universalCrafter.AddCraftPerformer(CraftMenuInfo.CreateSimpleCraftPerformer(
  64. Tuple.Create(new int[] { Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 113 }, new Item(Core.itemOldTexDroid.GetID(), 1, 0, 0, 0, new int[3], new int[3]), 0)));
  65. universalCrafter.AddCraftPerformer(CraftMenuInfo.CreateSimpleCraftPerformer(
  66. Tuple.Create(new int[] { Core.itemOldTex.GetID(), Core.itemOldTex.GetID(), 210 }, new Item(Core.itemOldTexMod.GetID(), 1, 0, 0, 0, new int[3], new int[3]), 0)));
  67. tile.OnInteract += Tile_OnInteract;
  68. }
  69. private IEnumerator Tile_OnInteract()
  70. {
  71. InstanceTracker.PlayerScript.Portal(5);
  72. yield break;
  73. }
  74. }
  75. }