using Slicer; using TMPro; using UnityEngine; using UnityEngine.UI; public class DoorShow : MonoBehaviour { static Material Mat; public static void DIY_Pnl(string TextureID) { print("TextureID===="+TextureID); string Model = UIT.TogOn("MODELS"); Mat = UIT_MATERIAL.GetMaterial(TextureID); GameObject Inputs = Get.o2(_G.PON, "INPUTS"); DOIT.AllChildOff(Inputs); float d, eh,ev, ie, Gap, ct,w = 20, h = 30; eh = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); ev = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); Gap = 0.1f; switch (Model) { case "D_01": d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.625f)); Model_D_01(w, h, d, Mat); break; case "D_02":case "D_03":case "D_04":case "D_05":case "D_09":case "D_10": d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.625f)); Model_D(w, h, d, ct, eh,ev, Gap, Mat); break; // case "D_03": // d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // eh = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); // ev = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); // ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // Gap = 0.1f; // d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.625f)); // Model_D_03(w, h, d, ct, eh,ev, Gap, Mat); // break; // d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // eh = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); // ev = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); // ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // Gap = 0f; // Model_D_04(w, h, d, ct, eh,ev, Gap, Mat); // break; // d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // eh = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); // ev = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); // ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // Gap = 0f; // Model_D_05(w, h, d, ct, eh,ev, Gap, Mat); // break; // d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // eh = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); // ev = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); // ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // Gap = 0f; // Model_D_09(w, h, d, ct, eh,ev, Gap, Mat); // break; // d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // eh = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); // ev = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); // ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // Gap = 0f; // Model_D_10(w, h, d, ct, eh,ev, Gap, Mat); // break; } } public static void DIY_PnlFromPanel() { string Color=UIT.TogOn("TEXTCOL"); string Model = UIT.TogOn("MODELS"); Mat = UIT_MATERIAL.GetMaterial(Color); print("fROM DIY_PnlFromPanel====Color="+Color); print("fROM DIY_PnlFromPanel====Model="+Model); //GameObject Inputs = Get.o2(_G.PON, "INPUTS"); //DOIT.AllChildOff(Inputs); float d, eh,ev, ie, Gap, ct,w = 20, h = 30; eh = 2;// DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_H", 2f)); ev = 2;//DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "E_V", 2f)); ct = 0.25f;//DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); Gap = 0.1f; switch (Model) { case "20": d = 0.625f;//DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.625f)); Model_D_01(w, h, d, Mat); break; case "21":case "22":case "23":case "24":case "25":case "26":case "27":case "28":case "29":case "30":case "31":case "32":case "33":case "34": d = 0.625f;//DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.625f)); Model_D(w, h, d, ct, eh,ev, Gap, Mat); break; } } ///MODELS public static void Model_D_01(float w, float h, float d, Material Mat) { GameObject Door = new("DOOR"); AddMCX.AddCenter(Door, w, h, d, d, 0, Mat); LibraryCreator.Add3DtoScene(Door, w, h); } public static void Model_D(float w, float h, float d, float ct, float eh, float ev, float Gap, Material Mat) { GameObject Door = new("DOOR"); AddMCX.AddCenter(Door, w, h, d, ct, 0, Mat); AddMCX.AddEdge(Door, w, h, d, eh,ev, Mat);//GameObject Panel, float w,float h,float d,float e,Material Mat LibraryCreator.Add3DtoScene(Door, w, h); } // public static void Model_D_02(float w, float h, float d, Material Mat) // { // GameObject Door = new("DOOR"); // AddMCX.AddCenter(Door, w, h, d, d, 90, Mat); // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_03(float w, float h, float d, float ct, float eh, float ev,float Gap, Material Mat) // { // // float d=DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // // float e=DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // // float ct=DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // // float w=20; float h=30; float Gap=0.1f; // GameObject Door = new("DOOR"); // AddMCX.AddCenter(Door, w, h, d, ct, 0, Mat); // AddMCX.AddEdge(Door, w, h, d, eh,ev, Mat); // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_04(float w, float h, float d, float ct, float eh, float ev, float Gap, Material Mat) // { // // float d=DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // // float e=DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // // float ct=DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // // float w=20; float h=30; float Gap=0f; // GameObject Door = new("DOOR"); // AddMCX.AddCenter(Door, w, h, d, ct, 0, Mat); // AddMCX.AddEdge(Door, w, h, d, eh,ev, Mat);//GameObject Panel, float w,float h,float d,float e,Material Mat // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_05(float w, float h, float d, float ct, float eh, float ev, float Gap, Material Ma) // { // float d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // float e = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // float ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // float sw = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Slat", 2f)); // float w = 20; float h = 30; float Gap = 0.1f; // GameObject Door = new("DOOR"); // AddCenter(Door, w, h, d, 0.1f, 0); // AddEdge(Door, w, h, d, e, Gap); // AddSlat_Vertical(Door, w, h, ct - 0.1f, sw, 0); // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_06(GameObject Inputs) // { // float d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // float e = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // float ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // float sw = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Slat", 2f)); // float w = 20; float h = 30; float Gap = 0f; // GameObject Door = new("DOOR"); // AddCenter(Door, w, h, d, 0.1f, 0); // AddEdge(Door, w, h, d, e, Gap); // AddSlat_Vertical(Door, w, h, ct - 0.1f, sw, 0); // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_07(GameObject Inputs) // { // float d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // float e = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // float ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // float ie = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "IEdges", 1f)); // float w = 20; float h = 30; float Gap = 0.1f; // GameObject Door = new("DOOR"); // AddCenter(Door, w, h, d, ct, 0); // AddEdge(Door, w, h, d, e, Gap); // AddInteriorEdge(Door, w, h, d, ct, e, ie, "TRBL");//Top,Left,Bottom,Right // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_08(GameObject Inputs) // { // float d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // float e = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // float ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // float ie = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "IEdges", 1f)); // float w = 20; float h = 30; float Gap = 0f; // GameObject Door = new("DOOR"); // AddCenter(Door, w, h, d, ct, 0); // AddEdge(Door, w, h, d, e, Gap); // AddInteriorEdge(Door, w, h, d, ct, e, ie, "TRBL");//Top,Left,Bottom,Right // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_09(GameObject Inputs) // { // float d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // float e = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // float ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // float ie = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "IEdges", 1f)); // float w = 20; float h = 30; float Gap = 0.1f; // GameObject Door = new("DOOR"); // AddCenter(Door, w, h, d, ct, 0); // AddEdge(Door, w, h, d, e, Gap); // AddInteriorEdge(Door, w, h, d, ct, e, ie, "TB"); // LibraryCreator.Add3DtoScene(Door, w, h); // } // public static void Model_D_10(GameObject Inputs) // { // float d = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Thick", 0.75f)); // float e = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "Edges", 2f)); // float ct = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "CThick", 0.25f)); // float ie = DOIT.ConvertStringToNumber(LibraryCreator.SetInput(Inputs, "IEdges", 1f)); // float w = 20; float h = 30; float Gap = 0; // GameObject Door = new("DOOR"); // AddCenter(Door, w, h, d, ct, 0); // AddEdge(Door, w, h, d, e, Gap); // AddInteriorEdge(Door, w, h, d, ct, e, ie, "TB"); // LibraryCreator.Add3DtoScene(Door, w, h); // } //CREATE MCX public static void CreateMCX(string name, GameObject door, Vector3 Dim, Vector3 Pos, Vector3 Rot, float R) { GameObject C = GameObject.CreatePrimitive(PrimitiveType.Cube); C.transform.localScale = Dim; C.transform.eulerAngles = Rot; C.transform.position = Pos; C.transform.parent = door.transform; C.GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; Mat.SetFloat("_rotation", R); C.GetComponent().material = Instantiate(Mat); C.name = name; C.layer = 7; } public static void AddCenter(GameObject Door, float w, float h, float d, float ct, float RotateTexture) { Vector3 Dim = new(w, h, ct); Vector3 Pos = new(0, 0, d * 0.5f - ct * 0.5f); Vector3 Rot = new(0, 0, 0); CreateMCX("Center", Door, Dim, Pos, Rot, RotateTexture); } public static void AddEdge(GameObject Door, float w, float h, float d, float e, float g) { //Top Vector3 Dim = new(w - e * 2 - g * 2, e, d); Vector3 Pos = new(0, h * 0.5f - e * 0.5f, 0); Vector3 Rot = new(0, 0, 0); CreateMCX("Top", Door, Dim, Pos, Rot, 90); //Right Dim = new(e, h, d); Pos = new(w * 0.5f - e * 0.5f, 0, 0); Rot = new(0, 0, 0); CreateMCX("Right", Door, Dim, Pos, Rot, 0); //Bottom Dim = new(w - e * 2 - g * 2, e, d); Pos = new(0, -h * 0.5f + e * 0.5f, 0); Rot = new(0, 0, 0); CreateMCX("Bottom", Door, Dim, Pos, Rot, 90); //Left Dim = new(e, h, d); Pos = new(-w * 0.5f + e * 0.5f, 0, 0); Rot = new(0, 0, 0); CreateMCX("Right", Door, Dim, Pos, Rot, 0); } public static void AddInteriorEdge(GameObject Door, float w, float h, float dt, float ct, float e, float ie, string side) { float die = (dt - ct) * 0.5f; //Top Vector3 Dim = new(w - e - e, ie, die); Vector3 Pos = new(0, h * 0.5f - e - ie * 0.5f, dt * 0.5f - ct - die * 0.5f); Vector3 Rot = new(0, 0, 0); CreateMCX("InteriorTop", Door, Dim, Pos, Rot, 90); //Bottom Dim = new(w - e - e, ie, die); Pos = new(0, -h * 0.5f + e + ie * 0.5f, dt * 0.5f - ct - die * 0.5f); Rot = new(0, 0, 0); CreateMCX("Interiorbottom", Door, Dim, Pos, Rot, 90); if (side == "TRBL") { //Right Dim = new(ie, h - e - e - ie * 2, die); Pos = new(w * 0.5f - e - ie * 0.5f, 0, dt * 0.5f - ct - die * 0.5f); Rot = new(0, 0, 0); CreateMCX("SmallTop", Door, Dim, Pos, Rot, 0); //Small left Dim = new(ie, h - e - e - ie * 2, die); Pos = new(-w * 0.5f + e + ie * 0.5f, 0, dt * 0.5f - ct - die * 0.5f); Rot = new(0, 0, 0); CreateMCX("SmallTop", Door, Dim, Pos, Rot, 0); } } public static void AddSlat_Vertical(GameObject Panel, float w, float h, float d, float sw, float R) { int Qty = (int)(w / (sw + 0.25f)); sw = w / Qty - 0.25f; float posx = -w * 0.5f + sw * 0.5f; Vector3 Dim; Vector3 Pos; Vector3 Rot = new(0, 0, 0); //Center for (int i = 0; i < Qty; i++) { Dim = new(sw, h, d); Pos = new(posx, 0, 0); posx += sw + 0.25f; CreateMCX("Lat", Panel, Dim, Pos, Rot, R); } } public static void AddSlat_Horizontal(GameObject Panel, float w, float h, float d, float sw, float R) { int Qty = (int)(h / (sw + 0.25f)); sw = h / Qty - 0.25f; float posy = -h * 0.5f + sw * 0.5f; Vector3 Dim; Vector3 Pos; Vector3 Rot = new(0, 0, 0); //Center for (int i = 0; i < Qty; i++) { Dim = new(w, sw, d); Pos = new(0, posy, 0); posy += sw + 0.25f; CreateMCX("Lat", Panel, Dim, Pos, Rot, R); } } public void AllTextures() { bool isAllSelect = transform.GetComponent().isOn; foreach (Transform Texture in Get.o2(_G.PON + "/TEXTCOL/Viewport", "Content").transform) { Texture.GetComponent().isOn = isAllSelect; } } public static void FromModel(string Model, float W, float H, float dt, float ct, float EdgeH, float EdgeV, float Gap, string ColorID) { string Rotation = UIT.Value(Library.CabTexture,ColorID,Header.Rotation); //float Edge=EdgeH; if(_G.PON=="CABDOORpnl" && _G.PATH=="free" || _G.PON=="CABDOORpnl" && _G.PATH=="laminam" ){ EdgeH=DOIT.ConvertStringToNumber(Get.o2("CABDOORpnl/Input","Edge").GetComponent().text); } if( Model=="D_29") {Model="D_11";} if(ColorID.Split('?').Length==1)ColorID+="?"+Rotation; Material Mat=UIT_MATERIAL.GetMaterial(ColorID); GameObject Door=Instantiate(Resources.Load("DOOR_MODEL/"+Model, typeof(GameObject))) as GameObject; Door.AddComponent(); EdgeV=EdgeH; Createdoor.AddTexture(Door,"d",Mat, W,H); Door.name = "Door"+Model; Door.layer = 7; LibraryCreator.Add3DtoScene(Door, W, H); if(H().Size=new(W/SizeV,H/SizeH,1f); Door.transform.GetComponent().Slices=new(EdgeScaleV,EdgeScaleH,1f); } foreach(Transform Mcx in Door.transform) { Mcx.GetComponent().renderingLayerMask = 4; } } public static void FromModelKIT(string ID, float W, float H, float dt, float ct, float EdgeH, float EdgeV, float Gap, string ColorID){ print("IDKit====="+ID); string PaternCode=UIT.Value(Library.Panel,ID,Header.Pattern_Door_1); string PaternCode2=UIT.Value(Library.Panel,ID,Header.Pattern_Door_2); print("IDKit=====PaternCode==="+PaternCode); GameObject Door = Createdoor.PaternKit(ID,ColorID,PaternCode.Split("_")); Door.AddComponent(); Door.name = "DoorKit"; Door.layer = 7; LibraryCreator.Add3DtoScene(Door, W, H); } }