using UnityEngine; using GadgetCore.API; namespace ShipDecorations { public static class ItemUtil { public static int CreatePlacableDecoItem(string tileImgPath, string itemImgPath, string name) { Texture2D texture2D = GadgetCoreAPI.LoadTexture2D(tileImgPath); Texture2D texture2D2 = GadgetCoreAPI.LoadTexture2D(itemImgPath); GameObject gameObject = Object.Instantiate((GameObject)Resources.Load("prop/2501")); Renderer renderer = gameObject.GetComponentInChildren(); renderer.material = new Material(Shader.Find("Unlit/Transparent")) { mainTexture = texture2D }; ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, name, "", texture2D2, -1, default, null, null, null, null); itemInfo.Register(name); new TileInfo(TileType.NONSOLID, texture2D, gameObject, itemInfo).Register(name); return itemInfo.GetID(); } public static int CreatePlacableSlideDoorItem(string tileImgPath, string tileOpenImgPath, string itemImgPath, string name) { Texture2D texture2D = GadgetCoreAPI.LoadTexture2D(tileImgPath); Texture2D texture2DOpen = GadgetCoreAPI.LoadTexture2D(tileOpenImgPath); Texture2D texture2DItem = GadgetCoreAPI.LoadTexture2D(itemImgPath); GameObject hostObject = new GameObject("door"); hostObject.transform.localPosition = new Vector3(10f, 0, 0); { GameObject closedDoorObject = Object.Instantiate((GameObject)Resources.Load("prop/2501")); Renderer renderer = closedDoorObject.GetComponentInChildren(); renderer.material = new Material(Shader.Find("Transparent/Diffuse")) { mainTexture = texture2D }; closedDoorObject.transform.SetParent(hostObject.transform); closedDoorObject.SetActive(true); } { GameObject openDoorObject = Object.Instantiate((GameObject)Resources.Load("prop/2501")); Renderer renderer = openDoorObject.GetComponentInChildren(); renderer.material = new Material(Shader.Find("Transparent/Diffuse")) { mainTexture = texture2DOpen }; openDoorObject.transform.SetParent(hostObject.transform); openDoorObject.SetActive(false); } GameObject doorTriggerObject = new GameObject(); doorTriggerObject.transform.localScale = new Vector3(4f, 4f, 5); doorTriggerObject.transform.localPosition = new Vector3(10f, 0, 0); doorTriggerObject.transform.SetParent(hostObject.transform); doorTriggerObject.layer = 0; BoxCollider doorTrigger = doorTriggerObject.AddComponent(); doorTrigger.size = new Vector3(1, 1, 1); doorTrigger.isTrigger = true; AudioSource audio = doorTriggerObject.AddComponent(); var script = doorTrigger.gameObject.AddComponent(); ItemInfo itemInfo = new ItemInfo(ItemType.GENERIC, name, "", texture2DItem, -1, default, null, null, null, null); itemInfo.Register(name); new TileInfo(TileType.NONSOLID, texture2D, hostObject, itemInfo).Register(name); return itemInfo.GetID(); } } }