Example #1
0
 void TryGetModules()
 {
     m_CompareDataModule          = ModuleLoaderCore.instance.GetModule <CompareToDataModule>();
     m_SimulatedObjectsManager    = ModuleLoaderCore.instance.GetModule <SimulatedObjectsManager>();
     m_SceneViewInteractionModule = ModuleLoaderCore.instance.GetModule <SceneViewInteractionModule>();
     OnActiveToolChanged();
 }
Example #2
0
        /// <summary>
        /// Invalidates the visuals for the entity and re-syncs the values in the editor.
        /// </summary>
        public void Invalidate()
        {
            EntityVisualsModule.instance.InvalidateVisual(m_SelectedEntity);
            OnDisable();

            var simulatedObjectsManager = ModuleLoaderCore.instance.GetModule <SimulatedObjectsManager>();

            foreach (var mb in monoBehaviourComponent.components)
            {
                if (simulatedObjectsManager == null)
                {
                    continue;
                }

                // Early out if object was destroyed
                if (mb == null)
                {
                    simulatedObjectsManager.DirtySimulatableScene();
                    break;
                }

                var simulatable = mb as ISimulatable;
                if (simulatable == null)
                {
                    continue;
                }

                if (SimulatedObjectsManager.IsSimulatedObject(mb.gameObject))
                {
                    // If object is simulated we need to check the original version still exists.
                    var original = simulatedObjectsManager.GetOriginalSimulatable(simulatable);
                    if (original != null)
                    {
                        // Check if the object is destroyed
                        var originalMono = original as MonoBehaviour;
                        if (originalMono == null)
                        {
                            simulatedObjectsManager.DirtySimulatableScene();
                            break;
                        }
                    }
                }
                else
                {
                    // If object is original(scene) we need to check the simulated version still exists.
                    var simulated = simulatedObjectsManager.GetCopiedSimulatable(simulatable);
                    if (simulated != null)
                    {
                        // Check if the object is destroyed
                        var simulatedMono = simulated as MonoBehaviour;
                        if (simulatedMono == null)
                        {
                            simulatedObjectsManager.DirtySimulatableScene();
                            break;
                        }
                    }
                }
            }

            OnEnable();
            Repaint();
        }
 void IModuleDependency <SimulatedObjectsManager> .ConnectDependency(SimulatedObjectsManager dependency)
 {
     m_SimulatedObjectsManager = dependency;
 }