using UnityEngine; using UnityEngine.UI; using TMPro; using System.Globalization; using System.Collections.Generic; using System.Linq; public class KnobPNL : MonoBehaviour { public GameObject _PANEL; public GameObject _ColorPicker1; public GameObject _ColorPicker2; public GameObject _MODEL; public TMP_Dropdown _Finish1; public TMP_Dropdown _Finish2; public GameObject _ModelContainer; public Text W; public Text H; public Text D; public TMP_Text _C1; public TMP_Text _C2; public GameObject _CABTEXTURES; //public TMP_Dropdown _Textures1; //public TMP_Dropdown _Textures2; //public GameObject _FLOWER; public void StartPNL(string name) { DOIT.CloseALLPNL(); _G.PON="KNOBpnl"; //_G.PON="DECOpnl"; //Get.o2("PNL","Object3Dpnl").SetActive(false); GameObject PNL=Get.o2("PNL","DECOpnl"); PNL.SetActive(true); _G.PNL = name; PNL.transform.localPosition = new Vector3(0, 0,0); //Set Panel DOIT.DELETEAllObjectChild(_ModelContainer); Get.o2("DECOpnl/SIZE","MoE").SetActive(false); Get.o2("DECOpnl/SIZE","MoFF").SetActive(false); _ColorPicker1.SetActive(true); _ColorPicker2.SetActive(false); //Add Models GameObject Sel = Get.o2("Canvas/Panel_SCENE/PNL/DECOpnl", "BTNSELECTIONKNOB"); Sprite[] Image = Resources.LoadAll("ICONS/KNOBS/"); System.Array.Sort(Image, delegate(Sprite x, Sprite y) {return int.Parse(x.name).CompareTo( int.Parse(y.name)); }); AddBTNSELECTION(Resources.Load("Other/NONE"), Sel,_ModelContainer); foreach (Sprite I in Image.Cast()) { AddBTNSELECTION(I,Sel,_ModelContainer); } Set.ToggleGroupToAllChild("DECOpnl/MODEL/Viewport/Content"); FillFinishDropdown(); _CABTEXTURES.SetActive(false); float ModelPosition=-72; _MODEL.transform.localPosition=new Vector3(ModelPosition,47,0); } public void AddBTNSELECTION(Sprite I, GameObject SEL,GameObject PNL) { GameObject Sel=Instantiate(SEL); Sel.transform.SetParent(PNL.transform, false); Sel.name = "K_"+I.name; //string nameShow="K_"+;//NONE"; print("I.name==="+I.name); //if(I.name!="fbtnx")nameShow=GetNameShow(I.name); Sel.transform.Find("Image/Text").gameObject.GetComponent().text = I.name; Sel.transform.Find("Background").GetComponent().sprite = I; Sel.SetActive(true); } public static void AddColorSelections() { string model = Get.ToggleOnInChild("Canvas/Panel_SCENE/PNL/Objec3Dpnl/3DMODEL/Viewport/Content3DObject"); GameObject DropdownSizes = Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/DropdownSizes"); TMP_Dropdown dropDown = null; int ind = -1; if (DropdownSizes) { dropDown = DropdownSizes.GetComponent(); } if (dropDown != null) { ind = dropDown.value; } string size = ""; if (ind > -1 && dropDown.options.Count > 0) { size = dropDown.options[ind].text.Replace("mm", ""); } DOIT.DELETEAllChild("Canvas/Panel_SCENE/PNL/Objec3Dpnl/ColorView/Viewport/Content"); List colors = new(); List mats = new(); string colorName = ""; string material = ""; if (model != "NONE") { foreach (var C in _G.LibraryKnobs) { var data = C.Value; colorName = data.GetPropertyValue(CsvHeaders.Language); material = data.GetPropertyValue(CsvHeaders.Material); if (data.GetPropertyValue(CsvHeaders.Model) == model && !colors.Contains(colorName) && data.GetPropertyValue(CsvHeaders.Center_To_Center) == size) { colors.Add(colorName); mats.Add(material); } } for (int i = 0; i < colors.Count; i++) { //if(colors[i]=="ALL"){for(int k=0; k<132; k+=4){addcolorBtn(_C.TRANS[k],); } AddcolorBtn(colors[i], mats[i]); } Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/ColorView/Viewport/Content").transform.GetChild(0).GetComponent().isOn = true; } ShowSelection(); } public static void AddcolorBtn(string col, string mat) { //print("col===="+col); GameObject Sel = (GameObject)Instantiate(Get.o2("Objec3Dpnl", "BTNCOLORS")); GameObject PNL = Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/ColorView/Viewport/Content"); Sel.transform.SetParent(PNL.transform, false); Sel.name = col; Sel.transform.Find("Text").gameObject.GetComponent().text = col;//TRANS.color(col); Sel.transform.Find("Color1").GetComponent().color = _C.Matcol(mat);//Resources.Load("ICONS/KNOBS/KN."+i.ToString()); Sel.gameObject.SetActive(true); //Sel.GetComponent().onValueChanged.AddListener ( delegate { ShowSizeSelections(col,model); }); Sel.GetComponent().onValueChanged.AddListener(delegate { ShowSelection(); }); } public void ShowbySize() { AddColorSelections(); } public static void ShowSelection() { string model = Get.ToggleOnInChild("Canvas/Panel_SCENE/PNL/Objec3Dpnl/3DMODEL/Viewport/Content3DObject"); string col = Get.ToggleOnInChild("Canvas/Panel_SCENE/PNL/Objec3Dpnl/ColorView/Viewport/Content"); TMP_Dropdown dropDown = Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/DropdownSizes").GetComponent(); int ind = dropDown.value; string size = ""; if (dropDown.options.Count > 0) { size = dropDown.options[ind].text.Replace("mm", ""); } string name = ""; if (model != "NONE") { foreach (var C in _G.LibraryKnobs) {//Find name model on list var data = C.Value; var m = data.GetPropertyValue(CsvHeaders.Model); string language = data.GetPropertyValue(CsvHeaders.Language); string ctc = data.GetPropertyValue(CsvHeaders.Center_To_Center); if (m == model && language == col && ctc == size && language != "ALL") { name = data.GetPropertyValue(CsvHeaders.ID); } if (m == model && language == "ALL" && ctc == size) { name = data.GetPropertyValue(CsvHeaders.ID); } } } _G.SC[0] = name; print("name===" + name); Get.o2("Canvas/Panel_SCENE/PNL/Objec3Dpnl/", "SHOWSELECTION").SetActive(true); Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/SHOWSELECTION/DES/ID").GetComponent().text = name; Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/SHOWSELECTION/DES/Model").GetComponent().text = model; Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/SHOWSELECTION/DES/Color").GetComponent().text = col; Get.o1("Canvas/Panel_SCENE/PNL/Objec3Dpnl/SHOWSELECTION/DES/Size").GetComponent().text = string.IsNullOrEmpty(size) ? size: size + "mm"; } //---------------------------SELECTION----------------------------------------------- public void AddSizeSelections() { GameObject model=Get.TogOn(_ModelContainer); if(model.name!="NONE" && model.name!="K_NONE") { if(model.GetComponent().isOn==true){ W.text = _OL.GetValue(model.name, "w"); H.text = _OL.GetValue(model.name, "h"); D.text = _OL.GetValue(model.name, "d"); } } else{ W.text = "0"; H.text = "0"; D.text = "0"; } } //---------------------------ADD----------------------------------------------- public void Add() { if(_G.PON=="KNOBpnl") { string Door_Drawer = "KnobV";// int ADNNunber = 85; if (_G.PNL == "KNOBT") { Door_Drawer = "KnobH"; ADNNunber = 86;} GameObject model=Get.TogOn(_ModelContainer); string VH=UIT.Global(Door_Drawer,_G.G).Split('?')[1]; string Color=_C1.text+"_"+_Finish1.options[0].text+"_"+"none"; string w = DOIT.CSsdecimal(W.text); string h = DOIT.CSsdecimal(H.text); string d = DOIT.CSsdecimal(D.text); string code = model.name+"?"+ VH+"?"+ Color +"?"+w+"?"+h+"?"+d; print("Knob code =====" + code); //Knob code =====K_6?V?#737373_Matt_none?6.57?0.39?10 if (_P.List["GLOBAL_QTY"] == "0") { SELECTMETHODE(code,ADNNunber); } else { if (SceneModeManager.SelectedName != "") { DOUNIQUE(code, ADNNunber); } else { DOGLOBAL(code, Door_Drawer, ADNNunber); } } } } public void DOGLOBAL(string code,string Door_Drawer,int ADNNunber) { UIT.GlobalSet(Door_Drawer,code,_G.G); DOIT.AddtoCodeCabGlobal(ADNNunber, code, _G.G); //GlobalOptionChangeCommand globalCommand = new(kDT, _G.G, newValue); //CommandHandler.Instance.AddToHistory(globalCommand); DOIT.REDOALLCab_GNum(_G.G); DOIT.CloseALLPNL(); GameObject.Find("PNL").transform.Find("GLOBALGPNL").gameObject.SetActive(true); GLOBALSELECTION_PNL.StartPNL(_G.G); //_MOL.SetMolding(); } public static void DOUNIQUE(string code,int ADNNunber) { int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); _G.OBJs[nO][ADNNunber] = code; _G.OBJs[nO][60] = "UNIQUE"; DOIT.CloseALLPNL(); _MOL.SetMolding(); } public static void SELECTMETHODE(string code,int ADNNunber) { List CabinetsToModify = Get.CabinetsToModifyInt(); foreach(int Ind in CabinetsToModify) { string[] ADN = _G.OBJs[Ind]; ADN[ADNNunber] = code; DOIT.REDOCAB(Ind); } DOIT.CloseALLPNL(); DOIT.AllSelOff(); _MOL.SetMolding(); } //Finish public void FillFinishDropdown() { if (_Finish1.options.Count == 1) { _Finish1.ClearOptions(); _Finish2.ClearOptions(); List list = new() { TRANS.This("T_Matt"), TRANS.This("T_Semi"), TRANS.This("T_Gloss") }; _Finish1.AddOptions(list); _Finish2.AddOptions(list); } } }