using AibisDream.FixSystem; using Yarn.Unity; using System.Collections; namespace AibisDream { public static class ScreenYarnCommand { private static CablePanel CablePanel => FixPanelSystem.GetRepairPanel(); private static CablePanelLight CablePanelLight => CablePanel?.PanelLight; private static FixPanelLight PanelLight => FixPanelSystem.Instance?.PanelLight; private static TaskPanel TaskPanel => FixPanelSystem.Instance.TaskPanel; private static ScreenPanel ScreenPanel => FixPanelSystem.Instance.ScreenPanel; #region Screen相关命令 [YarnCommand("clear_screen")] public static void ClearTextScreen() { ScreenPanel.ClearScreen(); } [YarnCommand("complete_task")] public static void CompleteTask(string lineId) { TaskPanel.CompleteTask(lineId); } [YarnCommand("clear_tasks")] public static void ClearTasks() { TaskPanel.ClearTasks(); } [YarnCommand("show_task_panel")] public static void ShowTaskPanel() { TaskPanel.ShowPanel(); } #endregion #region 灯光系统相关命令 [YarnCommand("set_light_state")] public static void SetLightState(string state) { if (FixPanelSystem.Instance == null) return; if (System.Enum.TryParse(state, true, out var lightState)) { FixPanelSystem.Instance.SetLightState(lightState); } } [YarnCommand("set_small_light_state")] public static void SetSmallLightState(string state) { if (CablePanelLight == null) return; if (System.Enum.TryParse(state, true, out var smallLightState)) { CablePanelLight.SetSmallLightState(smallLightState); } } [YarnCommand("set_small_light_status")] public static void SetSmallLightStatus(string status) { if (CablePanelLight == null) return; if (System.Enum.TryParse(status, true, out var smallLightStatus)) { CablePanelLight.SetSmallLightStatus(smallLightStatus); } } [YarnCommand("set_environment_light_flickering")] public static void SetEnvironmentLightFlickering(bool isFlickering) { if (PanelLight == null) return; PanelLight.SetEnvironmentLightFlickering(isFlickering); } [YarnCommand("set_alarm_blink_speed")] public static void SetAlarmBlinkSpeed(float speed) { if (PanelLight == null) return; PanelLight.SetAlarmBlinkSpeed(speed); } [YarnCommand("stop_alarm_light")] public static void StopAlarmLight() { if (PanelLight == null) return; PanelLight.StopAlarmLight(); } [YarnCommand("start_system")] public static IEnumerator StartSystem() { if (FixPanelSystem.Instance == null) yield break; yield return FixPanelSystem.Instance.StartAllSystems(); } #endregion } }