ItemUtil.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using GadgetCore.API;
  2. using UnityEngine;
  3. namespace PlatformBlock
  4. {
  5. public static class ItemUtil
  6. {
  7. public static int CreatePlacablePlatformItem(string tileImgPath, string itemImgPath, string name)
  8. {
  9. Texture2D textureTile = GadgetCoreAPI.LoadTexture2D(tileImgPath);
  10. Texture2D textureItem = 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("Transparent/Diffuse"))
  14. {
  15. mainTexture = textureTile
  16. };
  17. GameObject collidereObject = new GameObject();
  18. collidereObject.transform.localScale = new Vector3(4.0f, 0, 5);
  19. collidereObject.transform.localPosition = new Vector3(10f, 2, 0);
  20. collidereObject.transform.SetParent(gameObject.transform);
  21. collidereObject.layer = 11;
  22. BoxCollider collider = collidereObject.AddComponent<BoxCollider>();
  23. collider.size = new Vector3(1, 0, 1);
  24. GameObject collidereDeactivationTriggerObject = new GameObject();
  25. collidereDeactivationTriggerObject.transform.localScale = new Vector3(4.7f, 3.8f, 5);
  26. collidereDeactivationTriggerObject.transform.localPosition = new Vector3(10f, 0, 0);
  27. collidereDeactivationTriggerObject.transform.SetParent(gameObject.transform);
  28. collidereDeactivationTriggerObject.layer = 0;
  29. BoxCollider deactivationTrigger = collidereDeactivationTriggerObject.AddComponent<BoxCollider>();
  30. deactivationTrigger.size = new Vector3(1, 1, 1);
  31. deactivationTrigger.isTrigger = true;
  32. deactivationTrigger.gameObject.AddComponent<PlatformColliderScript>();
  33. GameObject collidereOnTopTriggerObject = new GameObject();
  34. collidereOnTopTriggerObject.transform.localScale = new Vector3(4.3f, 3.98f, 5);
  35. collidereOnTopTriggerObject.transform.localPosition = new Vector3(10f, 4, 0);
  36. collidereOnTopTriggerObject.transform.SetParent(gameObject.transform);
  37. collidereOnTopTriggerObject.layer = 0;
  38. BoxCollider onTopTrigger = collidereOnTopTriggerObject.AddComponent<BoxCollider>();
  39. onTopTrigger.size = new Vector3(1, 1, 1);
  40. onTopTrigger.isTrigger = true;
  41. onTopTrigger.gameObject.AddComponent<PlatformOnTopScript>();
  42. ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, name, "", textureItem);
  43. int itemID = ItemRegistry.Singleton.Register(itemInfo, name);
  44. Core.logger.Log("Registerd ItemID for " + name + ":" + itemID);
  45. if (itemID < 0)
  46. throw new System.Exception("Could not register ItemInfo");
  47. TileInfo tileInfo = new TileInfo(TileType.NONSOLID, textureTile, gameObject, itemInfo);
  48. int tileID = TileRegistry.Singleton.Register(tileInfo, name);
  49. Core.logger.Log("Registerd TileID for " + name + ":" + tileID);
  50. if (tileID < 0)
  51. throw new System.Exception("Could not register TileInfo");
  52. return itemID;
  53. }
  54. }
  55. }