UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

38 lines (33 loc) 966 B
/** * Switch between animation properties * * */ import {TypedAnimNode} from './_Base'; import {TimelineBuilder} from '../../../core/animation/TimelineBuilder'; import {NodeParamsConfig, ParamConfig} from '../utils/params/ParamsConfig'; class SwitchAnimParamsConfig extends NodeParamsConfig { /** @param input to process */ input = ParamConfig.INTEGER(0, { range: [0, 3], rangeLocked: [true, true], }); } const ParamsConfig = new SwitchAnimParamsConfig(); export class SwitchAnimNode extends TypedAnimNode<SwitchAnimParamsConfig> { override paramsConfig = ParamsConfig; static override type() { return 'switch'; } override initializeNode() { this.io.inputs.setCount(0, 4); } override cook(input_contents: TimelineBuilder[]) { const timeline_builder = input_contents[this.pv.input]; if (timeline_builder) { this.setTimelineBuilder(timeline_builder); } else { this.states.error.set(`input ${this.pv.input} is not valid`); } } }