/// <summary> /// Allows a reasoning API to be dynamically added to the scene /// </summary> /// <param name="reasoningAPI"></param> public void AddReasoningAPI(IReasoningAPI reasoningAPI) { m_ReasoningAPISet.Add(reasoningAPI); m_FIModule.activeIsland.InjectFunctionalitySingle(reasoningAPI); reasoningAPI.Setup(); this.AddMarsTimeSlowTask(reasoningAPI.ProcessScene, reasoningAPI.processSceneInterval); }
/// <summary> /// Allows a reasoning API to change its interval at runtime /// </summary> /// <param name="reasoningAPI">The reasoning API to update the interval for</param> public void ChangeReasoningAPIInterval(IReasoningAPI reasoningAPI) { // just replace the task with a new one with a new interval this.AddMarsTimeSlowTask(reasoningAPI.ProcessScene, reasoningAPI.processSceneInterval, true); }
/// <summary> /// Removes a reasoning API from being processed in the scene /// </summary> public void RemoveReasoningAPI(IReasoningAPI reasoningAPI) { m_ReasoningAPISet.Remove(reasoningAPI); reasoningAPI.TearDown(); this.RemoveMarsTimeSlowTask(reasoningAPI.ProcessScene); }
public static void ChangeProcessSceneInterval(this IReasoningAPI api) { ReasoningModule.instance.ChangeReasoningAPIInterval(api); }