using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; using System.Text.RegularExpressions; using Unity.VisualScripting; public class _Add : MonoBehaviour { //TEXTURE SELECTEDS public static List YOUR_DOORS = new(); public static List YOUR_PANELS = new(); public static List YOUR_TEXTURES = new(); public Text TextureSelect; //ADD CREATED TO LIST public static void Door(string Code) { if (!YOUR_DOORS.Contains("Door_" + Code)) { YOUR_DOORS.Add("Door_" + Code); } } public static void Panel(string Code) { if (!YOUR_PANELS.Contains("Pane_" +Code)) {YOUR_PANELS.Add("Pane_" + Code);} } public static void Texture(string Code) { if (!YOUR_TEXTURES.Contains("Text_" +Code)) YOUR_TEXTURES.Add("Text_" + Code); } //SHOW LIBRARY public static void ShowDoorTexture(GameObject Container, GameObject Btn, string CabinetName) { DOIT.DELETEAllObjectChild(Container); foreach (string Code in YOUR_DOORS)//Door_1?2 Door_1?3 Door_1?4 { string CodeTexture = Code.Split("_")[1]; string[] CodeTextureSplit= CodeTexture.Split("?"); if (IsDoorAvailable(CodeTextureSplit[0] ,CabinetName)) { GameObject Newbtn = Instantiate(Btn); Newbtn.transform.SetParent(Container.transform, false); Newbtn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(CodeTextureSplit[1]); Newbtn.name = Code; Newbtn.SetActive(true); } } } public static void ShowPanelTexture(GameObject Container, GameObject Btn, string PanelName) { DOIT.DELETEAllObjectChild(Container); foreach (string Code in YOUR_PANELS)//Code from YOUR_PANELS=====Pane_1?2 { string CodeTexture = Code.Split("_")[1]; string[] CodeTextureSplit = CodeTexture.Split("?"); if (CodeTextureSplit[0]==PanelName) { GameObject Newbtn = Instantiate(Btn); Newbtn.transform.SetParent(Container.transform, false); Newbtn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(CodeTextureSplit[1]); Newbtn.name = Code; Newbtn.SetActive(true); } } } public static void ShowTexture(GameObject Container, GameObject Btn) { DOIT.DELETEAllObjectChild(Container); foreach (string Texture in YOUR_TEXTURES) { string Code = Texture.Split("t_")[1]; GameObject Newbtn = Instantiate(Btn); Newbtn.transform.SetParent(Container.transform, false); string FirstLabel = Code.Split("_")[0]; if (Regex.IsMatch(FirstLabel, @"^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$") && Code.Length > 1) { Newbtn.transform.Find("Background").GetComponent().color = DOIT.CSc(Code.Split("_")[0], 255); } if(Code.Split("_").Length == 1) { Newbtn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(Code.Split("?")[0]);//.Split("?")[0] } Newbtn.name = Texture; Newbtn.SetActive(true); } } //BTNS EVENTS public void Chnagetexture() { print("name=====" + name);//Door_1?1 string[] nameSplit = name.Split("_"); string[] Code = nameSplit[1].Split("?"); int Ind = Get.GetObjectIndex(SceneModeManager.Selected.name); string[] ADN = _G.OBJs[Ind]; if (nameSplit[0] == "Door") { if(ADN[61] != "nodoor") { ADN[61] = nameSplit[1]; } ADN[69] = Match_Finish.Exterior_From_Door(nameSplit[1]); ADN[63] = Match_Finish.Kick_From_Door(nameSplit[1]); if (ADN[51] != "NONE") { ADN[51] = DOIT.ChangeCodeOnPos(ADN[51], 1, Code[1], "?"); } if (ADN[81].Contains("?")) { string New81 = ""; string[] ADN81 = ADN[81].Split("_"); foreach (string Side in ADN81) { if (Side == "0") New81 += "0_"; if (Side.Contains("?")) { New81 += DOIT.ChangeCodeOnPos(Side, 1, Code[1], "?") + "_"; } } ADN[81] = New81[..^1]; } DOIT.REDOCAB(Ind); } if (nameSplit[0] == "Pane") { print("ADN[61]===="+ADN[61]); //ADN[61]====3?90?0?0?0.625?0.625?0?CV ADN[61] =DOIT.ChangeCodeOnPos(ADN[61], 0, Code[1], "?"); DOIT.REDOCAB(Ind); } if (nameSplit[0] == "Text") { print("Texture is not Set yet"); ADN[41] = name.Split("t_")[1]; DOIT.REDOOBJECT(Ind); } PRICE.Calprice(); } public void ShowNameOver() { string NameOfTexture = ""; string[] NS = name.Split("_"); string ID = NS[1].Split("?")[0]; if (NS[0] == "Door") { NameOfTexture = UIT.Value(Library.Door, ID, "M" + _G.L); string ColorID = NS[1].Split("?")[1]; if (NameOfTexture == ID) NameOfTexture = UIT.Value(Library.Door, ID, "L" + _G.L) + " / " + UIT.Value(Library.CabTexture, ColorID, "L" + _G.L); } if (NS[0] == "Pane") { string ColorID = NS[1].Split("?")[1]; NameOfTexture = UIT.Value(Library.CabTexture, ColorID, "L" + _G.L); } if (NS[0] == "Text") { string ColorID = name.Split("t_")[1].Split("?")[0]; string ShowColorText = "N/A"; if( name.Contains("?")){ ShowColorText = UIT.Value(Library.CabTexture, ColorID, "L" + _G.L); } if(ColorID.Contains("_")){ ShowColorText = TRANS.This("T_Color"); } NameOfTexture = ShowColorText; //Text_#737373_Matt_FLAT //Text_3?0 } TextureSelect.text = NameOfTexture; } public void ShowNameSelect() { TextureSelect.text = ""; } //CHECK IS AVAILABLE public static bool IsDoorAvailable(string Door ,string CabinetID ) { string DoorID = UIT.Value(Library.Cabinet, CabinetID, Header.Door_ID); if (DoorID == "All" || DoorID == "None") return true; else { string[] DoorIDSplit = DoorID.Split("_"); if (DoorIDSplit.Contains(Door)) { return true; } } return false; } public static bool IsPanelColorAvailable(string Panel,string PanelID) { string ColorID = UIT.Value(Library.Panel, PanelID, Header.ColorID); if (ColorID == "All") return true; else { string[] PanelIDSplit = ColorID.Split("_"); if(PanelIDSplit.Contains(Panel)){ return true;} } return false; } }