UNPKG

@mann-conomy/tf-particle-effects

Version:

A Node.js wrapper for Team Fortress 2's in-game particle effects.

61 lines 2.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllAttributesOrThrow = getAllAttributesOrThrow; exports.evaluate = evaluate; exports.find = find; exports.translate = translate; const not_found_1 = __importDefault(require("../classes/errors/not-found")); const translation_1 = __importDefault(require("../classes/errors/translation")); const enums_1 = require("../resources/enums"); const utils_1 = require("./utils"); function createParticleWithDefaults(particle) { return { id: particle.id || enums_1.InvalidParticle.Id, name: particle.name || enums_1.InvalidParticle.Name, language: particle.language || enums_1.LanguageTranslation.English }; } function getAllAttributesOrThrow(particles, language) { const attributes = particles[language]; if (!Array.isArray(attributes)) { throw new not_found_1.default("No particle effects were found matching the provided language code."); } return attributes; } function evaluate(particles, particle, strict) { const effect = createParticleWithDefaults(particle); const attributes = getAllAttributesOrThrow(particles, effect.language); if (strict) { return attributes.some(attribute => (0, utils_1.compareByIdAndName)(attribute, effect)); } return attributes.some(attribute => (0, utils_1.compareByIdOrName)(attribute, effect)); } function find(particles, particle, strict) { const effect = createParticleWithDefaults(particle); const attributes = getAllAttributesOrThrow(particles, effect.language); if (strict) { const attribute = attributes.find(attribute => (0, utils_1.compareByIdAndName)(attribute, effect)); if (attribute !== undefined) { return attribute; } throw new not_found_1.default("No particle effect was found with the specified id and name."); } const attribute = attributes.find(attribute => (0, utils_1.compareByIdOrName)(attribute, effect)); if (attribute !== undefined) { return attribute; } throw new not_found_1.default("No particle effect was found with the specified id or name."); } function translate(particles, particle, language, strict) { const effect = find(particles, particle, strict); const attributes = getAllAttributesOrThrow(particles, language); const attribute = attributes.find(attribute => (0, utils_1.compareById)(attribute, effect.id)); if (attribute !== undefined) { return attribute; } throw new translation_1.default("No translation exists for this particle effect."); } //# sourceMappingURL=shared.js.map