Files
aibis-dream/Assets/Scripts/MiniGame/BlockPuzzle/Class/BlockPuzzlePanel.cs
T
2026-01-28 16:20:19 +08:00

71 lines
2.4 KiB
C#

using UnityEngine;
using AibisDream.FixSystem;
using System;
using UnityEngine.Events;
namespace AibisDream
{
public class BlockPuzzlePanel : MonoBehaviour, ILineView
{
[Header("组件索引")]
[SerializeField] private UniversalScreen logScreen;
[SerializeField] private UniversalScreen blockPuzzleScreen;
[SerializeField] private BlockPuzzlePart blockPuzzlePart;
// ---------------------- 维修部分 ----------------------
public BlockPuzzlePart Panel => blockPuzzlePart;
public void ShowShapeInScreen(BlockShapeInfo shape)
{
logScreen.gameObject.SetActive(false);
blockPuzzleScreen.gameObject.SetActive(true);
// 在屏幕上显示对应信息
blockPuzzleScreen.SetImage("设备缩略图", shape.GetButtonImage());
blockPuzzleScreen.SetText("设备名称", shape.shapeName);
blockPuzzleScreen.SetText("设备描述", shape.shapeDescription);
blockPuzzleScreen.SetText("PWR", shape.paramValue.power.ToString());
blockPuzzleScreen.SetText("NOISE", shape.paramValue.noise.ToString());
blockPuzzleScreen.SetText("HEAT", shape.paramValue.heat.ToString());
// TODO: 设备状态后面实现
}
public void ClearShapeInScreen()
{
blockPuzzleScreen.SetImage("设备缩略图", null);
blockPuzzleScreen.SetText("设备名称", "待选择");
blockPuzzleScreen.SetText("设备描述", null);
blockPuzzleScreen.SetText("PWR", "0");
blockPuzzleScreen.SetText("NOISE", "0");
blockPuzzleScreen.SetText("HEAT", "0");
}
// ---------------------- 对话功能 ----------------------
public void RunLine(LineSyncToken syncToken)
{
// 对话时显示Log面板,隐藏BlockPuzzle面板
logScreen.gameObject.SetActive(true);
blockPuzzleScreen.gameObject.SetActive(false);
logScreen.RunLine(syncToken);
}
// -------------------------- 生命周期 --------------------------
private void OnEnable()
{
DialogUIManager.Instance.RegisterScreenView(DialogViewType.Log, this);
}
private void OnDisable()
{
DialogUIManager.Instance.UnRegisterScreenView(DialogViewType.Log);
}
}
}