Пример #1
0
        /// <summary>
        /// Register a liquid
        /// </summary>
        /// <param name="id"><see cref="Identifiable.Id"/> of the liquid</param>
        /// <param name="inFX">The effect when vacced in</param>
        /// <param name="vacFailFX">The effect when vaccing fails</param>
        public static void RegisterLiquid(Identifiable.Id id, GameObject inFX, GameObject vacFailFX)
        {
            LiquidDefinition definition = ScriptableObject.CreateInstance <LiquidDefinition>();

            definition.id        = id;
            definition.inFX      = inFX;
            definition.vacFailFX = vacFailFX;
            RegisterLiquid(definition);
        }
        /// <summary>
        /// Creates a Liquid Definition
        /// </summary>
        /// <param name="id">The ID of the liquid for this definition</param>
        /// <param name="inFX">The effect when vacced in</param>
        /// <param name="vacFailFX">The effect when vaccing fails</param>
        public static LiquidDefinition CreateLiquidDefinition(Identifiable.Id id, GameObject inFX, GameObject vacFailFX)
        {
            LiquidDefinition definition = ScriptableObject.CreateInstance <LiquidDefinition>();

            definition.SetPrivateField("id", id);
            definition.SetPrivateField("inFX", inFX);
            definition.SetPrivateField("vacFailFX", vacFailFX);

            return(definition);
        }
Пример #3
0
        /// <summary>
        /// Register <paramref name="liquid"/> into the <see cref="LookupDirector"/>
        /// </summary>
        /// <param name="liquid">Liquid to register</param>
        public static void RegisterLiquid(LiquidDefinition liquid)
        {
            switch (SRModLoader.CurrentLoadingStep)
            {
            case LoadingStep.PRELOAD:
                liquidsToPatch.Add(liquid);
                break;

            default:
                GameContext.Instance.LookupDirector.liquidDefinitions.AddAndRemoveWhere(liquid, (x, y) => x.id == y.id);
                GameContext.Instance.LookupDirector.liquidDict[liquid.id] = liquid;
                break;
            }
        }