Browse Source

TimerNode: updates (#22567)

sunag 3 years ago
parent
commit
1c0d66e383
1 changed files with 27 additions and 2 deletions
  1. 27 2
      examples/jsm/renderers/nodes/utils/TimerNode.js

+ 27 - 2
examples/jsm/renderers/nodes/utils/TimerNode.js

@@ -3,17 +3,42 @@ import { NodeUpdateType } from '../core/constants.js';
 
 class TimerNode extends FloatNode {
 
-	constructor() {
+	static LOCAL = 'local';	
+	static GLOBAL = 'global';
+	static DELTA = 'delta';
+
+	constructor( scope = TimerNode.LOCAL ) {
 
 		super();
 
+		this.scope = scope;
+
+		this.scale = 1;
+
 		this.updateType = NodeUpdateType.Frame;
 
 	}
 
 	update( frame ) {
 
-		this.value = frame.time;
+		const scope = this.scope;
+		const scale = this.scale;
+
+		if ( scope === TimerNode.LOCAL ) {
+
+			this.value += frame.deltaTime * scale;
+
+		} else if ( scope === TimerNode.DELTA ) {
+
+			this.value = frame.deltaTime * scale;
+
+		} else {
+
+			// global
+
+			this.value = frame.time * scale;
+
+		}
 
 	}