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.
191 lines
5.8 KiB
191 lines
5.8 KiB
using AX.MessageSystem; |
|
using AX.NetworkSystem; |
|
using System; |
|
using System.Collections; |
|
using System.Collections.Generic; |
|
using UnityEngine; |
|
using UnityEngine.UI; |
|
|
|
|
|
|
|
public class SetLiquipdata |
|
{ |
|
/// <summary> |
|
/// 全液面火Id |
|
/// </summary> |
|
public long LiquipId; |
|
/// <summary> |
|
/// 时间 |
|
/// </summary> |
|
public string time; |
|
} |
|
public class FireLiquipPanel : BaseAttributeSet |
|
{ |
|
|
|
private InputFieldRecordByAC Minput; |
|
private InputFieldRecordByAC Sinput; |
|
private ButtonRecordByAC Sure; |
|
private ButtonRecordByAC Cancel; |
|
private Text Error; |
|
private int Mtime; |
|
private int Stime; |
|
private int SetTime; |
|
|
|
|
|
private static FireLiquipPanel instance; |
|
|
|
public static FireLiquipPanel Instance |
|
{ |
|
get |
|
{ |
|
if (instance == null) |
|
{ |
|
GameObject obj = Resources.Load<GameObject>("Common/FireLiquipPanel"); |
|
GameObject clone = Instantiate(obj, GameObject.Find("Canvas").transform); |
|
clone.transform.SetAsLastSibling(); |
|
clone.name = "FireLiquipPanel"; |
|
clone.transform.position = Vector3.zero; |
|
instance = clone.GetComponent<FireLiquipPanel>(); |
|
instance.Init(); |
|
} |
|
return instance; |
|
} |
|
} |
|
|
|
void Init() |
|
{ |
|
Minput = transform.Find("MInputField").GetComponent<InputFieldRecordByAC>(); |
|
Sinput = transform.Find("SInputField").GetComponent<InputFieldRecordByAC>(); |
|
Sure = transform.Find("SureButton").GetComponent<ButtonRecordByAC>(); |
|
Cancel = transform.Find("CancelButton").GetComponent<ButtonRecordByAC>(); |
|
Minput.OutInterFaceInPutField = MinputChange; |
|
Sinput.OutInterFaceInPutField = SinputChange; |
|
Sure.OutInterFaceButton = SureClick; |
|
Cancel.OutInterFaceButton = CancelClick; |
|
} |
|
|
|
public override void OnDisable() |
|
{ |
|
base.OnDisable(); |
|
Close(); |
|
} |
|
|
|
public override void OpenPanel() |
|
{ |
|
base.OpenPanel(); |
|
LoadUIDisaster(); |
|
gameObject.SetActive(true); |
|
} |
|
|
|
private void LoadUIDisaster() |
|
{ |
|
if (GameSettings.othersSettings.isSelectedDisaster) |
|
{ |
|
if (GameSettings.othersSettings.mode != Mode.DisasterManagement) |
|
{//若是练习或演习模式进入导调组界面,则不可以修改 |
|
Minput.GetComponent<InputField>().interactable = false; |
|
Sinput.GetComponent<InputField>().interactable = false; |
|
Sure.GetComponent<Button>().interactable = false; |
|
//Cancel.GetComponent<Button>().interactable = false; |
|
} |
|
else |
|
{ |
|
if (!GameSettings.disasterSetting.isEdit) |
|
{//若是灾情库设置模式的查看,则不可以修改 |
|
Minput.GetComponent<InputField>().interactable = false; |
|
Sinput.GetComponent<InputField>().interactable = false; |
|
Sure.GetComponent<Button>().interactable = false; |
|
//Cancel.GetComponent<Button>().interactable = false; |
|
} |
|
else |
|
{ |
|
//若是灾情库设置模式的编辑,则可以修改 |
|
} |
|
} |
|
} |
|
} |
|
|
|
private void CancelClick() |
|
{ |
|
MessageDispatcher.SendMessage("CANCEL_OBJ_SELECTED"); |
|
Close(); |
|
} |
|
|
|
private void SureClick() |
|
{ |
|
if (chooseObj&&chooseObj.GetComponent<FireLiquidLevelCtrl>()) |
|
{ |
|
SetTime = Mtime * 60 + Stime; |
|
string settimestring = SecondToHMS(SetTime); |
|
chooseObj.GetComponent<FireLiquidLevelCtrl>().showTime = settimestring; |
|
|
|
//发送设置时间 |
|
MessageDispatcher.SendMessage("SetTime", new SetLiquipdata() |
|
{ |
|
LiquipId = chooseObj.GetComponent<BaseGameObjInfo>().gameObjID, |
|
time = settimestring, |
|
}); |
|
MessageDispatcher.SendMessage("CANCEL_OBJ_SELECTED"); |
|
|
|
if (GameSettings.othersSettings.mode != Mode.DisasterManagement) |
|
{ |
|
NetworkManager.Default.SendAsync("SET_LIQUIP_HIDE_SYNC", chooseObj.GetComponent<BaseGameObjInfo>().gameObjID); |
|
} |
|
|
|
LoadPromptWin.Instance.LoadTextPromptWindow("设置成功", 1f); |
|
} |
|
|
|
} |
|
|
|
public void Close() |
|
{ |
|
gameObject.SetActive(false); |
|
} |
|
|
|
private void SinputChange(string value) |
|
{ |
|
if (string.IsNullOrEmpty(value)) |
|
{ |
|
Sinput.GetComponent<InputField>().text = "0"; |
|
} |
|
else |
|
{ |
|
Sinput.GetComponent<InputField>().text=Mathf.Clamp(int.Parse(value),0,59).ToString(); |
|
} |
|
Stime = int.Parse(Sinput.GetComponent<InputField>().text); |
|
} |
|
|
|
private void MinputChange(string value) |
|
{ |
|
if (string.IsNullOrEmpty(value)) |
|
{ |
|
Minput.GetComponent<InputField>().text = "0"; |
|
} |
|
else |
|
{ |
|
Minput.GetComponent<InputField>().text = Mathf.Clamp(int.Parse(value), 0, 999).ToString(); |
|
} |
|
Mtime = int.Parse(Minput.GetComponent<InputField>().text); |
|
} |
|
|
|
public override void LoadObjData() |
|
{ |
|
var fireSpreadCtrl = chooseObj.GetComponent<FireLiquidLevelCtrl>(); |
|
|
|
string[] str = fireSpreadCtrl.showTime.Split(':'); |
|
|
|
int min = int.Parse(str[0]) * 60 + int.Parse(str[1]); |
|
int second = int.Parse(str[2]); |
|
|
|
Minput.GetComponent<InputField>().text = min.ToString(); |
|
Sinput.GetComponent<InputField>().text = second.ToString(); |
|
} |
|
|
|
public string SecondToHMS(int second) |
|
{ |
|
int h = (int)(second / 3600); |
|
int m = (int)(second - h * 3600) / 60; |
|
int s = (int)(second - h * 3600 - m * 60); |
|
return string.Format("{0:D2}:{1:D2}:{2:D2}", h, m, s); |
|
} |
|
}
|
|
|