using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class SideSelect : MonoBehaviour { [SerializeField] private GameObject OptionsList; [SerializeField] GameObject DropSelection1; [SerializeField] GameObject DropSelection2; [SerializeField] GameObject Add_Btn; [SerializeField] GameObject ColorSelection; [SerializeField] GameObject InputField; string SideName,OptionSelect,ColorID; int ObjectNumber,IndWide,IndHeight,IndUnique_Name,IndColorID; float Wide,Height,Depth,WideCSV,HeightCSV,HeightBox; List ListAvailableItems; List ListAvailableColors; public static void AddtoCabinetFromEditPNL(string GlobalNumberSelectedColor,string SideON) { //bool isOnCover =true; print("Side click GlobalNumberSelectedColor==="+GlobalNumberSelectedColor); print("SideON==="+SideON); string[] ADN = GetADN(); int indPosition=GetSideIndex(SideON); if(GlobalNumberSelectedColor=="NONE"){ ADN[83]=DOIT.ChangeCodeOnPos(ADN[83],indPosition, "0","_"); //C[81]===0_0_0_3?1_0_0_0 } if(GlobalNumberSelectedColor.IndexOf("G")!=-1){ int indGlobal=int.Parse(GlobalNumberSelectedColor[1..]); string CODE=UIT.Global(Header.Ext,indGlobal); ADN[83]=DOIT.ChangeCodeOnPos(ADN[83],indPosition, CODE,"_"); ADN[82]=CODE; ADN[75]=CODE; ADN[69]=CODE; print("SideON==ADN[83]="+ADN[83]);//SideON==ADN[83]=0_0_16?0_0_0_0_0 print("SideON==ADN[82]="+ADN[82]); } DOIT.REDOCAB(Get.GetObjectIndex(ADN[0])); DOIT.CloseALLPNL(); _MOL.SetMolding(); } ///---------------------------GET--------------------------------------- public static string[] GetADN(){ _G.nO=Get.GetObjectIndex(SceneModeManager.SelectedName); return _G.OBJs[_G.nO]; } public static int GetSideIndex(string SideON){ int indPosition=0; switch(SideON){ case "LEFT": indPosition=0;break; case "BACK":indPosition=1;break; case "BACK_LEFT":indPosition=1;break; case "BACK_RIGHT":indPosition=2;break; case "RIGHT": indPosition=2;break; } return indPosition; } public void ClickSide(){ if(gameObject.GetComponent().isOn) { SideName=name; OptionSelect=Get.TogOn(OptionsList).name; //Get sizes ObjectNumber = Get.GetObjectIndex(SceneModeManager.SelectedName); Wide=DOIT.ConvertStringToNumber(_G.OBJs[ObjectNumber][6]); Height=DOIT.ConvertStringToNumber(_G.OBJs[ObjectNumber][7]); HeightBox=DOIT.ConvertStringToNumber(_G.OBJs[ObjectNumber][7])-DOIT.ConvertStringToNumber(_G.OBJs[ObjectNumber][10]); Depth=DOIT.ConvertStringToNumber(_G.OBJs[ObjectNumber][8]); IndWide=UIT.Ind(Library.Panel,Header.Wide); IndHeight=UIT.Ind(Library.Panel,Header.Height); IndUnique_Name=UIT.Ind(Library.Panel,Header.Unique_Name); IndColorID=UIT.Ind(Library.Panel,Header.Color_ID); if(OptionSelect=="RECOVER"){RecoverDropdown();} if(OptionSelect=="FILLER"){ FillerDropdown(); } Add_Btn.SetActive(true); } } public void SetFillerWide(string UniqueName){ IndWide=UIT.Ind(Library.Molding,Header.Wide); string Molding_ID=UIT.GetIDByUnique_Name(Library.Molding,UniqueName); string[] Wide = UIT.Value(Library.Molding,Molding_ID,Header.Wide).Split("_"); print("filler===="+UIT.Value(Library.Molding,Molding_ID,Header.Wide)); if(Wide.Length>1){ InputField.SetActive(true); InputField.GetComponent().text=Wide[1]; InputField.transform.Find("Min").GetComponent().text=Wide[0]; InputField.transform.Find("Max").GetComponent().text=Wide[2]; } } //------------------------SET DROPDOWN--------------------------------------------------- public void FillerDropdown(){ DropSelection1.SetActive(true); ListAvailableItems= new(); int indCat=UIT.Ind(Library.Molding,Header.Category); IndHeight=UIT.Ind(Library.Molding,Header.Height); print("_P.ListSwitch====="+_P.ListSwitch["FILLER_BY_ITEMS"]); if(_P.ListSwitch["FILLER_BY_ITEMS"]){ foreach(string line in _G.UIT_LibraryMoldings) { string[] L=line.Split(','); if(!string.IsNullOrEmpty(L[0]) && Set.Chars(L[0])!="ID")//L[0]======ID { HeightCSV=DOIT.ConvertStringToNumber(Set.Chars(L[IndHeight])); print("HeightCSV==="+HeightCSV+" vs HeightBox"+HeightBox); if(Mathf.Abs(HeightCSV-HeightBox)<2 && L[indCat]=="Filler") { ListAvailableItems.Add(L[IndUnique_Name]); } } } } else{ foreach(string line in _G.UIT_LibraryMoldings) { string[] L=line.Split(','); if(!string.IsNullOrEmpty(L[0]) && Set.Chars(L[0])!="ID" && line.Split(',')[indCat]=="Filler")//L[0]======ID { ListAvailableItems.Add(L[IndUnique_Name]); } } } if(ListAvailableItems.Count==0)ListAvailableItems.Add("No match"); EditPNL.AddDropdownItems(DropSelection1,ListAvailableItems); //Show Available Colors TMP_Dropdown ModelFromDropdown1=DropSelection1.GetComponent(); int IndOfModel=ModelFromDropdown1.value; string FillerUniqueName=ModelFromDropdown1.options[IndOfModel].text; string FillierID=UIT.GetIDByUnique_Name(Library.Molding,FillerUniqueName); DropSelection2.SetActive(true); ListAvailableColors= new(); string AvailableColorsRecipe=UIT.Value(Library.Molding,FillierID,Header.Color_ID); if(AvailableColorsRecipe=="All"){ AvailableColorsRecipe=""; foreach(string line in _G.UIT_LibraryCabTextures){ string[] L=line.Split(','); if(!string.IsNullOrEmpty(L[0]) && Set.Chars(L[0])!="ID"){ AvailableColorsRecipe+=L[0]+"_"; } } AvailableColorsRecipe=AvailableColorsRecipe[..^1]; } print("AvailableColorsRecipe===="+AvailableColorsRecipe); string[] AvailableColorsList=AvailableColorsRecipe.Split('_'); foreach(string ColorID in AvailableColorsList) { string ColorUniqueName=UIT.Value(Library.CabTexture,ColorID,Header.Unique_Name); ListAvailableColors.Add(ColorUniqueName); } if(ListAvailableColors.Count==0)ListAvailableColors.Add("No match"); EditPNL.AddDropdownItems(DropSelection2,ListAvailableColors); SetFillerWide(FillerUniqueName); } public void RecoverDropdown(){ DOIT.AllTogchildfalse(ColorSelection); //Colors DropSelection1.SetActive(true); ListAvailableColors= new(); if(DropSelection1.GetComponent().options[0].text!=_G.UIT_LibraryCabTextures[1].Split(",")[1]){ foreach(string line in _G.UIT_LibraryCabTextures) { string[] L=line.Split(','); if(!string.IsNullOrEmpty(L[0]) && Set.Chars(L[0])!="ID")//L[0]======ID { ListAvailableColors.Add(L[IndUnique_Name]); } } EditPNL.AddDropdownItems(DropSelection1,ListAvailableColors); } //Model int ind=DropSelection1.GetComponent().value; ColorID=DropSelection1.GetComponent().options[ind].text; string Color_ID =UIT.GetIDByUnique_Name(Library.CabTexture,ColorID); DropSelection2.SetActive(true); ListAvailableItems= new(); float WideToVerify=Depth; if(SideName=="BACK"){WideToVerify=Wide;} foreach(string line in _G.UIT_LibraryPanels) { string[] L=line.Split(','); if(!string.IsNullOrEmpty(L[0]) && Set.Chars(L[0])!="ID")//L[0]======ID { WideCSV=DOIT.ConvertStringToNumber(Set.Chars(L[IndWide])); HeightCSV=DOIT.ConvertStringToNumber(Set.Chars(L[IndHeight])); if(Mathf.Abs(WideCSV-WideToVerify)<4 && Mathf.Abs(HeightCSV-Height)<4 )//&& L[IndColorID].Split("_").Contains(Color_ID) { ListAvailableItems.Add(L[IndUnique_Name]); } } } if(ListAvailableItems.Count==0)ListAvailableItems.Add("No match"); EditPNL.AddDropdownItems(DropSelection2,ListAvailableItems); } }//END