UNPKG

novaparse

Version:
90 lines 4.62 kB
"use strict"; 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 resourceforkjs_1 = require("resourceforkjs"); // TODO: Add a declaration file const ResourceHolderBase_1 = require("./ResourceHolderBase"); const BoomResource_1 = require("./resourceParsers/BoomResource"); const DescResource_1 = require("./resourceParsers/DescResource"); const NovaResourceBase_1 = require("./resourceParsers/NovaResourceBase"); const OutfResource_1 = require("./resourceParsers/OutfResource"); const PictResource_1 = require("./resourceParsers/PictResource"); const RledResource_1 = require("./resourceParsers/RledResource"); const ShanResource_1 = require("./resourceParsers/ShanResource"); const ShipResource_1 = require("./resourceParsers/ShipResource"); const SpinResource_1 = require("./resourceParsers/SpinResource"); const SpobResource_1 = require("./resourceParsers/SpobResource"); const SystResource_1 = require("./resourceParsers/SystResource"); const WeapResource_1 = require("./resourceParsers/WeapResource"); // Reads a single plugin or nova file // Puts results in localIDSpace. function readNovaFile(filePath, localIDSpace) { return __awaiter(this, void 0, void 0, function* () { var rf = yield read(filePath); //console.log(localIDSpace); for (let resourceType in ResourceHolderBase_1.NovaResourceType) { var parser = getParser(resourceType); for (let id in rf[resourceType]) { localIDSpace[resourceType][id] = new parser(rf[resourceType][id], localIDSpace); } } }); } exports.readNovaFile = readNovaFile; function read(path) { // Whether or not to use resource fork var useRF = (path.slice(-5) !== ".ndat"); return resourceforkjs_1.readResourceFork(path, useRF); } // Since we're storing subclasses, not instances of subclasses. // TODO: Fill this out as more are implemented var parserMap = {}; parserMap[ResourceHolderBase_1.NovaResourceType.bööm] = BoomResource_1.BoomResource; //parserMap[NovaResourceType.chär] = ; //parserMap[NovaResourceType.cicn] = ; //parserMap[NovaResourceType.cölr] = ; //parserMap[NovaResourceType.crön] = ; parserMap[ResourceHolderBase_1.NovaResourceType.dësc] = DescResource_1.DescResource; //parserMap[NovaResourceType.DITL] = ; //parserMap[NovaResourceType.DLOG] = ; //parserMap[NovaResourceType.düde] = ; //parserMap[NovaResourceType.flët] = ; //parserMap[NovaResourceType.gövt] = ; //parserMap[NovaResourceType.ïntf] = ; //parserMap[NovaResourceType.jünk] = ; //parserMap[NovaResourceType.mïsn] = ; //parserMap[NovaResourceType.nëbu] = ; //parserMap[NovaResourceType.öops] = ; parserMap[ResourceHolderBase_1.NovaResourceType.oütf] = OutfResource_1.OutfResource; //parserMap[NovaResourceType.përs] = ; parserMap[ResourceHolderBase_1.NovaResourceType.PICT] = PictResource_1.PictResource; //parserMap[NovaResourceType.ränk] = ; //parserMap[NovaResourceType.rlë8] = ; parserMap[ResourceHolderBase_1.NovaResourceType.rlëD] = RledResource_1.RledResource; //parserMap[NovaResourceType.röid] = ; parserMap[ResourceHolderBase_1.NovaResourceType.shän] = ShanResource_1.ShanResource; parserMap[ResourceHolderBase_1.NovaResourceType.shïp] = ShipResource_1.ShipResource; //parserMap[NovaResourceType.snd] = ; parserMap[ResourceHolderBase_1.NovaResourceType.spïn] = SpinResource_1.SpinResource; parserMap[ResourceHolderBase_1.NovaResourceType.spöb] = SpobResource_1.SpobResource; //parserMap[NovaResourceType.STR] = ; //parserMap[NovaResourceType.STRH] = ; parserMap[ResourceHolderBase_1.NovaResourceType.sÿst] = SystResource_1.SystResource; //parserMap[NovaResourceType.vers] = ; parserMap[ResourceHolderBase_1.NovaResourceType.wëap] = WeapResource_1.WeapResource; function getParser(resourceType) { if (parserMap[resourceType]) { return parserMap[resourceType]; } else { return NovaResourceBase_1.BaseResource; //throw new Error("Unknown data type " + resourceType); } } //# sourceMappingURL=readNovaFile.js.map