Esempio n. 1
0
 internal static void Register(IAutoRegister instance)
 {
     foreach (var worker in Instance.workers)
     {
         worker.Register(instance);
     }
 }
Esempio n. 2
0
        protected override void OnRegister(IAutoRegister instance)
        {
            if (!(instance is GadgetTools.IOwner owner))
            {
                return;
            }

            for (int i = 0; i < instantiators.Count; i++)
            {
                var instantiator = instantiators[i];
                var binder       = binders[i];

                Assert.IsNotNull(binder.ownerValidation, $"Instantiator of type '{instantiator.GetType().Name}' has not Bound its gadget to a owner type. Do so in the 'Declare' method");
                if (!binder.ownerValidation(owner))
                {
                    continue;
                }

                if (owner.GadgetPouch == null)
                {
                    var pouch = new GadgetPouch(owner);

                    injectedData[0] = pouch;
                    cache.pouchSetters[owner.GetType()].SetMethod.Invoke(owner, injectedData);
                }


                gadgetBinder.owner        = owner;
                gadgetBinder.instantiator = binder;
                gadgetBinder.cache        = cache;

                instantiator.Bind(gadgetBinder);
            }
        }
Esempio n. 3
0
        internal void Register(IAutoRegister instance)
        {
            if (!Validate(instance))
            {
                return;
            }

            OnRegister(instance);
        }
Esempio n. 4
0
        internal static void Unregister(IAutoRegister instance)
        {
            if (Instance == null)
            {
                return;
            }

            foreach (var worker in Instance.workers)
            {
                worker.Unregister(instance);
            }
        }
Esempio n. 5
0
 protected override void OnUnregister(IAutoRegister instance)
 {
 }
Esempio n. 6
0
 protected override bool Validate(IAutoRegister instance)
 {
     return(instance is GadgetTools.IOwner);
 }
Esempio n. 7
0
 protected abstract void OnUnregister(IAutoRegister instance);
Esempio n. 8
0
 protected abstract bool Validate(IAutoRegister instance);
Esempio n. 9
0
 public static void AutoRegister(this IAutoRegister instance)
 {
     AutoRegisterRegistry.Register(instance);
 }
Esempio n. 10
0
 protected override bool Validate(IAutoRegister instance)
 {
     return(instance is ITickable);
 }
Esempio n. 11
0
 protected override void OnUnregister(IAutoRegister instance)
 {
     TickableRegistry.Unregister(instance as ITickable);
 }