using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices.WindowsRuntime; using System.Text; using UnityEngine; public class CreateCAB : MonoBehaviour { public static void AddCab() { //print("_G.SC[0]=====================addcab==================="+_G.SC[0]); float w = DOIT.ConvertStringToNumber(_G.SC[6]); float h = DOIT.ConvertStringToNumber(_G.SC[7]); float d = DOIT.ConvertStringToNumber(_G.SC[8]); float k = 0; //List L=_G.UIT_LibraryCabinets; float ff; if(_G.SC[60] =="Creator" ) ff=DOIT.ConvertStringToNumber(_G.SC[21]); else ff = DOIT.ConvertStringToNumber(UIT.Value(Library.Cabinet,_G.SC[0],"FF")); float T = DOIT.ConvertStringToNumber(_G.SC[14]);_G.SC[14]=null;//Counter height float os; float t = _G.cat;//Panel tickness float px = 0; float py; float pz = 0; float rx = 0; float ry = 0; float rz = 0; float FromWall=0; if(_G.SC[60] !="Creator"){FromWall = DOIT.ConvertStringToNumber(UIT.Value(Library.Cabinet,_G.SC[0],Header.FW));} // print(_G.UIT_LibraryDoors[0]); // print(_G.UIT_LibraryDoors[0]); // print(UIT.Global(Header.Door,_G.G)); //print("UIT.Global(Header.Door,_G.G)===="+UIT.Global(Header.Door,_G.G)); string DoorThick=UIT.Value(Library.Door,UIT.Global(Header.Door,_G.G).Split('?')[0],Header.Thick); //print("DoorThick===="+DoorThick); float dT =DOIT.ConvertStringToNumber(DoorThick); if (_G.SC[4].IndexOf("B") != -1 || _G.SC[4]=="T1") { if (_P.KickFix) { string Kvalue = CkeckUIT("K_Value", _P.List[Preference.KICK_HEIGHT.ToString()]); if (Kvalue != "" && Kvalue != "0") k = DOIT.ConvertStringToNumber(Kvalue); } else k = DOIT.ConvertStringToNumber(_G.SC[10]); //if (_G.SC[8] == "1") { h -= k; k = 0; } } if (_G.SC[4].IndexOf("T1") != -1) { T = 0; } string PLR =CkeckUIT("Flip", "L"); if (_G.SC[100] == "FromAI"){PLR = _G.SC[23];} if (_G.SC[4].IndexOf("W") != -1) { float FromCeiling = DOIT.ConvertStringToNumber(_P.List["CAB_FROM_CEILING"]); if (_P.ListSwitch["CAB_INSTALLATION_CEILING"]) { ff = _G.HEIGHT - FromCeiling - h; } T = 0; } //Position if (PAINT.SEL == SceneModeManager.Floor.name || PAINT.SEL == SceneModeManager.Ceil.name){ px = 0; pz = 0; rx = 0; ry = 0; rz = 0; } py = -_G.HEIGHT / 2 + ff + (h + T) / 2;//-_G.HEIGHT / 2-py+h/2 if (SceneModeManager.CompareSceneMode(SceneModes.SnapOn)) { py = 100; px = 0; pz = 0; rx = 0; ry = 0; rz = 0; } string name = "cabi" + _G.OBJnum.ToString(); SceneModeManager.SelectedName = name; _G.OBJs[_G.OBJnum] = new string[100]; string[] C = _G.OBJs[_G.OBJnum]; C[0] = name; C[1] = _G.SC[0]; //_L.Cab[ind + 1];//Model------------------------------------------- C[2] = "Cabinet";//Category C[3] = "UNLOCK"; //lock or unlock C[4] = CkeckUIT("Model", _G.SC[4]); if (_G.SC[100] == "FromAI"){C[4]= _G.SC[4];} C[5] = CkeckUIT("Category", _G.SC[5])[..2]; C[6] = DOIT.CNs(w); C[7] = DOIT.CNs(h); C[8] = DOIT.CNs(d); C[9] = t.ToString(); C[10] = k.ToString(); C[11] = T.ToString(); os = d*0.5f; if (PAINT.SEL != "floor" && _G.SC[100] != "FromAI") { if ( C[4] == "W1" || C[4] == "T1" || C[4] == "W9" || C[4] == "W10"){ os = (d + dT + _G.DGap)*0.5f+FromWall;}//_G.cadt; if(C[4] == "B1" || C[4] == "B9" || C[4] == "B10" ){ os = (d+dT)*0.5f;} px = DOIT.GetScenePos("px",os); pz = DOIT.GetScenePos("pz",os); rx = DOIT.GetScenePos("rx",os); ry = DOIT.GetScenePos("ry",os); rz = DOIT.GetScenePos("rz",os); } else if(_G.SC[100] == "FromAI") { //print("_G.SC[15]========" + _G.SC[15]); px = DOIT.ConvertStringToNumber(_G.SC[15]); py = DOIT.ConvertStringToNumber(_G.SC[16]); pz = DOIT.ConvertStringToNumber(_G.SC[17]); rx = 0; ry = DOIT.ConvertStringToNumber(_G.SC[19]); rz = 0; } C[12] = _G.cadt.ToString();//cabinet doorthickness C[13] = os.ToString();//cabinet doorthickness C[14] = px.ToString() + "," + py.ToString() + "," + pz.ToString(); C[15] = px.ToString(); //pos X C[16] = py.ToString(); //pos Y C[17] = pz.ToString(); //pos C[18] = rx.ToString(); //rot X C[19] = ry.ToString(); //rot Y C[20] = rz.ToString(); //rot Z C[21] = ff.ToString(); //dis from floor if(_G.SC[100] == "FromAI") { C[21] = _G.SC[21]; } C[22] = PAINT.SEL; //Wall select or floor if(_G.SC[100] == "FromAI") { C[22] = _G.SC[22]; } C[23] = PLR; //Left/Right door //float pos = DOIT.ConvertStringToNumber(Get.CabValue(C[1], 31)); float pos = 0; float inpos = -h / 2 + k + pos; C[24] = inpos.ToString();// DOIT.getInPos(C[1]).ToString();_L.Cab[ind + 10]; //Inside height //Door patern C[25] = _G.CODEPATERN;//Get.CabValue(C[1],22); //Patern string door one //print("_G.CODEPATERN===2="+_G.CODEPATERN); C[26] = _G.CODEPATERN2;//Get.CabValue(C[1],29);//Patern string door two C[28] = _G.SC[28];//side left C[29] = _G.SC[29];//side right C[30] = "";//door patern C[31] = "";//door1 patern C[32] = "";//door3 patern ///----------KICKS------------------------ C[33] = _G.caKD.ToString(); ;//depth kick C[34] = CkeckUIT("K_Code", _G.SC[34]);//B1+ if(_P.ListSwitch["ALLOW_KICK&LEG"] ){ C[34]=_G.SC[34]; } C[35] = DOIT.CNs(k);//Kick height C[36] = "0.75";//T=thikness C[37] = "0";//Projection Kick front Left C[38] = "0";//Projection Kick front Right C[39]=CkeckUIT("R_Code", _G.SC[39]); //LIGHT INTENSITY C[40] = "Off"; if (C[4].Contains("W") && _G.SC[100] == "FromAI") { C[40] = _G.SC[40]; } //print("C[40]=====" + C[40]); //COUNTER TOP C[41] = UIT.Global(Header.Counter,_G.G);//Texture C[42] = CkeckUIT(Header.C_Code,_G.SC[42]); C[42] = DOIT.ChangeCodeOnPos(C[42],0, T.ToString() ,"_");//1.25_0_0_0_1.75_0_0_0 //COUNTER TOP SIDE C[45] = "OFF";//Counter side Left ON/OFF C[46] = "OFF";//Counter side back ON/OFF C[47] = "OFF";//Counter side right ON/OFF C[48] = "GHOST";//COLLISION or GHOST for counter if(_G.SC[100] == "FromAI" && C[22] == "floor") { C[42] = _G.SC[42]; C[45] = _G.SC[45]; C[47] = _G.SC[47]; } //FILLER C[49] = "GHOST";//COLISION or GHOST C[50] = "NONE";//Filler Left texture C[51] = "NONE";//Filler Right texture C[52] = "0";//Filler Left C[53] = "0";//Filler Right //SPLASH C[54] = UIT.Global(Header.Splash,_G.G); C[55] = "0,0,0,0";//left,hight,right,back,Tex,sizeX,sizeY,Rot,Shine C[56] = "0,0,0,0";//left,hight,right,back,Tex,sizeX,sizeY,Rot,Shine if (_G.SC[100] == "FromAI" && C[22] != "floor") { if (C[4] == "B1") { C[55] = _G.SC[55]; } if (C[5].Contains("CB")) { C[55] = _G.SC[55]; C[56] = _G.SC[56]; } } //TEXTURES int GG = _G.G; if (_G.SC[100] == "FromAI") { if (C[5].Contains("B") || C[5].Contains("T")) { GG = 1; } if (C[5].Contains("W")) { GG = 2; } if (C[22] == "floor") { GG = 3; } } C[60] = "GLOBAL" + GG.ToString();//GlobalSelectionManager.CurrentGlobalIndex.ToString();//GLOBAL/UNIQUE if (_G.SC[100] == "FromAI"){C[60]=_G.SC[60];} C[61] =_G.SC[61]; if (_G.SC[61] == "none" || _G.SC[60] == "Creator" || _G.SC[60] == "RePattern") { C[61] = UIT.Global(Header.Door, GG); } else { if (_G.SC[61] != "nodoor" && _G.SC[61]=="") { C[61] = FindDoorSelect(C); } } if (_G.SC[100] == "FromAI") { C[61] = UIT.Global(Header.Door, GG); } print("_G.SC[61]==="+_G.SC[61]); C[62] = GetBoxFinish(C[1]);//UIT.Global(Header.Int,_G.G);//GlobalSelectionManager.GetValue(GlobalOption.INTPNL_1);//BOX color code Interior C[63] = GetCodeFromExistant(Header.Kick, C, 63); //UIT.Global(Header.Kick, GG);//GlobalSelectionManager.GetValue(GlobalOption.KICK_3);//KICK C[64] = GetCodeFromExistant(Header.Ogee, C, 64); //UIT.Global(Header.Ogee, GG);//GlobalSelectionManager.GetValue(GlobalOption.OGEE_5);//OGEE color code C[65] = GetCodeFromExistant(Header.Valance, C, 65); //UIT.Global(Header.Valance, GG);//GlobalSelectionManager.GetValue(GlobalOption.VALA_6);//VALANCE color code C[66] = GetCodeFromExistant(Header.Fascia, C, 66); //UIT.Global(Header.Fascia, GG);//GlobalSelectionManager.GetValue(GlobalOption.FACIA_4);//FASCIA color code C[75] = GetCodeFromExistant(Header.Ext, C, 75); //UIT.Global(Header.Ext, GG);//GlobalSelectionManager.GetValue(GlobalOption.EXTPNL_2);//BOX FINISH PANEL C[76] = GetCodeFromExistant(Header.Ext, C, 76); //UIT.Global(Header.Ext, GG);//GlobalSelectionManager.GetValue(GlobalOption.EXTPNL_2);//_G.BSHE;//BOX SHELF C[77] = GetCodeFromExistant(Header.Ext, C, 77); //UIT.Global(Header.Ext, GG);//GlobalSelectionManager.GetValue(GlobalOption.EXTPNL_2);//BOX PAN RECOVER C[69] = FindExteriorSelect();//UIT.Global(Header.Ext, GG);//GlobalSelectionManager.GetValue(GlobalOption.EXTPNL_2);//BOX color code Exterior C[74] = UIT.Global(Header.Int, GG);//GlobalSelectionManager.GetValue(GlobalOption.INTPNL_1);//_G.BBAC;//BOX BACK C[78] = CkeckUIT(Header.Side_Panel,_G.SC[78]);//UIT.Value(Library.Cabinet,C[1],Header.Side_Panel); if( _P.ListSwitch["ALLOW_SIDES_SELECTION"] ) { string[] listSides=C[78].Split("_"); switch (C[4]) { case "B1": listSides[0]=_G.SC[78];listSides[2]=_G.SC[78]; break; case "B2": case "B3": case "B4": case "B5":case "B9": case "B10":listSides[0]=_G.SC[78];listSides[3]=_G.SC[78]; break; } //C[78].Replace("Notch", _G.SC[78]).Replace("Std", _G.SC[78]).Replace("Over", _G.SC[78]); C[78]=""; for(int i=0; i1) { foreach(string Color in ColorAvailable){ if(Color==GlobalColor){return UIT.Global(Header.Ext,_G.G);} } return ColorAvailable[0]+"?"+UIT.Value(Library.CabTexture,ColorAvailable[0],Header.Rotation); } //print("_G.G=======cc"+_G.G); return UIT.Global(Header.Ext,_G.G); } public static string GetBoxFinish(string ID) { if (_G.SC[60] == "Creator") { return UIT.Global(Header.Int, _G.G); } string Box_Finish = UIT.Value(Library.Cabinet, ID, Header.Box_finish); string Texture = UIT.Value(Library.BoxTexture, Box_Finish, Header.Texture); string c1 = UIT.Value(Library.BoxTexture, Box_Finish, Header.C1); string c2 = UIT.Value(Library.BoxTexture, Box_Finish, Header.C2); string c3 = UIT.Value(Library.BoxTexture, Box_Finish, Header.C3); string R = UIT.Value(Library.BoxTexture, Box_Finish, Header.Rotation); string CodeRecipe = Texture + "?" + c1 + "?" + c2 + "?" + c3 + "?1-1?" + R + "?1?0.5?0.05?0"; return CodeRecipe; } public static string GetCodeFromExistant(string header, string[] C, int Index) { if (C[61] != UIT.Global(header, _G.G)) { if (header == Header.Kick) return Match_Finish.Kick_From_Door(C[61]); if (header == Header.Ext) return Match_Finish.Exterior_From_Door(C[61]); } for (int i = 0; i < _G.OBJnum; i++) { if (DOIT.exist(i) && _G.OBJs[i][2] == "Cabinet") { string[] ADN = _G.OBJs[i]; if (ADN[4] == C[4] && ADN[22][..1] == C[22][..1]) { return ADN[Index]; } } } return UIT.Global(header, _G.G); } }