예제 #1
0
        /// <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));
        }
예제 #2
0
 static InGameLogger()
 {
     AwesomeInventoryServiceProvider.AddService(typeof(ILogger), new InGameLogger());
 }
예제 #3
0
 /// <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);
 }
예제 #4
0
 /// <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);
 }
예제 #5
0
 /// <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);
 }