using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using TMPro; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; public class Set : MonoBehaviour { public static void alpha(GameObject O, bool TF) { if (O == null) { Debug.Log("No object passed"); return; } float a = 0; if (TF) a = 1; O.GetComponent().alpha = a; O.GetComponent().interactable = TF; O.GetComponent().blocksRaycasts = TF; } public static void alphaAllChild(GameObject PARENT, bool TF) { float a = 0; foreach (Transform O in PARENT.transform) { a = 0; if (TF) a = 1; O.gameObject.GetComponent().alpha = a; O.gameObject.GetComponent().interactable = TF; O.gameObject.GetComponent().blocksRaycasts = TF; } } public static void ToggleGroupToAllChild(string path) { ToggleGroup TG; if (!GameObject.Find("Tog_" + path)) { TG = Instantiate(Get.o2("TOOGLEGROUP", "toggleForAll")).GetComponent(); TG.name = "Tog_" + path; } else { TG = GameObject.Find("Tog_" + path).GetComponent(); } GameObject O = Get.o1(path); for (int i = 0; i < O.transform.childCount; i++) { O.transform.GetChild(i).GetComponent().group = TG; } } public static string CodeTexture() { string code = ""; for (int i = 0; i < 14; i++) { code += _G.SC[i]; if (i < 13) code += "?"; } return code; } public static string AsString(string[] StringArray) { string NewString = ""; for (int i = 0; i < StringArray.Length; i++) { NewString += StringArray[i]; if (i < StringArray.Length - 1) NewString += ","; } return NewString; } public void CloseByAlpha() { GameObject Pnl = transform.parent.gameObject; Set.alpha(Pnl, false); } public static string Chars(string s) { return Regex.Replace(s, @"[^\x20-\x7F]", ""); } public static void WallColorQueuRendering() { for (int i = 0; i < _G.NW; i++) { //print("_G.NW==="+_G.NW); string wall = "w" + (i + 1).ToString(); //print("wall==="+wall); GameObject wallinRoom = Get.o2("ROOM", wall); if (_G.ExteriorWalllist.Contains(wall)) { foreach (Transform s in wallinRoom.transform) { s.gameObject.GetComponent().material.renderQueue = 2000; } } else { wallinRoom.transform.Find("s1").GetComponent().material.renderQueue = 2451; } } } public static void AllColorBtn(GameObject GlobalSelections, string PanelOn, string Object) { //if (_P.Listfloat["GLOBAL_QTY"] != 1) //{ GlobalSelections.SetActive(true); DOIT.AllChildOff(GlobalSelections); GameObject Btn = Instantiate(Get.o2("Panel_SCENE/PNL/CABINETpnl", "btnAvailableDoor")); foreach (string Doorline in _G.UIT_LibraryDoors) { string[] DoorlineSplit = Doorline.Split(","); if (!string.IsNullOrEmpty(DoorlineSplit[0]) && !DoorlineSplit[0].Contains("ID")) { string ColID = UIT.Value(Library.Door, DoorlineSplit[0], Header.Color_ID); string[] ColIDSplit = ColID.Split("_"); foreach (string Color in ColIDSplit) { AddBrnToDoorSelection(Btn, GlobalSelections, DoorlineSplit[0],Color); } } } // for (int i = 1; i < int.Parse(_P.List["GLOBAL_QTY"]) + 1; i++) // { // string ColorID = UIT.Global(Header.Ext, i).Split("?")[0]; // if (Object == "Cabinet") { ColorID = UIT.Global(Header.Door, i).Split("?")[1]; } // //GameObject G = GlobalSelections.transform.Find("btnG" + i.ToString()).gameObject; // Btn.SetActive(true); // Btn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(ColorID); // string ColorName = UIT.Value(Library.CabTexture, ColorID, Header.Unique_Name); // if (_G.PATH == "bmr") // { // switch (ColorID) // { // case "1": ColorName = TRANS.This("M_WHITE"); break; // case "2": ColorName = TRANS.This("M_GRAY"); break; // case "3": ColorName = TRANS.This("D_WOOD"); break; // } // } // if (Btn.transform.Find("Name") != null) {Btn.transform.Find("Name").GetComponent().text = ColorName;} // } DOIT.AllTogchildfalse(GlobalSelections); GLOBALSET.G_OnGLOBAL(PanelOn); //} //else GlobalSelections.SetActive(false); } public static void AvailableDoors(GameObject DoorSelections, string PanelOn, string CabinetID) { print("_P.ListSwitch[SHOW_ALL_LIBRARY]====" +Get.PreferenceBool("SHOW_ALL_LIBRARY")); if (Get.PreferenceBool("SHOW_ALL_LIBRARY")) { if (!_P.ListSwitch["CABS_HAS_ALL_DOORS"] || _P.Listfloat["GLOBAL_QTY"] != 1 ) { DoorSelections.SetActive(true); string[] ListAvailable; string AvailableDoor = UIT.Value(Library.Cabinet, CabinetID, Header.Door_ID); DOIT.DELETEAllObjectChild(DoorSelections); if (AvailableDoor == "All" || AvailableDoor == "None") { AllColorBtn(DoorSelections, PanelOn, "Cabinet"); } else { GameObject Btn = Instantiate(Get.o2("Panel_SCENE/PNL/CABINETpnl", "btnAvailableDoor")); DOIT.AllChildOff(DoorSelections); ListAvailable = AvailableDoor.Split("_"); foreach (string Door in ListAvailable) { string Color = UIT.Value(Library.Door, Door, Header.Color_ID); AddBrnToDoorSelection(Btn, DoorSelections, Door, Color); } } ToggleGroupToAllChild("Panel_SCENE/PNL/CABINETpnl/AvailableDoors"); DoorSelections.transform.GetChild(0).gameObject.GetComponent().isOn = true; } } else DoorSelections.SetActive(false); } public static void AddBrnToDoorSelection(GameObject Btn, GameObject GlobalSelections, string Door, string Color) { GameObject btn = Instantiate(Btn); btn.SetActive(true); btn.transform.SetParent(GlobalSelections.transform, false); btn.name = Door + "?" + Color; string UniqueName = UIT.Value(Library.CabTexture, Color, Header.Unique_Name); btn.transform.Find("Name").GetComponent().text = UniqueName; btn.transform.Find("Background").GetComponent().sprite = UIT_MATERIAL.GetSprite(Color); } public static void LanguageSelection() { GameObject DropdownLanguage = GameObject.Find("Canvas/Language"); List LanguageList = new(); if (_P.ListSwitch["ENGLISH"]) { LanguageList.Add("English"); } if (_P.ListSwitch["FRENCH"]) { LanguageList.Add("Français"); } if (_P.ListSwitch["SPANISH"]) { LanguageList.Add("English"); } DropdownLanguage.transform.GetComponent().ClearOptions(); DropdownLanguage.GetComponent().AddOptions(LanguageList); SystemLanguage Languagesystem = Application.systemLanguage; _G.L = 1; if (Application.systemLanguage == SystemLanguage.English && _P.ListSwitch["ENGLISH"]) _G.L = 1; if (Application.systemLanguage == SystemLanguage.French && _P.ListSwitch["FRENCH"]) _G.L = 2; if (Application.systemLanguage == SystemLanguage.Spanish && _P.ListSwitch["SPANISH"]) _G.L = 3; int valueON = 0; for (int i = 0; i < LanguageList.Count; i++) { if (DropdownLanguage.transform.GetComponent().options[i].text == "English" && _G.L == 1) { valueON = i; break; } if (DropdownLanguage.transform.GetComponent().options[i].text == "French" && _G.L == 2) { valueON = i; break; } if (DropdownLanguage.transform.GetComponent().options[i].text == "Spanish" && _G.L == 3) { valueON = i; break; } } DropdownLanguage.transform.GetComponent().value = valueON; } public static void SetSystemMesurePreference() { List options = new(); Dropdown Sys = Get.o2("Canvas/Language", "SYS").GetComponent(); Sys.ClearOptions(); if (_P.ListSwitch[Pref.MEASURE_IMPERIAL]) { options.Add("Imperial"); } if (_P.ListSwitch[Pref.MEASURE_METRIC]) { options.Add("Metric"); } if (!_P.ListSwitch[Pref.MEASURE_IMPERIAL] && !_P.ListSwitch[Pref.MEASURE_METRIC]) { options.Add("Imperial"); } Sys.AddOptions(options); } public static string NewValueCode(string Code, string NewValue, int position, string Divider) { string[] CodeSplit = Code.Split(Divider); string NewCode = ""; for (int i = 0; i < CodeSplit.Length; i++) { if (i != position) { NewCode += CodeSplit[i]; } else { NewCode += NewValue; } if (i < CodeSplit.Length - 1) NewCode += Divider; } return NewCode; } public static void Layer(GameObject obj, int newLayer) { if (obj == null || obj.name.Length <= 4) return; List Category = new() { "wind", "pati", "door", "open" }; if (!Category.Contains(obj.name[..4])) { obj.layer = newLayer; foreach (Transform child in obj.transform) { if (child != null) { Layer(child.gameObject, newLayer); } } } } }