using UnityEngine; using System.Collections.Generic; using TMPro; using System.Linq; using UnityEngine.UI; using System.Collections; using Unity.VisualScripting; using UnityEngine.Rendering; using Unity.Collections; public class LibraryCreator : MonoBehaviour { public TMP_Dropdown _Category; public TMP_Dropdown _LIBRAIRYLIST; public TMP_InputField _Unique_Name; public GameObject _SHOWSELECTION; public TMP_InputField _Des_L1; public TMP_InputField _Des_L2; public TMP_InputField _Des_L3; public GameObject _TEXTCOL_container; public GameObject _MODEL_container; public InputField _C1; public InputField _C2; static private RenderTexture _renderTexture; static private Texture2D _screenShot; static private GameObject _ShowImage; public void StartPNL(int CategoryValue) { DOIT.CloseALLPNL(); _G.PON="CREATORpnl"; GameObject PNL=Get.o2("Panel_SCENE/PNL","CREATORpnl"); PNL.SetActive(true); PNL.transform.localPosition=new(0,0,0); AddCategory(PNL); GameObject Inputs=Get.o2(_G.PON,"INPUTS"); DOIT.AllChildOff(Inputs); _SHOWSELECTION.SetActive(false); Get.o2(_G.PON,"COLOR_SET").SetActive(false); Get.o2(_G.PON,"ToggleTextures").SetActive(false); Set.alpha(Get.o2(_G.PON,"MODELS"),true); DOIT.DELETEAllObjectChild(_MODEL_container); DOIT.DELETEAllObjectChild(_TEXTCOL_container); _Category.value=CategoryValue; _LIBRAIRYLIST.gameObject.SetActive(false); Fill_Library(_Category.value); } public void AddCategory(GameObject PNL){ GameObject Category=PNL.transform.Find("CATEGORY").gameObject; List CategoryOptions = new() {"CATEGORY SELECTION","DOOR","PANEL","FINISH MATERIAL","OGEE","VALANCE","CORNICE","FASCIA","FILLER","KICK","DECO ITEM"}; if(_G.L==2){ CategoryOptions = new() {"SÉLECTION DE LA CATÉGORIE","PORTE","PANNEAU","MATÉRIAUX FINI","OGEE","VALANCE","CORNICE","FASCIA","FILLEUR/REMPLISAGE","COUP DE PIED","ARTICLE DÉCO"}; } if(_G.L==3){ CategoryOptions = new() {"SELECCIÓN DE CATEGORÍA","PUERTA","FIRMAR","MATERIALES TERMINADOS","OGE","DOSELERA","CORNISA","FASCIA","RELLENO","PATADA","ARTÍCULO DECO"}; } Category.GetComponent().ClearOptions(); Category.GetComponent().AddOptions(CategoryOptions); } public void SetPnlByCategory(){ int value = _Category.value; Get.o2(_G.PON,"COLOR_SET").SetActive(false); Set.alpha(Get.o2(_G.PON,"MODELS"),true); Get.o2(_G.PON,"ToggleTextures").SetActive(true); DOIT.DELETEAllObjectChild(_MODEL_container); DOIT.DELETEAllObjectChild(_TEXTCOL_container); switch(value){ case 0: _SHOWSELECTION.SetActive(false); break; case 1: AddDoorModels("CABDOORS"); break; case 2: AddPanelModels("PANEL"); break; case 3: SetCabtexture(); break; case 4: AddMoldingModels("OGEE"); break; case 5: AddMoldingModels("VALANCE"); break; case 6: AddMoldingModels("CORNICE"); break; case 7: AddMoldingModels("FASCIA"); break; case 8: AddMoldingModels("FILLER"); break; case 9: AddMoldingModels("KICK"); break; case 10:AddMoldingModels("DECO"); break; } _LIBRAIRYLIST.value=0; } //ADD MODELS/////////////////// public void SetCabtexture(){ GameObject List = Get.o2(_G.PON+"/MODELS/Viewport","Content"); AddTexturesBASE(); Get.o2(_G.PON,"COLOR_SET").SetActive(true); Get.o2(_G.PON+"/COLOR_SET/FINISH","Semi").GetComponent().isOn=true; Set.alpha(Get.o2(_G.PON,"MODELS"),false); Get.o2(_G.PON,"ToggleTextures").SetActive(false); GameObject Inputs=Get.o2(_G.PON,"INPUTS"); DOIT.AllChildOff(Inputs); FillCabTextureList(); } public void AddDoorModels(string category){ GameObject List = Get.o2(_G.PON+"/MODELS/Viewport","Content"); //DOIT.DELETEAllObjectChild(List); Object[] Image = Resources.LoadAll("ICONS/"+category+"/", typeof(Sprite)); GameObject BtnModel=Get.o2(_G.PON + "/BASEBTN/","BTNMODEL"); foreach (Sprite I in Image.Cast()) { GameObject Sel=Instantiate(BtnModel); Sel.transform.SetParent(List.transform, false); Sel.name = I.name; Sel.transform.Find("Image/Text").gameObject.GetComponent().text = I.name; Sel.transform.Find("Background").GetComponent().sprite = I; Sel.SetActive(true); } Set.ToggleGroupToAllChild(_G.PON + "/MODELS/Viewport/Content"); AddTextures(); FillDoorList(); } public void AddPanelModels(string category){ GameObject List = Get.o2(_G.PON+"/MODELS/Viewport","Content"); Object[] Image = Resources.LoadAll("ICONS/CAB_MOLDING/"+category+"/", typeof(Sprite)); GameObject BtnModel=Get.o2(_G.PON + "/BASEBTN/","BTNMODEL"); foreach (Sprite I in Image.Cast()) { GameObject Sel=Instantiate(BtnModel); Sel.transform.SetParent(List.transform, false); Sel.name = I.name; Sel.transform.Find("Image/Text").gameObject.GetComponent().text = I.name; Sel.transform.Find("Background").GetComponent().sprite = I; Sel.SetActive(true); } Set.ToggleGroupToAllChild(_G.PON + "/MODELS/Viewport/Content"); AddTextures(); FillPanelList(); } public void AddMoldingModels(string category){ GameObject List = Get.o2(_G.PON+"/MODELS/Viewport","Content"); Object[] Image = Resources.LoadAll("ICONS/CAB_MOLDING/"+category+"/", typeof(Sprite)); GameObject BtnModel=Get.o2(_G.PON + "/BASEBTN/","BTNMODEL"); foreach (Sprite I in Image.Cast()) { GameObject Sel=Instantiate(BtnModel); Sel.transform.SetParent(List.transform, false); Sel.name = I.name; Sel.transform.Find("Image/Text").gameObject.GetComponent().text = I.name; Sel.transform.Find("Background").GetComponent().sprite = I; Sel.SetActive(true); } Set.ToggleGroupToAllChild(_G.PON + "/MODELS/Viewport/Content"); AddTextures(); FillMoldingList(category); } //FILL LIST/////////////////// public void FillCabTextureList(){ //print("Passing 3"); List CabTextureList= new(){TRANS.This("C_CabTexture")}; foreach(string Line in _G.UIT_LibraryCabTextures){ if(Line!="" && Line!=_G.UIT_LibraryCabTextures[0]){ CabTextureList.Add(Line.Split(",")[1]); } } Filllist(CabTextureList); } public void FillDoorList(){ List DoorList= new(){TRANS.This("C_DoorList")}; foreach(string Line in _G.UIT_LibraryDoors){ if(Line!="" && Line!=_G.UIT_LibraryDoors[0]){ DoorList.Add(Line.Split(",")[1]); } } Filllist(DoorList); } public void FillPanelList(){ List PanelList= new(){TRANS.This("C_PANELList")}; int ind=UIT.Ind(Library.Panel,Header.ID); int indUnique_Name=UIT.Ind(Library.Panel,Header.Unique_Name); foreach(string Line in _G.UIT_LibraryPanels){ if(Line!="" && Line!=_G.UIT_LibraryPanels[0]){ PanelList.Add(Line.Split(",")[indUnique_Name]); } } Filllist(PanelList); } public void FillMoldingList(string Category){ List MoldingList= new(){TRANS.This("C_"+Category+"List")}; int ind=UIT.Ind(Library.Molding,Header.ID); int indUnique_Name=UIT.Ind(Library.Molding,Header.Unique_Name); switch(Category){ case "KICK":Category="K";break; case "OGEE":Category="O";break; case "FASCIA":Category="FA";break; case "FILLER":Category="FI";break; case "CORNICE":Category="C";break; case "VALANCE":Category="V";break; } foreach(string Line in _G.UIT_LibraryMoldings){ if(Line!="" && Line!=_G.UIT_LibraryMoldings[0]){ if(Line.Split(",")[ind].Split('_')[0] == Category){ //print("Category===4=="+Line.Split(",")[indUnique_Name]); MoldingList.Add(Line.Split(",")[indUnique_Name]); } } } Filllist(MoldingList); } public void Filllist(List NewList){ _LIBRAIRYLIST.gameObject.SetActive(true); _LIBRAIRYLIST.options.Clear(); _LIBRAIRYLIST.AddOptions(NewList); _LIBRAIRYLIST.value=0; } //ADD TEXTURES/////////////////// public static void AddTextures(){ GameObject List = Get.o2(_G.PON+"/TEXTCOL/Viewport","Content"); DOIT.DELETEAllObjectChild(List); GameObject BTN=Get.o2(_G.PON + "/BASEBTN/","BTNTEXCOL"); string IDTexture; List L=UIT.GetLibrary("CabTexture"); for(int i=1; i().sprite = UIT_MATERIAL.GetSprite(IDTexture); string UniqueName=UIT.Value(Library.CabTexture,IDTexture,Header.Unique_Name); C.transform.Find("Image").transform.Find("Text").gameObject.GetComponent().text = UniqueName; } } //Set.ToggleGroupToAllChild(_G.PON+"/TEXTCOL/Viewport/Content"); } public static void AddTexturesBASE(){ GameObject List = Get.o2(_G.PON+"/TEXTCOL/Viewport","Content"); DOIT.DELETEAllObjectChild(List); GameObject BTN=Get.o2(_G.PON + "/BASEBTN/","BTNTEXCOLBASE"); BtnGrainModel(BTN, List,"1"); BtnGrainModel(BTN, List,"2"); BtnGrainModel(BTN, List,"3"); BtnGrainModel(BTN, List,"11"); BtnGrainModel(BTN, List,"28"); BtnGrainModel(BTN, List,"22"); BtnGrainModel(BTN, List,"101"); Set.ToggleGroupToAllChild(_G.PON+"/TEXTCOL/Viewport/Content"); } public static void BtnGrainModel(GameObject BTN,GameObject List,string Number){ GameObject C = Instantiate(BTN); C.name="TEXT.1."+Number; C.transform.SetParent(List.transform, false); C.SetActive(true); C.transform.Find("Image").transform.Find("Text").gameObject.GetComponent().text =Number; Texture2D Tex=Resources.Load("TEXTURES/TEXT/TEXT.1."+Number); Sprite Image=Sprite.Create(Tex, new Rect(0.0f, 0.0f, Tex.width, Tex.height), new Vector2(0.5f, 0.5f), 100.0f); C.transform.Find("Background").GetComponent().sprite= Image; } //SELECTION//////////////////// public void ModelClick(){ //GameObject TextureList=Get.o2(_G.PON+"/TEXTCOL/Viewport","Content"); DOIT.AllTogchildfalse(_TEXTCOL_container); GameObject Inputs=Get.o2(_G.PON,"INPUTS"); Inputs.SetActive(true); foreach(Transform I in Inputs.transform){ I.gameObject.GetComponent().text=""; } string TextureID = _TEXTCOL_container.transform.GetChild(0).name; AddImage(TextureID,_Category,name); } public void AddImage(){ string TextureID=UIT.TogOn("TEXTCOL"); string model=""; if(_Category.value!=3)model=UIT.TogOn("MODELS"); AddImage(TextureID,_Category,model); if(_Category.value!=3)model=UIT.TogOn("MODELS"); if(model==""){CabTextureShow.DIY_Pnl(TextureID);} _SHOWSELECTION.SetActive(true); } public static void AddImage(string TextureID,TMP_Dropdown _Category,string model){ //print("MoldingShow Model====="+model); switch(_Category.value){ case 1:DoorShow.DIY_Pnl(TextureID);break; case 2:PanelShow.DIY_Pnl(model,TextureID);break; case 3:CabTextureShow.DIY_Pnl(TextureID);break; case 4:MoldingShow.DIY_Pnl("O_"+model,TextureID+"?90");break; case 5:MoldingShow.DIY_Pnl("V_"+model,TextureID+"?90");break; case 6:MoldingShow.DIY_Pnl("C_"+model,TextureID+"?90");break; case 7:MoldingShow.DIY_Pnl("FA_"+model,TextureID+"?90");break; case 8:MoldingShow.DIY_Pnl("FI_"+model,TextureID);break; case 9:MoldingShow.DIY_Pnl("K_"+model,TextureID+"?90");break; //case 10:MoldingShow.DIY_Pnl("D_"+model,TextureID);break; } } public void AddImageFromLibrairyList(){ switch (_Category.value){ case 1: AddImageFromDoorList();break; case 2: AddImageFromPanelList();break; case 3: AddImageFromCabTextureList();break; case 4:case 5:case 6: case 7: case 8: case 9:AddImageFromMoldingList();break; } } public void AddImageFromDoorList(){ int index =_LIBRAIRYLIST.value; if(index!=0){ string UniqueName=_LIBRAIRYLIST.options[index].text; string ID = UIT.GetIDByUnique_Name(Library.Door,UniqueName); _SHOWSELECTION.SetActive(true); _Unique_Name.text=UniqueName; _Des_L1.text=UIT.Value(Library.Door,ID,Header.L1); _Des_L2.text=UIT.Value(Library.Door,ID,Header.L2); _Des_L3.text=UIT.Value(Library.Door,ID,Header.L3); string DoorModel=UIT.Value(Library.Door,ID,Header.Model); _MODEL_container.transform.Find(DoorModel).GetComponent().isOn=true; string TextureID=UIT.Value(Library.Door,ID,Header.Color_ID); if(TextureID=="All"){TextureID=_G.UIT_LibraryCabTextures[1].Split(",")[0];} if(_TEXTCOL_container.transform.Find(TextureID)){ _TEXTCOL_container.transform.Find(TextureID).GetComponent().isOn=true; DoorShow.DIY_Pnl(TextureID); } else{ _M.PH(32, 0, "ffffff", 1, 1); } } else{ _SHOWSELECTION.SetActive(false); } } public void AddImageFromPanelList(){ int index =_LIBRAIRYLIST.value; if(index!=0){ string UniqueName=_LIBRAIRYLIST.options[index].text; string ID = UIT.GetIDByUnique_Name(Library.Panel,UniqueName); //print("AddImageFromPanelList===ID="+ID); string model = UIT.Value(Library.Panel,ID,Header.Model); //print("AddImageFromPanelList===model="+model); _SHOWSELECTION.SetActive(true); _Unique_Name.text=UniqueName; _Des_L1.text=UIT.Value(Library.Panel,ID,Header.L1); _Des_L2.text=UIT.Value(Library.Panel,ID,Header.L2); _Des_L3.text=UIT.Value(Library.Panel,ID,Header.L3); string PanelModel=UIT.Value(Library.Panel,ID,Header.Model); _MODEL_container.transform.Find(PanelModel).GetComponent().isOn=true; string TextureID=UIT.Value(Library.Panel,ID,Header.Color_ID); if(TextureID=="All"){TextureID=_G.UIT_LibraryCabTextures[1].Split(",")[0];} //print("AddImageFromPanelList===TextureID="+TextureID); if(_TEXTCOL_container.transform.Find(TextureID)){ _TEXTCOL_container.transform.Find(TextureID).GetComponent().isOn=true; PanelShow.DIY_PnlFromList(ID,model,TextureID);//.DIY_Pnl(model,TextureID) } else{ _M.PH(32, 0, "ffffff", 1, 1); } } else{ _SHOWSELECTION.SetActive(false); } } public void AddImageFromCabTextureList(){ int index =_LIBRAIRYLIST.value; if(index!=0){ string UniqueName=_LIBRAIRYLIST.options[index].text; string ID =UIT.GetIDByUnique_Name(Library.CabTexture,UniqueName); _SHOWSELECTION.SetActive(true); _Unique_Name.text=UniqueName; _Des_L1.text=UIT.Value(Library.CabTexture,ID,Header.L1); _Des_L2.text=UIT.Value(Library.CabTexture,ID,Header.L2); _Des_L3.text=UIT.Value(Library.CabTexture,ID,Header.L3); _C1.text=UIT.Value(Library.CabTexture,ID,Header.C1); _C2.text=UIT.Value(Library.CabTexture,ID,Header.C2); string CabTextureImage=UIT.Value(Library.CabTexture,ID,Header.Texture); _TEXTCOL_container.transform.Find(CabTextureImage).GetComponent().isOn=true; CabTextureShow.DIY_Pnl(ID); //CabTextureShow.ChangeColorCabTextureShowStatic(DOIT.CSc(_C1.text,255),DOIT.CSc(_C2.text,255)); } else{ _SHOWSELECTION.SetActive(false); } } public void AddImageFromMoldingList(){ int index =_LIBRAIRYLIST.value; if(index!=0) { string UniqueName=_LIBRAIRYLIST.options[index].text; string ID = UIT.GetIDByUnique_Name(Library.Molding,UniqueName); _SHOWSELECTION.SetActive(true); _Unique_Name.text=UniqueName; _Des_L1.text=UIT.Value(Library.Molding,ID,Header.L1); _Des_L2.text=UIT.Value(Library.Molding,ID,Header.L2); _Des_L3.text=UIT.Value(Library.Molding,ID,Header.L3); string Model=UIT.Value(Library.Molding,ID,Header.Model); _MODEL_container.transform.Find(Model).GetComponent().isOn=true; //("Door library UniqueName===="+UniqueName); //print("Door library ID==="+ID); //print("Door library DoorModel===="+Model); string TextureID=UIT.Value(Library.Molding,ID,Header.Color_ID); //print("Door library TextureID===="+TextureID); if(TextureID=="All") { TextureID=_G.UIT_LibraryCabTextures[1].Split(",")[0]; } if(_TEXTCOL_container.transform.Find(TextureID)) { _TEXTCOL_container.transform.Find(TextureID).GetComponent().isOn=true; string rotation="?90"; if(ID.IndexOf("FI")!=-1)rotation="?0"; MoldingShow.DIY_PnlFromList(ID,TextureID+rotation); } else { _M.PH(32, 0, "ffffff", 1, 1); } } else{ _SHOWSELECTION.SetActive(false); } } public static string SetInput(GameObject I, string Cat, float value){ GameObject Input=I.transform.Find(Cat).gameObject; Input.SetActive(true); string InputValue = Input.GetComponent().text; if(string.IsNullOrEmpty(InputValue))Input.GetComponent().text=DOIT.CNs(value); return InputValue; } public static void AddInput(GameObject I, string Cat, float value){ if(I.transform.Find(Cat)){ GameObject Input=I.transform.Find(Cat).gameObject; Input.SetActive(true); Input.GetComponent().text=DOIT.CNs(value); } } public void SelectAllTextures(){ foreach(Transform Texture in Get.o2("CREATORpnl/TEXTCOL/Viewport","Content").transform){ Texture.GetComponent().isOn=transform.GetComponent().isOn; } } //CREAT IT//////////////////// public static void Add3DtoScene(GameObject O3D,float w, float h){ GameObject Scene3D=Get.o1("3D Object Show"); DOIT.DELETEAllObjectChild(Scene3D); O3D.transform.SetParent(Scene3D.transform); O3D.transform.localPosition=new(0,0,0); O3D.layer=7; if(O3D.transform.childCount!=0){ foreach(Transform child in O3D.transform){ child.gameObject.layer=7; } } StaticCoroutine.Start(StopCanvas(w,h)); } static IEnumerator StopCanvas(float w,float h){ yield return new WaitForSeconds(0.1f); Get.o1("CanvasCamera").transform.position=new(0,500,-Mathf.Max(w,h)*1f-Mathf.Max(w,h)*0.5f); //SwitchCanvasCam(false); } static void SwitchCanvasCam(bool isCanvasOn){ Get.o1("MainCamera").GetComponent().enabled=!isCanvasOn; Get.o1("CanvasCamera").GetComponent().enabled=isCanvasOn; } public void AddtoLibrary(){ //print("_Category.value===="+_Category.value); switch(_Category.value){ case 1: AddToLibrary.Door();break; case 2: AddToLibrary.Panel();break; case 3: AddToLibrary.CabTexture();break; case 4: AddToLibrary.Molding("Ogee");break; case 5: AddToLibrary.Molding("Valance");break; case 6: AddToLibrary.Molding("Cornice");break; case 7: AddToLibrary.Molding("Fascia");break; case 8: AddToLibrary.Molding("Filler");break; case 9: AddToLibrary.Molding("Kick");break; } Fill_Library(_Category.value); } public void DeleteFromList(){ _M.PH(22, 0, "ffffff", 1, 1); Get.o2("HIDER/MESSAGE","btnOK").SetActive(true); GameObject.Find("btnOK").GetComponent