using UnityEngine; namespace AibisDream { public class CoolingMachineSystem : MonoBehaviour, ICoolingMachine { public bool isMachineEmpty; public GameObject bottleSlot; public CoolingBottle bottle; public GameObject pumpHead; public GameObject lockSwitch; public GameObject pumpButton; #region 对外暴露 public void LinkRobot() { // TODO 这里是应该ta来控制吗?存疑 isMachineEmpty = true; } /// /// 泵出冷却液 /// public void PumpCooling() { // 泵头下降 // 液面上升 // 完成后液体满了 isMachineEmpty = true; } public void UnlockBottle() { // 卡扣上移 // 瓶子外旋 // 机器空置 isMachineEmpty = false; } public void MoveOutBottle() { // 瓶子置空 bottle.transform.parent = null; } public void InsertBottle(CoolingBottle newBottle) { // 改变瓶子归属 newBottle.transform.parent = bottleSlot.transform; bottle = newBottle; } public void LockBottle() { // 插槽回旋 // 卡扣下降 // 同步液体状态 isMachineEmpty = bottle.isEmpty; // TODO 同步泵头状态 } public void InjectCool() { throw new System.NotImplementedException(); } public void UnlinkRobot() { throw new System.NotImplementedException(); } #endregion } /// /// 冷却系统有什么样的行为? /// public interface ICoolingMachine { void LinkRobot(); void PumpCooling(); void UnlockBottle(); void MoveOutBottle(); void InsertBottle(CoolingBottle bottle); void LockBottle(); void InjectCool(); void UnlinkRobot(); } }