using System; using System.Collections; using System.Collections.Generic; using JetBrains.Annotations; using TMPro; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.UI; public class CathedralCeiling : MonoBehaviour { public GameObject _InputRecipe; public GameObject _PanelSetting; public GameObject _PaneList; public TMP_Dropdown _Qty; public RectTransform _WallContainer; public RectTransform _PointContainer; public GameObject BtnCreateCeiling; public GameObject ChooseRoomDesign; public GameObject _SelectionPanel; public GameObject BtnSetHeight; public void ShowPanel(){ bool IsOn=BtnCreateCeiling.GetComponent().isOn; _PanelSetting.SetActive(IsOn); if(IsOn)AddPointsNumbers(); else{DeletePointsNumbers();} Get.o2("Canvas/Panel_DRAWPlan_NEW","Selection Panel").SetActive(false); if(IsOn)SceneModeManager.CompareSceneMode(SceneModes.Cathedral); else SceneModeManager.CompareSceneMode(SceneModes.Plan2D); } public void ShowPointsNumber(){ bool IsOn=BtnSetHeight.GetComponent().isOn; if(IsOn)AddPointsNumbers(); else{DeletePointsNumbers();} Get.o2("Canvas/Panel_DRAWPlan_NEW","Selection Panel").SetActive(false); if(IsOn)SceneModeManager.CompareSceneMode(SceneModes.Cathedral); else SceneModeManager.CompareSceneMode(SceneModes.Plan2D); } public void Plus(){ GameObject InputRecipe=Instantiate(_InputRecipe); InputRecipe.name="LineRecipe"; InputRecipe.SetActive(true); InputRecipe.transform.SetParent(_PaneList.transform); } public void Minus(){ for(int i=0; i<_PaneList.transform.childCount; i++){ GameObject Panellist=_PaneList.transform.GetChild(i).gameObject; if(Panellist.transform.Find("Toggle").GetComponent().isOn){ Destroy(Panellist); } } } public void ResetLevel(){ for(int i=0; i<_PaneList.transform.childCount; i++){ GameObject Panellist=_PaneList.transform.GetChild(i).gameObject; if(Panellist.transform.Find("Toggle").GetComponent().isOn){ Panellist.transform.Find("Recipe").GetComponent().text=""; } } } public void AddtoList(GameObject Number){ int NumberOfLevel= _PaneList.transform.childCount; for(int i=0; i().isOn){ TMP_Text ListText = Panellist.transform.Find("Recipe").GetComponent(); if(!string.IsNullOrEmpty(ListText.text))ListText.text+=","; ListText.text+=Number.GetComponent().text; } } //print("Number.name==="+Number.GetComponent().text); string PointSelect=Number.GetComponent().text; //print("PointSelect==="+PointSelect); FillCeilingPoints(NumberOfLevel); _SelectionPanel.SetActive(true); GameObject Point=Number.transform.parent.transform.parent.gameObject; Color ColorHeader = Color.red; string Title=TRANS.This("T_EXTERIOR POINT")+" "+PointSelect; float Height=Point.GetComponent()._PointHeight; WallSelection.AddInputOption(ColorHeader,Title,"InputHeight",false,Height,0); _G.SelectedPoint2D=Point.GetComponent(); } public void OpenSetHeightPanel(){ } public void FillCeilingPoints(int NumberOfLevel){ _G.CeilingPoints=new List[NumberOfLevel]; for(int i=0; i().text.Split(','); _G.CeilingPoints[i]=new(){}; foreach(string str in ListLevel){ _G.CeilingPoints[i].Add( GetPositionOfPoint(str)); } } } public Vector3 GetPositionOfPoint(string Number){ WallPoint Point=_PointContainer.transform.Find("WallPoint"+Number).gameObject.GetComponent(); Vector2 PositionPoint=Point.GetWorldPosition(); float height = Point._PointHeight; return new(PositionPoint.x,height,PositionPoint.y); } public static string GetRecipeWallAround(RectTransform WallContainer){ string Recipe=""; int vertexCount = WallContainer.childCount; for(int i=1; i1 //print("DefaultCeilingRecipe 3"); _G.CeilingPoints=new List[1]; _G.CeilingPoints[0]=new(){}; //string[] Recipe=GetRecipeWallAround(PointContainer).Split(","); foreach(Transform PointNumber in PointContainer.transform) { Vector2 PointPosition=PointNumber.GetComponent().GetWorldPosition(); float height=PointNumber.GetComponent()._PointHeight; Vector3 NewPoint=new(PointPosition.x,height,PointPosition.y); NewPoint +=_G.RoomOffset; _G.CeilingPoints[0].Add( NewPoint); //print("PointPosition===="+PointPosition); } } } Get.o2("Canvas","Panel_DRAWPlan_NEW").SetActive(false); } public void AddPointsNumbers(){ foreach(Transform Point in _PointContainer.transform){ GameObject BTNSelection=Instantiate(Get.o2("Canvas/Panel_DRAWPlan_NEW","BtnNumber")); BTNSelection.transform.SetParent(Point.transform,false); BTNSelection.SetActive(true); BTNSelection.transform.localPosition=new(0,0,0); BTNSelection.name="OverNember";//Point.name[9..]; BTNSelection.transform.Find("Txt").gameObject.GetComponent().text=Point.name[9..];//WallPoint1 } ChooseRoomDesign.SetActive(false); } public void DeletePointsNumbers(){ foreach(Transform Point in _PointContainer.transform){ if(Point.Find("OverNember"))Destroy(Point.Find("OverNember").gameObject); } ChooseRoomDesign.SetActive(true); } public static void CeilingHeight(){ GameObject PointContainer=Get.o2("Panel_DRAWPlan_NEW/Plan2D_UI","WallPointContainer"); bool isSameHeight=true; float Firstpoint=PointContainer.transform.GetChild(0).transform.gameObject.GetComponent()._PointHeight; foreach(Transform Point in PointContainer.transform) { float Height=Point.gameObject.GetComponent()._PointHeight; if(Firstpoint!=Height)isSameHeight=false; } if(isSameHeight) { foreach(Transform Pts in PointContainer.transform){ Pts.gameObject.GetComponent()._PointHeight=_G.HEIGHT; } } } }