public static bool Execute(ST_TaskSceneData sceneData, Action callback, out ITaskExecutor executor) { executor = TaskFactoy.CreateTaskExecutorByTypeName(sceneData.strExecutorTypyName); if (executor == null) { callback?.Invoke(); return(false); } executor.Executor(sceneData, callback); return(true); }
public static ITaskExecutor Execute(ST_TaskSceneData sceneData, Action callback) { ITaskExecutor executor = TaskFactoy.CreateTaskExecutorByTypeName(sceneData.strExecutorTypyName); if (executor == null) { callback?.Invoke(); return(null); } executor.Executor(sceneData, callback); return(executor); }
public void Executor(ST_TaskSceneData taskSceneData, Action callback) { if (MainTask != null && MainTask.eM_TaskStage == EM_TaskStage.OnTask) { throw new Exception("当前任务还在执行中,不能开启新任务"); } this.taskSceneData = taskSceneData; MainTask = GetTask(taskSceneData.strMainTaskID); if (MainTask != null) { MainTask.StartTask(callback, taskEvent); } else { callback?.Invoke(); } }
public TaskSceneEditor(ST_TaskSceneData sceneData, ITaskSceneEditorView taskSceneEditorView) { editorView = taskSceneEditorView; editorView?.Init(this, TaskTypeMgr.Ins.GetTaskTypeList()); listTaskEditor = new List <TaskEditor>(); if (sceneData.listTaskData != null) { for (int i = 0; i < sceneData.listTaskData.Count; i++) { AddTask(sceneData.listTaskData[i]); } } strMainTaskID = sceneData.strMainTaskID; listSceneArgumentData = sceneData.listSceneArgumentData; editorView?.OnSceneArgumentChange(listSceneArgumentData); editorView?.Reset(sceneData); editorView?.OnSetMainTask(sceneData.strMainTaskID); }