/// <summary> /// Initializes a new instance of the <see cref="RegisterServiceAttribute"/> class. /// </summary> /// <param name="base"> Type of service. </param> /// <param name="service"> Instance of service. </param> public RegisterServiceAttribute(Type @base, Type service) { ValidateArg.NotNull(@base, nameof(@base)); ValidateArg.NotNull(service, nameof(service)); if ([email protected](service)) { AIDebug.Logger.WriteError($"Service {service} is not of type {@base}."); } if (AwesomeInventoryServiceProvider.TryGetService(@base, out object value) && !service.IsSubclassOf(value.GetType())) { return; } AwesomeInventoryServiceProvider.AddService(@base, Activator.CreateInstance(service)); }
static InGameLogger() { AwesomeInventoryServiceProvider.AddService(typeof(ILogger), new InGameLogger()); }
/// <summary> /// Register <see cref="IDrawHelper"/>. /// </summary> /// <param name="drawHelper"> Instance of <paramref name="drawHelper"/> to register. </param> protected static void RegisterIDrawHelper(IDrawHelper drawHelper) { AwesomeInventoryServiceProvider.AddService(typeof(IDrawHelper), drawHelper); }
/// <summary> /// Register <see cref="AwesomeInventoryTabBase"/>. /// </summary> /// <param name="awesomeInventoryTabBase"> Implementation of <paramref name="awesomeInventoryTabBase"/>. </param> protected static void RegisterAwesomeInventoryTabBase(AwesomeInventoryTabBase awesomeInventoryTabBase) { AwesomeInventoryServiceProvider.AddService(typeof(AwesomeInventoryTabBase), awesomeInventoryTabBase); }
/// <summary> /// Register <see cref="IInventoryHelper"/>. /// </summary> /// <param name="inventoryHelper"> Instance of <paramref name="inventoryHelper"/> to register. </param> protected static void RegisterIInventoryHelper(IInventoryHelper inventoryHelper) { AwesomeInventoryServiceProvider.AddService(typeof(IInventoryHelper), inventoryHelper); }