浏览代码

Curve: make duration getter, was always set to 0

trethaller 6 年之前
父节点
当前提交
773ac73c1a
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7 3
      hrt/prefab/Curve.hx

+ 7 - 3
hrt/prefab/Curve.hx

@@ -30,19 +30,23 @@ typedef CurveKeys = Array<CurveKey>;
 
 
 class Curve extends Prefab {
 class Curve extends Prefab {
 
 
-	public var duration : Float = 0.; // TODO: optional?
 	public var clampMin : Float = 0.;
 	public var clampMin : Float = 0.;
 	public var clampMax : Float = 0.;
 	public var clampMax : Float = 0.;
 	public var keyMode : CurveKeyMode = Linear;
 	public var keyMode : CurveKeyMode = Linear;
 	public var keys : CurveKeys = [];
 	public var keys : CurveKeys = [];
 
 
+	public var duration(get, never): Float;
+	function get_duration() {
+		if(keys.length == 0) return 0.0;
+		return keys[keys.length-1].time;
+	}
+
    	public function new(?parent) {
    	public function new(?parent) {
 		super(parent);
 		super(parent);
 		this.type = "curve";
 		this.type = "curve";
 	}
 	}
 
 
 	public override function load(o:Dynamic) {
 	public override function load(o:Dynamic) {
-		duration = o.duration;
 		keys = [];
 		keys = [];
 		if(o.keys != null) {
 		if(o.keys != null) {
 			for(k in (o.keys: Array<Dynamic>)) {
 			for(k in (o.keys: Array<Dynamic>)) {
@@ -76,7 +80,6 @@ class Curve extends Prefab {
 			keysDat.push(o);
 			keysDat.push(o);
 		}
 		}
 		return {
 		return {
-			duration: duration,
 			clampMin: clampMin,
 			clampMin: clampMin,
 			clampMax: clampMax,
 			clampMax: clampMax,
 			keyMode: keyMode,
 			keyMode: keyMode,
@@ -228,6 +231,7 @@ class Curve extends Prefab {
 
 
 	public function sample(numPts: Int) {
 	public function sample(numPts: Int) {
 		var vals = [];
 		var vals = [];
+		var duration = this.duration;
 		for(i in 0...numPts) {
 		for(i in 0...numPts) {
 			var v = getVal(duration * i/(numPts-1));
 			var v = getVal(duration * i/(numPts-1));
 			vals.push(v);
 			vals.push(v);