rl-loadout-lib
Version:
Load Rocket League assets into three.js
47 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const object_1 = require("./object");
const util_1 = require("../utils/util");
/**
* Class that handles loading the 3D model of the car antenna.
*/
class AntennaModel extends object_1.AbstractObject {
/**
* Create an antenna object.
* @param antenna the antenna
* @param antennaAssets antenna assets
* @param paints the paint config to apply the antenna paint
*/
constructor(antenna, antennaAssets, paints) {
super(antennaAssets);
this.antennaAssets = antennaAssets;
}
init() {
const antennaScene = this.antennaAssets.gltf.scene;
const antennaModel = antennaScene.children[0];
const material = antennaModel.material;
material.map = util_1.htmlImageToTexture(this.antennaAssets.baseTexture);
material.normalMap = util_1.htmlImageToTexture(this.antennaAssets.normalMap);
if (this.socket) {
antennaModel.position.copy(this.socket.position);
antennaModel.rotation.copy(this.socket.rotation);
}
this.scene.add(antennaModel);
antennaScene.dispose();
}
handleModel(scene) {
this.socket = scene.getObjectByName('TopperSocket');
}
copy(other) {
super.copy(other);
this.antennaAssets = other.antennaAssets;
this.init();
}
clone() {
const m = new AntennaModel();
m.copy(this);
return m;
}
}
exports.AntennaModel = AntennaModel;
//# sourceMappingURL=antenna-model.js.map