UNPKG

@nxg-org/mineflayer-tracker

Version:

Provides functionality for more accurate entity and projectile tracking.

55 lines (54 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAttributeValue = getAttributeValue; exports.createAttributeValue = createAttributeValue; exports.addAttributeModifier = addAttributeModifier; exports.checkAttributeModifier = checkAttributeModifier; exports.deleteAttributeModifier = deleteAttributeModifier; function getAttributeValue(prop) { let x = prop.value; for (const mod of prop.modifiers) { if (mod.operation !== 0) continue; x += mod.amount; } let y = x; for (const mod of prop.modifiers) { if (mod.operation !== 1) continue; y += x * mod.amount; } for (const mod of prop.modifiers) { if (mod.operation !== 2) continue; y += y * mod.amount; } return y; } function createAttributeValue(base) { const attributes = { value: base, modifiers: [], }; return attributes; } function addAttributeModifier(attributes, modifier) { const end = attributes.modifiers.length; // add modifer at the end attributes.modifiers[end] = modifier; return attributes; } function checkAttributeModifier(attributes, uuid) { for (const modifier of attributes.modifiers) { if (modifier.uuid === uuid) return true; } return false; } function deleteAttributeModifier(attributes, uuid) { for (const modifier of attributes.modifiers) { if (modifier.uuid === uuid) attributes.modifiers.splice(attributes.modifiers.indexOf(modifier)); } return attributes; }