Feature/merge
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
using System.Collections;
|
||||
using AibisDream.FixSystem;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream.Framework
|
||||
{
|
||||
public class CoolingSystem : MonoBehaviour, ICoolingSystem
|
||||
{
|
||||
#region 引用
|
||||
|
||||
private PumpController _pumpUI;
|
||||
private BottleShelf _bottomUI;
|
||||
private TubeController _tubeUI;
|
||||
|
||||
#endregion
|
||||
|
||||
#region 状态
|
||||
|
||||
public bool isLocked;
|
||||
|
||||
private CoolingBottle CurBottle => _pumpUI.bottleSlot.GetCurBottle();
|
||||
|
||||
#endregion
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
FixSystemCenter.SystemDic.Register(this);
|
||||
InitRefs();
|
||||
}
|
||||
|
||||
private void InitRefs()
|
||||
{
|
||||
_pumpUI = transform.Find("Pump Part").GetComponent<PumpController>();
|
||||
_bottomUI = transform.Find("Bottom Part").GetComponent<BottleShelf>();
|
||||
_tubeUI = transform.Find("Tube Part").GetComponent<TubeController>();
|
||||
|
||||
isLocked = true;
|
||||
}
|
||||
|
||||
#region 对外开放
|
||||
|
||||
public IEnumerator OpenCoolingSystem()
|
||||
{
|
||||
yield return _pumpUI.Show();
|
||||
}
|
||||
|
||||
public IEnumerator LinkTube()
|
||||
{
|
||||
// 播放插线动画,完成后自动关闭
|
||||
// 立绘变化待补充
|
||||
yield return _tubeUI.PlayLinkAnime();
|
||||
}
|
||||
|
||||
public IEnumerator OpenBottleUI()
|
||||
{
|
||||
yield return _bottomUI.Show();
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
{
|
||||
isLocked = false;
|
||||
if (CurBottle)
|
||||
{
|
||||
CurBottle.IsBlock = false;
|
||||
}
|
||||
_pumpUI.OpenBuckle();
|
||||
}
|
||||
|
||||
public void InsertBottle(CoolingBottle bottle)
|
||||
{
|
||||
// 插入似乎没有太多逻辑?
|
||||
}
|
||||
|
||||
public void Lock()
|
||||
{
|
||||
isLocked = true;
|
||||
// 已锁定的瓶子禁止使用
|
||||
if (CurBottle)
|
||||
{
|
||||
CurBottle.IsBlock = true;
|
||||
}
|
||||
_pumpUI.CloseBuckle();
|
||||
}
|
||||
|
||||
public void StartPump()
|
||||
{
|
||||
// 进行泵机操作
|
||||
if (isLocked && CurBottle)
|
||||
{
|
||||
// 播放pump动画
|
||||
_pumpUI.PlayPumpAnime();
|
||||
// 播放泵机运行对话
|
||||
// DialogController.Instance.StartDialogNode($"泵机运行_{CurBottle.data.name}");
|
||||
Debug.Log($"泵机运行_{CurBottle.data.name}");
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("close_bottle_ui")]
|
||||
public IEnumerator CloseBottleUI()
|
||||
{
|
||||
yield return _bottomUI.Hide();
|
||||
}
|
||||
|
||||
[YarnCommand("close_cooling_system")]
|
||||
public IEnumerator CloseCoolingSystem()
|
||||
{
|
||||
yield return _pumpUI.Hide();
|
||||
_pumpUI.StopPumpAnime();
|
||||
_pumpUI.DestroyBottle();
|
||||
}
|
||||
|
||||
[YarnCommand("pull_out_tube")]
|
||||
public IEnumerator PullOutTube()
|
||||
{
|
||||
yield return _tubeUI.PlayPullOutAnime();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public interface ICoolingSystem
|
||||
{
|
||||
// 打开冷却系统UI
|
||||
public IEnumerator OpenCoolingSystem();
|
||||
// 插管
|
||||
public IEnumerator LinkTube();
|
||||
// 打开左侧冷却液界面
|
||||
public IEnumerator OpenBottleUI();
|
||||
// 打开卡扣
|
||||
public void Unlock();
|
||||
// 插入冷却液瓶子
|
||||
public void InsertBottle(CoolingBottle bottle);
|
||||
// 关闭卡扣
|
||||
public void Lock();
|
||||
// 点击泵机开关
|
||||
public void StartPump();
|
||||
// 冷却液架收回
|
||||
public IEnumerator CloseBottleUI();
|
||||
// 冷却系统UI收回
|
||||
public IEnumerator CloseCoolingSystem();
|
||||
// 拔管
|
||||
public IEnumerator PullOutTube();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user