using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.UI; public class DUPLICATE : MonoBehaviour { public InputField zplus; public InputField xplus; public InputField yplus; public InputField zminus; public InputField xminus; public InputField yminus; public void StartPNL() { CommandHandler.Instance.BeforeDataTemp = null; SceneModeManager.Instance.SetSceneMode(SceneModes.Duplicate); //ObjectFocus.SelectedFocusCamera(SceneModeManager.SelectedName); Get.o2("HIDER", "DUPLICATEpnl").SetActive(true); Get.o2("HIDER", "DUPLICATEpnl").transform.localPosition=new(0,-50,0); //int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); string add = "12"; if (SceneModeManager.SelectedName.IndexOf("cabi") != -1) { add = "0"; } if (SceneModeManager.SelectedName.IndexOf("stoo") != -1) { add = "6"; } zplus.text = add;//DOIT.CNs(W/2); xplus.text = add;//DOIT.CNs(D/2); yplus.text = add;//DOIT.CNs(D/2); zminus.text = add;//DOIT.CNs(W/2); xminus.text = add;//DOIT.CNs(D/2); yminus.text = add;//DOIT.CNs(D/2); } public void Paste() { SceneModeManager.Instance.SetSceneMode(SceneModes.Duplicate); float dx = 0;//DOIT.ConvertStringToNumber(xplus.text); float dz = 0;//DOIT.ConvertStringToNumber(zplus.text); float dy = 0;//DOIT.ConvertStringToNumber(zplus.text); //float dxm=DOIT.ConvertStringToNumber(xminus.text); //float dzm=DOIT.ConvertStringToNumber(zminus.text); float DXplus=DOIT.ConvertStringToNumber(xplus.text); float DXminus=DOIT.ConvertStringToNumber(xminus.text); float DZplus=DOIT.ConvertStringToNumber(zplus.text); float DZminus=DOIT.ConvertStringToNumber(xminus.text); if (name == "BZ") { dz += DZplus; } if (name == "BX") { dx += DXplus; } if (name == "BY") { dy += DOIT.ConvertStringToNumber(yplus.text); } if (name == "B-Z") { dz += DZminus; } if (name == "B-X") { dx += DXminus; } if (name == "B-Y") { dy += DOIT.ConvertStringToNumber(yminus.text); } int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); float W = DOIT.ConvertStringToNumber(_G.OBJs[nO][6]); float H = DOIT.ConvertStringToNumber(_G.OBJs[nO][7]); float D = DOIT.ConvertStringToNumber(_G.OBJs[nO][8]); string Name = _G.OBJs[nO][0][..4] + _G.OBJnum.ToString(); _G.OBJs[_G.OBJnum] = new string[100]; string[] C = _G.OBJs[_G.OBJnum]; for (int i = 0; i < 100; i++) { C[i] = _G.OBJs[nO][i]; } C[0] = Name; float a = -DOIT.ConvertStringToNumber(C[19]); float xf = Mathf.Cos(a * Mathf.Deg2Rad); float zf = Mathf.Sin(a * Mathf.Deg2Rad); SceneModeManager.SelectedName= Name; Vector3 DR=(W+DXplus)*SceneModeManager.Selected.transform.right; Vector3 DL=-(W+DXplus)*SceneModeManager.Selected.transform.right; Vector3 DF=(D+DZplus)*SceneModeManager.Selected.transform.forward; Vector3 DB=-(D+DZminus)*SceneModeManager.Selected.transform.forward; if(C[2]=="Panel"){ if(C[22]=="floor") DR=(W+DXplus)*SceneModeManager.Selected.transform.forward; else{ DR=(D+DXplus)*SceneModeManager.Selected.transform.right; } } if (name == "BX") { C[15] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][15]) + DR.x).ToString(); C[17] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][17]) + DR.z).ToString(); } if (name == "B-X") { C[15] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][15]) + DL.x).ToString(); C[17] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][17]) + DL.z).ToString(); } if (name == "BZ") { C[15] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][15]) + DF.x).ToString(); C[17] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][17]) + DF.z).ToString(); } if (name == "B-Z") { C[15] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][15]) + DB.x).ToString(); C[17] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][17]) + DB.z).ToString(); } if (name == "BY") { C[16] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][16]) + (dy + H)).ToString(); } if (name == "B-Y") { C[16] = (DOIT.ConvertStringToNumber(_G.OBJs[nO][16]) - (dy + H)).ToString(); } if(CommandHandler.Instance!=null){ //CommandHandler.Instance.AddToHistory(new CreateCommand(_G.OBJnum)); } _G.nO =_G.OBJnum; Construct(C[5], _G.OBJs[_G.OBJnum][0],C); _G.OBJs[_G.OBJnum][89] = _G.OBJs[_G.OBJnum][0]; _G.OBJnum += 1; if(new List(){"wind","pati","door","open"}.Contains(C[0][..4])){ HOLE.RefreshAllWalls(); } DOIT.CloseALLPNL(); SceneModeManager.Instance.SetSceneMode(SceneModes.Install); _MOL.SetMolding(); } public void PlaceIt() { SceneModeManager.Instance.SetSceneMode(SceneModes.Duplicate); int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); string Name = _G.OBJs[nO][0][..4] + _G.OBJnum.ToString(); print("-----------placeit----------------"+Name); _G.OBJs[_G.OBJnum] = new string[100]; string[] C = _G.OBJs[_G.OBJnum]; for (int i = 0; i < 100; i++) { C[i] = _G.OBJs[nO][i]; } C[0] = Name; C[89] = C[0]; if (SceneModeManager.SelectedName.IndexOf("cabi") != -1) { _G.CODEPATERN = C[25]; _G.CODEPATERN2 = C[26]; _G.SC[14]=C[14]; //_G.addOBJ = "cabi"; } _G.addOBJ = _G.OBJs[nO][0][..4]; print("C[42]=====D==="+C[42]); _G.nO = _G.OBJnum; DOIT.CloseALLPNL(); _G.SC[13]="DUPLICATE"; //SceneModeManager.SelectedName=C[0]; _M.PH(3, 230, "ffffff", 1, 1); PAINT.SEL = "ON"; SceneModeManager.Instance.SetSceneMode(SceneModes.Install); //_G.SC[13]=""; } public static void ConstructPosition(string c5, string c0) { SceneModeManager.SelectedName=c0; int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); string[] C = _G.OBJs[_G.OBJnum]; C[15] = "0"; //pos X C[17] = "0"; //pos Z C[22] = PAINT.SEL; if (PAINT.SEL != "floor") { float os = DOIT.ConvertStringToNumber(C[8])*0.5f; if(C[13]!=null){if(C[13]!="none")os=DOIT.ConvertStringToNumber(C[13]);} C[15] = DOIT.GetScenePos("px",os).ToString(); C[17] = DOIT.GetScenePos("pz",os).ToString(); C[18] = DOIT.GetScenePos("rx",os).ToString(); C[19] = DOIT.GetScenePos("ry",os).ToString(); C[20] = DOIT.GetScenePos("rz",os).ToString(); } Construct(c5,c0,C); } public static void Construct(string c5, string c0,string[] C) { //int OBJnum=_G.OBJnum; if (c5 == "BA") CreateCAB.CabDispatch(C); if (c5 == "WA") CreateCAB.CabDispatch(C); if (c5 == "TA") ConstructTALL.AddCab(_G.nO); if (c5 == "CB") ConstructCORNERBASE.AddCab(_G.nO); if (c5 == "CW") ConstructCORNERWALL.AddCab(_G.nO); //if (c5 == "PNL") ConstructPanel.AddPanel(_G.OBJnum); if (c0.IndexOf("stov") != -1) { ConstructStove.AddStove(_G.OBJnum); } if (c0.IndexOf("buil") != -1) { ConstructBuildin.AddBuilding(_G.OBJnum); } if (c0.IndexOf("plat") != -1) { ConstructPlatestove.AddStovePlates(_G.OBJnum); } if (c0.IndexOf("frid") != -1) { ConstructFRIDGE.AddFridge(_G.OBJnum); } if (c0.IndexOf("hood") != -1) { ConstructHood.AddHood(_G.OBJnum); } if (c0.IndexOf("dish") != -1) { ConstructDishwasher.AddDishwasher(_G.OBJnum); } if (c0.IndexOf("micr") != -1) { ConstructMicrowave.AddMicrowave(_G.OBJnum); } if (c0.IndexOf("wine") != -1) { ConstructWiner.AddWiner(_G.OBJnum); } if (c0.IndexOf("vase") != -1) { ConstructVase.AddVase(_G.OBJnum); } if (c0.IndexOf("smal") != -1) { ConstructSmallelectro.AddSmallElectro(_G.OBJnum); } if (c0.IndexOf("pict") != -1) { ConstructPicture.AddPicture(_G.OBJnum); } if (c0.IndexOf("stoo") != -1) { ConstructStool.AddStool(_G.OBJnum); } if (c0.IndexOf("lamp") != -1) { ConstructLamp.AddLamp(_G.OBJnum); } if (c0.IndexOf("bloc") != -1) { ConstructBloc.AddBloc(_G.OBJnum); } if (c0.IndexOf("coun") != -1) { ConstructCounter.AddCounter(_G.OBJnum); } if (c0.IndexOf("deco") != -1) { ConstructDECO.AddObject(_G.OBJnum); } if (c0.IndexOf("wadr") != -1) { ConstructWD.AddWD(_G.OBJnum); } if (c0.IndexOf("toil") != -1) { ConstructToilet.AddToilet(_G.OBJnum); } if (c0.IndexOf("bath") != -1) { ConstructBath.AddBath(_G.OBJnum); } if (c0.IndexOf("show") != -1) { ConstructShower.AddShower(_G.OBJnum); } if (c0.IndexOf("basi") != -1) { ConstructBathSink.AddBathSink(_G.OBJnum); } if (c0.IndexOf("pane") != -1) { ConstructPanel.AddPanel(_G.OBJnum); } if (c0.IndexOf("mirr") != -1) { ConstructMirror.AddMirror(_G.OBJnum); } if (c0.IndexOf("open") != -1) { ConstructOpen.AddOpen(_G.OBJnum); HOLE.RefreshAllWalls(); } if (c0.IndexOf("wind") != -1) { ConstructWindow.AddWindow(_G.OBJnum); HOLE.RefreshAllWalls(); } if (c0.IndexOf("door") != -1) { ConstructDoor.AddDoor(_G.OBJnum); HOLE.RefreshAllWalls(); } if (c0.IndexOf("pati") != -1) { ConstructPatio.AddPatio(_G.OBJnum); HOLE.RefreshAllWalls(); } if (c0.IndexOf("slid") != -1) { ConstructSlider.AddSlider(_G.OBJnum); } if (c0.IndexOf("chai") != -1) { ConstructChair.AddChair(_G.OBJnum); } if (c0.IndexOf("tabl") != -1) { ConstructTable.AddTable(_G.OBJnum); } if (c0.IndexOf("orna") != -1) { ConstructOrnament.AddOrnament(_G.OBJnum); } //_G.SC[13]=""; } }