Browse Source

[fxparams] Fixed runtime curve values

Clement Espeute 1 year ago
parent
commit
904fef87d7

+ 2 - 2
hrt/prefab/Curve.hx

@@ -459,7 +459,7 @@ class Curve extends Prefab {
 			if (c == null)
 				return VConst(defVal);
 
-			var vc = VCurve(c);
+			var vc = c.makeVal();
 			if (scale != 1.0) {
 				return VMult(vc, VConst(scale));
 			}
@@ -495,7 +495,7 @@ class Curve extends Prefab {
 		}
 
 		if(a != null && r == null && g == null && b == null)
-			return VCurve(a);
+			return a.makeVal();
 
 		if(a == null && r == null && g == null && b == null)
 			return VOne; // White by default

+ 1 - 1
hrt/prefab/fx/BaseFX.hx

@@ -164,7 +164,7 @@ class BaseFXTools {
 					var curve = Curve.getCurve(shaderElt, v.name);
 					var val = Value.VConst(base);
 					if(curve != null)
-						val = Value.VCurveScale(curve, base);
+						val = Value.VMult(curve.makeVal(), VConst(base));
 					if(ret == null) ret = [];
 					ret.push({
 						idx: paramCount - 1,

+ 2 - 2
hrt/prefab/fx/Emitter.hx

@@ -1619,9 +1619,9 @@ class Emitter extends Object3D {
 					}
 					else {
 						if (pname.indexOf("Rotation") >= 0 || pname.indexOf("Offset") >= 0)
-							return vAdd(vAdd(xVal, randVal), VCurve(xCurve));
+							return vAdd(vAdd(xVal, randVal), xCurve.makeVal());
 						else
-							return vMult(vAdd(xVal, randVal), VCurve(xCurve));
+							return vMult(vAdd(xVal, randVal), xCurve.makeVal());
 					}
 				}
 				else

+ 1 - 1
hrt/prefab/fx/Evaluator.hx

@@ -48,7 +48,7 @@ class Evaluator {
 					var remappedRand = (rand - min) / (max - min);
 					return a + (b - a) * remappedRand;
 				}
-			case VCurveScale(c, scale): return c.getVal(time) * scale;
+			case VCurveScale(c, scale): throw "curveScale is deprecated";//return c.getVal(time) * scale;
 			case VRandom(ridx, scale):
 				return getRandom(pidx, ridx) * getFloat(pidx, scale, time);
 			case VRandomScale(ridx, scale):

+ 1 - 1
hrt/prefab/fx/FX.hx

@@ -350,7 +350,7 @@ class FXAnimation extends h3d.scene.Object {
 			anyFound = true;
 
 			if(uniform && curves.length == 1 && curves[0].name == name) {
-				return scale != 1.0 ? VCurveScale(curves[0], scale) : curves[0].makeVal();
+				return scale != 1.0 ? VMult(curves[0].makeVal(), VConst(scale)) : curves[0].makeVal();
 			}
 
 			return Curve.getVectorValue(curves, defVal, scale, blendFactor);

+ 1 - 1
hrt/prefab/fx/FX2D.hx

@@ -202,7 +202,7 @@ class FX2D extends Object2D implements BaseFX {
 			anyFound = true;
 
 			if(uniform && curves.length == 1 && curves[0].name == name)
-				return scale != 1.0 ? VCurveScale(curves[0], scale) : VCurve(curves[0]);
+				return scale != 1.0 ? VMult(curves[0].makeVal(), VConst(scale)) : curves[0].makeVal();
 
 			return Curve.getVectorValue(curves, defVal, scale, blendFactor);
 		}