using UnityEngine; using UnityEngine.UI; using System.Globalization; public class Glass : MonoBehaviour { string V; public void StartPNL(){ startPNL(); } public static void startPNL() { if (GameObject.Find("PATERN")) Destroy(GameObject.Find("PATERN").gameObject); if (GameObject.Find("PATERN2")) Destroy(GameObject.Find("PATERN2").gameObject); GameObject PATERN = new GameObject("PATERN", typeof(RectTransform)); PATERN.transform.SetParent(GameObject.Find("GLASSpnl").transform); PATERN.gameObject.SetActive(true); int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); string[] code = _G.OBJs[nO][25].Split("_"[0]); //Fact float maxW = 180; float maxH = 300; float W = DOIT.ConvertStringToNumber(code[0]); float H = DOIT.ConvertStringToNumber(code[1]); float f = maxW/W; if (H* f > maxH) f = maxH/H ; float sx = DOIT.ConvertStringToNumber(code[3]); float sy = DOIT.ConvertStringToNumber(code[4]); float XW = DOIT.ConvertStringToNumber(code[0]); float YH = DOIT.ConvertStringToNumber(code[1]); float px = -XW / 2f + sx / 2f; float py = YH / 2f - sy / 2f; //Door 1 GameObject door = CreateDoorsbtn(PATERN, "1", code[2], sx *f, sy * f, px * f, py * f,f); for (int i = 0; i < 10; i++) { int a = i * 4; if (code.Length > 6 + a) { px += DOIT.ConvertStringToNumber(code[3 + a]); if (px >= XW / 2) { px = -XW / 2f + DOIT.ConvertStringToNumber(code[7 + a]) / 2f; py -= DOIT.ConvertStringToNumber(code[4 + a]) / 2 + DOIT.ConvertStringToNumber(code[8 + a]) / 2; } //door door = CreateDoorsbtn(PATERN, (i + 2).ToString(CultureInfo.InvariantCulture), code[6 + a], DOIT.ConvertStringToNumber(code[7 + a]) * f, DOIT.ConvertStringToNumber(code[8 + a]) * f, px * f, py * f,f); } }//fin for PATERN.transform.localPosition = new Vector3(-290, -10, 1); //Door 2 if (_G.OBJs[nO][26].Length>1) { string[] code2 = _G.OBJs[nO][26].Split("_"[0]); GameObject PATERN2 = new GameObject("PATERN2", typeof(RectTransform)); PATERN2.transform.SetParent(GameObject.Find("GLASSpnl").transform); PATERN2.gameObject.SetActive(true); GameObject door2 = CreateDoorsbtn(PATERN2, "1", code2[2], sx * f, sy * f, px * f, py * f, f); for (int i = 0; i < 10; i++) { int a = i * 4; if (code2.Length > 6 + a) { px += DOIT.ConvertStringToNumber(code2[3 + a]); if (px >= XW / 2) { px = -XW / 2f + DOIT.ConvertStringToNumber(code2[7 + a]) / 2f; py -= DOIT.ConvertStringToNumber(code2[4 + a]) / 2 + DOIT.ConvertStringToNumber(code2[8 + a]) / 2; } //door door2 = CreateDoorsbtn(PATERN2, (i + 2).ToString(CultureInfo.InvariantCulture), code2[6 + a], DOIT.ConvertStringToNumber(code2[7 + a]) * f, DOIT.ConvertStringToNumber(code2[8 + a]) * f, px * f, py * f, f); } } PATERN.transform.localPosition = new Vector3(-200, -10, 1); PATERN2.transform.localPosition = new Vector3(-350, -10, 1); }//fin for } public static GameObject CreateDoorsbtn(GameObject patern, string dn, string p, float Sx, float Sy, float Px, float Py,float f) { GameObject BTN = (GameObject)Instantiate(GameObject.Find("HIDER").transform.Find("Patern").gameObject); BTN.gameObject.SetActive(true); BTN.transform.Find("Background").GetComponent().sizeDelta = new Vector2(Sx, Sy); BTN.transform.Find("Background").transform.Find("Checkmark").GetComponent().sizeDelta = new Vector2(Sx, Sy); BTN.transform.Find("GLASS").GetComponent().sizeDelta = new Vector2(Sx - 4 * f, Sy - 4 * f); if (p == "o") { BTN.transform.Find("OPEN").gameObject.SetActive(true); BTN.GetComponent().interactable = false; } BTN.transform.parent = patern.transform; BTN.name = "door"+dn; BTN.transform.position = new Vector3(Px, Py, 0); return BTN; } public void showPatern() { GameObject pat = GameObject.Find("PATERN").gameObject; if (GameObject.Find("NONE").GetComponent().isOn == true) V = "NONE"; print("V==="+V); for (int k = 1; k < 37; k++){ if (GameObject.Find("G"+k.ToString(CultureInfo.InvariantCulture)).GetComponent().isOn == true) {V="g"+k.ToString(CultureInfo.InvariantCulture);} } Sprite Image=Resources.Load("ICONS/GLASS/"+V) as Sprite; for (int i=1; i< pat.transform.childCount+1; i++){ GameObject D=pat.transform.Find("door"+ i.ToString(CultureInfo.InvariantCulture)).gameObject; if (D.GetComponent().isOn == true){ if (V != "NONE"){ D.transform.Find("GLASS").gameObject.GetComponent().overrideSprite = Image; D.transform.Find("GLASS").gameObject.SetActive(true); } else {D.transform.Find("GLASS").gameObject.SetActive(false);} } } if (GameObject.Find("PATERN2")){ GameObject pat2 = GameObject.Find("PATERN2").gameObject; Image=Resources.Load("ICONS/GLASS/"+V) as Sprite; for (int i=1; i< pat.transform.childCount+1; i++){ GameObject D2=pat2.transform.Find("door"+ i.ToString(CultureInfo.InvariantCulture)).gameObject; if (D2.GetComponent().isOn == true){ if (V != "NONE"){ D2.transform.Find("GLASS").gameObject.GetComponent().overrideSprite = Image; D2.transform.Find("GLASS").gameObject.SetActive(true); } } else {D2.transform.Find("GLASS").gameObject.SetActive(false);} } } } public void changePatern() { GameObject pat = GameObject.Find("PATERN").gameObject; for (int k = 1; k < 37; k++){ if (GameObject.Find("G"+k.ToString(CultureInfo.InvariantCulture)).GetComponent().isOn == true) {V="g"+k.ToString(CultureInfo.InvariantCulture);} } for (int i = 1; i < pat.transform.childCount + 1; i++) { setCode("p", i); if (pat.transform.Find("door" + i.ToString(CultureInfo.InvariantCulture)).transform.Find("GLASS").gameObject.activeSelf == true) setCode(V, i); } if (GameObject.Find("PATERN2")) { GameObject pat2 = GameObject.Find("PATERN2").gameObject; for (int i = 1; i < pat2.transform.childCount + 1; i++) { setCode2("p", i); if (pat.transform.Find("door" + i.ToString(CultureInfo.InvariantCulture)).transform.Find("GLASS").gameObject.activeSelf == true) setCode2(V, i); } } DOIT.CloseALLPNL(); } public void setCode(string V,int i) { print("V=="+V); print("i=="+i); int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); string[] code= _G.OBJs[nO][25].Split("_"[0]); int a = (i+i-1)*2; if(code[a]!="o")code[a] = V; if(code[a]=="OPEN")code[a]="o"; _G.OBJs[nO][25] = ""; for (int k = 0; k < code.Length; k++) { _G.OBJs[nO][25] = _G.OBJs[nO][25] + code[k].ToString(CultureInfo.InvariantCulture) + "_"; } _G.OBJs[nO][25] = _G.OBJs[nO][25].Substring(0, _G.OBJs[nO][25].Length - 1); GameObject CAB = GameObject.Find(_G.OBJs[nO][0]).gameObject; print("_G.OBJs[nO][25]=================================================================="+_G.OBJs[nO][25]); DestroyImmediate(CAB); if (_G.OBJs[nO][5] == "BA") ConstructBASE.AddCab(nO); if (_G.OBJs[nO][5] == "WA") ConstructWALL.AddCab(nO); if (_G.OBJs[nO][5] == "TA") ConstructTALL.AddCab(nO); if (_G.OBJs[nO][5] == "CB") ConstructCORNERBASE.AddCab(nO); if (_G.OBJs[nO][5] == "CW") ConstructCORNERWALL.AddCab(nO); } public void setCode2(string V, int i) { int nO = Get.GetObjectIndex(SceneModeManager.SelectedName); string[] code = _G.OBJs[nO][26].Split("_"[0]); int a = (i + i - 1) * 2; if (code[a] != "o") code[a] = V; if (code[a] == "g13") code[a] = "o"; _G.OBJs[nO][26] = ""; for (int k = 0; k < code.Length; k++) { _G.OBJs[nO][26] = _G.OBJs[nO][26] + code[k].ToString(CultureInfo.InvariantCulture) + "_"; } _G.OBJs[nO][26] = _G.OBJs[nO][26].Substring(0, _G.OBJs[nO][26].Length - 1); GameObject CAB = GameObject.Find(_G.OBJs[nO][0]).gameObject; DestroyImmediate(CAB); if (_G.OBJs[nO][5] == "BA") ConstructBASE.AddCab(nO); if (_G.OBJs[nO][5] == "WA") ConstructWALL.AddCab(nO); if (_G.OBJs[nO][5] == "TA") ConstructTALL.AddCab(nO); if (_G.OBJs[nO][5] == "CB") ConstructCORNERBASE.AddCab(nO); if (_G.OBJs[nO][5] == "CW") ConstructCORNERWALL.AddCab(nO); } public static float getBorder(string num) { float B = 2; switch (num) { case "106": B = 3; break; case "107": B = 3; break; case "108": B = 3;break; case "211": B = 3; break; case "212": B = 3; break; case "213": B = 3; break; case "214": B = 3; break; case "215": B = 2; break; case "216": B = 3; break; case "217": B = 3; break; case "218": B = 4; break; case "219": B = 3; break; case "220": B = 2; break; case "221": B = 3; break; case "222": B = 3; break; case "223": B = 3; break; case "224": B = 2; break; case "225": B = 2.5f; break; case "226": B = 3; break; case "227": B = 3; break; case "228": B = 3; break; case "229": B = 3; break; case "230": B = 4; break; case "231": B = 2; break; case "232": B = 3; break; } return B; } }