예제 #1
0
        public HarmonyBuilder <TComponent, TModule> AddModule(TModule module)
        {
            var moduleType = typeof(TModule);

            foreach (var providerMethod in moduleType
                     .GetMethods(BindingFlags.Instance | BindingFlags.Public)
                     .Where(x => x.GetCustomAttribute <ProvidesAttribute>() != null))
            {
                if (providerMethod.ReturnType == typeof(void))
                {
                    _logger.Verbose($"Skipping void method {providerMethod.Name} of {moduleType.Name} module");

                    continue;
                }

                _provider.AddProvider(module, providerMethod);
            }
            return(this);
        }