Beispiel #1
0
        /// <summary>
        /// Ensures that functionality injection has been setup using the active ModuleLoaderCore island.
        /// </summary>
        /// <param name="user">User of functionality injection</param>
        public static void EnsureFunctionalityInjected(this IUsesFunctionalityInjection user)
        {
            var module = (ModuleLoaderCore.instance.GetModule <FunctionalityInjectionModule>());

            if ((module != null) && (module.activeIsland != null))
            {
                module.activeIsland.InjectFunctionalitySingle(user);
            }
        }
            public Face(GameObject prefab, Transform parent, IUsesFunctionalityInjection injector)
            {
                gameObject = Instantiate(prefab, parent);
                transform  = gameObject.transform;
                meshFilter = gameObject.GetComponentInChildren <MeshFilter>(true);

                // k_Subscribers is cleared by GetComponentsInChildren
                gameObject.GetComponentsInChildren(true, k_Subscribers);
                foreach (var subscriber in k_Subscribers)
                {
                    injector.InjectFunctionalitySingle(subscriber);
                }
            }
Beispiel #3
0
 /// <summary>
 /// Inject functionality into a list of objects
 /// This method assumes that all necessary providers have been prepared.  If no providers
 /// exist that match subscriber interfaces on the object, no action is taken.
 /// Useful in cases where functionality is already setup, as it is faster than InjectFunctionality.
 /// </summary>
 /// <param name="user">The object using using functionality injection</param>
 /// <param name="objects">The list of objects into which functionality will be injected</param>
 public static void InjectPreparedFunctionality(this IUsesFunctionalityInjection user, List <object> objects)
 {
     user.provider.InjectPreparedFunctionality(objects);
 }
Beispiel #4
0
 /// <summary>
 /// Inject functionality into a single object
 /// This method does not check the object's type and assumes that providers have been set up. If no providers
 /// exist that match subscriber interfaces on the object, no action is taken.
 /// </summary>
 /// <param name="user">The object using using functionality injection</param>
 /// <param name="obj">The object into which functionality will be injected</param>
 public static void InjectFunctionalitySingle(this IUsesFunctionalityInjection user, object obj)
 {
     user.provider.InjectFunctionalitySingle(obj);
 }