Exemple #1
0
        private static void ReplaceLoaderSmokeRampTextures()
        {
            Texture2D smokeRamp = VRMod.VRAssetBundle.LoadAsset <Texture2D>("SmokeRamp");;

            EntityStateConfiguration state = LegacyResourcesAPI.Load <EntityStateConfiguration>("entitystateconfigurations/EntityStates.Loader.BaseChargeFist");

            if (state)
            {
                HG.GeneralSerializer.SerializedField effectField = state.serializedFieldsCollection.serializedFields.First(x => x.fieldName == "chargeVfxPrefab");

                GameObject effectPrefab = effectField.fieldValue.objectValue as GameObject;

                Transform dustObject = effectPrefab.transform.Find("Dust");

                if (dustObject)
                {
                    ReplaceSmokeRampTexture(dustObject, smokeRamp);
                }
            }

            state = LegacyResourcesAPI.Load <EntityStateConfiguration>("entitystateconfigurations/EntityStates.Loader.BaseSwingChargedFist");

            if (state)
            {
                HG.GeneralSerializer.SerializedField effectField = state.serializedFieldsCollection.serializedFields.First(x => x.fieldName == "swingEffectPrefab");

                GameObject effectPrefab = effectField.fieldValue.objectValue as GameObject;

                Transform dustObject = effectPrefab.transform.Find("Dust");

                if (dustObject)
                {
                    ReplaceSmokeRampTexture(dustObject, smokeRamp);
                }
            }

            GameObject hookPrefab = LegacyResourcesAPI.Load <GameObject>("prefabs/projectiles/LoaderHook");

            if (hookPrefab)
            {
                Transform dustObject = hookPrefab.transform.Find("FistMesh/RopeFront/Dust");

                if (dustObject)
                {
                    ReplaceSmokeRampTexture(dustObject, smokeRamp);
                }

                dustObject = hookPrefab.transform.Find("RopeEnd/Dust");

                if (dustObject)
                {
                    ReplaceSmokeRampTexture(dustObject, smokeRamp);
                }
            }
        }
 public static bool RegisterEntityStateConfig(EntityStateConfiguration entityStateConfiguration)
 {
     //Check if the EntityStateConfiguration has already been registered.
     if (EntityStateConfigurationDefinitions.Contains(entityStateConfiguration))
     {
         string error = entityStateConfiguration.name + " has already been registered, please do not register the same EntityStateConfiguration twice.";
         if (entityStateConfiguration.targetType == default)
         {
             error = error + " And/Or, the target type has not been set. Please make sure your target has been set before creating your SurvivorDef.";
         }
         LogCore.LogE(error);
         return(false);
     }
     //If not, add it to our EntityStateConfigurationDefinitions
     EntityStateConfigurationDefinitions.Add(entityStateConfiguration);
     return(true);
 }
Exemple #3
0
        /// <summary>
        /// Adds an EntityStateConfiguration to your Mod's ContentPack
        /// <para>ESC's Target Type must inherit from EntityState</para>
        /// <para>ESC's Target Type cannot be Abstract</para>
        /// </summary>
        /// <param name="entityStateConfiguration">The EntityStateConfiguration to Add</param>
        /// <returns>true if valid and added, false if one of the requirements is not met</returns>
        public static bool AddEntityStateConfiguration(EntityStateConfiguration entityStateConfiguration)
        {
            var asm = Assembly.GetCallingAssembly();

            if (CatalogBlockers.GetAvailability <EntityStateConfiguration>())
            {
                Type type = Type.GetType(entityStateConfiguration.targetType.assemblyQualifiedName);
                if (!type.IsSubclassOf(typeof(EntityState)))
                {
                    RejectContent(entityStateConfiguration, asm, "EntityStateConfiguration", $"but it's targetType ({type.Name}) is not a type that derives from EntityState!");
                    return(false);
                }
                if (type.IsAbstract)
                {
                    RejectContent(entityStateConfiguration, asm, "EntityStateConfiguration", $"but it's targetType ({type.Name}) is abstract!");
                    return(false);
                }
                R2APIContentManager.HandleContentAddition(asm, entityStateConfiguration);
                return(true);
            }
            RejectContent(entityStateConfiguration, asm, "EntityStateConfiguration", "but the EntityStateCatalog has already initialized!");
            return(false);
        }