新增切割状态

This commit is contained in:
2025-05-16 16:58:45 +08:00
parent 1a1531f9d9
commit 45acd0d93a
12 changed files with 714 additions and 237 deletions
+98 -3
View File
@@ -63,6 +63,9 @@ namespace AibisDream.FixSystem
FixState.Expression => new ExpressionState(),
FixState.Emo => new EmoState(),
FixState.Op => new OpState(),
FixState.EmoCut => new EmoCutState(),
FixState.MemoryCut => new MemoryCutState(),
FixState.LogicCut => new LogicCutState(),
_ => new ClinicState()
};
@@ -83,7 +86,10 @@ namespace AibisDream.FixSystem
Engine,
Gear,
Emo,
Op
Op,
EmoCut,
MemoryCut,
LogicCut
}
public interface IState
@@ -467,5 +473,94 @@ namespace AibisDream.FixSystem
yield break;
}
}
}
public struct EmoCutState : IState
{
public FixState GetState => FixState.EmoCut;
public void SetArgs(string args)
{
// 无
}
public IEnumerator Enter()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
{
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
bodyModule.SwitchModuleGroup(ModuleState.Head);
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
}
bodyModuleSystem.CableSystem.ResetPlug();
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
bodyModuleSystem.FindBodyModuleByName("Emo").EnableCut();
}
public IEnumerator Exit()
{
// 无
yield break;
}
}
public struct MemoryCutState : IState
{
public FixState GetState => FixState.MemoryCut;
public void SetArgs(string args)
{
// 无
}
public IEnumerator Enter()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
{
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
bodyModule.SwitchModuleGroup(ModuleState.Head);
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
}
bodyModuleSystem.CableSystem.ResetPlug();
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
bodyModuleSystem.FindBodyModuleByName("Memory").EnableCut();
}
public IEnumerator Exit()
{
// 无
yield break;
}
}
public struct LogicCutState : IState
{
public FixState GetState => FixState.LogicCut;
public void SetArgs(string args)
{
// 无
}
public IEnumerator Enter()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
{
var bodyModule = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
bodyModule.SwitchModuleGroup(ModuleState.Head);
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
}
bodyModuleSystem.CableSystem.ResetPlug();
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
bodyModuleSystem.FindBodyModuleByName("Logic").EnableCut();
}
public IEnumerator Exit()
{
// 无
yield break;
}
}
}