Ejemplo n.º 1
0
        public bool TryGetModule(Type type, out EngineModule result)
        {
            if (modulesByType == null || !modulesByType.TryGetValue(type, out var list))
            {
                result = default;

                return(false);
            }

            result = list[0];

            return(true);
        }
Ejemplo n.º 2
0
        public void AddModule(EngineModule module)
        {
            modules.Add(module);

            foreach (var type in ReflectionUtils.EnumerateBaseTypes(module.GetType(), true, typeof(EngineModule)))
            {
                if (!modulesByType.TryGetValue(type, out var list))
                {
                    modulesByType[type] = list = new List <EngineModule>();
                }

                list.Add(module);
            }

            if (modulesReady)
            {
                RefreshModules();
            }
        }