mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
48 lines (39 loc) • 1.1 kB
JavaScript
/**
* An MDX spawned model object.
*/
export default class EventObjectSpn {
/**
* @param {MdxEventObjectEmitter} emitter
*/
constructor(emitter) {
this.emitter = emitter;
this.emitterView = null;
this.health = 0;
this.internalResource = emitter.modelObject.internalResource.addInstance();
}
/**
* @param {EventObjectEmitterView} emitterView
*/
bind(emitterView) {
let instance = this.internalResource;
let node = emitterView.instance.nodes[this.emitter.modelObject.index];
this.emitterView = emitterView;
instance.setSequence(0);
instance.setTransformation(node.worldLocation, node.worldRotation, node.worldScale);
instance.show();
emitterView.instance.scene.addInstance(instance);
this.health = 1;
}
/**
* @param {number} offset
* @param {number} dt
*/
render(offset, dt) {
let instance = this.internalResource;
// Once the sequence finishes, this event object dies
if (instance.frame >= instance.model.sequences[0].interval[1]) {
this.health = 0;
instance.hide();
}
}
}