ItemUtil.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using GadgetCore.API;
  2. using UnityEngine;
  3. namespace MultiplayerClientSpawn
  4. {
  5. public static class ItemUtil
  6. {
  7. public static int CreatePlacableSpawnItem(string tileImgPath, string itemImgPath, string partAPath, string partBPath, string name)
  8. {
  9. Texture2D texturePreview = GadgetCoreAPI.LoadTexture2D(tileImgPath);
  10. Texture2D textureItem = GadgetCoreAPI.LoadTexture2D(itemImgPath);
  11. Texture2D texturePartA = GadgetCoreAPI.LoadTexture2D(partAPath);
  12. Texture2D texturePartB = GadgetCoreAPI.LoadTexture2D(partBPath);
  13. GameObject gameObject = Object.Instantiate<GameObject>((GameObject)Resources.Load("prop/" + 2403));
  14. {
  15. Renderer renderer = gameObject.transform.GetChild(0).gameObject.GetComponentInChildren<Renderer>();
  16. renderer.material = new Material(Shader.Find("Unlit/Transparent"))
  17. {
  18. mainTexture = texturePartA
  19. };
  20. }
  21. {
  22. Renderer renderer = gameObject.transform.GetChild(1).gameObject.GetComponentInChildren<Renderer>();
  23. renderer.material = new Material(Shader.Find("Unlit/Transparent"))
  24. {
  25. mainTexture = texturePartB
  26. };
  27. }
  28. {
  29. Renderer renderer = gameObject.transform.GetChild(2).gameObject.GetComponentInChildren<ParticleSystemRenderer>();
  30. renderer.material = new Material(Shader.Find("Unlit/Transparent"))
  31. {
  32. mainTexture = texturePartA
  33. };
  34. }
  35. Component.Destroy(gameObject.GetComponentInChildren<SpawnBlock>());
  36. gameObject.AddComponent<MultiplayerSpawnBlock>();
  37. ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, name, "", textureItem, -1, default, null, null, null, null);
  38. itemInfo.Register(name, -1, true);
  39. new TileInfo(TileType.NONSOLID, texturePreview, gameObject, itemInfo).Register(name, -1, true);
  40. return itemInfo.GetID();
  41. }
  42. }
  43. }