예제 #1
0
        public EnginesRoot(NodeSubmissionScheduler nodeScheduler)
        {
            _nodeEngines      = new Dictionary <Type, FasterList <IEngine> >();
            _activableEngines = new Dictionary <Type, FasterList <IEngine> >();
            _otherEngines     = new FasterList <IEngine>();

            _engineRootWeakReference = new WeakReference(this);

            _nodesDB    = new Dictionary <Type, FasterList <INode> >();
            _nodesDBdic = new Dictionary <Type, Dictionary <int, INode> >();

            _nodesToAdd     = new FasterList <INode>();
            _metaNodesToAdd = new FasterList <INode>();

            _metaNodesDB                  = new Dictionary <Type, FasterList <INode> >();
            _sharedStructNodeLists        = new SharedStructNodeLists();
            _sharedGroupedStructNodeLists = new SharedGroupedStructNodesLists();

            _internalRemove     = InternalRemove;
            _internalDisable    = InternalDisable;
            _internalEnable     = InternalEnable;
            _internalMetaRemove = InternalMetaRemove;

            _scheduler = nodeScheduler;
            _scheduler.Schedule(SubmitNodes);

            _structNodeEngineType         = typeof(IStructNodeEngine <>);
            _groupedStructNodesEngineType = typeof(IGroupedStructNodesEngine <>);
            _activableNodeEngineType      = typeof(IActivableNodeEngine <>);

            _implementedInterfaceTypes = new Dictionary <Type, Type[]>();

#if ENGINE_PROFILER_ENABLED && UNITY_EDITOR
            GameObject debugEngineObject = new GameObject("Engine Debugger");
            debugEngineObject.gameObject.AddComponent <EngineProfilerBehaviour>();
#endif
        }
예제 #2
0
 public StructNodes(SharedStructNodeLists container)
 {
     _internalList = container.GetList <T>();
 }