上海虹口龙之梦项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

943 lines
34 KiB

using AX.MessageSystem;
using UnityEngine;
using UnityEngine.AddressableAssets;
public class MainMenu : MonoSingleton<MainMenu>
{
public MainMenuMode MenuMode;
public BuildingType BuildType;
public FloorViewMode ViewMode;
//防火分区
public static bool ShowFireCompartments;
//防火门
public static bool ShowFireDoors;
//防火卷帘
public static bool ShowFireShutters;
//室内消火栓
public static bool ShowIndoorHydrants;
private void Awake()
{
GameManager.Instance.Initialize();
}
#region MainMenu
public void OnHome()
{
UIManager.Instance.Show<MainButtonsPanel>();
switch (MenuMode)
{
case MainMenuMode.:
UIManager.Instance.Hide<PersonnelLocationPanel>();
UIManager.Instance.Hide<PersonnelLocationMenuPanel>();
break;
case MainMenuMode.:
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.gameObject.SetActive(false);
UIManager.Instance.Hide<IntroductionMenuPanel>();
break;
case MainMenuMode.:
MessageDispatcher.SendMessage("FIRECONTROL", false, "FireControlRoom");
MessageDispatcher.SendMessage("FIRECONTROLCENTERCOLOR", false);
EquipmentManager.Instance.CreationType = EquipmentType.None;
UIManager.Instance.Hide<EquipmentRoomAttributePanel>();
break;
case MainMenuMode.:
UIManager.Instance.Hide<FireDesignMenuPanel>();
break;
case MainMenuMode.:
UIManager.Instance.Hide<SmokeSystemMenuPanel>();
break;
case MainMenuMode.:
UIManager.Instance.Hide<WaterSystemMenuPanel>();
break;
case MainMenuMode.:
UIManager.Instance.Hide<EvacuationSystemMenuPanel>();
AssetManager.Instance.ZhuTi.SetActive(true);
AssetManager.Instance.ShiNei.SetActive(true);
AssetManager.Instance.Transparent.SetActive(false);
UIManager.Instance.Show<FloorButtonsPanel>();
break;
case MainMenuMode.:
AssetManager.Instance.MainCamera.SetActive(true);
UIManager.Instance.Show<CompassPanel>();
AssetManager.Instance.RoamingAssets.SetActive(false);
//卸载全景图
EquipmentManager.Instance.UnLoadAsset();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.Sets.Clear();
break;
case MainMenuMode.:
UIManager.Instance.Hide<WaterSourceMenuPanel>();
switch (BuildType)
{
case BuildingType.:
UIManager.Instance.Show<FloorButtonsPanel>();
break;
case BuildingType.:
break;
}
AssetManager.Instance.MainCamera.SetActive(true);
//AssetManager.Instance.WaterSourceAssets.SetActive(false);
WaterSource.Instance.Hide();
break;
case MainMenuMode.线:
UIManager.Instance.Hide<RouteMapMenuPanel>();
switch (BuildType)
{
case BuildingType.:
UIManager.Instance.Show<FloorButtonsPanel>();
break;
case BuildingType.:
break;
}
AssetManager.Instance.MainCamera.SetActive(true);
DriveRoute.Instance.Hide();
//AssetManager.Instance.RouteMapAssets.SetActive(false);
break;
case MainMenuMode.:
PowerManager.Instance.ClearAll();
UIManager.Instance.Hide<SituationPlottingMenuPanel>();
UIManager.Instance.Hide<PlottingTablesPanel>();
PowerManager.Instance.Hide();
break;
}
UIManager.Instance.Hide<SecondMenuPanel>();
}
/// <summary>
/// 人员定位
/// </summary>
public void OnPersonnelLocation()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<PersonnelLocationPanel>();
UIManager.Instance.Show<PersonnelLocationMenuPanel>();
}
//单位简介
public void OnIntroduction()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.gameObject.SetActive(true);
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<IntroductionMenuPanel>();
}
//消控室
public void OnFireControlRoom()
{
if (AssetManager.Instance.DeviceList.XiaoKongShi.Value)
{
OnInterialClose();
OnResetCamera();
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
EquipmentManager.Instance.CreationType = EquipmentType.FireControlRoom;
MessageDispatcher.SendMessage("FIRECONTROL", true, "FireControlRoom");
MessageDispatcher.SendMessage("FIRECONTROLCENTERCOLOR", true);
}
else
{
MessageBox.Show(AssetManager.Instance.DeviceList.XiaoKongShi.Describe, Color.white, 1f);
}
}
//防火设计
public void OnFireDesign()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<FireDesignMenuPanel>();
}
//防排烟系统
public void OnSmokeControl()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<SmokeSystemMenuPanel>();
}
//供水系统
public void OnWaterSystem()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<WaterSystemMenuPanel>();
}
//疏散系统
public void OnEvacuationSystem()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<EvacuationSystemMenuPanel>();
AssetManager.Instance.ZhuTi.SetActive(false);
AssetManager.Instance.ShiNei.SetActive(false);
UIManager.Instance.Hide<FloorButtonsPanel>();
if (AssetManager.Instance.Transparent)
AssetManager.Instance.Transparent.SetActive(true);
else
AssetManager.Instance.GetTransparent();
}
//体验漫游
public void OnRoaming()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
AssetManager.Instance.MainCamera.SetActive(false);
UIManager.Instance.Hide<CompassPanel>();
if (AssetManager.Instance.RoamingAssets == null)
{
AssetManager.Instance.SetLoadingPanel(true);
Addressables.InstantiateAsync("RoamingAssets").Completed += Loaded=>
{
AssetManager.Instance.RoamingAssets = Loaded.Result;
AssetManager.Instance.SetLoadingPanel(false);
};
}
else
{
AssetManager.Instance.RoamingAssets.SetActive(true);
}
//加载全景图
//EquipmentManager.Instance.CreationType = EquipmentType.ImageMarked;
//EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllImageMarkers;
//EquipmentManager.Instance.LoadData(EquipmentManager.Instance.Equipments.Find(go => go.name == "ImageMarked"), false);
}
//周边水源
public void OnWaterSource()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<WaterSourceMenuPanel>();
switch (BuildType)
{
case BuildingType.:
UIManager.Instance.Hide<FloorButtonsPanel>();
break;
case BuildingType.:
break;
}
//AssetManager.Instance.WaterSourceAssets.SetActive(true);
WaterSource.Instance.Show();
UIManager.Instance.GetView<CompassPanel>().GetComponent<RectTransform>().localEulerAngles = new Vector3(0, 0, 180);
AssetManager.Instance.MainCamera.SetActive(false);
}
//行车路线
public void OnRouteMap()
{
MenuMode = MainMenuMode.线;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<RouteMapMenuPanel>();
switch (BuildType)
{
case BuildingType.:
UIManager.Instance.Hide<FloorButtonsPanel>();
break;
case BuildingType.:
break;
}
AssetManager.Instance.MainCamera.SetActive(false);
DriveRoute.Instance.Show();
UIManager.Instance.GetView<CompassPanel>().GetComponent<RectTransform>().localEulerAngles = new Vector3(0, 0, 180);
}
//态势标绘
public void OnSituationPlotting()
{
MenuMode = MainMenuMode.;
UIManager.Instance.Hide<MainButtonsPanel>();
UIManager.Instance.Show<SecondMenuPanel>(OnSecondMenuLoaded);
UIManager.Instance.Show<SituationPlottingMenuPanel>();
UIManager.Instance.Show<PlottingTablesPanel>();
PowerManager.Instance.Show();
}
private void OnSecondMenuLoaded()
{
UIManager.Instance.GetView<SecondMenuPanel>().MainText.text = MenuMode.ToString();
}
#endregion
#region SubMenu
//基本信息
public void OnInformation(bool isOn)
{
if (isOn)
{
UIManager.Instance.Show<BuildingInformationPanel>();
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
}
else
{
UIManager.Instance.Hide<BuildingInformationPanel>();
}
}
//建筑特点
public void OnBuildingFeature(bool isOn)
{
if (isOn)
{
UIManager.Instance.Show<BuildingFeaturesPanel>();
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
}
else
{
UIManager.Instance.Hide<BuildingFeaturesPanel>();
}
}
//高度
public void OnHeight(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
OnInterialClose();
string url = HttpManager.Instance.GetHeightLocation;
HttpManager.Instance.Get<CameraLocationData>(url, data =>
{
Camera.main.transform.position = data.Position;
Camera.main.transform.eulerAngles = data.Rotation;
Camera.main.GetComponent<CameraOrbit>().distance = data.Distance;
Camera.main.GetComponent<CameraOrbit>().x = data.Xy.x;
Camera.main.GetComponent<CameraOrbit>().y = data.Xy.y;
Camera.main.GetComponent<CameraOrbit>().target.position = data.Pivot;
});
}
MessageDispatcher.SendMessage("HEIGHT", isOn);
}
//毗邻
public void OnAdjacent(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
OnInterialClose();
string url = HttpManager.Instance.GetAdjacentLocation;
HttpManager.Instance.Get<CameraLocationData>(url, data =>
{
Camera.main.transform.position = data.Position;
Camera.main.transform.eulerAngles = data.Rotation;
Camera.main.GetComponent<CameraOrbit>().distance = data.Distance;
Camera.main.GetComponent<CameraOrbit>().x = data.Xy.x;
Camera.main.GetComponent<CameraOrbit>().y = data.Xy.y;
Camera.main.GetComponent<CameraOrbit>().target.position = data.Pivot;
});
UIManager.Instance.Show<AdjacentInfoPanel>(AdjacentGetInfos);
}
else
{
UIManager.Instance.Hide<AdjacentInfoPanel>();
UIManager.Instance.Hide<AdjacentImagePanel>();
}
MessageDispatcher.SendMessage("ADJACENT", isOn);
MessageDispatcher.SendMessage("ADJACENTCONTROLLER", isOn);
}
private void AdjacentGetInfos()
{
var Parent = AssetManager.Instance.transform.Find("Adjacent");
foreach(GameObject go in Parent.GetComponent<AdjacentListening>().Adjectnts)
{
go.GetComponent<AdjacentController>().GetInfos();
}
}
//登高作业面
public void OnFireClimbingSurface(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllFireClimbingSites;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllFireClimbingSites;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.FireClimbingSite;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("FireClimbingSurface", true);
}
else
{
if(EquipmentManager.Instance.CreationType== EquipmentType.FireClimbingSite)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//危险源
public void OnHazardSource(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllHazardSources;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllHazardSources;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.HazardSource;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("HazardSource", true);
}
else
{
EquipmentManager.Instance.UnLoadAsset();
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//禁停区
public void OnNoParking(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllNoParkingAreas;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllNoParkingAreas;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.NoParking;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("NoParking", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.NoParking)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//重点提示
public void OnKeyPoint(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllImportantLocations;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllImportantLocations;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.KeyArea;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("KeyArea", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.KeyArea)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//图片标注
public void OnImageMarked(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllImageMarkers;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllImageMarkers;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.ImageMarked;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("ImageMarked", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.ImageMarked)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//逃生窗
public void OnEscapeWindow(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllEscapeWins;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllEscapeWins;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.EscapeWin;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("EscapeWindow", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.EscapeWin)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//破拆点
public void OnBreakPoint(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllBreakPoints;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllBreakPoints;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.BreakPoint;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("BreakPoint", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.BreakPoint)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<EquipmentAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
}
//微型消防站
public void OnFireStation(bool isOn)
{
if (isOn)
{
UIManager.Instance.GetView<ToolBarPanel>().PlaneToggle.isOn = false;
UIManager.Instance.Show<FireStationPanel>();
}
else
{
UIManager.Instance.Hide<FireStationPanel>();
}
}
//避难层
public void OnRefugeFloor(bool isOn)
{
if (AssetManager.Instance.DeviceList.BiNanCeng.Value)
{
MessageDispatcher.SendMessage("REFUGEFLOOR", isOn);
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.BiNanCeng.Describe, Color.white, 1f);
}
}
//防火分区
public void OnFireCompartment(bool isOn)
{
if (AssetManager.Instance.DeviceList.FangHuoFenQu.Value)
{
ShowFireCompartments = isOn;
MessageDispatcher.SendMessage("FIRECOMPANTMENT", isOn);
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.FangHuoFenQu.Describe, Color.white, 1f);
}
}
//防火门
public void OnFireDoor(bool isOn)
{
if (AssetManager.Instance.DeviceList.FangHuoMen.Value)
{
ShowFireDoors = isOn;
MessageDispatcher.SendMessage("FIREDOOR", isOn);
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.FangHuoMen.Describe, Color.white, 1f);
}
}
//防火卷帘
public void OnFireShutters(bool isOn)
{
if (AssetManager.Instance.DeviceList.FangHuoJuanLian.Value)
{
ShowFireShutters = isOn;
MessageDispatcher.SendMessage("FIRESHUTTER", isOn);
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.FangHuoJuanLian.Describe, Color.white, 1f);
}
}
//送风机
public void OnForcedDraftFan(bool isOn)
{
if (isOn)
{
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllForcedDraftFans;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllForcedDraftFans;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.ForcedDraftFan;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("ForcedDraftFan", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.ForcedDraftFan)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<SmokeFanPanel>();
}
}
//送风口
public void OnAirVent(bool isOn)
{
if (isOn)
{
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllAirVents;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllAirVents;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.AirVent;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("AirVent", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.AirVent)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
}
}
//排烟风机
public void OnSmokeExtractionFan(bool isOn)
{
if (isOn)
{
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllSmokeExtractionFans;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllSmokeExtractionFans;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.SmokeExtractionFan;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("SmokeExtractionFan", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.SmokeExtractionFan)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
UIManager.Instance.Hide<SmokeFanPanel>();
}
}
//排烟口
public void OnSmokeVent(bool isOn)
{
if (isOn)
{
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllSmokeVents;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllSmokeVents;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.SmokeVent;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<CreationPanel>();
EquipmentManager.Instance.LoadData("SmokeVent", true);
}
else
{
if (EquipmentManager.Instance.CreationType == EquipmentType.SmokeVent)
{
EquipmentManager.Instance.UnLoadAsset();
}
UIManager.Instance.Hide<CreationPanel>();
}
}
//泵房水箱
public void OnPumpRoom(bool isOn)
{
if (AssetManager.Instance.DeviceList.BengFang.Value)
{
if (isOn)
{
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.PumpRoomAndWaterTank;
}
else
{
EquipmentManager.Instance.CreationType = EquipmentType.None;
UIManager.Instance.Hide<EquipmentRoomAttributePanel>();
}
MessageDispatcher.SendMessage("PUMPROOM", isOn, "PumpRoomAndWaterTank");
MessageDispatcher.SendMessage("BENGFANGSHUIXIANG", isOn);
MessageDispatcher.SendMessage("SETS", isOn,EquipmentType.Pump.ToString());
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.BengFang.Describe, Color.white, 1f);
}
}
//室内消火栓
public void OnIndoorHydrant(bool isOn)
{
if (AssetManager.Instance.DeviceList.ShiNeiXiaoHuoShuan.Value)
{
ShowIndoorHydrants = isOn;
MessageDispatcher.SendMessage("INTERIALHYDRANT", isOn);
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.ShiNeiXiaoHuoShuan.Describe, Color.white, 1f);
}
}
//室外消火栓
public void OnOutdoorHydrant(bool isOn)
{
if (isOn)
{
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllOutdoorFireHydrants;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllOutdoorFireHydrants;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.OutdoorHydrant;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<HydrantCreationPanel>();
}
else
{
UIManager.Instance.Hide<HydrantCreationPanel>();
UIManager.Instance.Hide<OutdoorHydranrAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
MessageDispatcher.SendMessage("ICON", isOn, EquipmentManager.Instance.CreationType.ToString());
MessageDispatcher.SendMessage("SETS", isOn, EquipmentManager.Instance.CreationType.ToString());
MessageDispatcher.SendMessage("DRAG", isOn, EquipmentManager.Instance.CreationType.ToString());
}
//水泵接合器
public void OnSiameseConnection(bool isOn)
{
if (isOn)
{
EquipmentManager.Instance.GetAllUrl = HttpManager.Instance.GetAllSiameseConnections;
EquipmentManager.Instance.PostAllUrl = HttpManager.Instance.PostAllSiameseConnections;
OnInterialClose();
OnResetCamera();
EquipmentManager.Instance.CreationType = EquipmentType.SiameseConnection;
SelectionManager.Instance.Sets.Clear();
UIManager.Instance.Show<SiameseConnectionCreationPanel>();
}
else
{
UIManager.Instance.Hide<SiameseConnectionCreationPanel>();
UIManager.Instance.Hide<OutdoorHydranrAttributePanel>();
SelectionManager.Instance.ClearSelection();
}
MessageDispatcher.SendMessage("ICON", isOn, EquipmentManager.Instance.CreationType.ToString());
MessageDispatcher.SendMessage("SETS", isOn, EquipmentManager.Instance.CreationType.ToString());
MessageDispatcher.SendMessage("DRAG", isOn, EquipmentManager.Instance.CreationType.ToString());
}
//供水关系图
public void OnDiagram(bool isOn)
{
if (isOn)
{
UIManager.Instance.Show<WaterDiagramPanel>();
}
else
{
UIManager.Instance.Hide<WaterDiagramPanel>();
}
}
//安全出口
public void OnFireEscape(bool isOn)
{
if (AssetManager.Instance.DeviceList.AnQuanChuKou.Value)
{
MessageDispatcher.SendMessage("ICON", isOn, EquipmentType.FireEscape.ToString());
MessageDispatcher.SendMessage("SETS", isOn, EquipmentType.FireEscape.ToString());
MessageDispatcher.SendMessage("LUMOS", isOn, EquipmentType.FireEscape.ToString());
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
else
{
SelectionManager.Instance.ClearSelection();
UIManager.Instance.Hide<FireEscapeAttributePanel>();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.AnQuanChuKou.Describe, Color.white, 1f);
}
}
//疏散楼梯
public void OnEscapeStiar(bool isOn)
{
if (AssetManager.Instance.DeviceList.ShuSanLouTi.Value)
{
MessageDispatcher.SendMessage("SETS", isOn, EquipmentType.EscapeStair.ToString());
MessageDispatcher.SendMessage("LUMOS", isOn, EquipmentType.EscapeStair.ToString());
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
else
{
SelectionManager.Instance.ClearSelection();
UIManager.Instance.Hide<EscapeStairAttributePanel>();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.ShuSanLouTi.Describe, Color.white, 1f);
}
}
//消防电梯
public void OnFireElevator(bool isOn)
{
if (AssetManager.Instance.DeviceList.XiaoFangDianTi.Value)
{
MessageDispatcher.SendMessage("SETS", isOn, EquipmentType.FireElevator.ToString());
MessageDispatcher.SendMessage("LUMOS", isOn, EquipmentType.FireElevator.ToString());
if (isOn)
{
OnInterialClose();
OnResetCamera();
}
else
{
SelectionManager.Instance.ClearSelection();
UIManager.Instance.Hide<FireElevatorAttributePanel>();
}
}
else
{
if (isOn)
MessageBox.Show(AssetManager.Instance.DeviceList.XiaoFangDianTi.Describe, Color.white, 1f);
}
}
#endregion
public void OnInterialClose()
{
MessageDispatcher.SendMessage("INTERIALCOLSED");
}
public void OnResetCamera()
{
AssetManager.Instance.MainCamera.GetComponent<CameraOrbit>().ResetCamera();
}
public Vector2 GetMousePosition(GameObject go)
{
var canvas = UIManager.GetCanvas().GetComponent<Canvas>();
RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, canvas.worldCamera, out Vector2 pos);
float texWidth = go.GetComponent<RectTransform>().sizeDelta.x;
float texHeight = go.GetComponent<RectTransform>().sizeDelta.y;
if (Screen.width - pos.x < Screen.width)
{
pos.x -= texWidth;
}
if (Screen.height - pos.y > Screen.height)
{
pos.y += texHeight;
}
return pos;
}
}