ScrapYard.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. using UnityEngine;
  2. using GadgetCore.API;
  3. using System.Collections.Generic;
  4. namespace ScrapYard
  5. {
  6. [Gadget("ScrapYard")]
  7. public class ScrapYard : Gadget<ScrapYard>
  8. {
  9. public const string MOD_VERSION = "1.0"; // Set this to the version of your mod.
  10. public const string CONFIG_VERSION = "1.0"; // Increment this whenever you change your mod's config file.
  11. protected override void LoadConfig()
  12. {
  13. Config.Load();
  14. string fileVersion = Config.ReadString("ConfigVersion", CONFIG_VERSION, comments: "The Config Version (not to be confused with mod version)");
  15. if (fileVersion != CONFIG_VERSION)
  16. {
  17. Config.Reset();
  18. Config.WriteString("ConfigVersion", CONFIG_VERSION, comments: "The Config Version (not to be confused with mod version)");
  19. }
  20. Config.Save();
  21. }
  22. public override string GetModDescription()
  23. {
  24. return "A mod that adds a scryp yard planet.";
  25. }
  26. protected override void Initialize()
  27. {
  28. Logger.Log("Scrap Yard v" + Info.Mod.Version);
  29. Core.logger = Logger;
  30. Texture2D texturePlanetIcon = GadgetCoreAPI.LoadTexture2D("planetScrapYard.png");
  31. Texture2D texturePlanetPrevIcon = GadgetCoreAPI.LoadTexture2D("planetScrapYardPrev.png");
  32. Texture2D texturePortalSign = GadgetCoreAPI.LoadTexture2D("signScrapYard.png");
  33. Texture2D textureBG = GadgetCoreAPI.LoadTexture2D("bgScrapYard.png");
  34. Texture2D textureBGExtension = GadgetCoreAPI.LoadTexture2D("bgScrapYardExtension.png");
  35. Texture2D textureBGTop = GadgetCoreAPI.LoadTexture2D("bgScrapYardTop.png");
  36. Texture2D textureParalex = GadgetCoreAPI.LoadTexture2D("parallax.png");
  37. Texture2D textureParalex0 = GadgetCoreAPI.LoadTexture2D("bScrapYardbg0.png");
  38. Texture2D textureParalex1 = GadgetCoreAPI.LoadTexture2D("bScrapYardbg1.png");
  39. Texture2D textureParalex2 = GadgetCoreAPI.LoadTexture2D("bScrapYardbg2.png");
  40. Texture2D textureParalex3 = GadgetCoreAPI.LoadTexture2D("bScrapYardbg3.png");
  41. Texture2D textureEntrance = GadgetCoreAPI.LoadTexture2D("entranceScrapYard.png");
  42. Texture2D textureSmallSide = GadgetCoreAPI.LoadTexture2D("sideSmallScrapYard.png");
  43. Texture2D textureBigSide = GadgetCoreAPI.LoadTexture2D("sideBigScrapYard.png");
  44. Texture2D textureMid0 = GadgetCoreAPI.LoadTexture2D("midScrapYardChunk0.png");
  45. Texture2D textureMid1 = GadgetCoreAPI.LoadTexture2D("midScrapYardChunk1.png");
  46. PlanetInfo scrapYardPlanet = new PlanetInfo(PlanetType.SPECIAL, "Scrap Yard", new GadgetCore.Util.Tuple<int, int>[] { new GadgetCore.Util.Tuple<int, int>(1, 100) });
  47. scrapYardPlanet.SetPortalInfo(texturePortalSign, texturePlanetPrevIcon, texturePlanetIcon);
  48. scrapYardPlanet.SetBackgroundInfo(textureParalex, textureParalex0, textureParalex1, textureParalex2, textureParalex3);
  49. scrapYardPlanet.SetTerrainInfo(textureEntrance, textureBG, textureMid0, textureMid1, textureBigSide, textureSmallSide);
  50. //scrapYardPlanet.OnGenerateInsideTown += GenerateTown;
  51. scrapYardPlanet.PortalUses = 300;
  52. scrapYardPlanet.OnGenerateWorld += ScrapYardGenerator.GenarateTown;
  53. scrapYardPlanet.Register("Scrap Yard");
  54. {
  55. var scrapYardShopBuilding = Object.Instantiate((GameObject)Resources.Load("prop/2501"));
  56. scrapYardShopBuilding.transform.localScale *= 8;
  57. Texture2D texture = GadgetCoreAPI.LoadTexture2D("shopStand.png");
  58. var renderer = scrapYardShopBuilding.GetComponentInChildren<Renderer>();
  59. renderer.material = new Material(Shader.Find("Unlit/Transparent"))
  60. {
  61. mainTexture = texture
  62. };
  63. GadgetCoreAPI.AddCustomResource("prop/ScrapYard/scrapYardShopBuilding", scrapYardShopBuilding);
  64. }
  65. {
  66. var scrapYardMerchant = Object.Instantiate((GameObject)Resources.Load("npc/perceval"));
  67. Texture2D textureBody = GadgetCoreAPI.LoadTexture2D("merchantBody.png");
  68. Texture2D textureHead = GadgetCoreAPI.LoadTexture2D("merchantHead.png");
  69. var gameObjectBody = scrapYardMerchant.transform.Find("e").Find("perceval").FindChild("Plane_002");
  70. var rendererBody = gameObjectBody.gameObject.GetComponentInChildren<Renderer>();
  71. rendererBody.material = new Material(Shader.Find("Unlit/Transparent"))
  72. {
  73. mainTexture = textureBody
  74. };
  75. var gameObjectHead = scrapYardMerchant.transform.Find("e").Find("perceval").FindChild("Plane");
  76. var rendererHead = gameObjectHead.gameObject.GetComponentInChildren<Renderer>();
  77. rendererHead.material = new Material(Shader.Find("Unlit/Transparent"))
  78. {
  79. mainTexture = textureHead
  80. };
  81. scrapYardMerchant.transform.Find("e").rotation = Quaternion.Euler(0f, 180f, 0f);
  82. Component.DestroyImmediate(scrapYardMerchant.GetComponent<npcTurnScript>());
  83. GadgetCoreAPI.AddCustomResource("prop/ScrapYard/scrapYardMerchant", scrapYardMerchant);
  84. }
  85. {
  86. var gameObject = Object.Instantiate((GameObject)Resources.Load("z/chunk"));
  87. var rendererBody = gameObject.GetComponentInChildren<Renderer>();
  88. rendererBody.material = new Material(Shader.Find("Unlit/Transparent"))
  89. {
  90. mainTexture = textureBG
  91. };
  92. for (int i = 0; i < 6; i++)
  93. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).gameObject);
  94. for (int i = 0; i < 16; i++)
  95. GameObject.DestroyImmediate(gameObject.transform.GetChild(1).gameObject);
  96. gameObject.transform.GetChild(0).GetChild(7).localScale += new Vector3(1.5f, 0, 0);
  97. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).GetChild(5).gameObject);
  98. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).GetChild(1).gameObject);
  99. Component.DestroyImmediate(gameObject.GetComponent<Chunk>());
  100. GadgetCoreAPI.AddCustomResource("z/ScrapYard/chunkBase", gameObject);
  101. }
  102. {
  103. var gameObject = Object.Instantiate((GameObject)Resources.Load("z/chunk"));
  104. var rendererBody = gameObject.GetComponentInChildren<Renderer>();
  105. rendererBody.material = new Material(Shader.Find("Unlit/Transparent"))
  106. {
  107. mainTexture = textureBGExtension
  108. };
  109. for (int i = 0; i < 6; i++)
  110. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).gameObject);
  111. for (int i = 0; i < 16; i++)
  112. GameObject.DestroyImmediate(gameObject.transform.GetChild(1).gameObject);
  113. for (int i = 0; i < 6; i++)
  114. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).GetChild(0).gameObject);
  115. gameObject.transform.GetChild(0).GetChild(0).localScale = new Vector3(0.4375f, 2, 1);
  116. gameObject.transform.GetChild(0).GetChild(0).localPosition = new Vector3(0.78125f, 0, 0);
  117. gameObject.transform.GetChild(0).GetChild(1).localScale = new Vector3(0.4375f, 2, 1);
  118. gameObject.transform.GetChild(0).GetChild(1).localPosition = new Vector3(-0.78125f, 0, 0);
  119. Component.DestroyImmediate(gameObject.GetComponent<Chunk>());
  120. GadgetCoreAPI.AddCustomResource("z/ScrapYard/chunkExtension", gameObject);
  121. }
  122. {
  123. var gameObject = Object.Instantiate((GameObject)Resources.Load("z/chunk"));
  124. var rendererBody = gameObject.GetComponentInChildren<Renderer>();
  125. rendererBody.material = new Material(Shader.Find("Unlit/Transparent"))
  126. {
  127. mainTexture = textureBGTop
  128. };
  129. for (int i = 0; i < 6; i++)
  130. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).gameObject);
  131. for (int i = 0; i < 16; i++)
  132. GameObject.DestroyImmediate(gameObject.transform.GetChild(1).gameObject);
  133. for (int i = 0; i < 5; i++)
  134. GameObject.DestroyImmediate(gameObject.transform.GetChild(0).GetChild(0).gameObject);
  135. gameObject.transform.GetChild(0).GetChild(0).localPosition = new Vector3(0.78125f, 0, 0);
  136. gameObject.transform.GetChild(0).GetChild(0).localScale = new Vector3(0.4375f, 2, 1);
  137. gameObject.transform.GetChild(0).GetChild(1).localPosition = new Vector3(-0.78125f, 0, 0);
  138. gameObject.transform.GetChild(0).GetChild(1).localScale = new Vector3(0.4375f, 2, 1);
  139. gameObject.transform.GetChild(0).GetChild(2).localPosition = new Vector3(0, 0.5f, 0);
  140. gameObject.transform.GetChild(0).GetChild(2).localScale = new Vector3(2f, 0.5f, 1);
  141. Component.DestroyImmediate(gameObject.GetComponent<Chunk>());
  142. GadgetCoreAPI.AddCustomResource("z/ScrapYard/chunkTop", gameObject);
  143. }
  144. }
  145. }
  146. }