using UnityEngine; public class ConstructTALL : MonoBehaviour { public static void AddCab(int nO)//, string Name, float W, float H, float D, float T, float K, float ff, float px, float py, float pz, float rx, float ry, float rz) { //VARIABLES string[] C = _G.OBJs[nO];//CODE CABINET ADN string Name = C[0]; float W = DOIT.ConvertStringToNumber(C[6]); float HB = DOIT.ConvertStringToNumber(C[7]) - DOIT.ConvertStringToNumber(C[10]);//HB HEIGHT BOX ONLY float HBK = DOIT.ConvertStringToNumber(C[7]);//HBK HEIGHT BOX WITH KICK float HBKT = DOIT.ConvertStringToNumber(C[7]) + DOIT.ConvertStringToNumber(C[11]);//HBKT HEIGHT BOX WITH KICK AND TOP //SETTING DOOR THICKNESS float DoorThickness = Get.DoorThickness(nO); float DB = DOIT.ConvertStringToNumber(C[8]);//Depth Box float DBD = DB + DoorThickness;//Depth Box+Door float K = DOIT.ConvertStringToNumber(C[35]);//KICK HEIGHT float kf = DOIT.ConvertStringToNumber(C[33]);//Kick Front projection float t = DOIT.ConvertStringToNumber(C[9]); //tickness panels float px = DOIT.ConvertStringToNumber(C[15]);//Cabinet position x float py = DOIT.ConvertStringToNumber(C[16]);//Cabinet position y float pz = DOIT.ConvertStringToNumber(C[17]);//Cabinet position z float rx = DOIT.ConvertStringToNumber(C[18]);//Cabinet rotation angle X float ry = DOIT.ConvertStringToNumber(C[19]);//Cabinet rotation angle Y float rz = DOIT.ConvertStringToNumber(C[20]);//Cabinet rotation angle Z float kfl = DOIT.ConvertStringToNumber(C[37]);//kick front left float kfr = DOIT.ConvertStringToNumber(C[38]);//kick front right float fw50 = DOIT.ConvertStringToNumber(C[52]);//Filler Right float fw51 = DOIT.ConvertStringToNumber(C[53]);//Filler Left string[] CP = C[42].Split(","[0]);//Counter projection float T = DOIT.ConvertStringToNumber(CP[0]);//Counter Top Height float PosyK = -HBK * 0.5f + K * 0.5f;//Kick Y position float OS1 = 0;//Offset on left side float OS2 = 0;//Offset on back float OS3 = 0;//Offset on right side float OS4 = 0;//Offset on right side float RL;//Retraction Left float RR;//Retraction Right float K1w;//Kick 1 Wide float K2w;//Kick 1 Wide float K3w;//Kick 1 Wide float K4w;//Kick 1 Wide Vector3 K1pos;//K1 position Vector3 K2pos;//K1 position Vector3 K3pos;//K1 position Vector3 K4pos;//K1 position //string Captext;//Caps to add on string texshelf;//Texture shelf //string[] C81;//Recover Panel string[] KT;//Kick Texture string[] CK;//CODE KICK string[] C39;//Retraction kick Material BLACK_G;//Material for leg Vector3 CenterBox; float backBox, frontBox, leftBox, rightBox;//Position back Z of volume box float OFO = -t * 0.5f;//Ogee Fascia OffSet; //SETTING RECOVER // C81 = C[81].Split(',');//Recover Panel // if (C81[0] != "0") OS1 = 0.625f; // if (C81[1] != "0") OS2 = 0.625f; // if (C81[2] != "0") OS3 = 0.625f; if (C[50].Split('?')[0] != "NONE") { fw50 = DOIT.ConvertStringToNumber(C[50].Split("?")[3]); } if (C[51].Split('?')[0] != "NONE") { fw51 = DOIT.ConvertStringToNumber(C[51].Split("?")[3]); } if (C[49] == "COLLISION") { OS1 += fw50; OS3 += fw51; } OS4 += DoorThickness; //create BASE GameObject BASE = GameObject.CreatePrimitive(PrimitiveType.Cube); BASE.transform.localScale = new Vector3(W + OS1 + OS3 + 0.5f, HBK + 0.5f, DB + 0.5f + OS2 + OS4); BASE.name = Name; BASE.transform.parent = GameObject.Find("SCENE").transform; BASE.tag = "cabwall"; CenterBox = new(OS1 * 0.5f - OS3 * 0.5f, 0, -OS2 * 0.5f + OS4 * 0.5f); //BOX POSITION backBox = CenterBox.z + DB * 0.5f; frontBox = CenterBox.z - DB * 0.5f; leftBox = CenterBox.x - W * 0.5f; rightBox = CenterBox.x + W * 0.5f; //SIDES CODE.GetDiv(C[25]); DOSIDE.PNLNew(BASE, nO, K * 0.5f, DB * 0.5f, HB, K, kf, t, CenterBox, 0); //KICK KT = new string[] { C[63], C[62] }; if (C[73] == "null") C[73] = "LEG_F"; if (C[34] == null || C[34] == "none") { C[34] = "4.5,1,1,1,1,0"; } C[34] = C[34].Replace(",", "_"); CK = C[34].Split('_');//CODE KICK if (C[39] == "none") { C[39] = "0_0_0_0_0_0"; }//RETRACTION C39 = C[39].Split('_');//Retraction kick RL = DOIT.ConvertStringToNumber(C39[0]);//Retraction Left RR = DOIT.ConvertStringToNumber(C39[2]);//Retraction Right K1w = DB - kf - t;//Kick 1 Wide K1pos = new(leftBox + t / 2 + RL, PosyK, backBox - (DB - kf - t) * 0.5f);//K1 position K2w = W - RL - RR; K2pos = new(RL * 0.5f - RR * 0.5f, PosyK, backBox - t / 2);//K2 position K3w = DB - kf - t; K3pos = new(rightBox - t / 2 - RR, PosyK, backBox - (DB - kf - t) * 0.5f);//K3 position K4w = W + kfl + kfr - RL - RR; K4pos = new(CenterBox.x + kfr / 2 - kfl / 2 + RL * 0.5f - RR * 0.5f, PosyK, frontBox + kf + t / 2);//K4 position if (CK[1] != "0") { GameObject K1 = Createkick.Mcx("K1", K1w, K, t, K1pos.x, K1pos.y, K1pos.z, 0, -90, 0, KT[int.Parse(CK[1]) - 1]); K1.transform.parent = BASE.transform; } if (CK[2] != "0") { GameObject K2 = Createkick.Mcx("K2", K2w, K, t, K2pos.x, K2pos.y, K2pos.z, 0, 0, 0, KT[int.Parse(CK[2]) - 1]); K2.transform.parent = BASE.transform; } if (CK[3] != "0") { GameObject K3 = Createkick.Mcx("K3", K3w, K, t, K3pos.x, K3pos.y, K3pos.z, 0, 90, 0, KT[int.Parse(CK[3]) - 1]); K3.transform.parent = BASE.transform; } if (CK[4] != "0") { GameObject K4 = Createkick.Mcx("K4", K4w, K, t, K4pos.x, K4pos.y, K4pos.z, 0, 180, 0, KT[int.Parse(CK[4]) - 1]); K4.transform.parent = BASE.transform; } //LEGS if (C[73].IndexOf("LEG") != -1 && C[34].Split('_')[0] != "0") { BLACK_G = UIT_MATERIAL.GetMaterial("333333_Glossy"); float lh = K;//Legs height float offset = 1; if (lh == 0) { lh = DOIT.ConvertStringToNumber(C[21]); offset = -1; } Vector3 P; Vector3 R = new(0, 0, 0); P = new(leftBox + 2 + RL + 2, -HBKT / 2 + lh * offset / 2, frontBox + _G.caKD + 2); LEGS.Standard(BASE, "L1", lh, P, R, BLACK_G); P = new(leftBox + RL + 2, -HBKT / 2 + lh * offset / 2, backBox - 2); LEGS.Standard(BASE, "L2", lh, P, R, BLACK_G); P = new(rightBox - RR - 2, -HBKT / 2 + lh * offset / 2, backBox - 2); LEGS.Standard(BASE, "L3", lh, P, R, BLACK_G); P = new(rightBox - RR - 2, -HBKT / 2 + lh * offset / 2, frontBox + _G.caKD + 2); LEGS.Standard(BASE, "L4", lh, P, R, BLACK_G); } //CreateDoors if (C[61] != "none") { C[25] = DC.Resize(C[25], W, HB, nO); string[] codeD1 = C[25].Split("_"[0]); GameObject DOOR = Createdoor.Patern(codeD1, nO); DOOR.transform.position = new Vector3(CenterBox.x, K / 2, frontBox - DoorThickness * 0.5f); DOOR.transform.parent = BASE.transform; } //FILLER GameObject FL; GameObject FR; if (C[50].Split('?')[0] != "NONE") { FL = CreateBoxPnl.Filler("FL", fw50, HB, t, leftBox - fw50 * 0.5f, K / 2, frontBox + t * 0.5f, 0, 0, 0, C[50]); FL.transform.parent = BASE.transform; } if (C[51].Split('?')[0] != "NONE") { FR = CreateBoxPnl.Filler("FR", fw51, HB, t, rightBox + fw51 * 0.5f, K / 2, frontBox + t * 0.5f, 0, 0, 0, C[51]); FR.transform.parent = BASE.transform; } //SPLASH DOBS.SplashARROWN(BASE, C[55], W, HBK, -DB, C[54], backBox); //RECOVER Recover.AddRecoverOnCab(BASE, C, leftBox, backBox, rightBox); //ANCHORE POINT CREATE.Point(BASE, "PO1", leftBox - OFO, HBK * 0.5f, frontBox - OFO); CREATE.Point(BASE, "PO2", leftBox - OFO, HBK * 0.5f, backBox); CREATE.Point(BASE, "PO3", rightBox + OFO, HBK * 0.5f, backBox); CREATE.Point(BASE, "PO4", rightBox + OFO, HBK * 0.5f, frontBox - OFO); CREATE.Point(BASE, "FL", leftBox, HBK * 0.5f, frontBox + t * 0.5f); CREATE.Point(BASE, "FR", rightBox, HBK * 0.5f, frontBox + t * 0.5f); //2D VIEW // CREATE.Point(BASE, "PBLU", CenterBox.x-W * 0.5f, HBK * 0.5f, CenterBox.z+DBD * 0.5f);//P1 // CREATE.Point(BASE, "PBRU", CenterBox.x+W * 0.5f, HBK * 0.5f,CenterBox.z+DBD * 0.5f);//P2 // CREATE.Point(BASE, "PFLU", CenterBox.x-W * 0.5f, HBK * 0.5f, CenterBox.z-DBD * 0.5f);//P3 // CREATE.Point(BASE, "PFRU", CenterBox.x+W * 0.5f, HBK * 0.5f, CenterBox.z-DBD * 0.5f);//P4 // CREATE.Point(BASE, "PBLB", CenterBox.x-W * 0.5f, -HBK * 0.5f, CenterBox.z+DBD * 0.5f);//P1 // CREATE.Point(BASE, "PBRB", CenterBox.x+W * 0.5f, -HBK * 0.5f, CenterBox.z+DBD * 0.5f);//P2 // CREATE.Point(BASE, "PFLB", CenterBox.x-W * 0.5f, -HBK * 0.5f, CenterBox.z-DBD * 0.5f);//P3 // CREATE.Point(BASE, "PFRB", CenterBox.x+W * 0.5f, -HBK * 0.5f, CenterBox.z-DBD * 0.5f);//P4 CREATE.EmptyPoint(BASE, "PBLU", leftBox, HBKT * 0.5f, backBox);//P1 CREATE.EmptyPoint(BASE, "PBRU", rightBox, HBKT * 0.5f, backBox);//P2 CREATE.EmptyPoint(BASE, "PFLU", leftBox, HBKT * 0.5f, frontBox);//P3 CREATE.EmptyPoint(BASE, "PFRU", rightBox, HBKT * 0.5f, frontBox);//P4 CREATE.EmptyPoint(BASE, "PBLB", leftBox, -HBKT * 0.5f, backBox);//P1 CREATE.EmptyPoint(BASE, "PBRB", rightBox, -HBKT * 0.5f, backBox);//P2 CREATE.EmptyPoint(BASE, "PFLB", leftBox, -HBKT * 0.5f, frontBox);//P3 CREATE.EmptyPoint(BASE, "PFRB", rightBox, -HBKT * 0.5f, frontBox);//P4 //Over Edge if (C[1] == "GFOUR") { CODE.GetDiv(C[25]); float toph = DOIT.ConvertStringToNumber(C[11]); float k = DOIT.ConvertStringToNumber(C[35]); if (_G.Rdiv1.Count != 0) {; addcontour.OnOpening(BASE, _G.Rdiv1, DB - t, _G.ROWY1[0] + k / 2 - toph / 2, DOIT.ConvertStringToNumber(C[6]), Get.BoxTex(C, 7)); } if (_G.Rdiv2.Count != 0) {; addcontour.OnOpening(BASE, _G.Rdiv2, DB - t, _G.ROWY1[1] + k / 2 - toph / 2, DOIT.ConvertStringToNumber(C[6]), Get.BoxTex(C, 7)); } if (_G.Rdiv3.Count != 0) {; addcontour.OnOpening(BASE, _G.Rdiv3, DB - t, _G.ROWY1[2] + k / 2 - toph / 2, DOIT.ConvertStringToNumber(C[6]), Get.BoxTex(C, 7)); } if (_G.Rdiv4.Count != 0) {; addcontour.OnOpening(BASE, _G.Rdiv4, DB - t, _G.ROWY1[3] + k / 2 - toph / 2, DOIT.ConvertStringToNumber(C[6]), Get.BoxTex(C, 7)); } if (_G.Rdiv5.Count != 0) {; addcontour.OnOpening(BASE, _G.Rdiv5, DB - t, _G.ROWY1[4] + k / 2 - toph / 2, DOIT.ConvertStringToNumber(C[6]), Get.BoxTex(C, 7)); } if (_G.Rdiv6.Count != 0) { addcontour.OnOpening(BASE, _G.Rdiv6, DB - t, _G.ROWY1[5] + k / 2 - toph / 2, DOIT.ConvertStringToNumber(C[6]), Get.BoxTex(C, 7)); } } //RigidBody BASE.AddComponent(); BASE.GetComponent().useGravity = false; BASE.GetComponent().isKinematic = true; BASE.GetComponent().detectCollisions = true; BASE.GetComponent().isTrigger = true; //SHELF AddShelf.OnOpening(C, BASE, K, W, T, DB, t, "BASE", CenterBox); if (!string.IsNullOrEmpty(C[88])) { AddShelf.Interior(BASE, C[88], W - 1, HB - 1, DB - 1, C[62], CenterBox); } texshelf = C[62]; if (C[87].IndexOf("1") != -1) { texshelf = C[69]; } if (C[25].IndexOf("w") != -1) { float k = DOIT.ConvertStringToNumber(C[35]); //ROW1 if (_G.Rdiv1.Count != 0) { addWinner.AddingOnWinner(BASE, _G.Rdiv1, DB - t, _G.ROWY1[0] + k / 2, DOIT.ConvertStringToNumber(C[6]), texshelf); } if (_G.Rdiv2.Count != 0) { addWinner.AddingOnWinner(BASE, _G.Rdiv2, DB - t, _G.ROWY1[1] + k / 2, DOIT.ConvertStringToNumber(C[6]), texshelf); } if (_G.Rdiv3.Count != 0) { addWinner.AddingOnWinner(BASE, _G.Rdiv3, DB - t, _G.ROWY1[2] + k / 2, DOIT.ConvertStringToNumber(C[6]), texshelf); } if (_G.Rdiv4.Count != 0) { addWinner.AddingOnWinner(BASE, _G.Rdiv4, DB - t, _G.ROWY1[3] + k / 2, DOIT.ConvertStringToNumber(C[6]), texshelf); } if (_G.Rdiv5.Count != 0) { addWinner.AddingOnWinner(BASE, _G.Rdiv5, DB - t, _G.ROWY1[4] + k / 2, DOIT.ConvertStringToNumber(C[6]), texshelf); } if (_G.Rdiv6.Count != 0) { addWinner.AddingOnWinner(BASE, _G.Rdiv6, DB - t, _G.ROWY1[5] + k / 2, DOIT.ConvertStringToNumber(C[6]), texshelf); } } // string Unique_Name = UIT.Value(Library.Cabinet,C[1],Header.ID); // Captext = Unique_Name + "\n" + DOIT.CSs(C[6]) + "x" + DOIT.CSs(C[7]); // CAPS.Show(Captext, BASE, DB, 0, -DB / 2 - 5); CAPS.ShowTOP(C[0][4..], BASE, 0, HB * 0.5f, frontBox, Color.blue); CAPS.ShowFRONT(C[0][4..], BASE, 0, 0, frontBox, Color.blue); //ADD LIGHT // Vector3 LightPosition=new (CenterBox.x, K*0.5f, frontBox - DoorThickness*0.5f); // Vector3 LightRotation=new(0,0,0); // GameObject ImageLigth = SelectLight.Add_light_on_Base_Cabinet(W,-HBK/2+K,LightPosition,LightRotation,C[40]); // ImageLigth.transform.SetParent(BASE.transform); //("C[22] ==="+C[22]); Mesure.Addpoints("TALL", BASE); //Stet in scene BASE.transform.position = new Vector3(px, py, pz); BASE.transform.localRotation = Quaternion.Euler(rx, ry, rz); BASE.AddComponent(typeof(MoveObject)); BASE.GetComponent().material = _G.INV; } }