novaparse
Version:
An EV Nova file parser for NovaJS
58 lines • 2.52 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const BaseParse_1 = require("./BaseParse");
const Animation_1 = require("novadatainterface/Animation");
function ExplosionParse(boom, notFoundFunction) {
return __awaiter(this, void 0, void 0, function* () {
var base = yield BaseParse_1.BaseParse(boom, notFoundFunction);
var spin = boom.idSpace.spïn[boom.graphic];
var animationImage;
if (spin) {
var rled = spin.idSpace.rlëD[spin.spriteID];
if (rled) {
animationImage = {
id: rled.globalID,
imagePurposes: {
normal: { start: 0, length: rled.numberOfFrames }
}
};
}
else {
notFoundFunction("Missing rled " + spin.spriteID + " for bööm " + base.id);
animationImage = Animation_1.DefaultAnimationImage;
}
}
else {
notFoundFunction("Missing spin " + boom.graphic + " for bööm " + base.id);
animationImage = Animation_1.DefaultAnimationImage;
}
var animation = Object.assign({ images: {
baseImage: animationImage
}, exitPoints: Animation_1.DefaultExitPoints }, base);
var soundID = null;
/*
// Sound parsing is broken for some reason
if (boom.sound) {
let sound = boom.idSpace["snd "][boom.sound];
if (sound) {
soundID = sound.globalID;
}
else {
notFoundFunction("Missing snd " + boom.sound + " for bööm " + base.id);
}
}
*/
return Object.assign({}, base, { animation, sound: soundID, rate: boom.animationRate / 100 });
});
}
exports.ExplosionParse = ExplosionParse;
;
//# sourceMappingURL=ExplosionParse.js.map