using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; using System.Text.RegularExpressions; 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) { DOIT.DELETEAllObjectChild(Container); foreach (string Texture in YOUR_DOORS) { print("Door Texture=====" + Texture); string[] DoorID = Texture.Split("_"); if (IsDoorAvailable(DoorID[1].Split("?")[0])) { GameObject Newbtn = Instantiate(Btn); Newbtn.transform.SetParent(Container.transform, false); Newbtn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(Texture.Split("?")[1]); Newbtn.name = Texture; Newbtn.SetActive(true); } } } public static void ShowPanelTexture(GameObject Container, GameObject Btn) { DOIT.DELETEAllObjectChild(Container); foreach (string Texture in YOUR_PANELS) { string[] PanelID = Texture.Split("_"); if (IsPanelAvailable(PanelID[1].Split("?")[0])) { string Code = Texture.Split("_")[1]; GameObject Newbtn = Instantiate(Btn); Newbtn.transform.SetParent(Container.transform, false); Newbtn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(Code.Split("?")[0]); Newbtn.name = Texture; Newbtn.SetActive(true); } } } public static void ShowTexture(GameObject Container, GameObject Btn) { DOIT.DELETEAllObjectChild(Container); foreach (string Texture in YOUR_TEXTURES) { print("Texture=====" + Texture); string Code = Texture.Split("t_")[1]; print("Code=====" + Code); 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") { ADN[61] = nameSplit[1]; ADN[69] = Match_Finish.Exterior_From_Door(ADN[61]); ADN[63] = Match_Finish.Kick_From_Door(ADN[61]); 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") { ADN[61] = nameSplit[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("?")[0]; 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) { int Ind = Get.GetObjectIndex(SceneModeManager.Selected.name); string[] ADN = _G.OBJs[Ind]; string CabinetID = UIT.GetIDByUnique_Name(Library.Cabinet, ADN[1]); 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 IsPanelAvailable(string Panel) { int Ind = Get.GetObjectIndex(SceneModeManager.Selected.name); string[] ADN = _G.OBJs[Ind]; print("ADN[1]=====" + ADN[1]); string PanelID = ADN[1]; //UIT.GetIDByUnique_Name(Library.Panel, ADN[1]); print("PanelID=====" + 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; } }