diff --git a/GameData/Waterfall/Plugins/Waterfall.dll b/GameData/Waterfall/Plugins/Waterfall.dll index a3345dfa..283f5962 100644 Binary files a/GameData/Waterfall/Plugins/Waterfall.dll and b/GameData/Waterfall/Plugins/Waterfall.dll differ diff --git a/Source/Waterfall/EffectControllers/WaterfallController.cs b/Source/Waterfall/EffectControllers/WaterfallController.cs index 603093c3..908cd59c 100644 --- a/Source/Waterfall/EffectControllers/WaterfallController.cs +++ b/Source/Waterfall/EffectControllers/WaterfallController.cs @@ -121,15 +121,6 @@ public void SetOverride(bool mode) overridden = mode; } - /// - /// Sets the override value, not controlled by the game, likely an editor UI - /// - /// - public void SetOverrideValue(float value) - { - overrideValue = value; - } - public virtual void UpgradeToCurrentVersion(Version loadedVersion) { diff --git a/Source/Waterfall/EffectModifiers/EffectModifier.cs b/Source/Waterfall/EffectModifiers/EffectModifier.cs index 19d20cbc..75797ddf 100644 --- a/Source/Waterfall/EffectModifiers/EffectModifier.cs +++ b/Source/Waterfall/EffectModifiers/EffectModifier.cs @@ -71,7 +71,7 @@ public virtual void Init(WaterfallEffect effect) Controller = parentEffect.parentModule.AllControllersDict.TryGetValue(controllerName, out var controller) ? controller : null; if (Controller == null) { - Utils.LogError($"[EffectModifier]: Controller {controllerName} not found for modifier {fxName} in effect {effect.name} in module {effect.parentModule.moduleID}"); + Utils.LogWarning($"[EffectModifier]: Controller {controllerName} not found for modifier {fxName} in effect {effect.name} in module {effect.parentModule.moduleID}"); } else { @@ -167,15 +167,21 @@ protected virtual void ApplySubtract(float[] strength) { } public virtual void CreateOrAttachToIntegrator(List integrators) where T : EffectIntegrator { - if (integrators == null || !ValidForIntegrator) return; - T target = integrators.FirstOrDefault(x => IntegratorSuitable(x)); - if (target == null) + if (Controller != null) { - target = CreateIntegrator() as T; - integrators.Add(target); + if (integrators == null || !ValidForIntegrator) return; + T target = integrators.FirstOrDefault(x => IntegratorSuitable(x)); + if (target == null) + { + target = CreateIntegrator() as T; + integrators.Add(target); + } + else target.AddModifier(this); + integrator = target; + } else + { + Utils.LogWarning($"[EffectModifier]: Controller {controllerName} is null and will not be added to the integrator list"); } - else target.AddModifier(this); - integrator = target; } public virtual void RemoveFromIntegrator(List integrators) where T : EffectIntegrator diff --git a/Source/Waterfall/Modules/ModuleWaterfallFX.cs b/Source/Waterfall/Modules/ModuleWaterfallFX.cs index fa810f21..958be6a7 100644 --- a/Source/Waterfall/Modules/ModuleWaterfallFX.cs +++ b/Source/Waterfall/Modules/ModuleWaterfallFX.cs @@ -337,24 +337,6 @@ private void LoadControllers(ConfigNode node) public string GetModuleTitle() => ""; public override string GetInfo() => ""; - - private static readonly float[] EmptyControllerResult = new float[1]; - - /// - /// Gets the value of the requested controller by name - /// - /// - /// - public float[] GetControllerValues(string controllerName) - { - if (allControllers.TryGetValue(controllerName, out var controller)) - return controller.Get(); - else - { - return EmptyControllerResult; - } - } - /// /// Gets the list of controllers ///