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();
}
}