using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AdamThinkDevicesData;
using AdamSync;
using LitJson;
using Newtonsoft.Json;
///
/// 设备
///
public class EquipmentCommon : MonoBehaviour
{
public EquipmentCommon equipmentCommon;
///
/// 场景所在方
///
public SelectedSide selectedSide = SelectedSide.Other;
///
/// 所有设备
///
public static List equipmentCommons = new List();
public string equipmentType = "";
private bool _isStartRehearsing = false;
public string deviceID;
public bool isPlayer = false;
// 布尔值变化时触发的事件
public event System.Action OnActivationChanged;
// 属性绑定布尔值,并在值变化时触发事件
public bool isStartRehearsing
{
get { return _isStartRehearsing; }
set
{
if (_isStartRehearsing != value)
{
_isStartRehearsing = value;
OnActivationChanged?.Invoke(_isStartRehearsing);
}
}
}
void Start()
{
equipmentCommon = GetComponent();
equipmentCommons.Add(this);
// 订阅布尔值变化事件
OnActivationChanged += OnActivationChangedHandler;
}
///
///
///
///
void OnActivationChangedHandler(bool newValue)
{
if (equipmentCommon)
{
//string msg = $"send2room {equipmentCommon.equipmentType}+{transform.position.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")}+{transform.eulerAngles.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")}";
//Debug.Log(msg);
//_ = SyncCreateRoom.SendMessageAsync(msg);
}
switch (equipmentType)
{
case "激光火控平台":
LaserFireControlPlatformManger laserFireControlPlatformManger = GetComponent();
laserFireControlPlatformManger.isStartRehearsing = isStartRehearsing;
break;
case "探测雷达":
RadarManger radarManger = GetComponent();
radarManger.isStartRehearsing = isStartRehearsing;
break;
case "地面无线电干扰":
TerrestrialRadioInterferenceManger terrestrialRadioInterferenceManger = GetComponent();
terrestrialRadioInterferenceManger.isStartRehearsing = isStartRehearsing;
break;
case "无人机List":
UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent();
unmannedAerialVehicleManage.isStartRehearsing = isStartRehearsing;
break;
default:
break;
}
}
public char replaceInfo;
public Dictionary replaceInfoDic = new Dictionary();
//public void ResultsInfo(bool b, string s)
//{
// Debug.Log(s);
// ReturnDeviceID result = JsonConvert.DeserializeObject(s);
// Debug.Log(result.data);
//}
///
///
///
///
public void FillInTheData(List weaponitemone)
{
if (!isPlayer) return;
if (equipmentCommon)
{
string paraListJson = JsonConvert.SerializeObject(weaponitemone);
replaceInfoDic.Add("PracticeId", GlobalFlag.roomID);
replaceInfoDic.Add("PracticeSubjectId", GlobalFlag.practiceSubjectID);
replaceInfoDic.Add("device_name", equipmentCommon.equipmentType);
replaceInfoDic.Add("para_list", paraListJson);
StartCoroutine(AsyncWebReq.PostData2("http://111.229.30.246:48888/Handler/Thinkingfile.ashx?action=addpracticedevicedetail", replaceInfoDic, ResultsInfo =>
{
ReturnDeviceID returnID = JsonConvert.DeserializeObject(ResultsInfo);
deviceID = returnID.data;
string msg = $"send2room {equipmentCommon.equipmentType},{transform.position.ToString().Replace(" ", "").Replace("(", "").Replace(")", "")},{transform.eulerAngles.ToString().Replace(" ", "").Replace("(", "").Replace(")", "") + "," + returnID.data}";
_ = SyncCreateRoom.SendMessageAsync(msg);
}));
}
switch (equipmentType)
{
case "激光火控平台":
LaserFireControlPlatformManger laserFireControlPlatformManger = GetComponent();
laserFireControlPlatformManger.FillInTheData(weaponitemone);
laserFireControlPlatformManger.isStartRehearsing = isStartRehearsing;
break;
case "探测雷达":
RadarManger radarManger = GetComponent();
radarManger.FillInTheData(weaponitemone);
break;
case "地面无线电干扰":
TerrestrialRadioInterferenceManger terrestrialRadioInterferenceManger = GetComponent();
terrestrialRadioInterferenceManger.FillInTheData(weaponitemone);
break;
case "无人机List":
UnmannedAerialVehicleManage unmannedAerialVehicleManage = GetComponent();
unmannedAerialVehicleManage.FillInTheData(weaponitemone);
break;
default:
break;
}
}
}
public enum SelectedSide
{
Rad,
Blue,
Director,
Other
}