NewN_UAVPlane/Assets/Zion/Scripts/Adam/UIBootstrap.cs

141 lines
4.2 KiB
C#

using AdamThinkDevicesData;
using Newtonsoft.Json;
using PData;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class UIBootstrap : MonoSingleton<UIBootstrap>
{
public string url;
public string sceneInfoUrl;
public Editinformation editinformation = new Editinformation();
public SceneRoot currentSceneInfo = new SceneRoot();
public List<RSData.SubjectDataItem> subjectInfo = new List<RSData.SubjectDataItem>();
public List<Traininginformation> traininginformations = new List<Traininginformation>();
public AdamThinkDevicesData.DeviceData thinkDevicesData = new AdamThinkDevicesData.DeviceData();
public RSData.RoomSubjectData currentRoomData = new RSData.RoomSubjectData();
// Start is called before the first frame update
private async void Start()
{
editinformation = await AsyncWebReq.Post<Editinformation>(url, null);
for (int i = 0; i < editinformation.data.Count; i++)
{
Traininginformation t = new Traininginformation();
t = Jsonanalyze.FromJson<Traininginformation>(editinformation.data[i].VirtualPath);
traininginformations.Add(t);
}
AdamSync.SyncCreateRoom.leaveRoomRequset += OnLeaveRoomInfo;
AdamSync.SyncCreateRoom.send2worldRequset += OnGetWorldInfo;
}
public async void GetSceneData(string roomId)
{
string _url = sceneInfoUrl + roomId;
//Debug.LogError(_url);
currentSceneInfo = await AsyncWebReq.Get<SceneRoot>(_url);
}
public void GetSubjectInfo(List<RSData.SubjectDataItem> sdi)
{
subjectInfo = sdi;
}
public async void GetAllDeviceData()
{
thinkDevicesData = await AsyncWebReq.Post<AdamThinkDevicesData.DeviceData>("http://111.229.30.246:48888/Handler/Thinkingfile.ashx?action=practicethinkdevice&Id=" + GlobalFlag.currentThinkId, null);
}
public AdamThinkDevicesData.DataItem GetDeviceByName(string deviceName)
{
AdamThinkDevicesData.DataItem detaIteml = null;
for (int i = 0; i < thinkDevicesData.data.Count; i++)
{
if (thinkDevicesData.data[i].device_name == deviceName)
return thinkDevicesData.data[i];
}
return detaIteml;
}
public int GetRoomStateById(string Id)
{
for (int i = 0; i < currentRoomData.data.Count; i++)
{
if (currentRoomData.data[i].Id == Id)
{
return currentRoomData.data[i].State;
}
}
return 0;
}
public List<List_paraItem> GetListParaItemById(string deviceId)
{
for (int i = 0; i < thinkDevicesData.data.Count; i++)
{
if (thinkDevicesData.data[i].id == deviceId)
return thinkDevicesData.data[i].list_para;
}
return null;
}
public string GetRoleByIDPracticeId(string practiceID)
{
for (int i = 0; i < subjectInfo.Count; i++)
{
int index = i;
if (subjectInfo[index].Id == practiceID && subjectInfo[index].UserName == GlobalFlag.currentUser.real_name)
{
return subjectInfo[index].Role;
}
}
return "0";
}
///// <summary>
///// 是否分配角色
///// </summary>
//public bool IsAllocate()
//{
// string currentName =
// for(int i = 0;i < subjectInfo.Count; i++)
// {
// }
//}
public void OnGetWorldInfo(string msg)
{
Debug.Log("OnGetWorldInfo====" + msg);
GameManager.Instance.RemovePlayer(ulong.Parse(msg));
}
public void OnLeaveRoomInfo(string msg)
{
string[] data = msg.Split(',');
Debug.Log(data[1]);
_ = AdamSync.SyncCreateRoom.SendMessageAsync($"send2world {GlobalFlag.currentUser.user_id}");
SceneManager.LoadScene("SampleScene");
}
private void OnDisable()
{
Debug.Log("OnDisable");
AdamSync.SyncCreateRoom.leaveRoomRequset -= OnLeaveRoomInfo;
string _msg = "leaveroom ";
_ = AdamSync.SyncCreateRoom.SendMessageAsync(_msg);
}
private void OnDestory()
{
Debug.Log("OnDestory");
AdamSync.SyncCreateRoom.leaveRoomRequset -= OnLeaveRoomInfo;
}
}