feat(fix-system): 整合维修面板灯光系统并重构面板结构

Made-with: Cursor
This commit is contained in:
2026-03-05 19:11:12 +08:00
parent cb49557aed
commit bc369bd86e
17 changed files with 1208 additions and 90 deletions
@@ -19,10 +19,6 @@ namespace AibisDream.FixSystem
#region
[Header("其他索引")]
[SerializeField] private FixLightSystem fixLightSystem;
public FixLightSystem FixLightSystem => fixLightSystem;
[Header("插线组件索引")]
[SerializeField] private Plug plugRef;
[SerializeField] private Cable cableRef;
@@ -30,11 +26,15 @@ namespace AibisDream.FixSystem
[SerializeField] private Transform cableRootPos;
[SerializeField] private CableReel cableReelRef;
[Header("灯光系统")]
[SerializeField] private CablePanelLight panelLight;
public Plug PlugRef => plugRef;
public Cable CableRef => cableRef;
public PhysicCable PhysicCableRef => physicCableRef;
public Transform CableRootPos => cableRootPos;
public CableReel CableReelRef => cableReelRef;
public CablePanelLight PanelLight => panelLight;
public BodyModuleSystem BodyModuleSystem { get; private set; }
@@ -52,6 +52,7 @@ namespace AibisDream.FixSystem
private void Start()
{
InitComponentRefs();
panelLight?.Initialize();
InitSystem();
LoadCableState();
@@ -88,19 +89,19 @@ namespace AibisDream.FixSystem
PlugRef.ReturnToStartPosition();
}
// // 从存储系统读取
// if (!StorageSystem.Instance.TryGetValue(CableRetractedKey, out bool savedRetractedState))
// return;
// 从存储系统读取
if (!StorageSystem.Instance.TryGetValue(CableRetractedKey, out bool savedRetractedState))
return;
// if (savedRetractedState)
// {
// SetRetractCable();
// }
// else
// {
// if (isCableRetracted)
// DropDownCable();
// }
if (savedRetractedState)
{
SetRetractCable();
}
else
{
if (isCableRetracted)
DropDownCable();
}
}
private void SaveCableState()
@@ -175,7 +176,7 @@ namespace AibisDream.FixSystem
{
return curSocket != null;
}
// ------------------------------ 线缆操作 ------------------------------
/// <summary>
@@ -189,19 +190,19 @@ namespace AibisDream.FixSystem
{
case CableMode.None:
CableRef.HideCable();
PhysicCableRef.HideCable();
PhysicCableRef.SetEnabled(false);
PhysicCableRef.SetTarget(null);
break;
case CableMode.Visual:
CableRef.ShowCable();
PhysicCableRef.HideCable();
PhysicCableRef.SetEnabled(false);
PhysicCableRef.SetTarget(null);
break;
case CableMode.Physic:
CableRef.HideCable();
PhysicCableRef.ShowCable();
PhysicCableRef.SetEnabled(true);
PhysicCableRef.Init(PlugRef.transform.position);
PhysicCableRef.SetTarget(followTarget != null ? followTarget : PlugRef.transform);
break;
@@ -229,7 +230,7 @@ namespace AibisDream.FixSystem
{
PlugRef.PullUpSocket();
}
BodyModuleSystem.CloseModuleSlots(null);
PlugRef.transform.DOMove(retractedPos.position, 0.1f).OnComplete(() =>
@@ -276,6 +277,61 @@ namespace AibisDream.FixSystem
isCableRetracted = true;
}
#region -
/// <summary>
/// 检查系统是否开启
/// </summary>
public bool IsSystemOn()
{
return panelLight != null && panelLight.IsSystemOn();
}
/// <summary>
/// 启动系统
/// </summary>
public System.Collections.IEnumerator StartSystem()
{
if (panelLight != null)
{
yield return panelLight.StartSystem();
}
}
/// <summary>
/// 更新呼吸灯
/// </summary>
public void UpdateBreathingLight(LightState state)
{
panelLight?.UpdateBreathingLight(state);
}
/// <summary>
/// 更新ECG波形
/// </summary>
public void UpdateECGWave(LightState state)
{
panelLight?.UpdateECGWave(state);
}
/// <summary>
/// 获取当前波形类型
/// </summary>
public RobotECGWave.WaveType GetCurrentWaveType()
{
return panelLight != null ? panelLight.GetCurrentWaveType() : RobotECGWave.WaveType.RobotECG;
}
/// <summary>
/// 设置波形类型
/// </summary>
public void SetWaveType(RobotECGWave.WaveType waveType)
{
panelLight?.SetWaveType(waveType);
}
#endregion
public void Init()
{
@@ -285,10 +341,10 @@ namespace AibisDream.FixSystem
{
}
public void Close()
{
}
}
}
}