tf2-item-format
Version:
Format's TF2 items like backpack.tf does
53 lines • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const isNumber_1 = __importDefault(require("../util/isNumber"));
const getEffect_1 = require("../parseString/Attributes/getEffect");
const TEXTURE_EXCEPTIONS = [['Health and Hell', 'Health and Hell (Green)']];
const TEXTURE_TO_EFFECT_EXCEPTIONS = [['Rainbow', 'Rainbow Reverie'], ['Stardust', 'Stardust Pathway'], ['Autumn', 'Autumn Leaves']];
/**
* Iterates over effects object to get matching effect.
*/
// eslint-disable-next-line consistent-return
function default_1(name, attributes) {
const textures = attributes.schema.getTextures();
const textureKeys = Object.keys(textures);
for (let i = 0; i < textureKeys.length; i++) {
const texture = textureKeys[i];
if (!name.includes(`${texture} `)) {
continue;
}
if (isTextureEffect(attributes, texture)) {
continue;
}
if (isTextureToEffectException(name, texture)) {
continue;
}
for (let j = 0; j < TEXTURE_EXCEPTIONS.length; j++) {
const exception = TEXTURE_EXCEPTIONS[j];
if (texture === exception[0] && name.includes(`${exception[1]} `))
return exception[1];
}
if ((0, isNumber_1.default)(texture) || !name.includes(`${texture} `)) {
// eslint-disable-next-line no-continue
continue;
}
return texture;
}
}
function isTextureToEffectException(name, texture) {
for (let i = 0; i < TEXTURE_TO_EFFECT_EXCEPTIONS.length; i++) {
const exception = TEXTURE_TO_EFFECT_EXCEPTIONS[i];
if (texture === exception[0] && name.includes(`${exception[1]} `)) {
return true;
}
}
return false;
}
function isTextureEffect(attributes, effectOrTexture) {
return !!(getEffect_1.TEXTURE_EFFECT_EXCEPTION.includes(effectOrTexture) && !attributes.wear);
}
//# sourceMappingURL=getTexture.js.map