コード例 #1
0
 private void Awake()
 {
     while (ModulesToLoad[0].Count > 0)
     {
         ModuleAndAttribute temp = ModulesToLoad[0].Dequeue();
         EnableModule(temp);
     }
 }
コード例 #2
0
        private void EnableModule(ModuleAndAttribute module)
        {
            Logger.LogInfo($"Enabling module: {module.Attribute.Name}");

            ModuleAttribute customAttr = module.Attribute;
            Type            type       = module.Module;

            constuctorArgumentArray[0] = customAttr.Name;
            constuctorArgumentArray[1] = customAttr.Description;
            constuctorArgumentArray[2] = customAttr.DefaultEnabled;
            try
            {
                var         ctor         = type.GetConstructor(constructorParameters);
                R2DSEModule loadedModule = (R2DSEModule)ctor.Invoke(constuctorArgumentArray);
                loadedModule.ReloadHooks();
                Modules.Add(customAttr.Name, loadedModule);
            }
            catch (Exception e)
            {
                Logger.LogError($"Couldn't load module: {constuctorArgumentArray[0]}");
                Logger.LogError(e);
            }
        }
コード例 #3
0
        private void Start()
        {
            while (ModulesToLoad[1].Count > 0)
            {
                ModuleAndAttribute temp = ModulesToLoad[1].Dequeue();
                EnableModule(temp);
            }

            StringBuilder stringBuilder = new StringBuilder("Enabled Modules: ");

            foreach (var pair in Modules)
            {
                if (pair.Value.IsEnabled)
                {
                    stringBuilder.Append($"[{pair.Key}] ");
                }
            }
            Logger.LogInfo(stringBuilder.ToString());
            LoadConVars();
            LoadConCommands();

            OnFinishLoading?.Invoke();
        }