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
///