Bladeren bron

fix blend curve for non-emitter fx

lviguier 1 jaar geleden
bovenliggende
commit
d58fccdc8d
2 gewijzigde bestanden met toevoegingen van 13 en 2 verwijderingen
  1. 11 2
      hrt/prefab/Curve.hx
  2. 2 0
      hrt/prefab/fx/Evaluator.hx

+ 11 - 2
hrt/prefab/Curve.hx

@@ -378,7 +378,7 @@ class Curve extends Prefab {
 		return curves.find(c -> StringTools.endsWith(c.name, suffix));
 		return curves.find(c -> StringTools.endsWith(c.name, suffix));
 	}
 	}
 
 
-	public static function getVectorValue(curves: Array<Curve>, defVal: Float=0.0, scale: Float=1.0, blendFactor: Float = 1.0) : hrt.prefab.fx.Value {
+	public static function getVectorValue(curves: Array<Curve>, defVal: Float=0.0, scale: Float=1.0, blendFactor: Float = 1.0, randomValue: Float = 0) : hrt.prefab.fx.Value {
 		inline function find(s) {
 		inline function find(s) {
 			return findCurve(curves, s);
 			return findCurve(curves, s);
 		}
 		}
@@ -388,7 +388,16 @@ class Curve extends Prefab {
 		var w = find(".w");
 		var w = find(".w");
 
 
 		inline function curveOrVal(c: Curve, defVal: Float) : hrt.prefab.fx.Value {
 		inline function curveOrVal(c: Curve, defVal: Float) : hrt.prefab.fx.Value {
-			return c != null ? (c.blendMode == CurveBlendMode.Blend ? VBlendCurve(c, blendFactor) : (scale != 1.0 ? VCurveScale(c, scale) : VCurve(c))) : VConst(defVal);
+			if (c == null)
+				return VConst(defVal);
+
+			if (c.blendMode == CurveBlendMode.Blend)
+				return VBlendCurve(c, blendFactor);
+
+			if (scale != 1.0)
+				return VCurveScale(c, scale);
+
+			return VCurve(c);
 		}
 		}
 
 
 		return VVector(
 		return VVector(

+ 2 - 0
hrt/prefab/fx/Evaluator.hx

@@ -22,6 +22,8 @@ class Evaluator {
 			case VOne: return 1.0;
 			case VOne: return 1.0;
 			case VConst(v): return v;
 			case VConst(v): return v;
 			case VCurve(c): return c.getVal(time);
 			case VCurve(c): return c.getVal(time);
+			case VBlendCurve(c, factor):
+				return c.getVal(time);
 			case VRandomBetweenCurves(ridx, c):
 			case VRandomBetweenCurves(ridx, c):
 				{
 				{
 					var c1 = Std.downcast(c.children[0], Curve);
 					var c1 = Std.downcast(c.children[0], Curve);