UNPKG

patchwork-mapconverter

Version:

Executable wrapper for https://github.com/ChiefOfGxBxL/WC3MapTranslator

107 lines 9.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TriggerDataRegistry = exports.TriggerDataSections = void 0; const fs_1 = require("fs"); const LoggerFactory_1 = require("../logging/LoggerFactory"); const TriggerDefinition_1 = require("./data/TriggerDefinition"); const StatementType_1 = require("../translator/data/statement/StatementType"); const log = LoggerFactory_1.LoggerFactory.createLogger('TriggerDataLoader'); var TriggerDataSections; (function (TriggerDataSections) { TriggerDataSections["TRIGGER_ACTIONS"] = "TriggerActions"; TriggerDataSections["TRIGGER_EVENTS"] = "TriggerEvents"; TriggerDataSections["TRIGGER_CONDITIONS"] = "TriggerConditions"; TriggerDataSections["TRIGGER_CALLS"] = "TriggerCalls"; })(TriggerDataSections || (exports.TriggerDataSections = TriggerDataSections = {})); function convertToSectionRowData(section, key, value) { const values = value.split(','); switch (section) { case TriggerDataSections.TRIGGER_ACTIONS: values[0] = Number(values[0]); return new TriggerDefinition_1.TriggerActions(key, values); case TriggerDataSections.TRIGGER_EVENTS: values[0] = Number(values[0]); return new TriggerDefinition_1.TriggerEvents(key, values); case TriggerDataSections.TRIGGER_CONDITIONS: values[0] = Number(values[0]); return new TriggerDefinition_1.TriggerConditions(key, values); case TriggerDataSections.TRIGGER_CALLS: values[0] = Number(values[0]); values[1] = Number(values[1]) === 1; return new TriggerDefinition_1.TriggerCalls(key, values); } } const registry = new Map(); let loaded = false; const TriggerDataRegistry = { loadTriggerData: function (triggerDataFilePath) { log.info('Loading trigger data from', triggerDataFilePath); const iniData = (0, fs_1.readFileSync)(triggerDataFilePath, { encoding: 'utf8' }); let currentSection = 'root'; for (const line of iniData.split(/\r\n|\n/)) { if (line.startsWith('//')) continue; // ignore comment if (/\[.*\]/.test(line)) { currentSection = line.substring(1, line.length - 1); continue; } if (currentSection !== TriggerDataSections.TRIGGER_ACTIONS && currentSection !== TriggerDataSections.TRIGGER_CALLS && currentSection !== TriggerDataSections.TRIGGER_CONDITIONS && currentSection !== TriggerDataSections.TRIGGER_EVENTS) { continue; // ignore irrelevant sections } if (line.startsWith('_')) continue; // ignore irrelevant properties if (line.includes('=')) { const [key, value] = line.split('='); const def = convertToSectionRowData(currentSection, key, value); const sectionRegistry = registry.get(currentSection); if (sectionRegistry == null) { registry.set(currentSection, { [key]: def?.getParameterCount() }); } else { sectionRegistry[key] = def?.getParameterCount(); } } } loaded = true; }, getParameterCount: function (classification, name) { let sectionRegistry; if (!loaded) { throw new Error('TriggerData has not been provided, therefore GUI triggers cannot be converted!'); } switch (classification) { case StatementType_1.StatementType.EVENT: case TriggerDataSections.TRIGGER_EVENTS: sectionRegistry = registry.get(TriggerDataSections.TRIGGER_EVENTS); if (sectionRegistry != null) { return sectionRegistry[name]; } break; case StatementType_1.StatementType.CONDITION: case TriggerDataSections.TRIGGER_CONDITIONS: sectionRegistry = registry.get(TriggerDataSections.TRIGGER_CONDITIONS); if (sectionRegistry != null) { return sectionRegistry[name]; } break; case StatementType_1.StatementType.ACTION: case TriggerDataSections.TRIGGER_ACTIONS: sectionRegistry = registry.get(TriggerDataSections.TRIGGER_ACTIONS); if (sectionRegistry != null) { return sectionRegistry[name]; } break; case StatementType_1.StatementType.CALL: case TriggerDataSections.TRIGGER_CALLS: sectionRegistry = registry.get(TriggerDataSections.TRIGGER_CALLS); if (sectionRegistry != null) { return sectionRegistry[name]; } break; } return 0; // TODO: do actual error handling? } }; exports.TriggerDataRegistry = TriggerDataRegistry; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpZ2dlckRhdGFSZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbmhhbmNlbWVudHMvVHJpZ2dlckRhdGFSZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBaUM7QUFDakMsNERBQXdEO0FBQ3hELGdFQUFrSjtBQUNsSiw4RUFBMEU7QUFFMUUsTUFBTSxHQUFHLEdBQUcsNkJBQWEsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtBQUUzRCxJQUFLLG1CQUtKO0FBTEQsV0FBSyxtQkFBbUI7SUFDdEIseURBQWtDLENBQUE7SUFDbEMsdURBQWdDLENBQUE7SUFDaEMsK0RBQXdDLENBQUE7SUFDeEMscURBQThCLENBQUE7QUFDaEMsQ0FBQyxFQUxJLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBS3ZCO0FBRUQsU0FBUyx1QkFBdUIsQ0FBRSxPQUE0QixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ3hGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUF1RCxDQUFBO0lBRXJGLFFBQVEsT0FBTyxFQUFFO1FBQ2YsS0FBSyxtQkFBbUIsQ0FBQyxlQUFlO1lBQ3RDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDN0IsT0FBTyxJQUFJLGtDQUFjLENBQUMsR0FBRyxFQUFFLE1BQStCLENBQUMsQ0FBQTtRQUNqRSxLQUFLLG1CQUFtQixDQUFDLGNBQWM7WUFDckMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM3QixPQUFPLElBQUksaUNBQWEsQ0FBQyxHQUFHLEVBQUUsTUFBK0IsQ0FBQyxDQUFBO1FBQ2hFLEtBQUssbUJBQW1CLENBQUMsa0JBQWtCO1lBQ3pDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFN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