Files
ChunilENG/Assets/Scripts/UI/Panel_InjectionProduction.cs

94 lines
2.6 KiB
C#
Raw Normal View History

2025-02-20 09:59:37 +09:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using WI;
using static MQTT;
using TMPro;
public class Panel_InjectionProduction : PanelBase
{
public SDictionary<string, UI_MachineStatus> machineStatuses = new SDictionary<string, UI_MachineStatus>();
2025-03-17 12:31:51 +09:00
private Panel_Effect effect;
2025-02-20 09:59:37 +09:00
private UI_MachineStatus prf_machineStatus;
public ScrollRect ScrollView_StatusItems;
public Button CloseButton;
public TextMeshProUGUI CurrentDate;
public TextMeshProUGUI CurrentTime;
public float fadeTime;
public override void AfterAwake()
{
prf_machineStatus = Resources.Load<UI_MachineStatus>("Prefabs/UI/UI_StatusItem");
2025-03-17 12:31:51 +09:00
effect = FindSingle<Panel_Effect>();
2025-02-20 09:59:37 +09:00
CloseButton.onClick.AddListener(Close);
SetDate();
Close();
}
public void Update()
{
SetTime();
}
public void Open()
{
effect.ActivePanel(gameObject);
2025-02-20 09:59:37 +09:00
gameObject.SetActive(true);
gameObject.transform.SetAsLastSibling();
2025-02-20 09:59:37 +09:00
StopAllCoroutines();
StartCoroutine(ScaleUp());
}
public void Close()
{
effect.DeactivePanel(gameObject);
2025-02-20 09:59:37 +09:00
gameObject.SetActive(false);
gameObject.transform.localScale = Vector3.zero;
}
public void SetProductionStatus(List<CompleteInfo> machineInfos)
{
2025-02-24 17:29:39 +09:00
bool odd = true;
2025-02-20 09:59:37 +09:00
foreach (var machineInfo in machineInfos)
{
if (!machineStatuses.ContainsKey(machineInfo.worknm))
{
var machineStatus = Instantiate(prf_machineStatus, ScrollView_StatusItems.content);
machineStatuses.Add(machineInfo.worknm, machineStatus);
}
2025-02-24 17:29:39 +09:00
if (odd)
{
machineStatuses[machineInfo.worknm].SetStatusData(machineInfo, new Color(0.07058824f, 0.1294118f, 0.2941177f));
}
else
{
machineStatuses[machineInfo.worknm].SetStatusData(machineInfo, new Color(0.04313726f, 0.09019608f, 0.2235294f));
}
odd = !odd;
2025-02-20 09:59:37 +09:00
}
}
public void SetDate()
{
2025-02-24 17:29:39 +09:00
CurrentDate.text = DateTime.Now.ToString("yyyy.MM.dd");
2025-02-20 09:59:37 +09:00
}
public void SetTime()
{
CurrentTime.text = DateTime.Now.ToString("HH:mm");
}
IEnumerator ScaleUp()
{
float timer = 0f;
float percent = 0f;
while (percent < 1)
{
timer += Time.deltaTime;
percent = timer / fadeTime;
transform.localScale = Vector3.Lerp(transform.localScale, Vector3.one, percent);
yield return null;
}
}
}