ItemUtil.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using UnityEngine;
  2. using GadgetCore.API;
  3. namespace ShipDecorations
  4. {
  5. public static class ItemUtil
  6. {
  7. public static int CreatePlacableDecoItem(string tileImgPath, string itemImgPath, string name)
  8. {
  9. Texture2D texture2D = GadgetCoreAPI.LoadTexture2D(tileImgPath);
  10. Texture2D texture2D2 = GadgetCoreAPI.LoadTexture2D(itemImgPath);
  11. GameObject gameObject = Object.Instantiate<GameObject>((GameObject)Resources.Load("prop/2501"));
  12. Renderer renderer = gameObject.GetComponentInChildren<Renderer>();
  13. renderer.material = new Material(Shader.Find("Unlit/Transparent"))
  14. {
  15. mainTexture = texture2D
  16. };
  17. ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, name, "", texture2D2, -1, default, null, null, null, null);
  18. itemInfo.Register(name);
  19. new TileInfo(TileType.NONSOLID, texture2D, gameObject, itemInfo).Register(name);
  20. return itemInfo.GetID();
  21. }
  22. public static int CreatePlacableSlideDoorItem(string tileImgPath, string tileOpenImgPath, string itemImgPath, string name)
  23. {
  24. Texture2D texture2D = GadgetCoreAPI.LoadTexture2D(tileImgPath);
  25. Texture2D texture2DOpen = GadgetCoreAPI.LoadTexture2D(tileOpenImgPath);
  26. Texture2D texture2DItem = GadgetCoreAPI.LoadTexture2D(itemImgPath);
  27. GameObject hostObject = new GameObject("door");
  28. hostObject.transform.localPosition = new Vector3(10f, 0, 0);
  29. {
  30. GameObject closedDoorObject = Object.Instantiate<GameObject>((GameObject)Resources.Load("prop/2501"));
  31. Renderer renderer = closedDoorObject.GetComponentInChildren<Renderer>();
  32. renderer.material = new Material(Shader.Find("Transparent/Diffuse"))
  33. {
  34. mainTexture = texture2D
  35. };
  36. closedDoorObject.transform.SetParent(hostObject.transform);
  37. closedDoorObject.SetActive(true);
  38. }
  39. {
  40. GameObject openDoorObject = Object.Instantiate<GameObject>((GameObject)Resources.Load("prop/2501"));
  41. Renderer renderer = openDoorObject.GetComponentInChildren<Renderer>();
  42. renderer.material = new Material(Shader.Find("Transparent/Diffuse"))
  43. {
  44. mainTexture = texture2DOpen
  45. };
  46. openDoorObject.transform.SetParent(hostObject.transform);
  47. openDoorObject.SetActive(false);
  48. }
  49. GameObject doorTriggerObject = new GameObject();
  50. doorTriggerObject.transform.localScale = new Vector3(4f, 4f, 5);
  51. doorTriggerObject.transform.localPosition = new Vector3(10f, 0, 0);
  52. doorTriggerObject.transform.SetParent(hostObject.transform);
  53. doorTriggerObject.layer = 0;
  54. BoxCollider doorTrigger = doorTriggerObject.AddComponent<BoxCollider>();
  55. doorTrigger.size = new Vector3(1, 1, 1);
  56. doorTrigger.isTrigger = true;
  57. AudioSource audio = doorTriggerObject.AddComponent<AudioSource>();
  58. var script = doorTrigger.gameObject.AddComponent<DoorColliderScript>();
  59. ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, name, "", texture2DItem, -1, default, null, null, null, null);
  60. itemInfo.Register(name);
  61. new TileInfo(TileType.NONSOLID, texture2D, hostObject, itemInfo).Register(name);
  62. return itemInfo.GetID();
  63. }
  64. }
  65. }