void IModule.UnloadModule()
        {
            m_SlowTaskModule.ClearTasks();
            m_SimulationPollTask = null;
            QueryObjectMapping.Map.Clear();
            EditorApplication.update -= Update;
            SimulationSceneModule.SimulationSceneOpened  -= OnSimulationSceneOpened;
            SimulationSceneModule.SimulationSceneClosing -= OnSimulationSceneClosing;
            EditorOnlyDelegates.IsSimulatingTemporal      = null;
            RestoreOriginalActiveIsland();

            m_SimulationRestartNeeded  = false;
            NextSimModeSelection       = SimulationModeSelection.NoModePreference;
            KeepDataBetweenSimulations = false;
            m_SimulationPollTask       = null;
            m_OriginalActiveIsland     = null;

            CleanupProviders();

            simulating          = false;
            simulatingTemporal  = false;
            functionalityIsland = null;
            providersRoot       = null;

            m_SimulationContext.Clear();
        }
        public void BeforeEach()
        {
            m_Module.ClearTasks();
            var moduleBehaviour = (IModuleBehaviorCallbacks)m_Module;

            moduleBehaviour.OnBehaviorUpdate();

            var moduleMarsTime = (IModuleMarsUpdate)m_Module;

            moduleMarsTime.OnMarsUpdate();
        }
        public void Setup()
        {
            m_Module = SlowTaskModule.instance;
            var module = (IModule)m_Module;

            module.LoadModule();
            m_Module.ClearTasks();
            m_DefaultAction        = () => { };
            m_Module.taskFrameRate = k_DesiredFrameRate;
        }