var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
  return value;
};

// data/gametests/src/String.ts
String.prototype.toTitle = function() {
  return this.replace(/(^|\s)\S/g, function(t) {
    return t.toUpperCase();
  });
};
String.prototype.abrevCaps = function(threshold = 4) {
  const _IGNORED_WORDS = ["and", "the", "of", "in", "on", "at", "to", "for", "with", "as", "by", "an", "a", "or", "but", "nor", "yet", "so"];
  return this.split(" ").map((word) => word.length < threshold && !_IGNORED_WORDS.includes(word.toLowerCase()) ? word.toUpperCase() : word).join(" ");
};

// data/gametests/src/waila/Waila.ts
import { EntityComponentTypes as EntityComponentTypes3, EquipmentSlot as EquipmentSlot4, LocationOutOfWorldBoundariesError, MemoryTier, Player as Player4, TicksPerSecond as TicksPerSecond2, system as system5, world as world4 } from "@minecraft/server";

// data/gametests/node_modules/@bedrock-oss/bedrock-boost/dist/index.mjs
import { Direction } from "@minecraft/server";
import { system, world } from "@minecraft/server";
import { system as system2 } from "@minecraft/server";
import { world as world2 } from "@minecraft/server";
import { world as world3 } from "@minecraft/server";
import { Player } from "@minecraft/server";
import { system as system3 } from "@minecraft/server";
import { EquipmentSlot } from "@minecraft/server";
import { system as system4 } from "@minecraft/server";
var _a;
var ChatColor = (_a = class {
  /**
   * Class ChatColor Constructor.
   * @param code - The color code as a string.
   * @param color - The color code as a hexadecimal number. Can be undefined.
   */
  constructor(code, color) {
    __publicField(this, "r");
    __publicField(this, "g");
    __publicField(this, "b");
    this.code = code;
    this.color = color;
    if (color) {
      this.r = color >> 16 & 255;
      this.g = color >> 8 & 255;
      this.b = color & 255;
    }
  }
  /**
   * Returns the string representation of the ChatColor instance,
   * which includes the PREFIX followed by the color code.
   * @returns A string representing the ChatColor instance
   */
  toString() {
    return _a.PREFIX + this.code;
  }
  /**
   * Returns the color code of the ChatColor instance.
   * @returns The color code of this ChatColor instance.
   */
  toRGB() {
    return this.color;
  }
  /**
   * Returns the hexadecimal string representation of the color code
   * @returns {string | undefined} The hexadecimal representation of the color.
   */
  toHex() {
    return this.color?.toString(16);
  }
  /**
   * Retrieve the value of the red component.
   *
   * @returns {number | undefined} The value of the red component, or undefined if it is not set.
   */
  getRed() {
    return this.r;
  }
  /**
   * Retrieves the green value of the current color.
   *
   * @returns {number | undefined} The green value of the color, or undefined if it is not set.
   */
  getGreen() {
    return this.g;
  }
  /**
   * Retrieves the blue value of a color.
   *
   * @returns The blue value of the color.
   * @type {number | undefined}
   */
  getBlue() {
    return this.b;
  }
  /**
   * Retrieves the format code associated with the chat color.
   *
   * @returns {string} The format code of the chat color.
   */
  getCode() {
    return this.code;
  }
  /**
   * Removes color codes from the specified string
   * @param str - The string from which color codes will be removed.
   * @returns The string cleared from color codes.
   */
  static stripColor(str) {
    return str.replace(/§[0-9a-u]/g, "");
  }
  /**
   * Finds the closest ChatColor code for the given RGB values
   * @param r - Red part of the color.
   * @param g - Green part of the color.
   * @param b - Blue part of the color.
   * @returns The closest ChatColor for the given RGB values.
   */
  static findClosestColor(r, g, b) {
    let minDistance = Number.MAX_VALUE;
    let closestColor = _a.WHITE;
    for (const color of _a.ALL_COLORS) {
      if (color.r && color.g && color.b) {
        const distance = Math.sqrt(Math.pow(color.r - r, 2) + Math.pow(color.g - g, 2) + Math.pow(color.b - b, 2));
        if (distance < minDistance) {
          minDistance = distance;
          closestColor = color;
        }
      }
    }
    return closestColor;
  }
}, __publicField(_a, "BLACK", new _a("0", 0)), __publicField(_a, "DARK_BLUE", new _a("1", 170)), __publicField(_a, "DARK_GREEN", new _a("2", 43520)), __publicField(_a, "DARK_AQUA", new _a("3", 43690)), __publicField(_a, "DARK_RED", new _a("4", 11141120)), __publicField(_a, "DARK_PURPLE", new _a("5", 11141290)), __publicField(_a, "GOLD", new _a("6", 16755200)), __publicField(_a, "GRAY", new _a("7", 11184810)), __publicField(_a, "DARK_GRAY", new _a("8", 5592405)), __publicField(_a, "BLUE", new _a("9", 5592575)), __publicField(_a, "GREEN", new _a("a", 5635925)), __publicField(_a, "AQUA", new _a("b", 5636095)), __publicField(_a, "RED", new _a("c", 16733525)), __publicField(_a, "LIGHT_PURPLE", new _a("d", 16733695)), __publicField(_a, "YELLOW", new _a("e", 16777045)), __publicField(_a, "WHITE", new _a("f", 16777215)), __publicField(_a, "MINECOIN_GOLD", new _a("g", 14603781)), __publicField(_a, "MATERIAL_QUARTZ", new _a("h", 14931153)), __publicField(_a, "MATERIAL_IRON", new _a("i", 13552330)), __publicField(_a, "MATERIAL_NETHERITE", new _a("j", 4471355)), __publicField(_a, "MATERIAL_REDSTONE", new _a("m", 9901575)), __publicField(_a, "MATERIAL_COPPER", new _a("n", 11823181)), __publicField(_a, "MATERIAL_GOLD", new _a("p", 14594349)), __publicField(_a, "MATERIAL_EMERALD", new _a("q", 1155126)), __publicField(_a, "MATERIAL_DIAMOND", new _a("s", 2931368)), __publicField(_a, "MATERIAL_LAPIS", new _a("t", 2181499)), __publicField(_a, "MATERIAL_AMETHYST", new _a("u", 10116294)), __publicField(_a, "OBFUSCATED", new _a("k")), __publicField(_a, "BOLD", new _a("l")), __publicField(_a, "ITALIC", new _a("o")), __publicField(_a, "RESET", new _a("r")), __publicField(_a, "VALUES", [
  _a.BLACK,
  _a.DARK_BLUE,
  _a.DARK_GREEN,
  _a.DARK_AQUA,
  _a.DARK_RED,
  _a.DARK_PURPLE,
  _a.GOLD,
  _a.GRAY,
  _a.DARK_GRAY,
  _a.BLUE,
  _a.GREEN,
  _a.AQUA,
  _a.RED,
  _a.LIGHT_PURPLE,
  _a.YELLOW,
  _a.WHITE,
  _a.MINECOIN_GOLD,
  _a.MATERIAL_QUARTZ,
  _a.MATERIAL_IRON,
  _a.MATERIAL_NETHERITE,
  _a.MATERIAL_REDSTONE,
  _a.MATERIAL_COPPER,
  _a.MATERIAL_GOLD,
  _a.MATERIAL_EMERALD,
  _a.MATERIAL_DIAMOND,
  _a.MATERIAL_LAPIS,
  _a.MATERIAL_AMETHYST,
  _a.OBFUSCATED,
  _a.BOLD,
  _a.ITALIC,
  _a.RESET
]), __publicField(_a, "ALL_COLORS", [
  _a.BLACK,
  _a.DARK_BLUE,
  _a.DARK_GREEN,
  _a.DARK_AQUA,
  _a.DARK_RED,
  _a.DARK_PURPLE,
  _a.GOLD,
  _a.GRAY,
  _a.DARK_GRAY,
  _a.BLUE,
  _a.GREEN,
  _a.AQUA,
  _a.RED,
  _a.LIGHT_PURPLE,
  _a.YELLOW,
  _a.WHITE,
  _a.MINECOIN_GOLD,
  _a.MATERIAL_QUARTZ,
  _a.MATERIAL_IRON,
  _a.MATERIAL_NETHERITE,
  _a.MATERIAL_REDSTONE,
  _a.MATERIAL_COPPER,
  _a.MATERIAL_GOLD,
  _a.MATERIAL_EMERALD,
  _a.MATERIAL_DIAMOND,
  _a.MATERIAL_LAPIS,
  _a.MATERIAL_AMETHYST
]), /**
 * PREFIX is the section sign (§) used in Minecraft color codes.
 */
__publicField(_a, "PREFIX", "\xA7"), _a);
var _a2;
var ColorJSON = (_a2 = class {
  constructor() {
    // Tokens
    __publicField(this, "OpenObject", "{");
    __publicField(this, "CloseObject", "}");
    __publicField(this, "OpenArray", "[");
    __publicField(this, "CloseArray", "]");
    __publicField(this, "Comma", ",");
    __publicField(this, "KeyValueSeparator", ":");
    __publicField(this, "StringDelimiter", '"');
    __publicField(this, "KeyDelimiter", "");
    __publicField(this, "Indent", "  ");
    __publicField(this, "NewLine", "\n");
    __publicField(this, "Space", " ");
    // Threshold for inline representation
    __publicField(this, "InlineThreshold", 60);
    // Maximum depth to which objects will be traversed
    __publicField(this, "MaxDepth", 1);
    // Whether to include class names
    __publicField(this, "IncludeClassNames", true);
    // Values
    __publicField(this, "FunctionValue", "\u0192");
    __publicField(this, "NullValue", "null");
    __publicField(this, "UndefinedValue", "undefined");
    __publicField(this, "TrueValue", "true");
    __publicField(this, "FalseValue", "false");
    __publicField(this, "CycleValue", "[...cycle...]");
    __publicField(this, "TruncatedObjectValue", "{...}");
    // Colors
    __publicField(this, "OpenCloseObjectColor", ChatColor.YELLOW);
    __publicField(this, "OpenCloseArrayColor", ChatColor.AQUA);
    __publicField(this, "NumberColor", ChatColor.DARK_AQUA);
    __publicField(this, "StringColor", ChatColor.DARK_GREEN);
    __publicField(this, "BooleanColor", ChatColor.GOLD);
    __publicField(this, "NullColor", ChatColor.GOLD);
    __publicField(this, "KeyColor", ChatColor.GRAY);
    __publicField(this, "EscapeColor", ChatColor.GOLD);
    __publicField(this, "FunctionColor", ChatColor.GRAY);
    __publicField(this, "ClassColor", ChatColor.GRAY);
    __publicField(this, "ClassStyle", ChatColor.BOLD);
    __publicField(this, "CycleColor", ChatColor.DARK_RED);
  }
  /**
   * Transforms a value into a chat-friendly, colored JSON representation.
   * @param value - The value to transform.
   */
  stringify(value) {
    return this.stringifyValue(value);
  }
  /**
   * Transforms a string into a JSON representation.
   * @param value - The string to transform.
   */
  stringifyString(value) {
    return this.StringColor + this.StringDelimiter + this.escapeString(value) + this.StringDelimiter + ChatColor.RESET;
  }
  /**
   * Transforms a number into a JSON representation.
   * @param value - The number to transform.
   */
  stringifyNumber(value) {
    return this.NumberColor + value.toString() + ChatColor.RESET;
  }
  /**
   * Transforms a boolean into a JSON representation.
   * @param value - The boolean to transform.
   */
  stringifyBoolean(value) {
    return this.BooleanColor + (value ? this.TrueValue : this.FalseValue) + ChatColor.RESET;
  }
  /**
   * Transforms a function into a JSON representation.
   * @param value - The function to transform.
   */
  // eslint-disable-next-line @typescript-eslint/ban-types
  stringifyFunction(value) {
    return this.FunctionColor + this.FunctionValue + ChatColor.RESET;
  }
  /**
   * Returns a null JSON representation.
   */
  stringifyNull() {
    return this.NullColor + this.NullValue + ChatColor.RESET;
  }
  /**
   * Returns an undefined JSON representation.
   */
  stringifyUndefined() {
    return this.NullColor + this.UndefinedValue + ChatColor.RESET;
  }
  /**
   * Returns a cycle JSON representation.
   */
  stringifyCycle() {
    return this.CycleColor + this.CycleValue + ChatColor.RESET;
  }
  /**
   * Transforms an array into a JSON representation.
   * @param value - The array to transform.
   * @param indentLevel - The indentation level for pretty-printing.
   */
  stringifyArray(value, indentLevel = 0) {
    const indentSpace = this.Indent.repeat(indentLevel);
    if (value.length === 0) {
      return this.OpenCloseArrayColor + this.OpenArray + this.CloseArray + ChatColor.RESET;
    }
    let result = this.OpenCloseArrayColor + this.OpenArray + ChatColor.RESET + this.NewLine;
    let compactResult = this.OpenCloseArrayColor + this.OpenArray + ChatColor.RESET;
    value.forEach((item, index) => {
      result += indentSpace + this.Indent + this.stringifyValue(item, indentLevel + 1);
      result += index < value.length - 1 ? this.Comma + this.NewLine : this.NewLine;
      compactResult += this.stringifyValue(item, indentLevel + 1);
      compactResult += index < value.length - 1 ? this.Comma + this.Space : "";
    });
    result += indentSpace + this.OpenCloseArrayColor + this.CloseArray + ChatColor.RESET;
    compactResult += this.OpenCloseArrayColor + this.CloseArray + ChatColor.RESET;
    if (compactResult.length < this.InlineThreshold) {
      return compactResult;
    }
    return result;
  }
  /**
   * Transforms an object into a truncated JSON representation.
   * @param value - The object to transform.
   * @param className - Class Name of the object.
   * @param indentLevel - The indentation level for pretty-printing.
   */
  stringifyTruncatedObject(value, className, indentLevel = 0) {
    return (this.IncludeClassNames ? this.ClassColor + "" + this.ClassStyle + className + ChatColor.RESET + this.Space : "") + this.TruncatedObjectValue;
  }
  /**
   * Transforms an object into a JSON representation.
   * @param value - The object to transform.
   * @param className - Class Name of the object.
   * @param entries - Entries of the object to transform.
   * @param indentLevel - The indentation level for pretty-printing.
   */
  stringifyObject(value, className, entries, indentLevel = 0) {
    const indentSpace = this.Indent.repeat(indentLevel);
    const prefix = this.IncludeClassNames && className !== "Object" ? this.ClassColor + "" + this.ClassStyle + className + ChatColor.RESET + this.Space : "";
    if (entries.length === 0) {
      return prefix + this.OpenCloseObjectColor + this.OpenObject + this.CloseObject + ChatColor.RESET;
    }
    let result = prefix + this.OpenCloseObjectColor + this.OpenObject + ChatColor.RESET + this.NewLine;
    let compactResult = prefix + this.OpenCloseObjectColor + this.OpenObject + ChatColor.RESET;
    entries.forEach(([key, val], index) => {
      const compactVal = this.stringifyValue(val, indentLevel + 1);
      result += indentSpace + this.Indent + this.KeyColor + this.KeyDelimiter + key + this.KeyDelimiter + ChatColor.RESET + this.KeyValueSeparator + this.Space + compactVal;
      result += index < entries.length - 1 ? this.Comma + this.NewLine : this.NewLine;
      compactResult += this.KeyColor + key + ChatColor.RESET + this.KeyValueSeparator + this.Space + compactVal;
      compactResult += index < entries.length - 1 ? this.Comma + this.Space : "";
    });
    result += indentSpace + this.OpenCloseObjectColor + this.CloseObject + ChatColor.RESET;
    compactResult += this.OpenCloseObjectColor + this.CloseObject + ChatColor.RESET;
    if (compactResult.length < this.InlineThreshold) {
      return compactResult;
    }
    return result;
  }
  shouldTruncateObject(value, className, indentLevel = 0) {
    return !(className === "Object" || indentLevel <= this.MaxDepth || this.MaxDepth <= 0);
  }
  /**
   * Transforms a value of any type into a JSON representation. This function is not meant to be overridden.
   * @param value - The value to transform.
   * @param indentLevel - The indentation level for pretty-printing.
   */
  stringifyValue(value, indentLevel = 0) {
    if (value === null)
      return this.stringifyNull();
    if (value === void 0)
      return this.stringifyUndefined();
    if (typeof value === "number")
      return this.stringifyNumber(value);
    if (typeof value === "string")
      return this.stringifyString(value);
    if (typeof value === "boolean")
      return this.stringifyBoolean(value);
    if (typeof value === "function")
      return this.stringifyFunction(value);
    if (this.isCycle(value)) {
      return this.stringifyCycle();
    }
    this.markCycle(value);
    if (Array.isArray(value)) {
      const result = this.stringifyArray(value, indentLevel ? indentLevel + 1 : 0);
      this.clearCycle(value);
      return result;
    }
    if (typeof value === "object") {
      const name = value.constructor.name;
      if (!this.shouldTruncateObject(value, name, indentLevel)) {
        const keySet = /* @__PURE__ */ new Set();
        let prototype = Object.getPrototypeOf(value);
        let keys = Object.keys(prototype);
        while (keys.length > 0) {
          keys.forEach((key) => keySet.add(key));
          prototype = Object.getPrototypeOf(prototype);
          keys = Object.keys(prototype);
        }
        Object.keys(value).forEach((key) => keySet.add(key));
        keySet.delete("__cycleDetection__");
        const allKeys = [...keySet].sort();
        const entries = allKeys.map((key) => {
          try {
            return [key, value[key] ?? void 0];
          } catch (e) {
            return [key, void 0];
          }
        }).filter(([, val]) => typeof val !== "function" && val !== void 0);
        const result = this.stringifyObject(value, name, entries, indentLevel);
        this.clearCycle(value);
        return result;
      } else {
        const result = this.stringifyTruncatedObject(value, name, indentLevel);
        this.clearCycle(value);
        return result;
      }
    }
    this.clearCycle(value);
    return ChatColor.RESET + value.toString();
  }
  /**
   * Escapes a string for JSON.
   * @param str - The string to escape.
   */
  escapeString(str) {
    return str.replace(/\\/g, this.EscapeColor + "\\\\" + this.StringColor).replace(/"/g, this.EscapeColor + '\\"' + this.StringColor).replace(/\n/g, this.EscapeColor + "\\n" + this.StringColor).replace(/\r/g, this.EscapeColor + "\\r" + this.StringColor).replace(/\t/g, this.EscapeColor + "\\t" + this.StringColor);
  }
  markCycle(value) {
    value.__cycleDetection__ = true;
  }
  isCycle(value) {
    return !!value.__cycleDetection__;
  }
  clearCycle(value) {
    delete value.__cycleDetection__;
  }
}, __publicField(_a2, "DEFAULT", new _a2()), _a2);
var _a3;
var LogLevel = (_a3 = class {
  /**
   * The constructor for each log level.
   *
   * @param {number} level - The numerical level for this logger.
   * @param {string} name - The string name for this logger.
   * @param {ChatColor} color - The color to use for this logger. Defaults to `ChatColor.RESET`.
   */
  constructor(level, name, color = ChatColor.RESET) {
    this.level = level;
    this.name = name;
    this.color = color;
  }
  /**
   * Return the logging level as a string.
   *
   * @returns {string} The string representation of the logging level.
   */
  toString() {
    return this.color + this.name.toUpperCase() + ChatColor.RESET;
  }
  /**
   * Parse a string to get the corresponding `LogLevel`.
   *
   * @param {string} str - The string to parse.
   * @returns {LogLevel} The corresponding `LogLevel`, or `undefined` if none was found.
   */
  static parse(str) {
    str = str.toLowerCase();
    for (const level of _a3.values) {
      if (level.name === str)
        return level;
    }
    const num = parseInt(str);
    if (!isNaN(num)) {
      for (const level of _a3.values) {
        if (level.level === num)
          return level;
      }
    }
    return void 0;
  }
}, __publicField(_a3, "All", new _a3(-2, "all")), __publicField(_a3, "Trace", new _a3(-2, "trace", ChatColor.DARK_AQUA)), __publicField(_a3, "Debug", new _a3(-1, "debug", ChatColor.AQUA)), __publicField(_a3, "Info", new _a3(0, "info", ChatColor.GREEN)), __publicField(_a3, "Warn", new _a3(1, "warn", ChatColor.GOLD)), __publicField(_a3, "Error", new _a3(2, "error", ChatColor.RED)), __publicField(_a3, "Fatal", new _a3(3, "fatal", ChatColor.DARK_RED)), __publicField(_a3, "Off", new _a3(100, "off")), /**
 * The list of all available log levels.
 */
__publicField(_a3, "values", [
  _a3.All,
  _a3.Trace,
  _a3.Debug,
  _a3.Info,
  _a3.Warn,
  _a3.Error,
  _a3.Fatal,
  _a3.Off
]), _a3);
var loggingSettings = {
  level: LogLevel.Info,
  filter: ["*"],
  formatFunction: (level, logger, message) => {
    return `[${level}][${ChatColor.MATERIAL_EMERALD}${logger.name}${ChatColor.RESET}] ${message}`;
  },
  messagesJoinFunction: (messages) => {
    return messages.join(" ");
  },
  jsonFormatter: ColorJSON.DEFAULT,
  outputConfig: {
    [LogLevel.Trace.level]: [
      0,
      1
      /* ConsoleInfo */
    ],
    [LogLevel.Debug.level]: [
      0,
      1
      /* ConsoleInfo */
    ],
    [LogLevel.Info.level]: [
      0,
      1
      /* ConsoleInfo */
    ],
    [LogLevel.Warn.level]: [
      0,
      1,
      2
      /* ConsoleWarn */
    ],
    [LogLevel.Error.level]: [
      0,
      1,
      3
      /* ConsoleError */
    ],
    [LogLevel.Fatal.level]: [
      0,
      1,
      3
      /* ConsoleError */
    ]
  }
};
var _a4;
var Logger = (_a4 = class {
  /**
  * Construct a new Logger
  *
  * @param {string} name - The name of the Logger.
  * @param {array} tags - The tags for the logger as strings.
  */
  constructor(name, tags = []) {
    this.name = name;
    this.tags = tags;
  }
  /**
  *  Initialize logger class
  */
  static init() {
  }
  /**
  * @param {LogLevel} level - The level to set.
  */
  static setLevel(level) {
    loggingSettings.level = level;
  }
  /**
  * Filter the loggers by the given tags. Tags can use the `*` wildcard.
  * @param {array} filter - The filter to set.
  */
  static setFilter(filter) {
    loggingSettings.filter = filter;
  }
  /**
  * Set the format function for the logger.
  * @param {function} func - The function to set.
  */
  static setFormatFunction(func) {
    loggingSettings.formatFunction = func;
  }
  /**
  * Set the function, that joins multiple messages into one for the logger.
  * @param {function} func - The function to set.
  */
  static setMessagesJoinFunction(func) {
    loggingSettings.messagesJoinFunction = func;
  }
  /**
  * Set the JSON formatter for the logger.
  * @param {ColorJSON} formatter - The json formatter to set.
  */
  static setJsonFormatter(formatter) {
    loggingSettings.jsonFormatter = formatter;
  }
  /**
   * Get the output configuration for the logger.
   * @returns {OutputConfig} The output configuration.
   */
  static getOutputConfig() {
    return loggingSettings.outputConfig;
  }
  /**
  * Returns a new Logger.
  *
  * @param {string} name - The name of the Logger.
  * @param {array} tags - The tags for the Logger as strings.
  *
  * @returns {Logger} A new Logger.
  */
  static getLogger(name, ...tags) {
    return new _a4(name, tags);
  }
  /**
  * Log messages with the level set.
  *
  * @param {LogLevel} level - The LogLevel to log the messages at.
  * @param {array} message - An array of the messages to log.
  */
  log(level, ...message) {
  }
  /**
  * Internal function to log messages with the level set, that bypasses the filters.
  *
  * @param {LogLevel} level - The LogLevel to log the messages at.
  * @param {array} message - An array of the messages to log.
  */
  logRaw(level, ...message) {
  }
  /**
   * Logs a trace message.
   *
   * @param {...unknown} message - The message(s) to be logged.
   */
  trace(...message) {
  }
  /**
   * Logs debug message.
   *
   * @param {...unknown[]} message - The message(s) to be logged.
   */
  debug(...message) {
  }
  /**
   * Logs an informational message.
   *
   * @param {...unknown[]} message - The message(s) to be logged.
   */
  info(...message) {
  }
  /**
   * Logs a warning message.
   *
   * @param {...unknown[]} message - The warning message or messages to be logged.
   */
  warn(...message) {
  }
  /**
   * Logs an error message.
   *
   * @param {...unknown[]} message - The error message(s) to log.
   */
  error(...message) {
  }
  /**
   * Logs a fatal error.
   *
   * @param {unknown[]} message - The error message to log.
   */
  fatal(...message) {
  }
}, __publicField(_a4, "initialized", false), _a4);
var log = Logger.getLogger("vec3", "vec3", "bedrock-boost");
var _a5;
var Vec3 = (_a5 = class {
  constructor(x, y, z) {
    __publicField(this, "x");
    __publicField(this, "y");
    __publicField(this, "z");
    if (x === Direction.Down) {
      this.x = 0;
      this.y = -1;
      this.z = 0;
    } else if (x === Direction.Up) {
      this.x = 0;
      this.y = 1;
      this.z = 0;
    } else if (x === Direction.North) {
      this.x = 0;
      this.y = 0;
      this.z = 1;
    } else if (x === Direction.South) {
      this.x = 0;
      this.y = 0;
      this.z = -1;
    } else if (x === Direction.East) {
      this.x = 1;
      this.y = 0;
      this.z = 0;
    } else if (x === Direction.West) {
      this.x = -1;
      this.y = 0;
      this.z = 0;
    } else if (typeof x === "number") {
      this.x = x;
      this.y = y;
      this.z = z;
    } else if (Array.isArray(x)) {
      this.x = x[0];
      this.y = x[1];
      this.z = x[2];
    } else if (x instanceof _a5) {
      this.x = x.x;
      this.y = x.y;
      this.z = x.z;
    } else {
      if (!x || !x.x && x.x !== 0 || !x.y && x.y !== 0 || !x.z && x.z !== 0) {
        log.error(new Error("Invalid vector"), x);
        throw new Error("Invalid vector");
      }
      this.x = x.x;
      this.y = x.y;
      this.z = x.z;
    }
  }
  static from(x, y, z) {
    if (x instanceof _a5)
      return x;
    if (typeof x === "number" && y !== void 0 && z !== void 0) {
      return new _a5(x, y, z);
    }
    if (Array.isArray(x)) {
      return new _a5(x);
    }
    if (x === Direction.Down)
      return _a5.Down;
    if (x === Direction.Up)
      return _a5.Up;
    if (x === Direction.North)
      return _a5.North;
    if (x === Direction.South)
      return _a5.South;
    if (x === Direction.East)
      return _a5.East;
    if (x === Direction.West)
      return _a5.West;
    if (!x || !x.x && x.x !== 0 || !x.y && x.y !== 0 || !x.z && x.z !== 0) {
      log.error(new Error("Invalid arguments"), x, y, z);
      throw new Error("Invalid arguments");
    }
    return new _a5(x.x, x.y, x.z);
  }
  static _from(x, y, z) {
    if (x instanceof _a5)
      return x;
    if (typeof x === "number" && y !== void 0 && z !== void 0) {
      return new _a5(x, y, z);
    }
    if (Array.isArray(x)) {
      return new _a5(x);
    }
    if (x === Direction.Down)
      return _a5.Down;
    if (x === Direction.Up)
      return _a5.Up;
    if (x === Direction.North)
      return _a5.North;
    if (x === Direction.South)
      return _a5.South;
    if (x === Direction.East)
      return _a5.East;
    if (x === Direction.West)
      return _a5.West;
    if (!x || !x.x && x.x !== 0 || !x.y && x.y !== 0 || !x.z && x.z !== 0) {
      log.error(new Error("Invalid arguments"), x, y, z);
      throw new Error("Invalid arguments");
    }
    return new _a5(x.x, x.y, x.z);
  }
  /**
   * Creates a copy of the current vector.
   * 
   * @returns A new vector with the same values as the current vector.
   */
  copy() {
    return _a5.from(this);
  }
  /**
   * Creates a new direction vector from yaw and pitch values.
   * 
   * @param yaw - The yaw value in degrees.
   * @param pitch - The pitch value in degrees.
   * @returns A new vector representing the direction.
   */
  static fromYawPitch(yaw, pitch) {
    const psi = yaw * (Math.PI / 180);
    const theta = pitch * (Math.PI / 180);
    const x = Math.cos(theta) * Math.sin(psi);
    const y = Math.sin(theta);
    const z = Math.cos(theta) * Math.cos(psi);
    return new _a5(x, y, z);
  }
  add(x, y, z) {
    const v = _a5._from(x, y, z);
    return _a5.from(v.x + this.x, v.y + this.y, v.z + this.z);
  }
  subtract(x, y, z) {
    const v = _a5._from(x, y, z);
    return _a5.from(this.x - v.x, this.y - v.y, this.z - v.z);
  }
  multiply(x, y, z) {
    if (typeof x === "number" && y === void 0 && z === void 0) {
      return _a5.from(this.x * x, this.y * x, this.z * x);
    }
    const v = _a5._from(x, y, z);
    return _a5.from(v.x * this.x, v.y * this.y, v.z * this.z);
  }
  divide(x, y, z) {
    if (typeof x === "number" && y === void 0 && z === void 0) {
      if (x === 0)
        throw new Error("Cannot divide by zero");
      return _a5.from(this.x / x, this.y / x, this.z / x);
    }
    const v = _a5._from(x, y, z);
    if (v.x === 0 || v.y === 0 || v.z === 0)
      throw new Error("Cannot divide by zero");
    return _a5.from(this.x / v.x, this.y / v.y, this.z / v.z);
  }
  /**
   * Normalizes the vector to have a length (magnitude) of 1.
   * Normalized vectors are often used as a direction vectors.
   *
   * @returns The normalized vector.
   */
  normalize() {
    if (this.isZero()) {
      log.error(new Error("Cannot normalize zero-length vector"));
      throw new Error("Cannot normalize zero-length vector");
    }
    const len = this.length();
    return _a5.from(this.x / len, this.y / len, this.z / len);
  }
  /**
   * Computes the length (magnitude) of the vector.
   *
   * @returns The length of the vector.
   */
  length() {
    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  }
  /**
   * Computes the squared length of the vector.
   * This is faster than computing the actual length and can be useful for comparison purposes.
   *
   * @returns The squared length of the vector.
   */
  lengthSquared() {
    return this.x * this.x + this.y * this.y + this.z * this.z;
  }
  cross(x, y, z) {
    const v = _a5._from(x, y, z);
    return _a5.from(
      this.y * v.z - this.z * v.y,
      this.z * v.x - this.x * v.z,
      this.x * v.y - this.y * v.x
    );
  }
  distance(x, y, z) {
    const v = _a5._from(x, y, z);
    return Math.sqrt(this.distanceSquared(v));
  }
  distanceSquared(x, y, z) {
    const v = _a5._from(x, y, z);
    return this.subtract(v).lengthSquared();
  }
  /**
   * Computes the linear interpolation between the current vector and another vector, when t is in the range [0, 1].
   * Computes the extrapolation when t is outside this range.
   *
   * @param v - The other vector.
   * @param t - The interpolation factor.
   * @returns A new vector after performing the lerp operation.
   */
  lerp(v, t) {
    if (!v || !t)
      return _a5.from(this);
    if (t === 1)
      return _a5.from(v);
    if (t === 0)
      return _a5.from(this);
    return _a5.from(
      this.x + (v.x - this.x) * t,
      this.y + (v.y - this.y) * t,
      this.z + (v.z - this.z) * t
    );
  }
  /**
   * Computes the spherical linear interpolation between the current vector and another vector, when t is in the range [0, 1].
   * Computes the extrapolation when t is outside this range.
   *
   * @param v - The other vector.
   * @param t - The interpolation factor.
   * @returns A new vector after performing the slerp operation.
   */
  slerp(v, t) {
    if (!v || !t)
      return _a5.from(this);
    if (t === 1)
      return _a5.from(v);
    if (t === 0)
      return _a5.from(this);
    const dot = this.dot(v);
    const theta = Math.acos(dot) * t;
    const relative = _a5.from(v).subtract(this.multiply(dot)).normalize();
    return this.multiply(Math.cos(theta)).add(relative.multiply(Math.sin(theta)));
  }
  dot(x, y, z) {
    const v = _a5._from(x, y, z);
    return this.x * v.x + this.y * v.y + this.z * v.z;
  }
  angleBetween(x, y, z) {
    const v = _a5._from(x, y, z);
    const dotProduct = this.dot(v);
    const lengths = this.length() * new _a5(v.x, v.y, v.z).length();
    if (lengths === 0) {
      return 0;
    }
    return Math.acos(dotProduct / lengths);
  }
  projectOnto(x, y, z) {
    const v = _a5._from(x, y, z);
    if (v.isZero()) {
      return _a5.from(0, 0, 0);
    }
    const scale = this.dot(v) / v.dot(v);
    return _a5.from(v.x * scale, v.y * scale, v.z * scale);
  }
  reflect(x, y, z) {
    const normal = _a5._from(x, y, z);
    const proj = this.projectOnto(normal);
    return this.subtract(proj.multiply(2));
  }
  /**
   * Rotates the current normalized vector by a given angle around a given axis.
   * 
   * @param axis - The axis of rotation.
   * @param angle - The angle of rotation in degrees.
   * @returns The rotated vector.
   */
  rotate(axis, angle) {
    const halfAngle = angle * Math.PI / 180 / 2;
    const w = Math.cos(halfAngle);
    const x = axis.x * Math.sin(halfAngle);
    const y = axis.y * Math.sin(halfAngle);
    const z = axis.z * Math.sin(halfAngle);
    const v = this;
    const qv_x = w * w * v.x + 2 * y * w * v.z - 2 * z * w * v.y + x * x * v.x + 2 * y * x * v.y + 2 * z * x * v.z - z * z * v.x - y * y * v.x;
    const qv_y = 2 * x * y * v.x + y * y * v.y + 2 * z * y * v.z + 2 * w * z * v.x - z * z * v.y + w * w * v.y - 2 * x * w * v.z - x * x * v.y;
    const qv_z = 2 * x * z * v.x + 2 * y * z * v.y + z * z * v.z - 2 * w * y * v.x - y * y * v.z + 2 * w * x * v.y - x * x * v.z + w * w * v.z;
    return new _a5(qv_x, qv_y, qv_z);
  }
  /**
   * Sets the X component of the vector.
   *
   * @param value - The new X value.
   * @returns The updated vector with the new X value.
   */
  setX(value) {
    return new _a5(value, this.y, this.z);
  }
  /**
   * Sets the Y component of the vector.
   *
   * @param value - The new Y value.
   * @returns The updated vector with the new Y value.
   */
  setY(value) {
    return new _a5(this.x, value, this.z);
  }
  /**
   * Sets the Z component of the vector.
   *
   * @param value - The new Z value.
   * @returns The updated vector with the new Z value.
   */
  setZ(value) {
    return new _a5(this.x, this.y, value);
  }
  /**
   * Calculates the shortest distance between a point (represented by this Vector3 instance) and a line segment.
   * 
   * This method finds the perpendicular projection of the point onto the line defined by the segment. If this 
   * projection lies outside the line segment, then the method calculates the distance from the point to the 
   * nearest segment endpoint.
   * 
   * @param start - The starting point of the line segment.
   * @param end - The ending point of the line segment.
   * @returns The shortest distance between the point and the line segment.
   */
  distanceToLineSegment(start, end) {
    const lineDirection = _a5.from(end).subtract(start);
    if (lineDirection.lengthSquared() === 0) {
      return this.subtract(start).length();
    }
    const t = Math.max(0, Math.min(1, this.subtract(start).dot(lineDirection) / lineDirection.dot(lineDirection)));
    const projection = _a5.from(start).add(lineDirection.multiply(t));
    return this.subtract(projection).length();
  }
  /**
   * Floors the X, Y, and Z components of the vector.
   * @returns A new vector with the floored components.
   */
  floor() {
    return new _a5(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z));
  }
  /**
   * Floors the X component of the vector.
   * @returns A new vector with the floored X component.
   */
  floorX() {
    return new _a5(Math.floor(this.x), this.y, this.z);
  }
  /**
   * Floors the Y component of the vector.
   * @returns A new vector with the floored Y component.
   */
  floorY() {
    return new _a5(this.x, Math.floor(this.y), this.z);
  }
  /**
   * Floors the Z component of the vector.
   * @returns A new vector with the floored Z component.
   */
  floorZ() {
    return new _a5(this.x, this.y, Math.floor(this.z));
  }
  /**
   * Ceils the X, Y, and Z components of the vector.
   * @returns A new vector with the ceiled components.
   */
  ceil() {
    return new _a5(Math.ceil(this.x), Math.ceil(this.y), Math.ceil(this.z));
  }
  /**
   * Ceils the X component of the vector.
   * @returns A new vector with the ceiled X component.
   */
  ceilX() {
    return new _a5(Math.ceil(this.x), this.y, this.z);
  }
  /**
   * Ceils the Y component of the vector.
   * @returns A new vector with the ceiled Y component.
   */
  ceilY() {
    return new _a5(this.x, Math.ceil(this.y), this.z);
  }
  /**
   * Ceils the Z component of the vector.
   * @returns A new vector with the ceiled Z component.
   */
  ceilZ() {
    return new _a5(this.x, this.y, Math.ceil(this.z));
  }
  /**
   * Rounds the X, Y, and Z components of the vector.
   * @returns A new vector with the rounded components.
   */
  round() {
    return new _a5(Math.round(this.x), Math.round(this.y), Math.round(this.z));
  }
  /**
   * Rounds the X component of the vector.
   * @returns A new vector with the rounded X component.
   */
  roundX() {
    return new _a5(Math.round(this.x), this.y, this.z);
  }
  /**
   * Rounds the Y component of the vector.
   * @returns A new vector with the rounded Y component.
   */
  roundY() {
    return new _a5(this.x, Math.round(this.y), this.z);
  }
  /**
   * Rounds the Z component of the vector.
   * @returns A new vector with the rounded Z component.
   */
  roundZ() {
    return new _a5(this.x, this.y, Math.round(this.z));
  }
  /**
   * Returns a new vector offset from the current vector up by 1 block.
   * @returns A new vector offset from the current vector up by 1 block.
   */
  up() {
    return this.add(_a5.Up);
  }
  /**
   * Returns a new vector offset from the current vector down by 1 block.
   * @returns A new vector offset from the current vector down by 1 block.
   */
  down() {
    return this.add(_a5.Down);
  }
  /**
   * Returns a new vector offset from the current vector north by 1 block.
   * @returns A new vector offset from the current vector north by 1 block.
   */
  north() {
    return this.add(_a5.North);
  }
  /**
   * Returns a new vector offset from the current vector south by 1 block.
   * @returns A new vector offset from the current vector south by 1 block.
   */
  south() {
    return this.add(_a5.South);
  }
  /**
   * Returns a new vector offset from the current vector east by 1 block.
   * @returns A new vector offset from the current vector east by 1 block.
   */
  east() {
    return this.add(_a5.East);
  }
  /**
   * Returns a new vector offset from the current vector west by 1 block.
   * @returns A new vector offset from the current vector west by 1 block.
   */
  west() {
    return this.add(_a5.West);
  }
  /**
   * Checks if the current vector is equal to the zero vector.
   * @returns true if the vector is equal to the zero vector, else returns false.
   */
  isZero() {
    return this.x === 0 && this.y === 0 && this.z === 0;
  }
  /**
   * Converts the vector to an array containing the X, Y, and Z components of the vector.
   * @returns An array containing the X, Y, and Z components of the vector.
   */
  toArray() {
    return [this.x, this.y, this.z];
  }
  /**
   * Converts the vector to a direction.
   * If the vector is not a unit vector, then it will be normalized and rounded to the nearest direction.
   */
  toDirection() {
    if (this.isZero()) {
      log.error(new Error("Cannot convert zero-length vector to direction"));
      throw new Error("Cannot convert zero-length vector to direction");
    }
    const normalized = this.normalize();
    const rounded = new _a5(Math.round(normalized.x), Math.round(normalized.y), Math.round(normalized.z));
    if (rounded.x === 1)
      return Direction.East;
    if (rounded.x === -1)
      return Direction.West;
    if (rounded.y === 1)
      return Direction.Up;
    if (rounded.y === -1)
      return Direction.Down;
    if (rounded.z === 1)
      return Direction.North;
    if (rounded.z === -1)
      return Direction.South;
    log.error(new Error("Cannot convert vector to direction"), this);
    throw new Error("Cannot convert vector to direction");
  }
  equals(x, y, z) {
    try {
      const other = _a5._from(x, y, z);
      return this.x === other.x && this.y === other.y && this.z === other.z;
    } catch (e) {
      return false;
    }
  }
  toString() {
    return `Vec3(${this.x}, ${this.y}, ${this.z})`;
  }
}, __publicField(_a5, "Zero", new _a5(0, 0, 0)), __publicField(_a5, "Down", new _a5(Direction.Down)), __publicField(_a5, "Up", new _a5(Direction.Up)), __publicField(_a5, "North", new _a5(Direction.North)), __publicField(_a5, "South", new _a5(Direction.South)), __publicField(_a5, "East", new _a5(Direction.East)), __publicField(_a5, "West", new _a5(Direction.West)), _a5);
var log2 = Logger.getLogger("Timings", "timings");
var log3 = Logger.getLogger("jobUtils", "bedrock-boost", "jobUtils");
var log4 = Logger.getLogger("itemUtils", "bedrock-boost", "itemUtils");
var log5 = Logger.getLogger("PulseScheduler", "bedrock-boost", "pulse-scheduler");

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/nameAliases.json
var nameAliases_default = { cobblestone_wall: "cobblestone_wall.normal", mossy_cobblestone_wall: "cobblestone_wall.mossy", granite_wall: "cobblestone_wall.granite", diorite_wall: "cobblestone_wall.diorite", andesite_wall: "cobblestone_wall.andesite", sandstone_wall: "cobblestone_wall.sandstone", brick_wall: "cobblestone_wall.brick", stone_brick_wall: "cobblestone_wall.stone_brick", mossy_stone_brick_wall: "cobblestone_wall.mossy_stone_brick", nether_brick_wall: "cobblestone_wall.nether_brick", end_brick_wall: "cobblestone_wall.end_brick", prismarine_wall: "cobblestone_wall.prismarine", red_sandstone_wall: "cobblestone_wall.red_sandstone", red_nether_brick_wall: "cobblestone_wall.red_nether_brick", grass_block: "grass", oak_fence: "fence", spruce_fence: "spruceFence", birch_fence: "birchFence", jungle_fence: "jungleFence", acacia_fence: "acaciaFence", dark_oak_fence: "darkOakFence", oak_leaves: "leaves.oak", spruce_leaves: "leaves.spruce", birch_leaves: "leaves.birch", jungle_leaves: "leaves.jungle", acacia_leaves: "leaves.acacia", dark_oak_leaves: "leaves.big_oak", oak_planks: "planks.oak", spruce_planks: "planks.spruce", birch_planks: "planks.birch", jungle_planks: "planks.jungle", acacia_planks: "planks.acacia", dark_oak_planks: "planks.big_oak", oak_log: "log.oak", spruce_log: "log.spruce", birch_log: "log.birch", jungle_log: "log.jungle", acacia_log: "log.acacia", dark_oak_log: "log.big_oak", oak_wood: "wood.oak", spruce_wood: "wood.spruce", birch_wood: "wood.birch", jungle_wood: "wood.jungle", acacia_wood: "wood.acacia", dark_oak_wood: "wood.big_oak", stripped_oak_wood: "wood.stripped.oak", stripped_spruce_wood: "wood.stripped.spruce", stripped_birch_wood: "wood.stripped.birch", stripped_jungle_wood: "wood.stripped.jungle", stripped_acacia_wood: "wood.stripped.acacia", stripped_dark_oak_wood: "wood.stripped.big_oak", sapling: "sapling.oak", white_stained_glass: "stained_glass.white", light_gray_stained_glass: "stained_glass.silver", gray_stained_glass: "stained_glass.gray", black_stained_glass: "stained_glass.black", brown_stained_glass: "stained_glass.brown", red_stained_glass: "stained_glass.red", orange_stained_glass: "stained_glass.orange", yellow_stained_glass: "stained_glass.yellow", lime_stained_glass: "stained_glass.lime", green_stained_glass: "stained_glass.green", cyan_stained_glass: "stained_glass.cyan", light_blue_stained_glass: "stained_glass.light_blue", blue_stained_glass: "stained_glass.blue", purple_stained_glass: "stained_glass.purple", magenta_stained_glass: "stained_glass.magenta", pink_stained_glass: "stained_glass.pink", white_stained_glass_pane: "stained_glass_pane.white", light_gray_stained_glass_pane: "stained_glass_pane.silver", gray_stained_glass_pane: "stained_glass_pane.gray", black_stained_glass_pane: "stained_glass_pane.black", brown_stained_glass_pane: "stained_glass_pane.brown", red_stained_glass_pane: "stained_glass_pane.red", orange_stained_glass_pane: "stained_glass_pane.orange", yellow_stained_glass_pane: "stained_glass_pane.yellow", lime_stained_glass_pane: "stained_glass_pane.lime", green_stained_glass_pane: "stained_glass_pane.green", cyan_stained_glass_pane: "stained_glass_pane.cyan", light_blue_stained_glass_pane: "stained_glass_pane.light_blue", blue_stained_glass_pane: "stained_glass_pane.blue", purple_stained_glass_pane: "stained_glass_pane.purple", magenta_stained_glass_pane: "stained_glass_pane.magenta", pink_stained_glass_pane: "stained_glass_pane.pink", wooden_door: "item.wooden_door", spruce_door: "item.spruce_door", birch_door: "item.birch_door", jungle_door: "item.jungle_door", acacia_door: "item.acacia_door", dark_oak_door: "item.dark_oak_door", mangrove_door: "item.mangrove_door", cherry_door: "item.cherry_door", white_concrete: "concrete.white", light_gray_concrete: "concrete.silver", gray_concrete: "concrete.gray", black_concrete: "concrete.black", brown_concrete: "concrete.brown", red_concrete: "concrete.red", orange_concrete: "concrete.orange", yellow_concrete: "concrete.yellow", lime_concrete: "concrete.lime", green_concrete: "concrete.green", cyan_concrete: "concrete.cyan", light_blue_concrete: "concrete.light_blue", blue_concrete: "concrete.blue", purple_concrete: "concrete.purple", magenta_concrete: "concrete.magenta", pink_concrete: "concrete.pink", white_concrete_powder: "concretePowder.white", light_gray_concrete_powder: "concretePowder.silver", gray_concrete_powder: "concretePowder.gray", black_concrete_powder: "concretePowder.black", brown_concrete_powder: "concretePowder.brown", red_concrete_powder: "concretePowder.red", orange_concrete_powder: "concretePowder.orange", yellow_concrete_powder: "concretePowder.yellow", lime_concrete_powder: "concretePowder.lime", green_concrete_powder: "concretePowder.green", cyan_concrete_powder: "concretePowder.cyan", light_blue_concrete_powder: "concretePowder.light_blue", blue_concrete_powder: "concretePowder.blue", purple_concrete_powder: "concretePowder.purple", magenta_concrete_powder: "concretePowder.magenta", pink_concrete_powder: "concretePowder.pink", white_glazed_terracotta: "glazedTerracottaWhite", silver_glazed_terracotta: "glazedTerracottaSilver", gray_glazed_terracotta: "glazedTerracottaGray", black_glazed_terracotta: "glazedTerracottaBlack", brown_glazed_terracotta: "glazedTerracottaBrown", red_glazed_terracotta: "glazedTerracottaRed", orange_glazed_terracotta: "glazedTerracottaOrange", yellow_glazed_terracotta: "glazedTerracottaYellow", lime_glazed_terracotta: "glazedTerracottaLime", green_glazed_terracotta: "glazedTerracottaGreen", cyan_glazed_terracotta: "glazedTerracottaCyan", light_blue_glazed_terracotta: "glazedTerracottaLight_blue", blue_glazed_terracotta: "glazedTerracottaBlue", purple_glazed_terracotta: "glazedTerracottaPurple", magenta_glazed_terracotta: "glazedTerracottaMagenta", pink_glazed_terracotta: "glazedTerracottaPink", white_terracotta: "stained_hardened_clay.white", light_gray_terracotta: "stained_hardened_clay.silver", gray_terracotta: "stained_hardened_clay.gray", black_terracotta: "stained_hardened_clay.black", brown_terracotta: "stained_hardened_clay.brown", red_terracotta: "stained_hardened_clay.red", orange_terracotta: "stained_hardened_clay.orange", yellow_terracotta: "stained_hardened_clay.yellow", lime_terracotta: "stained_hardened_clay.lime", green_terracotta: "stained_hardened_clay.green", cyan_terracotta: "stained_hardened_clay.cyan", light_blue_terracotta: "stained_hardened_clay.light_blue", blue_terracotta: "stained_hardened_clay.blue", purple_terracotta: "stained_hardened_clay.purple", magenta_terracotta: "stained_hardened_clay.magenta", pink_terracotta: "stained_hardened_clay.pink", white_carpet: "carpet.white", light_gray_carpet: "carpet.silver", gray_carpet: "carpet.gray", black_carpet: "carpet.black", brown_carpet: "carpet.brown", red_carpet: "carpet.red", orange_carpet: "carpet.orange", yellow_carpet: "carpet.yellow", lime_carpet: "carpet.lime", green_carpet: "carpet.green", cyan_carpet: "carpet.cyan", light_blue_carpet: "carpet.light_blue", blue_carpet: "carpet.blue", purple_carpet: "carpet.purple", magenta_carpet: "carpet.magenta", pink_carpet: "carpet.pink", white_wool: "wool.white", light_gray_wool: "wool.silver", gray_wool: "wool.gray", black_wool: "wool.black", brown_wool: "wool.brown", red_wool: "wool.red", orange_wool: "wool.orange", yellow_wool: "wool.yellow", lime_wool: "wool.lime", green_wool: "wool.green", cyan_wool: "wool.cyan", light_blue_wool: "wool.light_blue", blue_wool: "wool.blue", purple_wool: "wool.purple", magenta_wool: "wool.magenta", pink_wool: "wool.pink", stone: "stone.stone", andesite: "stone.andesite", diorite: "stone.diorite", granite: "stone.granite", polished_andesite: "stone.andesiteSmooth", polished_diorite: "stone.dioriteSmooth", polished_granite: "stone.graniteSmooth", wall_banner: "standing_banner", prismarine: "prismarine.rough", stone_block_slab: "stone_slab", stone_block_slab2: "stone_slab2.red_sandstone", stone_block_slab3: "stone_slab3.end_brick", stone_block_slab4: "stone_slab4.mossy_stone_brick", double_stone_block_slab: "stone_slab", double_stone_block_slab2: "stone_slab2.red_sandstone", double_stone_block_slab3: "stone_slab3.end_brick", double_stone_block_slab4: "stone_slab4.mossy_stone_brick", oak_slab: "wooden_slab.oak", spruce_slab: "wooden_slab.spruce", birch_slab: "wooden_slab.birch", jungle_slab: "wooden_slab.jungle", acacia_slab: "wooden_slab.acacia", dark_oak_slab: "wooden_slab.big_oak", oak_double_slab: "wooden_slab.oak", spruce_double_slab: "wooden_slab.spruce", birch_double_slab: "wooden_slab.birch", jungle_double_slab: "wooden_slab.jungle", acacia_double_slab: "wooden_slab.acacia", dark_oak_double_slab: "wooden_slab.big_oak", fire_coral: "coral.red", brain_coral: "coral.pink", bubble_coral: "coral.purple", tube_coral: "coral.blue", horn_coral: "coral.yellow", dead_fire_coral: "coral.red_dead", dead_brain_coral: "coral.pink_dead", dead_bubble_coral: "coral.purple_dead", dead_tube_coral: "coral.blue_dead", dead_horn_coral: "coral.yellow_dead", coral_block: "coral_block.blue", coral_fan_dead: "coral_fan_dead.blue_fan", brewing_stand: "item.brewing_stand", acacia_hanging_sign: "item.acacia_hanging_sign", bamboo_hanging_sign: "item.bamboo_hanging_sign", birch_hanging_sign: "item.birch_hanging_sign", cherry_hanging_sign: "item.cherry_hanging_sign", crimson_hanging_sign: "item.crimson_hanging_sign", dark_oak_hanging_sign: "item.dark_oak_hanging_sign", jungle_hanging_sign: "item.jungle_hanging_sign", mangrove_hanging_sign: "item.mangrove_hanging_sign", oak_hanging_sign: "item.oak_hanging_sign", spruce_hanging_sign: "item.spruce_hanging_sign", warped_hanging_sign: "item.warped_hanging_sign", pale_oak_hanging_sign: "item.pale_oak_hanging_sign", acacia_standing_sign: "item.acacia_sign", bamboo_standing_sign: "item.bamboo_sign", birch_standing_sign: "item.birch_sign", cherry_standing_sign: "item.cherry_sign", crimson_standing_sign: "item.crimson_sign", dark_oak_standing_sign: "item.dark_oak_sign", jungle_standing_sign: "item.jungle_sign", mangrove_standing_sign: "item.mangrove_sign", standing_sign: "item.sign", spruce_standing_sign: "item.spruce_sign", warped_standing_sign: "item.warped_sign", acacia_wall_sign: "item.acacia_sign", bamboo_wall_sign: "item.bamboo_sign", birch_wall_sign: "item.birch_sign", cherry_wall_sign: "item.cherry_sign", crimson_wall_sign: "item.crimson_sign", dark_oak_wall_sign: "item.dark_oak_sign", jungle_wall_sign: "item.jungle_sign", mangrove_wall_sign: "item.mangrove_sign", wall_sign: "item.sign", spruce_wall_sign: "item.spruce_sign", warped_wall_sign: "item.warped_sign", frame: "item.frame", glow_frame: "item.glow_frame", seagrass: "seagrass.seagrass", powder_snow_bucket: "powder_snow", wheat_seeds: "item.wheat", beetroot_seeds: "beetroot", carrot: "item.carrot", potato: "potatoes", melon_seeds: "item.melon_seeds", pumpkin_seeds: "pumpkin", pitcher_pod: "item.pitcher_pod", cornflower: "red_flower.cornflower", sea_lantern: "seaLantern", chiseled_sandstone: "sandstone.chiseled", smooth_sandstone: "sandstone.smooth", cut_sandstone: "sandstone.cut", chiseled_red_sandstone: "red_sandstone.chiseled", smooth_red_sandstone: "red_sandstone.smooth", cut_red_sandstone: "red_sandstone.cut", brick_slab: "stone_slab.brick", cobblestone_slab: "stone_slab.cobble", smooth_stone_slab: "stone_slab.stone", nether_brick_slab: "stone_slab.nether_brick", normal_stone_slab: "stone_slab", quartz_slab: "stone_slab.quartz", sandstone_slab: "stone_slab.sand", stone_brick_slab: "stone_slab.smoothStoneBrick", stone_slab: "stone_slab.stone", wood_slab: "stone_slab.wood", red_sandstone_slab: "stone_slab2.red_sandstone", smooth_red_sandstone_slab: "stone_slab3.red_sandstone.smooth", purpur_slab: "stone_slab2.purpur", prismarine_slab: "stone_slab2.prismarine.rough", dark_prismarine_slab: "stone_slab2.prismarine.dark", prismarine_brick_slab: "stone_slab2.prismarine.bricks", mossy_cobblestone_slab: "stone_slab2.mossy_cobblestone", red_nether_brick_slab: "stone_slab2.red_nether_brick", smooth_sandstone_slab: "stone_slab2.sandstone.smooth", end_stone_brick_slab: "stone_slab3.end_brick", andesite_slab: "stone_slab3.andesite", polished_andesite_slab: "stone_slab3.andesite.smooth", diorite_slab: "stone_slab3.diorite", polished_diorite_slab: "stone_slab3.diorite.smooth", granite_slab: "stone_slab3.granite", polished_granite_slab: "stone_slab3.granite.smooth", mossy_stone_brick_slab: "stone_slab4.mossy_stone_brick", smooth_quartz_slab: "stone_slab4.smooth_quartz", cut_sandstone_slab: "stone_slab4.cut_sandstone", cut_red_sandstone_slab: "stone_slab4.cut_red_sandstone", sugar_cane: "item.reeds", fern: "tallgrass.fern", short_grass: "tallgrass", large_fern: "double_plant.fern", lilac: "double_plant.syringa", peony: "double_plant.paeonia", rose_bush: "double_plant.rose", sunflower: "double_plant.sunflower", tall_grass: "double_plant.grass", allium: "red_flower.allium", azure_bluet: "red_flower.houstonia", blue_orchid: "red_flower.blueOrchid", dandelion: "yellow_flower.dandelion", lily_of_the_valley: "red_flower.lilyOfTheValley", oxeye_daisy: "red_flower.oxeyeDaisy", poppy: "red_flower.poppy", orange_tulip: "red_flower.tulipOrange", pink_tulip: "red_flower.tulipPink", red_tulip: "red_flower.tulipRed", white_tulip: "red_flower.tulipWhite", bubble_column: "water", glow_berries: "item.glow_berries", sweet_berries: "item.sweet_berries", coarse_dirt: "dirt.coarse", banner: "standing_banner", bamboo_door: "item.bamboo_door", oak_sign: "item.sign", spruce_sign: "item.spruce_sign", jungle_sign: "item.jungle_sign", acacia_sign: "item.acacia_sign", darkoak_sign: "item.darkoak_sign", crimson_sign: "item.crimson_sign", warped_sign: "item.warped_sign", mangrove_sign: "item.mangrove_sign", White: "shulkerBoxWhite", orange_shulker_box: "shulkerBoxOrange", magenta_shulker_box: "shulkerBoxMagenta", light_blue_shulker_box: "shulkerBoxLightBlue", yellow_shulker_box: "shulkerBoxYellow", lime_shulker_box: "shulkerBoxLime", pink_shulker_box: "shulkerBoxPink", gray_shulker_box: "shulkerBoxGray", light_gray_shulker_box: "shulkerBoxSilver", cyan_shulker_box: "shulkerBoxCyan", purple_shulker_box: "shulkerBoxPurple", blue_shulker_box: "shulkerBoxBlue", brown_shulker_box: "shulkerBoxBrown", green_shulker_box: "shulkerBoxGreen", red_shulker_box: "shulkerBoxRed", black_shulker_box: "shulkerBoxBlack", undyed_shulker_box: "shulkerBox", chiseled_stone_bricks: "stonebrick.chiseled", cracked_stone_bricks: "stonebrick.cracked", stone_bricks: "stonebrick.default", mossy_stone_bricks: "stonebrick.mossy", infested_stone_bricks: "stonebrick.default", infested_chiseled_stone_bricks: "stonebrick.chiseled", infested_cobblestone: "cobblestone", infested_cracked_stone_bricks: "stonebrick.cracked", infested_mossy_stone_bricks: "stonebrick.mossy", infested_deepslate: "deepslate", infested_stone: "stone.stone", pale_oak_door: "item.pale_oak_door", acacia_sapling: "sapling.acacia", dark_oak_sapling: "sapling.big_oak", birch_sapling: "sapling.birch", jungle_sapling: "sapling.jungle", oak_sapling: "sapling.oak", spruce_sapling: "sapling.spruce", tube_coral_block: "coral_block.blue", brain_coral_block: "coral_block.pink", bubble_coral_block: "coral_block.purple", fire_coral_block: "coral_block.red", horn_coral_block: "coral_block.yellow", dead_tube_coral_block: "coral_block.blue_dead", dead_brain_coral_block: "coral_block.pink_dead", dead_bubble_coral_block: "coral_block.purple_dead", dead_fire_coral_block: "coral_block.red_dead", dead_horn_coral_block: "coral_block.yellow_dead" };

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/namespaces.json
var namespaces_default = { minecraft: { display_name: "namespace.minecraft", textures: { root: "textures/items/", list: ["apple", "apple_golden", "arrow", "wood_axe", "stone_axe", "iron_axe", "gold_axe", "diamond_axe", "netherite_axe", { bed: "bed_white" }, "bed_white", "bed_orange", "bed_magenta", "bed_light_blue", "bed_yellow", "bed_lime", "bed_pink", "bed_gray", "bed_silver", "bed_cyan", "bed_purple", "bed_blue", "bed_brown", "bed_green", "bed_red", "bed_black", "beef_cooked", "beef_raw", "blaze_powder", "blaze_rod", "boat_oak", "boat_spruce", "boat_birch", "boat_jungle", "boat_acacia", "boat_darkoak", "mangrove_boat", "bamboo_raft", "cherry_boat", "pale_oak_boat", "bone", "book_enchanted", "book_normal", "book_writable", "book_written", "book_portfolio", "leather_boots", "chainmail_boots", "iron_boots", "gold_boots", "diamond_boots", "netherite_boots", "bowl", { bow: "bow_standby" }, "bread", "brewing_stand", "brick", "bucket_empty", "bucket_milk", "bucket_water", "bucket_lava", "bucket_cod", "bucket_salmon", "bucket_tropical", "bucket_pufferfish", "bucket_powder_snow", "bucket_axolotl", "bucket_tadpole", "cake", "campfire", "carrot", "carrot_golden", "carrot_on_a_stick", "beetroot", "cauldron", "charcoal", "leather_chestplate", "chainmail_chestplate", "iron_chestplate", "gold_chestplate", "diamond_chestplate", "netherite_chestplate", "chicken_cooked", { chicken: "chicken_raw" }, "chorus_fruit", "chorus_fruit_popped", "mutton_cooked", "mutton_raw", "clay_ball", "coal", "comparator", "cookie", "crossbow_arrow", "crossbow_firework", { crossbow: "crossbow_standby" }, "diamond", "diamond_horse_armor", "door_iron", "door_wood", "door_spruce", "door_birch", "door_jungle", "door_acacia", "door_dark_oak", "dragons_breath", "dried_kelp", "dye_powder_black", "dye_powder_red", "dye_powder_green", "dye_powder_brown", "dye_powder_blue", "dye_powder_purple", "dye_powder_cyan", "dye_powder_silver", "dye_powder_gray", "dye_powder_pink", "dye_powder_lime", "dye_powder_yellow", "dye_powder_light_blue", "dye_powder_magenta", "dye_powder_orange", "dye_powder_white", "dye_powder_black_new", "dye_powder_brown_new", "dye_powder_blue_new", "dye_powder_white_new", "dye_powder_glow", "egg", "emerald", "empty_armor_slot_boots", "empty_armor_slot_chestplate", "empty_armor_slot_helmet", "empty_armor_slot_leggings", "empty_armor_slot_shield", "ender_eye", "ender_pearl", "end_crystal", "experience_bottle", "feather", "fireball", "fireworks", "fireworks_charge", "fishing_rod_uncast", "fishing_rod_cast", { cod: "fish_raw" }, { salmon: "fish_salmon_raw" }, { clownfish: "fish_clownfish_raw" }, { pufferfish: "fish_pufferfish_raw" }, "fish_cooked", "fish_salmon_cooked", "elytra", "broken_elytra", "flint", "flint_and_steel", "flower_pot", "ghast_tear", "glowstone_dust", "gold_horse_armor", "gold_ingot", "gold_nugget", "iron_nugget", "gunpowder", "leather_helmet", "chainmail_helmet", "iron_helmet", "gold_helmet", "diamond_helmet", "netherite_helmet", "wood_hoe", "stone_hoe", "iron_hoe", "gold_hoe", "diamond_hoe", "netherite_hoe", "hopper", "iron_horse_armor", "iron_ingot", "item_frame", "kelp", "lead", "leather", "leather_horse_armor", "leather_leggings", "chainmail_leggings", "iron_leggings", "gold_leggings", "diamond_leggings", "netherite_leggings", "magma_cream", "map_empty", "map_monument", "map_mansion", "map_nautilus", "map_locked", "map_filled", "map_trial_chambers", "melon", "melon_speckled", "minecart_chest", "minecart_command_block", "minecart_furnace", "minecart_hopper", "minecart_normal", "minecart_tnt", "mushroom_stew", "beetroot_soup", "name_tag", "nautilus", "heartofthesea_closed", "netherbrick", "nether_star", "nether_wart", "painting", "paper", "wood_pickaxe", "stone_pickaxe", "iron_pickaxe", "gold_pickaxe", "diamond_pickaxe", "netherite_pickaxe", "phantom_membrane", "porkchop_cooked", { porkchop: "porkchop_raw" }, "potato", "potato_baked", "potato_poisonous", { potion: "potion_bottle_drinkable" }, "potion_bottle_drinkable", "potion_bottle_moveSpeed", "potion_bottle_moveSlowdown", "potion_bottle_digSpeed", "potion_bottle_digSlowdown", "potion_bottle_damageBoost", "potion_bottle_heal", "potion_bottle_harm", "potion_bottle_jump", "potion_bottle_confusion", "potion_bottle_regeneration", "potion_bottle_resistance", "potion_bottle_fireResistance", "potion_bottle_waterBreathing", "potion_bottle_invisibility", "potion_bottle_blindness", "potion_bottle_nightVision", "potion_bottle_hunger", "potion_bottle_weakness", "potion_bottle_poison", "potion_bottle_wither", "potion_bottle_healthBoost", "potion_bottle_absorption", "potion_bottle_saturation", "potion_bottle_levitation", "potion_bottle_turtleMaster", "potion_bottle_slowFall", "potion_bottle_windCharged", "potion_bottle_weaving", "potion_bottle_oozing", "potion_bottle_infested", "potion_bottle_empty", "potion_bottle_lingering", "potion_bottle_lingering_moveSpeed", "potion_bottle_lingering_moveSlowdown", "potion_bottle_lingering_damageBoost", "potion_bottle_lingering_heal", "potion_bottle_lingering_harm", "potion_bottle_lingering_jump", "potion_bottle_lingering_regeneration", "potion_bottle_lingering_fireResistance", "potion_bottle_lingering_waterBreathing", "potion_bottle_lingering_invisibility", "potion_bottle_lingering_nightVision", "potion_bottle_lingering_weakness", "potion_bottle_lingering_poison", "potion_bottle_lingering_wither", "potion_bottle_lingering_turtleMaster", "potion_bottle_lingering_slowFall", "potion_bottle_lingering_windCharged", "potion_bottle_lingering_weaving", "potion_bottle_lingering_oozing", "potion_bottle_lingering_infested", "potion_bottle_splash", "potion_bottle_splash_moveSpeed", "potion_bottle_splash_moveSlowdown", "potion_bottle_splash_digSpeed", "potion_bottle_splash_digSlowdown", "potion_bottle_splash_damageBoost", "potion_bottle_splash_heal", "potion_bottle_splash_harm", "potion_bottle_splash_jump", "potion_bottle_splash_confusion", "potion_bottle_splash_regeneration", "potion_bottle_splash_resistance", "potion_bottle_splash_fireResistance", "potion_bottle_splash_waterBreathing", "potion_bottle_splash_invisibility", "potion_bottle_splash_blindness", "potion_bottle_splash_nightVision", "potion_bottle_splash_hunger", "potion_bottle_splash_weakness", "potion_bottle_splash_poison", "potion_bottle_splash_wither", "potion_bottle_splash_healthBoost", "potion_bottle_splash_absorption", "potion_bottle_splash_saturation", "potion_bottle_splash_turtleMaster", "potion_bottle_splash_slowFall", "potion_bottle_splash_windCharged", "potion_bottle_splash_weaving", "potion_bottle_splash_oozing", "potion_bottle_splash_infested", "potion_overlay", "pumpkin_pie", "prismarine_crystals", "prismarine_shard", "quartz", "quiver", "record_11", "record_13", "record_blocks", "record_cat", "record_chirp", "record_far", "record_mall", "record_mellohi", "record_stal", "record_strad", "record_wait", "record_ward", "record_pigstep", "redstone_dust", "reeds", "repeater", "rotten_flesh", "saddle", "seeds_melon", "seeds_pumpkin", "seeds_wheat", "seeds_beetroot", "shears", "wood_shovel", "stone_shovel", "iron_shovel", "gold_shovel", "diamond_shovel", "netherite_shovel", { oak_sign: "sign" }, "sign_acacia", "sign_birch", "sign_darkoak", "sign_jungle", "sign_spruce", "slimeball", "snowball", "egg_chicken", "egg_cow", "egg_pig", "egg_sheep", "egg_wolf", "egg_mushroomcow", "egg_creeper", "egg_enderman", "egg_silverfish", "egg_skeleton", "egg_slime", "egg_spider", "egg_zombie", "egg_pigzombie", "egg_villager", "egg_squid", "egg_ocelot", "egg_witch", "egg_bat", "egg_ghast", "egg_lava_slime", "egg_blaze", "egg_cave_spider", "egg_horse", "egg_rabbit", "egg_endermite", "egg_guardian", "egg_stray", "egg_husk", "egg_wither", "egg_donkey", "egg_mule", "egg_skeletonhorse", "egg_zombiehorse", "egg_shulker", "egg_npc", "egg_elderguardian", "egg_polarbear", "egg_llama", "egg_vindicator", "egg_evoker", "egg_vex", "egg_zombievillager", "egg_parrot", "egg_clownfish", "egg_cod", "egg_pufferfish", "egg_salmon", "egg_drowned", "egg_dolphin", "egg_turtle", "egg_phantom", "egg_agent", "egg_cat", "egg_panda", "egg_fox", "egg_pillager", "egg_ravager", "egg_null", "egg_mask", "spider_eye", "spider_eye_fermented", "stick", "string", "sugar", "suspicious_stew", "wood_sword", "stone_sword", "iron_sword", "gold_sword", "diamond_sword", "netherite_sword", "wheat", "clock_item", "compass_item", "rabbit_cooked", "rabbit_foot", "rabbit_hide", "rabbit_raw", "rabbit_stew", "lever", "camera", "chalkboard_small", "chalkboard_medium", "chalkboard_large", "tipped_arrow", "tipped_arrow_swift", "tipped_arrow_slow", "tipped_arrow_strength", "tipped_arrow_healing", "tipped_arrow_harm", "tipped_arrow_leaping", "tipped_arrow_regen", "tipped_arrow_fireres", "tipped_arrow_waterbreathing", "tipped_arrow_invisibility", "tipped_arrow_nightvision", "tipped_arrow_weakness", "tipped_arrow_poison", "tipped_arrow_wither", "tipped_arrow_turtlemaster", "tipped_arrow_slowfalling", "tipped_arrow_windCharged", "tipped_arrow_weaving", "tipped_arrow_oozing", "tipped_arrow_infested", "shulker_shell", "totem", "trident", "turtle_shell_piece", "turtle_helmet", "armor_stand", "sweet_berries", "spawn_eggs", "banner_pattern", "spawn_eggs", "honeycomb", "honey_bottle", "egg_bee", "netherite_ingot", "netherite_scrap", "sign_warped", "sign_crimson", "crimson_door", "warped_door", "lodestonecompass_item", "warped_fungus_on_a_stick", "chain", "soul_campfire", "nether_sprouts", "hanging_roots", "glow_berries", "amethyst_shard", "spyglass", "copper_ingot", "raw_copper", "raw_iron", "raw_gold", "glow_item_frame", "record_otherside", "mangrove_door", "mangrove_sign", "oak_chest_boat", "spruce_chest_boat", "birch_chest_boat", "jungle_chest_boat", "acacia_chest_boat", "dark_oak_chest_boat", "mangrove_chest_boat", "bamboo_chest_raft", "cherry_chest_boat", "pale_oak_chest_boat", "recovery_compass_item", "echo_shard", "goat_horn", "record_5", "disc_fragment_5", "pitcher_pod", "torchflower_seeds", "oak_hanging_sign", "spruce_hanging_sign", "birch_hanging_sign", "jungle_hanging_sign", "acacia_hanging_sign", "dark_oak_hanging_sign", "crimson_hanging_sign", "warped_hanging_sign", "mangrove_hanging_sign", "bamboo_hanging_sign", "bamboo_door", "bamboo_sign", "cherry_door", "cherry_hanging_sign", "cherry_sign", "angler_pottery_sherd", "archer_pottery_sherd", "arms_up_pottery_sherd", "blade_pottery_sherd", "brewer_pottery_sherd", "burn_pottery_sherd", "danger_pottery_sherd", "explorer_pottery_sherd", "friend_pottery_sherd", "heart_pottery_sherd", "heartbreak_pottery_sherd", "howl_pottery_sherd", "miner_pottery_sherd", "mourner_pottery_sherd", "plenty_pottery_sherd", "prize_pottery_sherd", "sheaf_pottery_sherd", "shelter_pottery_sherd", "skull_pottery_sherd", "snort_pottery_sherd", "brush", "netherite_upgrade_smithing_template", "sentry_armor_trim_smithing_template", "dune_armor_trim_smithing_template", "coast_armor_trim_smithing_template", "wild_armor_trim_smithing_template", "ward_armor_trim_smithing_template", "eye_armor_trim_smithing_template", "vex_armor_trim_smithing_template", "tide_armor_trim_smithing_template", "snout_armor_trim_smithing_template", "rib_armor_trim_smithing_template", "spire_armor_trim_smithing_template", "silence_armor_trim_smithing_template", "wayfinder_armor_trim_smithing_template", "raiser_armor_trim_smithing_template", "shaper_armor_trim_smithing_template", "host_armor_trim_smithing_template", "music_disc_relic", "armadillo_scute", "wolf_armor", "wolf_armor_dyed", "copper_door", "exposed_copper_door", "weathered_copper_door", "oxidized_copper_door", "trial_key", "ominous_trial_key", "wind_charge", "guster_pottery_sherd", "ominous_bottle", "flow_pottery_sherd", "scrape_pottery_sherd", "flow_banner_pattern", "guster_banner_pattern", "breeze_rod", "mace", "flow_armor_trim_smithing_template", "bolt_armor_trim_smithing_template", "music_disc_creator", "music_disc_creator_music_box", "music_disc_precipice", "creeper_banner_pattern", "flower_banner_pattern", "globe_banner_pattern", "mojang_banner_pattern", "piglin_banner_pattern", "skull_banner_pattern", "field_masoned_banner_pattern", "bordure_indented_banner_pattern", "bundle", "bundle_open", "bundle_open_back", "bundle_open_front", "bundle_white", "bundle_white_open", "bundle_white_open_back", "bundle_white_open_front", "bundle_black", "bundle_black_open", "bundle_black_open_back", "bundle_black_open_front", "bundle_gray", "bundle_gray_open", "bundle_gray_open_back", "bundle_gray_open_front", "bundle_light_gray", "bundle_light_gray_open", "bundle_light_gray_open_back", "bundle_light_gray_open_front", "bundle_light_blue", "bundle_light_blue_open", "bundle_light_blue_open_back", "bundle_light_blue_open_front", "bundle_blue", "bundle_blue_open", "bundle_blue_open_back", "bundle_blue_open_front", "bundle_cyan", "bundle_cyan_open", "bundle_cyan_open_back", "bundle_cyan_open_front", "bundle_lime", "bundle_lime_open", "bundle_lime_open_back", "bundle_lime_open_front", "bundle_green", "bundle_green_open", "bundle_green_open_back", "bundle_green_open_front", "bundle_pink", "bundle_pink_open", "bundle_pink_open_back", "bundle_pink_open_front", "bundle_purple", "bundle_purple_open", "bundle_purple_open_back", "bundle_purple_open_front", "bundle_magenta", "bundle_magenta_open", "bundle_magenta_open_back", "bundle_magenta_open_front", "bundle_orange", "bundle_orange_open", "bundle_orange_open_back", "bundle_orange_open_front", "bundle_yellow", "bundle_yellow_open", "bundle_yellow_open_back", "bundle_yellow_open_front", "bundle_red", "bundle_red_open", "bundle_red_open_back", "bundle_red_open_front", "bundle_brown", "bundle_brown_open", "bundle_brown_open_back", "bundle_brown_open_front", "pale_oak_door", "pale_oak_hanging_sign", "pale_oak_sign", "resin_brick", "blue_egg", "brown_egg", "spawn_eggs/spawn_egg_wandering_trader", "spawn_eggs/spawn_egg_bee", "spawn_eggs/spawn_egg_axolotl", "spawn_eggs/spawn_egg_bat", "spawn_eggs/spawn_egg_blaze", "spawn_eggs/spawn_egg_bogged", "spawn_eggs/spawn_egg_breeze", "spawn_eggs/spawn_egg_camel", "spawn_eggs/spawn_egg_cat", "spawn_eggs/spawn_egg_cave_spider", "spawn_eggs/spawn_egg_chicken", "spawn_eggs/spawn_egg_cod", "spawn_eggs/spawn_egg_cow", "spawn_eggs/spawn_egg_creaking", "spawn_eggs/spawn_egg_creeper", "spawn_eggs/spawn_egg_dolphin", "spawn_eggs/spawn_egg_donkey", "spawn_eggs/spawn_egg_drowned", "spawn_eggs/spawn_egg_elder_guardian", "spawn_eggs/spawn_egg_ender_dragon", "spawn_eggs/spawn_egg_enderman", "spawn_eggs/spawn_egg_endermite", "spawn_eggs/spawn_egg_evoker", "spawn_eggs/spawn_egg_fox", "spawn_eggs/spawn_egg_frog", "spawn_eggs/spawn_egg_glow_squid", "spawn_eggs/spawn_egg_goat", "spawn_eggs/spawn_egg_guardian", "spawn_eggs/spawn_egg_hoglin", "spawn_eggs/spawn_egg_horse", "spawn_eggs/spawn_egg_husk", "spawn_eggs/spawn_egg_iron_golem", "spawn_eggs/spawn_egg_llama", "spawn_eggs/spawn_egg_magma_cube", "spawn_eggs/spawn_egg_mooshroom", "spawn_eggs/spawn_egg_mule", "spawn_eggs/spawn_egg_ocelot", "spawn_eggs/spawn_egg_panda", "spawn_eggs/spawn_egg_parrot", "spawn_eggs/spawn_egg_phantom", "spawn_eggs/spawn_egg_pig", "spawn_eggs/spawn_egg_piglin", "spawn_eggs/spawn_egg_piglin_brute", "spawn_eggs/spawn_egg_pillager", "spawn_eggs/spawn_egg_polar_bear", "spawn_eggs/spawn_egg_pufferfish", "spawn_eggs/spawn_egg_rabbit", "spawn_eggs/spawn_egg_ravager", "spawn_eggs/spawn_egg_salmon", "spawn_eggs/spawn_egg_sheep", "spawn_eggs/spawn_egg_shulker", "spawn_eggs/spawn_egg_silverfish", "spawn_eggs/spawn_egg_skeleton", "spawn_eggs/spawn_egg_skeleton_horse", "spawn_eggs/spawn_egg_slime", "spawn_eggs/spawn_egg_sniffer", "spawn_eggs/spawn_egg_snow_golem", "spawn_eggs/spawn_egg_spider", "spawn_eggs/spawn_egg_squid", "spawn_eggs/spawn_egg_stray", "spawn_eggs/spawn_egg_strider", "spawn_eggs/spawn_egg_tadpole", "spawn_eggs/spawn_egg_trader_llama", "spawn_eggs/spawn_egg_tropicalfish", "spawn_eggs/spawn_egg_turtle", "spawn_eggs/spawn_egg_vex", "spawn_eggs/spawn_egg_villager", "spawn_eggs/spawn_egg_vindicator", "spawn_eggs/spawn_egg_warden", "spawn_eggs/spawn_egg_witch", "spawn_eggs/spawn_egg_wither", "spawn_eggs/spawn_egg_wither_skeleton", "spawn_eggs/spawn_egg_wolf", "spawn_eggs/spawn_egg_zoglin", "spawn_eggs/spawn_egg_zombie", "spawn_eggs/spawn_egg_zombie_horse", "spawn_eggs/spawn_egg_zombified_piglin", "spawn_eggs/spawn_egg_agent", "spawn_eggs/spawn_egg_allay", "spawn_eggs/spawn_egg_armadillo", "spawn_eggs/spawn_egg_ghast", "spawn_eggs/spawn_egg_zombie_villager"] } } };

// data/gametests/src/waila/BlockHandler.ts
import { BlockTypes, EntityComponentTypes, EquipmentSlot as EquipmentSlot2 } from "@minecraft/server";

// data/gametests/src/types/TagsEnum.ts
var TagRemarksEnum = /* @__PURE__ */ ((TagRemarksEnum2) => {
  TagRemarksEnum2["CORRECT"] = "a";
  TagRemarksEnum2["INCORRECT"] = "b";
  TagRemarksEnum2["UNDEFINED"] = "z";
  return TagRemarksEnum2;
})(TagRemarksEnum || {});
var BlockToolsEnum = /* @__PURE__ */ ((BlockToolsEnum2) => {
  BlockToolsEnum2["PICKAXE_WOOD"] = "aa";
  BlockToolsEnum2["PICKAXE_STONE"] = "ab";
  BlockToolsEnum2["PICKAXE_IRON"] = "ac";
  BlockToolsEnum2["PICKAXE_DIAMOND"] = "ad";
  BlockToolsEnum2["AXE_WOOD"] = "ba";
  BlockToolsEnum2["AXE_STONE"] = "bb";
  BlockToolsEnum2["AXE_IRON"] = "bc";
  BlockToolsEnum2["AXE_DIAMOND"] = "bd";
  BlockToolsEnum2["SHOVEL"] = "ca";
  BlockToolsEnum2["HOE"] = "da";
  BlockToolsEnum2["SWORD"] = "ea";
  BlockToolsEnum2["IGNITABLE"] = "fa";
  BlockToolsEnum2["CROPS"] = "fb";
  BlockToolsEnum2["SHEARS"] = "fc";
  BlockToolsEnum2["BUCKET"] = "fd";
  BlockToolsEnum2["BRUSH"] = "fe";
  BlockToolsEnum2["COMMANDS"] = "ff";
  BlockToolsEnum2["UNDEFINED"] = "zz";
  return BlockToolsEnum2;
})(BlockToolsEnum || {});
var EntityInteractionsEnum = /* @__PURE__ */ ((EntityInteractionsEnum2) => {
  EntityInteractionsEnum2["CAN_CLIMB"] = "aa";
  EntityInteractionsEnum2["CAN_FLY"] = "ab";
  EntityInteractionsEnum2["CAN_POWER_JUMP"] = "ac";
  EntityInteractionsEnum2["FIRE_IMMUNE"] = "ad";
  EntityInteractionsEnum2["IS_BABY"] = "ae";
  EntityInteractionsEnum2["IS_CHESTED"] = "af";
  EntityInteractionsEnum2["IS_DYEABLE"] = "ag";
  EntityInteractionsEnum2["IS_STUNNED"] = "ah";
  EntityInteractionsEnum2["IS_RIDEABLE"] = "ai";
  EntityInteractionsEnum2["IS_TRADEABLE"] = "aj";
  EntityInteractionsEnum2["PROJECTILE"] = "ak";
  EntityInteractionsEnum2["WANTS_JOCKEY"] = "al";
  EntityInteractionsEnum2["TAMEABLE"] = "am";
  EntityInteractionsEnum2["WHEAT"] = "an";
  EntityInteractionsEnum2["POTATO"] = "ao";
  EntityInteractionsEnum2["HAY_BALE"] = "ap";
  EntityInteractionsEnum2["SEEDS"] = "aq";
  EntityInteractionsEnum2["GOLDEN_APPLE"] = "ar";
  EntityInteractionsEnum2["FISH"] = "as";
  EntityInteractionsEnum2["FLOWERS"] = "at";
  EntityInteractionsEnum2["FUNGI"] = "au";
  EntityInteractionsEnum2["SLIMEBALL"] = "av";
  EntityInteractionsEnum2["CACTUS"] = "aw";
  EntityInteractionsEnum2["TORCHFLOWER"] = "ax";
  EntityInteractionsEnum2["SPIDER_EYE"] = "ay";
  EntityInteractionsEnum2["UNDEFINED"] = "zz";
  return EntityInteractionsEnum2;
})(EntityInteractionsEnum || {});

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/blockTools.json
var blockTools_default = [{ name: "commands", target: ["barrier", "command_block", "light_block", "structure_air", "structure_block"] }, { name: "bucket", remarks: { correct: { itemIds: ["bucket"] }, incorrect: { itemIds: ["!bucket"] } }, target: ["bubble", "lava", "powder_snow", "water", "!coral"] }, { name: "brush", remarks: { correct: { itemIds: ["minecraft:brush"] }, incorrect: { itemIds: ["!minecraft:brush"] } }, target: ["minecraft:suspicious_sand", "minecraft:suspicious_gravel"] }, { name: "shears", remarks: { correct: { itemIds: ["minecraft:shears"] }, incorrect: { itemIds: ["!minecraft:shears"] } }, target: [{ tag: "minecraft:is_shears_item_destructible" }, { tag: "!minecraft:is_axe_item_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }, { tag: "!minecraft:is_shovel_item_destructible" }, { tag: "!minecraft:is_hoe_item_destructible" }, { tag: "!minecraft:is_sword_item_destructible" }, "carpet", "coral", "dry_grass", "leaves", "petals", "root", "short_grass", "sprout", "tall_grass", "vine", "waterlily", "weed", "wool", "!coral_block", "!seed"] }, { name: "sword", remarks: { correct: { tags: ["minecraft:is_sword"] }, incorrect: { tags: ["!minecraft:is_sword"], itemIds: ["!sword"] } }, target: [{ tag: "minecraft:is_sword_item_destructible" }, { tag: "!minecraft:is_axe_item_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }, { tag: "!minecraft:is_shovel_item_destructible" }, "minecraft:web"] }, { name: "hoe", remarks: { correct: { tags: ["minecraft:is_hoe"] }, incorrect: { tags: ["!minecraft:is_hoe"], itemIds: ["!hoe"] } }, target: [{ tag: "minecraft:is_hoe_item_destructible" }, { tag: "!minecraft:is_axe_item_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }, "farmland", "leaves", "sculk", "sponge", "wart_block"] }, { name: "shovel", remarks: { correct: { tags: ["minecraft:is_shovel"], itemIds: ["shovel"] }, incorrect: { tags: ["!minecraft:is_shovel"], itemIds: ["!shovel"] } }, target: [{ tag: "minecraft:is_shovel_item_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }, "concrete_powder", "farmland", "grass", "sand", "snow", "!dry_grass", "!short_grass", "!tall_grass", "!minecraft:short_grass", "!minecraft:short_dry_grass", "!stone", "!suspicious", "!wall"] }, { name: "pickaxe_wood", remarks: { correct: { tags: ["minecraft:is_pickaxe"], itemIds: ["pickaxe"] }, incorrect: { tags: ["!minecraft:is_pickaxe"], itemIds: ["!pickaxe"] } }, target: [{ tag: "minecraft:is_pickaxe_item_destructible" }, { tag: "!minecraft:stone_tier_destructible" }, { tag: "!minecraft:iron_tier_destructible" }, { tag: "!minecraft:diamond_tier_destructible" }, "beacon"] }, { name: "pickaxe_stone", remarks: { correct: { itemIds: ["minecraft:stone_pickaxe", "minecraft:iron_pickaxe", "minecraft:diamond_pickaxe", "minecraft:netherite_pickaxe"] }, incorrect: { itemIds: ["minecraft:wooden_pickaxe", "!minecraft:stone_pickaxe"] } }, target: [{ tag: "minecraft:is_pickaxe_item_destructible" }, { tag: "minecraft:stone_tier_destructible" }, { tag: "!minecraft:iron_tier_destructible" }, { tag: "!minecraft:diamond_tier_destructible" }] }, { name: "pickaxe_iron", remarks: { correct: { itemIds: ["minecraft:iron_pickaxe", "minecraft:diamond_pickaxe", "minecraft:netherite_pickaxe"] }, incorrect: { itemIds: ["!minecraft:iron_pickaxe"] } }, target: [{ tag: "minecraft:is_pickaxe_item_destructible" }, { tag: "minecraft:iron_tier_destructible" }, { tag: "!minecraft:diamond_tier_destructible" }] }, { name: "pickaxe_diamond", remarks: { correct: { itemIds: ["minecraft:diamond_pickaxe", "minecraft:netherite_pickaxe"] }, incorrect: { itemIds: ["!minecraft:diamond_pickaxe", "!minecraft:netherite_pickaxe"] } }, target: [{ tag: "minecraft:is_pickaxe_item_destructible" }, { tag: "minecraft:diamond_tier_destructible" }] }, { name: "axe_wood", remarks: { correct: { tags: ["minecraft:is_axe"], itemIds: ["axe"] }, incorrect: { tags: ["!minecraft:is_axe"], itemIds: ["!axe"] } }, target: [{ tag: "minecraft:is_axe_item_destructible" }, { tag: "!minecraft:stone_tier_destructible" }, { tag: "!minecraft:iron_tier_destructible" }, { tag: "!minecraft:diamond_tier_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }] }, { name: "axe_stone", remarks: { correct: { itemIds: ["minecraft:stone_axe", "minecraft:iron_axe", "minecraft:diamond_axe", "minecraft:netherite_axe"] }, incorrect: { itemIds: ["minecraft:wooden_axe", "!minecraft:stone_axe"] } }, target: [{ tag: "minecraft:is_axe_item_destructible" }, { tag: "minecraft:stone_tier_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }] }, { name: "axe_iron", remarks: { correct: { itemIds: ["minecraft:iron_axe", "minecraft:stone_axe", "minecraft:diamond_axe", "minecraft:netherite_axe"] }, incorrect: { itemIds: ["!minecraft:iron_axe", "!minecraft:golden_axe"] } }, target: [{ tag: "minecraft:is_axe_item_destructible" }, { tag: "minecraft:iron_tier_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }] }, { name: "axe_diamond", remarks: { correct: { itemIds: ["minecraft:diamond_axe", "minecraft:netherite_axe"] }, incorrect: { itemIds: ["!minecraft:diamond_axe", "!minecraft:netherite_axe"] } }, target: [{ tag: "minecraft:is_axe_item_destructible" }, { tag: "minecraft:diamond_tier_destructible" }, { tag: "!minecraft:is_pickaxe_item_destructible" }] }, { name: "crops", target: [{ tag: "plant" }, "beetroot", "berries", "berry", "cactus", "carrot", "chorus_flower", "chorus_fruit", "chorus_plant", "cocoa", "crop", "flower", "fungus", "kelp", "melon", "mushroom", "nether_wart", "pickle", "pitcher", "potato", "pumpkin", "sapling", "seed", "sugar_cane", "torchflower", "wheat"] }];

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/blockIds.json
var blockIds_default = { "minecraft:cactus_flower": -1030, "minecraft:tall_dry_grass": -1029, "minecraft:short_dry_grass": -1028, "minecraft:leaf_litter": -1026, "minecraft:firefly_bush": -1025, "minecraft:wildflowers": -1024, "minecraft:bush": -1023, "minecraft:resin_clump": -1022, "minecraft:resin_block": -1021, "minecraft:chiseled_resin_bricks": -1020, "minecraft:closed_eyeblossom": -1019, "minecraft:open_eyeblossom": -1018, "minecraft:resin_brick_wall": -1017, "minecraft:resin_brick_stairs": -1016, "minecraft:resin_brick_slab": -1014, "minecraft:resin_bricks": -1013, "minecraft:creaking_heart": -1012, "minecraft:pale_hanging_moss": -1011, "minecraft:pale_moss_carpet": -1010, "minecraft:pale_moss_block": -1009, "minecraft:mushroom_stem": -1008, "minecraft:pale_oak_leaves": -1007, "minecraft:pale_oak_sapling": -1006, "minecraft:pale_oak_wood": -1005, "minecraft:stripped_pale_oak_wood": -1004, "minecraft:pale_oak_trapdoor": -1002, "minecraft:pale_oak_stairs": -1e3, "minecraft:pale_oak_slab": -998, "minecraft:pale_oak_pressure_plate": -997, "minecraft:pale_oak_planks": -996, "minecraft:pale_oak_log": -995, "minecraft:stripped_pale_oak_log": -994, "minecraft:pale_oak_hanging_sign": -993, "minecraft:pale_oak_fence_gate": -992, "minecraft:pale_oak_fence": -991, "minecraft:pale_oak_door": -990, "minecraft:pale_oak_button": -989, "minecraft:lab_table": -988, "minecraft:element_constructor": -987, "minecraft:material_reducer": -986, "minecraft:underwater_tnt": -985, "minecraft:wet_sponge": -984, "minecraft:red_nether_brick_wall": -983, "minecraft:red_sandstone_wall": -982, "minecraft:prismarine_wall": -981, "minecraft:end_stone_brick_wall": -980, "minecraft:nether_brick_wall": -979, "minecraft:mossy_stone_brick_wall": -978, "minecraft:stone_brick_wall": -977, "minecraft:brick_wall": -976, "minecraft:sandstone_wall": -975, "minecraft:andesite_wall": -974, "minecraft:diorite_wall": -973, "minecraft:granite_wall": -972, "minecraft:mossy_cobblestone_wall": -971, "minecraft:piglin_head": -970, "minecraft:dragon_head": -969, "minecraft:creeper_head": -968, "minecraft:player_head": -967, "minecraft:zombie_head": -966, "minecraft:wither_skeleton_skull": -965, "minecraft:colored_torch_purple": -964, "minecraft:colored_torch_green": -963, "minecraft:coarse_dirt": -962, "minecraft:deprecated_anvil": -961, "minecraft:damaged_anvil": -960, "minecraft:chipped_anvil": -959, "minecraft:smooth_red_sandstone": -958, "minecraft:cut_red_sandstone": -957, "minecraft:chiseled_red_sandstone": -956, "minecraft:smooth_quartz": -955, "minecraft:quartz_pillar": -954, "minecraft:chiseled_quartz_block": -953, "minecraft:deprecated_purpur_block_2": -952, "minecraft:purpur_pillar": -951, "minecraft:deprecated_purpur_block_1": -950, "minecraft:red_sand": -949, "minecraft:prismarine_bricks": -948, "minecraft:dark_prismarine": -947, "minecraft:smooth_sandstone": -946, "minecraft:cut_sandstone": -945, "minecraft:chiseled_sandstone": -944, "minecraft:light_block_15": -943, "minecraft:light_block_14": -942, "minecraft:light_block_13": -941, "minecraft:light_block_12": -940, "minecraft:light_block_11": -939, "minecraft:light_block_10": -938, "minecraft:light_block_9": -937, "minecraft:light_block_8": -936, "minecraft:light_block_7": -935, "minecraft:light_block_6": -934, "minecraft:light_block_5": -933, "minecraft:light_block_4": -932, "minecraft:light_block_3": -931, "minecraft:light_block_2": -930, "minecraft:light_block_1": -929, "minecraft:cut_red_sandstone_double_slab": -928, "minecraft:cut_sandstone_double_slab": -927, "minecraft:normal_stone_double_slab": -926, "minecraft:smooth_quartz_double_slab": -925, "minecraft:polished_granite_double_slab": -924, "minecraft:granite_double_slab": -923, "minecraft:polished_diorite_double_slab": -922, "minecraft:diorite_double_slab": -921, "minecraft:andesite_double_slab": -920, "minecraft:polished_andesite_double_slab": -919, "minecraft:smooth_red_sandstone_double_slab": -918, "minecraft:red_nether_brick_double_slab": -917, "minecraft:smooth_sandstone_double_slab": -916, "minecraft:mossy_cobblestone_double_slab": -915, "minecraft:prismarine_brick_double_slab": -914, "minecraft:dark_prismarine_double_slab": -913, "minecraft:prismarine_double_slab": -912, "minecraft:purpur_double_slab": -911, "minecraft:dead_horn_coral_wall_fan": -910, "minecraft:dead_fire_coral_wall_fan": -909, "minecraft:dead_bubble_coral_wall_fan": -908, "minecraft:fire_coral_wall_fan": -907, "minecraft:dead_brain_coral_wall_fan": -906, "minecraft:dead_tube_coral_wall_fan": -905, "minecraft:brain_coral_wall_fan": -904, "minecraft:petrified_oak_double_slab": -903, "minecraft:petrified_oak_slab": -902, "minecraft:cut_red_sandstone_slab": -901, "minecraft:cut_sandstone_slab": -900, "minecraft:normal_stone_slab": -899, "minecraft:smooth_quartz_slab": -898, "minecraft:polished_granite_slab": -897, "minecraft:granite_slab": -896, "minecraft:polished_diorite_slab": -895, "minecraft:diorite_slab": -894, "minecraft:andesite_slab": -893, "minecraft:polished_andesite_slab": -892, "minecraft:smooth_red_sandstone_slab": -891, "minecraft:red_nether_brick_slab": -890, "minecraft:smooth_sandstone_slab": -889, "minecraft:mossy_cobblestone_slab": -888, "minecraft:prismarine_brick_slab": -887, "minecraft:dark_prismarine_slab": -886, "minecraft:prismarine_slab": -885, "minecraft:purpur_slab": -884, "minecraft:nether_brick_double_slab": -883, "minecraft:quartz_double_slab": -882, "minecraft:stone_brick_double_slab": -881, "minecraft:brick_double_slab": -880, "minecraft:cobblestone_double_slab": -879, "minecraft:sandstone_double_slab": -878, "minecraft:nether_brick_slab": -877, "minecraft:quartz_slab": -876, "minecraft:stone_brick_slab": -875, "minecraft:brick_slab": -874, "minecraft:cobblestone_slab": -873, "minecraft:sandstone_slab": -872, "minecraft:chiseled_stone_bricks": -870, "minecraft:cracked_stone_bricks": -869, "minecraft:mossy_stone_bricks": -868, "minecraft:peony": -867, "minecraft:rose_bush": -866, "minecraft:large_fern": -865, "minecraft:tall_grass": -864, "minecraft:lilac": -863, "minecraft:infested_chiseled_stone_bricks": -862, "minecraft:infested_cracked_stone_bricks": -861, "minecraft:infested_mossy_stone_bricks": -860, "minecraft:infested_stone_bricks": -859, "minecraft:infested_cobblestone": -858, "minecraft:dead_horn_coral_block": -857, "minecraft:dead_fire_coral_block": -856, "minecraft:dead_bubble_coral_block": -855, "minecraft:dead_brain_coral_block": -854, "minecraft:dead_tube_coral_block": -853, "minecraft:horn_coral_block": -852, "minecraft:fire_coral_block": -851, "minecraft:bubble_coral_block": -850, "minecraft:brain_coral_block": -849, "minecraft:fern": -848, "minecraft:dead_horn_coral_fan": -847, "minecraft:dead_fire_coral_fan": -846, "minecraft:dead_bubble_coral_fan": -845, "minecraft:dead_brain_coral_fan": -844, "minecraft:horn_coral_fan": -843, "minecraft:fire_coral_fan": -842, "minecraft:bubble_coral_fan": -841, "minecraft:brain_coral_fan": -840, "minecraft:lily_of_the_valley": -839, "minecraft:cornflower": -838, "minecraft:oxeye_daisy": -837, "minecraft:pink_tulip": -836, "minecraft:white_tulip": -835, "minecraft:orange_tulip": -834, "minecraft:red_tulip": -833, "minecraft:azure_bluet": -832, "minecraft:allium": -831, "minecraft:blue_orchid": -830, "minecraft:dark_oak_sapling": -829, "minecraft:acacia_sapling": -828, "minecraft:jungle_sapling": -827, "minecraft:birch_sapling": -826, "minecraft:spruce_sapling": -825, "minecraft:stripped_dark_oak_wood": -824, "minecraft:stripped_acacia_wood": -823, "minecraft:stripped_jungle_wood": -822, "minecraft:stripped_birch_wood": -821, "minecraft:stripped_spruce_wood": -820, "minecraft:stripped_oak_wood": -819, "minecraft:dark_oak_wood": -818, "minecraft:acacia_wood": -817, "minecraft:jungle_wood": -816, "minecraft:birch_wood": -815, "minecraft:spruce_wood": -814, "minecraft:dark_oak_double_slab": -813, "minecraft:acacia_double_slab": -812, "minecraft:jungle_double_slab": -811, "minecraft:birch_double_slab": -810, "minecraft:spruce_double_slab": -809, "minecraft:dark_oak_slab": -808, "minecraft:acacia_slab": -807, "minecraft:jungle_slab": -806, "minecraft:birch_slab": -805, "minecraft:spruce_slab": -804, "minecraft:dark_oak_leaves": -803, "minecraft:jungle_leaves": -802, "minecraft:birch_leaves": -801, "minecraft:spruce_leaves": -800, "minecraft:waxed_oxidized_copper_trapdoor": -799, "minecraft:waxed_weathered_copper_trapdoor": -798, "minecraft:waxed_exposed_copper_trapdoor": -797, "minecraft:waxed_copper_trapdoor": -796, "minecraft:oxidized_copper_trapdoor": -795, "minecraft:weathered_copper_trapdoor": -794, "minecraft:exposed_copper_trapdoor": -793, "minecraft:copper_trapdoor": -792, "minecraft:waxed_oxidized_copper_door": -791, "minecraft:waxed_weathered_copper_door": -790, "minecraft:waxed_exposed_copper_door": -789, "minecraft:waxed_copper_door": -788, "minecraft:oxidized_copper_door": -787, "minecraft:weathered_copper_door": -786, "minecraft:exposed_copper_door": -785, "minecraft:copper_door": -784, "minecraft:waxed_oxidized_copper_bulb": -783, "minecraft:waxed_weathered_copper_bulb": -782, "minecraft:waxed_exposed_copper_bulb": -781, "minecraft:waxed_copper_bulb": -780, "minecraft:oxidized_copper_bulb": -779, "minecraft:weathered_copper_bulb": -778, "minecraft:exposed_copper_bulb": -777, "minecraft:copper_bulb": -776, "minecraft:waxed_oxidized_copper_grate": -775, "minecraft:waxed_weathered_copper_grate": -774, "minecraft:waxed_exposed_copper_grate": -773, "minecraft:waxed_copper_grate": -772, "minecraft:oxidized_copper_grate": -771, "minecraft:weathered_copper_grate": -770, "minecraft:exposed_copper_grate": -769, "minecraft:copper_grate": -768, "minecraft:waxed_weathered_chiseled_copper": -767, "minecraft:waxed_oxidized_chiseled_copper": -766, "minecraft:waxed_exposed_chiseled_copper": -765, "minecraft:waxed_chiseled_copper": -764, "minecraft:oxidized_chiseled_copper": -763, "minecraft:weathered_chiseled_copper": -762, "minecraft:exposed_chiseled_copper": -761, "minecraft:chiseled_copper": -760, "minecraft:chiseled_tuff_bricks": -759, "minecraft:tuff_brick_wall": -758, "minecraft:tuff_brick_stairs": -757, "minecraft:tuff_brick_double_slab": -756, "minecraft:tuff_brick_slab": -755, "minecraft:tuff_bricks": -754, "minecraft:chiseled_tuff": -753, "minecraft:polished_tuff_wall": -752, "minecraft:polished_tuff_stairs": -751, "minecraft:polished_tuff_double_slab": -750, "minecraft:polished_tuff_slab": -749, "minecraft:polished_tuff": -748, "minecraft:tuff_wall": -747, "minecraft:tuff_stairs": -746, "minecraft:tuff_double_slab": -745, "minecraft:tuff_slab": -744, "minecraft:dark_oak_planks": -743, "minecraft:acacia_planks": -742, "minecraft:jungle_planks": -741, "minecraft:birch_planks": -740, "minecraft:spruce_planks": -739, "minecraft:black_terracotta": -738, "minecraft:red_terracotta": -737, "minecraft:green_terracotta": -736, "minecraft:brown_terracotta": -735, "minecraft:blue_terracotta": -734, "minecraft:purple_terracotta": -733, "minecraft:cyan_terracotta": -732, "minecraft:light_gray_terracotta": -731, "minecraft:gray_terracotta": -730, "minecraft:pink_terracotta": -729, "minecraft:lime_terracotta": -728, "minecraft:yellow_terracotta": -727, "minecraft:light_blue_terracotta": -726, "minecraft:magenta_terracotta": -725, "minecraft:orange_terracotta": -724, "minecraft:black_concrete_powder": -723, "minecraft:red_concrete_powder": -722, "minecraft:green_concrete_powder": -721, "minecraft:brown_concrete_powder": -720, "minecraft:blue_concrete_powder": -719, "minecraft:purple_concrete_powder": -718, "minecraft:cyan_concrete_powder": -717, "minecraft:light_gray_concrete_powder": -716, "minecraft:gray_concrete_powder": -715, "minecraft:pink_concrete_powder": -714, "minecraft:lime_concrete_powder": -713, "minecraft:yellow_concrete_powder": -712, "minecraft:light_blue_concrete_powder": -711, "minecraft:magenta_concrete_powder": -710, "minecraft:orange_concrete_powder": -709, "minecraft:hard_black_stained_glass": -702, "minecraft:hard_red_stained_glass": -701, "minecraft:hard_green_stained_glass": -700, "minecraft:hard_brown_stained_glass": -699, "minecraft:hard_blue_stained_glass": -698, "minecraft:hard_purple_stained_glass": -697, "minecraft:hard_cyan_stained_glass": -696, "minecraft:hard_light_gray_stained_glass": -695, "minecraft:hard_gray_stained_glass": -694, "minecraft:hard_pink_stained_glass": -693, "minecraft:hard_lime_stained_glass": -692, "minecraft:hard_yellow_stained_glass": -691, "minecraft:hard_light_blue_stained_glass": -690, "minecraft:hard_magenta_stained_glass": -689, "minecraft:hard_orange_stained_glass": -688, "minecraft:black_stained_glass": -687, "minecraft:red_stained_glass": -686, "minecraft:green_stained_glass": -685, "minecraft:brown_stained_glass": -684, "minecraft:blue_stained_glass": -683, "minecraft:purple_stained_glass": -682, "minecraft:cyan_stained_glass": -681, "minecraft:light_gray_stained_glass": -680, "minecraft:gray_stained_glass": -679, "minecraft:pink_stained_glass": -678, "minecraft:lime_stained_glass": -677, "minecraft:yellow_stained_glass": -676, "minecraft:light_blue_stained_glass": -675, "minecraft:magenta_stained_glass": -674, "minecraft:orange_stained_glass": -673, "minecraft:hard_black_stained_glass_pane": -672, "minecraft:hard_red_stained_glass_pane": -671, "minecraft:hard_green_stained_glass_pane": -670, "minecraft:hard_brown_stained_glass_pane": -669, "minecraft:hard_blue_stained_glass_pane": -668, "minecraft:hard_purple_stained_glass_pane": -667, "minecraft:hard_cyan_stained_glass_pane": -666, "minecraft:hard_light_gray_stained_glass_pane": -665, "minecraft:hard_gray_stained_glass_pane": -664, "minecraft:hard_pink_stained_glass_pane": -663, "minecraft:hard_lime_stained_glass_pane": -662, "minecraft:hard_yellow_stained_glass_pane": -661, "minecraft:hard_light_blue_stained_glass_pane": -660, "minecraft:hard_magenta_stained_glass_pane": -659, "minecraft:hard_orange_stained_glass_pane": -658, "minecraft:black_stained_glass_pane": -657, "minecraft:red_stained_glass_pane": -656, "minecraft:green_stained_glass_pane": -655, "minecraft:brown_stained_glass_pane": -654, "minecraft:blue_stained_glass_pane": -653, "minecraft:purple_stained_glass_pane": -652, "minecraft:cyan_stained_glass_pane": -651, "minecraft:light_gray_stained_glass_pane": -650, "minecraft:gray_stained_glass_pane": -649, "minecraft:pink_stained_glass_pane": -648, "minecraft:lime_stained_glass_pane": -647, "minecraft:yellow_stained_glass_pane": -646, "minecraft:light_blue_stained_glass_pane": -645, "minecraft:magenta_stained_glass_pane": -644, "minecraft:orange_stained_glass_pane": -643, "minecraft:black_concrete": -642, "minecraft:red_concrete": -641, "minecraft:green_concrete": -640, "minecraft:brown_concrete": -639, "minecraft:blue_concrete": -638, "minecraft:purple_concrete": -637, "minecraft:cyan_concrete": -636, "minecraft:light_gray_concrete": -635, "minecraft:gray_concrete": -634, "minecraft:pink_concrete": -633, "minecraft:lime_concrete": -632, "minecraft:yellow_concrete": -631, "minecraft:light_blue_concrete": -630, "minecraft:magenta_concrete": -629, "minecraft:orange_concrete": -628, "minecraft:black_shulker_box": -627, "minecraft:red_shulker_box": -626, "minecraft:green_shulker_box": -625, "minecraft:brown_shulker_box": -624, "minecraft:blue_shulker_box": -623, "minecraft:purple_shulker_box": -622, "minecraft:cyan_shulker_box": -621, "minecraft:light_gray_shulker_box": -620, "minecraft:gray_shulker_box": -619, "minecraft:pink_shulker_box": -618, "minecraft:lime_shulker_box": -617, "minecraft:yellow_shulker_box": -616, "minecraft:light_blue_shulker_box": -615, "minecraft:magenta_shulker_box": -614, "minecraft:orange_shulker_box": -613, "minecraft:pitcher_plant": -612, "minecraft:black_carpet": -611, "minecraft:red_carpet": -610, "minecraft:green_carpet": -609, "minecraft:brown_carpet": -608, "minecraft:blue_carpet": -607, "minecraft:purple_carpet": -606, "minecraft:cyan_carpet": -605, "minecraft:light_gray_carpet": -604, "minecraft:gray_carpet": -603, "minecraft:pink_carpet": -602, "minecraft:lime_carpet": -601, "minecraft:yellow_carpet": -600, "minecraft:light_blue_carpet": -599, "minecraft:magenta_carpet": -598, "minecraft:orange_carpet": -597, "minecraft:sniffer_egg": -596, "minecraft:polished_andesite": -595, "minecraft:andesite": -594, "minecraft:polished_diorite": -593, "minecraft:diorite": -592, "minecraft:polished_granite": -591, "minecraft:granite": -590, "minecraft:dead_horn_coral": -589, "minecraft:dead_fire_coral": -588, "minecraft:dead_bubble_coral": -587, "minecraft:dead_brain_coral": -586, "minecraft:dead_tube_coral": -585, "minecraft:horn_coral": -584, "minecraft:fire_coral": -583, "minecraft:bubble_coral": -582, "minecraft:brain_coral": -581, "minecraft:calibrated_sculk_sensor": -580, "minecraft:spruce_fence": -579, "minecraft:jungle_fence": -578, "minecraft:dark_oak_fence": -577, "minecraft:birch_fence": -576, "minecraft:acacia_fence": -575, "minecraft:pitcher_crop": -574, "minecraft:suspicious_gravel": -573, "minecraft:dark_oak_log": -572, "minecraft:jungle_log": -571, "minecraft:birch_log": -570, "minecraft:spruce_log": -569, "minecraft:torchflower": -568, "minecraft:torchflower_crop": -567, "minecraft:pink_wool": -566, "minecraft:magenta_wool": -565, "minecraft:purple_wool": -564, "minecraft:blue_wool": -563, "minecraft:light_blue_wool": -562, "minecraft:cyan_wool": -561, "minecraft:green_wool": -560, "minecraft:lime_wool": -559, "minecraft:yellow_wool": -558, "minecraft:orange_wool": -557, "minecraft:red_wool": -556, "minecraft:brown_wool": -555, "minecraft:black_wool": -554, "minecraft:gray_wool": -553, "minecraft:light_gray_wool": -552, "minecraft:decorated_pot": -551, "minecraft:pink_petals": -549, "minecraft:cherry_leaves": -548, "minecraft:cherry_sapling": -547, "minecraft:cherry_wood": -546, "minecraft:stripped_cherry_wood": -545, "minecraft:cherry_wall_sign": -544, "minecraft:cherry_trapdoor": -543, "minecraft:cherry_standing_sign": -542, "minecraft:cherry_stairs": -541, "minecraft:cherry_double_slab": -540, "minecraft:cherry_slab": -539, "minecraft:cherry_pressure_plate": -538, "minecraft:cherry_planks": -537, "minecraft:cherry_log": -536, "minecraft:stripped_cherry_log": -535, "minecraft:cherry_hanging_sign": -534, "minecraft:cherry_fence_gate": -533, "minecraft:cherry_fence": -532, "minecraft:cherry_door": -531, "minecraft:cherry_button": -530, "minecraft:suspicious_sand": -529, "minecraft:stripped_bamboo_block": -528, "minecraft:bamboo_block": -527, "minecraft:chiseled_bookshelf": -526, "minecraft:bamboo_mosaic_double_slab": -525, "minecraft:bamboo_mosaic_slab": -524, "minecraft:bamboo_mosaic_stairs": -523, "minecraft:bamboo_hanging_sign": -522, "minecraft:bamboo_double_slab": -521, "minecraft:bamboo_trapdoor": -520, "minecraft:bamboo_wall_sign": -519, "minecraft:bamboo_standing_sign": -518, "minecraft:bamboo_door": -517, "minecraft:bamboo_fence_gate": -516, "minecraft:bamboo_fence": -515, "minecraft:bamboo_pressure_plate": -514, "minecraft:bamboo_slab": -513, "minecraft:bamboo_stairs": -512, "minecraft:bamboo_button": -511, "minecraft:bamboo_planks": -510, "minecraft:bamboo_mosaic": -509, "minecraft:mangrove_hanging_sign": -508, "minecraft:warped_hanging_sign": -507, "minecraft:crimson_hanging_sign": -506, "minecraft:dark_oak_hanging_sign": -505, "minecraft:acacia_hanging_sign": -504, "minecraft:jungle_hanging_sign": -503, "minecraft:birch_hanging_sign": -502, "minecraft:spruce_hanging_sign": -501, "minecraft:oak_hanging_sign": -500, "minecraft:mangrove_double_slab": -499, "minecraft:stripped_mangrove_wood": -498, "minecraft:mangrove_wood": -497, "minecraft:mangrove_trapdoor": -496, "minecraft:mangrove_wall_sign": -495, "minecraft:mangrove_standing_sign": -494, "minecraft:mangrove_door": -493, "minecraft:mangrove_fence_gate": -492, "minecraft:mangrove_fence": -491, "minecraft:mangrove_pressure_plate": -490, "minecraft:mangrove_slab": -489, "minecraft:mangrove_stairs": -488, "minecraft:mangrove_button": -487, "minecraft:mangrove_planks": -486, "minecraft:stripped_mangrove_log": -485, "minecraft:mangrove_log": -484, "minecraft:muddy_mangrove_roots": -483, "minecraft:mangrove_roots": -482, "minecraft:mud_brick_wall": -481, "minecraft:mud_brick_stairs": -480, "minecraft:mud_brick_double_slab": -479, "minecraft:mud_brick_slab": -478, "minecraft:packed_mud": -477, "minecraft:mud_bricks": -475, "minecraft:mangrove_propagule": -474, "minecraft:mud": -473, "minecraft:mangrove_leaves": -472, "minecraft:ochre_froglight": -471, "minecraft:verdant_froglight": -470, "minecraft:pearlescent_froglight": -469, "minecraft:frog_spawn": -468, "minecraft:reinforced_deepslate": -466, "minecraft:client_request_placeholder_block": -465, "minecraft:sculk_shrieker": -461, "minecraft:sculk_catalyst": -460, "minecraft:sculk_vein": -459, "minecraft:sculk": -458, "minecraft:infested_deepslate": -454, "minecraft:raw_gold_block": -453, "minecraft:raw_copper_block": -452, "minecraft:raw_iron_block": -451, "minecraft:waxed_oxidized_double_cut_copper_slab": -450, "minecraft:waxed_oxidized_cut_copper_slab": -449, "minecraft:waxed_oxidized_cut_copper_stairs": -448, "minecraft:waxed_oxidized_cut_copper": -447, "minecraft:waxed_oxidized_copper": -446, "minecraft:black_candle_cake": -445, "minecraft:red_candle_cake": -444, "minecraft:green_candle_cake": -443, "minecraft:brown_candle_cake": -442, "minecraft:blue_candle_cake": -441, "minecraft:purple_candle_cake": -440, "minecraft:cyan_candle_cake": -439, "minecraft:light_gray_candle_cake": -438, "minecraft:gray_candle_cake": -437, "minecraft:pink_candle_cake": -436, "minecraft:lime_candle_cake": -435, "minecraft:yellow_candle_cake": -434, "minecraft:light_blue_candle_cake": -433, "minecraft:magenta_candle_cake": -432, "minecraft:orange_candle_cake": -431, "minecraft:white_candle_cake": -430, "minecraft:candle_cake": -429, "minecraft:black_candle": -428, "minecraft:red_candle": -427, "minecraft:green_candle": -426, "minecraft:brown_candle": -425, "minecraft:blue_candle": -424, "minecraft:purple_candle": -423, "minecraft:cyan_candle": -422, "minecraft:light_gray_candle": -421, "minecraft:gray_candle": -420, "minecraft:pink_candle": -419, "minecraft:lime_candle": -418, "minecraft:yellow_candle": -417, "minecraft:light_blue_candle": -416, "minecraft:magenta_candle": -415, "minecraft:orange_candle": -414, "minecraft:white_candle": -413, "minecraft:candle": -412, "minecraft:glow_lichen": -411, "minecraft:cracked_deepslate_bricks": -410, "minecraft:cracked_deepslate_tiles": -409, "minecraft:deepslate_copper_ore": -408, "minecraft:deepslate_emerald_ore": -407, "minecraft:deepslate_coal_ore": -406, "minecraft:deepslate_diamond_ore": -405, "minecraft:lit_deepslate_redstone_ore": -404, "minecraft:deepslate_redstone_ore": -403, "minecraft:deepslate_gold_ore": -402, "minecraft:deepslate_iron_ore": -401, "minecraft:deepslate_lapis_ore": -400, "minecraft:deepslate_brick_double_slab": -399, "minecraft:deepslate_tile_double_slab": -398, "minecraft:polished_deepslate_double_slab": -397, "minecraft:cobbled_deepslate_double_slab": -396, "minecraft:chiseled_deepslate": -395, "minecraft:deepslate_brick_wall": -394, "minecraft:deepslate_brick_stairs": -393, "minecraft:deepslate_brick_slab": -392, "minecraft:deepslate_bricks": -391, "minecraft:deepslate_tile_wall": -390, "minecraft:deepslate_tile_stairs": -389, "minecraft:deepslate_tile_slab": -388, "minecraft:deepslate_tiles": -387, "minecraft:polished_deepslate_wall": -386, "minecraft:polished_deepslate_stairs": -385, "minecraft:polished_deepslate_slab": -384, "minecraft:polished_deepslate": -383, "minecraft:cobbled_deepslate_wall": -382, "minecraft:cobbled_deepslate_stairs": -381, "minecraft:cobbled_deepslate_slab": -380, "minecraft:cobbled_deepslate": -379, "minecraft:deepslate": -378, "minecraft:smooth_basalt": -377, "minecraft:cave_vines_head_with_berries": -376, "minecraft:cave_vines_body_with_berries": -375, "minecraft:waxed_weathered_double_cut_copper_slab": -374, "minecraft:waxed_exposed_double_cut_copper_slab": -373, "minecraft:waxed_double_cut_copper_slab": -372, "minecraft:oxidized_double_cut_copper_slab": -371, "minecraft:weathered_double_cut_copper_slab": -370, "minecraft:exposed_double_cut_copper_slab": -369, "minecraft:double_cut_copper_slab": -368, "minecraft:waxed_weathered_cut_copper_slab": -367, "minecraft:waxed_exposed_cut_copper_slab": -366, "minecraft:waxed_cut_copper_slab": -365, "minecraft:oxidized_cut_copper_slab": -364, "minecraft:weathered_cut_copper_slab": -363, "minecraft:exposed_cut_copper_slab": -362, "minecraft:cut_copper_slab": -361, "minecraft:waxed_weathered_cut_copper_stairs": -360, "minecraft:waxed_exposed_cut_copper_stairs": -359, "minecraft:waxed_cut_copper_stairs": -358, "minecraft:oxidized_cut_copper_stairs": -357, "minecraft:weathered_cut_copper_stairs": -356, "minecraft:exposed_cut_copper_stairs": -355, "minecraft:cut_copper_stairs": -354, "minecraft:waxed_weathered_cut_copper": -353, "minecraft:waxed_exposed_cut_copper": -352, "minecraft:waxed_cut_copper": -351, "minecraft:oxidized_cut_copper": -350, "minecraft:weathered_cut_copper": -349, "minecraft:exposed_cut_copper": -348, "minecraft:cut_copper": -347, "minecraft:waxed_weathered_copper": -346, "minecraft:waxed_exposed_copper": -345, "minecraft:waxed_copper": -344, "minecraft:oxidized_copper": -343, "minecraft:weathered_copper": -342, "minecraft:exposed_copper": -341, "minecraft:copper_block": -340, "minecraft:glow_frame_block": -339, "minecraft:flowering_azalea": -338, "minecraft:azalea": -337, "minecraft:small_dripleaf_block": -336, "minecraft:moss_carpet": -335, "minecraft:tinted_glass": -334, "minecraft:tuff": -333, "minecraft:small_amethyst_bud": -332, "minecraft:medium_amethyst_bud": -331, "minecraft:large_amethyst_bud": -330, "minecraft:amethyst_cluster": -329, "minecraft:budding_amethyst": -328, "minecraft:amethyst_block": -327, "minecraft:calcite": -326, "minecraft:azalea_leaves_flowered": -325, "minecraft:azalea_leaves": -324, "minecraft:big_dripleaf": -323, "minecraft:cave_vines": -322, "minecraft:spore_blossom": -321, "minecraft:moss_block": -320, "minecraft:hanging_roots": -319, "minecraft:dirt_with_roots": -318, "minecraft:dripstone_block": -317, "minecraft:heavy_core": -316, "minecraft:trial_spawner": -315, "minecraft:vault": -314, "minecraft:crafter": -313, "minecraft:lightning_rod": -312, "minecraft:copper_ore": -311, "minecraft:pointed_dripstone": -308, "minecraft:sculk_sensor": -307, "minecraft:powder_snow": -306, "minecraft:unknown": -305, "minecraft:quartz_bricks": -304, "minecraft:cracked_nether_bricks": -303, "minecraft:chiseled_nether_bricks": -302, "minecraft:stripped_warped_hyphae": -301, "minecraft:stripped_crimson_hyphae": -300, "minecraft:crimson_hyphae": -299, "minecraft:warped_hyphae": -298, "minecraft:polished_blackstone_wall": -297, "minecraft:polished_blackstone_button": -296, "minecraft:polished_blackstone_pressure_plate": -295, "minecraft:polished_blackstone_double_slab": -294, "minecraft:polished_blackstone_slab": -293, "minecraft:polished_blackstone_stairs": -292, "minecraft:polished_blackstone": -291, "minecraft:crying_obsidian": -289, "minecraft:nether_gold_ore": -288, "minecraft:twisting_vines": -287, "minecraft:polished_blackstone_brick_double_slab": -285, "minecraft:polished_blackstone_brick_slab": -284, "minecraft:blackstone_double_slab": -283, "minecraft:blackstone_slab": -282, "minecraft:gilded_blackstone": -281, "minecraft:cracked_polished_blackstone_bricks": -280, "minecraft:chiseled_polished_blackstone": -279, "minecraft:polished_blackstone_brick_wall": -278, "minecraft:blackstone_wall": -277, "minecraft:blackstone_stairs": -276, "minecraft:polished_blackstone_brick_stairs": -275, "minecraft:polished_blackstone_bricks": -274, "minecraft:blackstone": -273, "minecraft:respawn_anchor": -272, "minecraft:ancient_debris": -271, "minecraft:netherite_block": -270, "minecraft:soul_lantern": -269, "minecraft:soul_torch": -268, "minecraft:warped_double_slab": -267, "minecraft:crimson_double_slab": -266, "minecraft:warped_slab": -265, "minecraft:crimson_slab": -264, "minecraft:warped_pressure_plate": -263, "minecraft:crimson_pressure_plate": -262, "minecraft:warped_button": -261, "minecraft:crimson_button": -260, "minecraft:warped_fence_gate": -259, "minecraft:crimson_fence_gate": -258, "minecraft:warped_fence": -257, "minecraft:crimson_fence": -256, "minecraft:warped_stairs": -255, "minecraft:crimson_stairs": -254, "minecraft:warped_wall_sign": -253, "minecraft:crimson_wall_sign": -252, "minecraft:warped_standing_sign": -251, "minecraft:crimson_standing_sign": -250, "minecraft:warped_trapdoor": -247, "minecraft:crimson_trapdoor": -246, "minecraft:warped_planks": -243, "minecraft:crimson_planks": -242, "minecraft:stripped_warped_stem": -241, "minecraft:stripped_crimson_stem": -240, "minecraft:target": -239, "minecraft:soul_soil": -236, "minecraft:polished_basalt": -235, "minecraft:basalt": -234, "minecraft:warped_nylium": -233, "minecraft:crimson_nylium": -232, "minecraft:weeping_vines": -231, "minecraft:shroomlight": -230, "minecraft:warped_fungus": -229, "minecraft:crimson_fungus": -228, "minecraft:warped_wart_block": -227, "minecraft:warped_stem": -226, "minecraft:crimson_stem": -225, "minecraft:warped_roots": -224, "minecraft:crimson_roots": -223, "minecraft:lodestone": -222, "minecraft:honeycomb_block": -221, "minecraft:honey_block": -220, "minecraft:beehive": -219, "minecraft:bee_nest": -218, "minecraft:sticky_piston_arm_collision": -217, "minecraft:wither_rose": -216, "minecraft:light_block_0": -215, "minecraft:lit_blast_furnace": -214, "minecraft:composter": -213, "minecraft:oak_wood": -212, "minecraft:jigsaw": -211, "minecraft:lantern": -208, "minecraft:sweet_berry_bush": -207, "minecraft:bell": -206, "minecraft:loom": -204, "minecraft:barrel": -203, "minecraft:smithing_table": -202, "minecraft:fletching_table": -201, "minecraft:cartography_table": -200, "minecraft:lit_smoker": -199, "minecraft:smoker": -198, "minecraft:stonecutter_block": -197, "minecraft:blast_furnace": -196, "minecraft:grindstone": -195, "minecraft:lectern": -194, "minecraft:darkoak_wall_sign": -193, "minecraft:darkoak_standing_sign": -192, "minecraft:acacia_wall_sign": -191, "minecraft:acacia_standing_sign": -190, "minecraft:jungle_wall_sign": -189, "minecraft:jungle_standing_sign": -188, "minecraft:birch_wall_sign": -187, "minecraft:birch_standing_sign": -186, "minecraft:smooth_quartz_stairs": -185, "minecraft:red_nether_brick_stairs": -184, "minecraft:smooth_stone": -183, "minecraft:spruce_wall_sign": -182, "minecraft:spruce_standing_sign": -181, "minecraft:normal_stone_stairs": -180, "minecraft:mossy_cobblestone_stairs": -179, "minecraft:end_brick_stairs": -178, "minecraft:smooth_sandstone_stairs": -177, "minecraft:smooth_red_sandstone_stairs": -176, "minecraft:mossy_stone_brick_stairs": -175, "minecraft:polished_andesite_stairs": -174, "minecraft:polished_diorite_stairs": -173, "minecraft:polished_granite_stairs": -172, "minecraft:andesite_stairs": -171, "minecraft:diorite_stairs": -170, "minecraft:granite_stairs": -169, "minecraft:mossy_stone_brick_double_slab": -168, "minecraft:end_stone_brick_double_slab": -167, "minecraft:mossy_stone_brick_slab": -166, "minecraft:scaffolding": -165, "minecraft:bamboo_sapling": -164, "minecraft:bamboo": -163, "minecraft:end_stone_brick_slab": -162, "minecraft:barrier": -161, "minecraft:bubble_column": -160, "minecraft:turtle_egg": -159, "minecraft:conduit": -157, "minecraft:sea_pickle": -156, "minecraft:carved_pumpkin": -155, "minecraft:spruce_pressure_plate": -154, "minecraft:jungle_pressure_plate": -153, "minecraft:dark_oak_pressure_plate": -152, "minecraft:birch_pressure_plate": -151, "minecraft:acacia_pressure_plate": -150, "minecraft:spruce_trapdoor": -149, "minecraft:jungle_trapdoor": -148, "minecraft:dark_oak_trapdoor": -147, "minecraft:birch_trapdoor": -146, "minecraft:acacia_trapdoor": -145, "minecraft:spruce_button": -144, "minecraft:jungle_button": -143, "minecraft:dark_oak_button": -142, "minecraft:birch_button": -141, "minecraft:acacia_button": -140, "minecraft:dried_kelp_block": -139, "minecraft:kelp_plant": -138, "minecraft:horn_coral_wall_fan": -137, "minecraft:bubble_coral_wall_fan": -136, "minecraft:tube_coral_wall_fan": -135, "minecraft:dead_tube_coral_fan": -134, "minecraft:tube_coral_fan": -133, "minecraft:tube_coral_block": -132, "minecraft:tube_coral": -131, "minecraft:seagrass": -130, "minecraft:element_118": -129, "minecraft:element_117": -128, "minecraft:element_116": -127, "minecraft:element_115": -126, "minecraft:element_114": -125, "minecraft:element_113": -124, "minecraft:element_112": -123, "minecraft:element_111": -122, "minecraft:element_110": -121, "minecraft:element_109": -120, "minecraft:element_108": -119, "minecraft:element_107": -118, "minecraft:element_106": -117, "minecraft:element_105": -116, "minecraft:element_104": -115, "minecraft:element_103": -114, "minecraft:element_102": -113, "minecraft:element_101": -112, "minecraft:element_100": -111, "minecraft:element_99": -110, "minecraft:element_98": -109, "minecraft:element_97": -108, "minecraft:element_96": -107, "minecraft:element_95": -106, "minecraft:element_94": -105, "minecraft:element_93": -104, "minecraft:element_92": -103, "minecraft:element_91": -102, "minecraft:element_90": -101, "minecraft:element_89": -100, "minecraft:element_88": -99, "minecraft:element_87": -98, "minecraft:element_86": -97, "minecraft:element_85": -96, "minecraft:element_84": -95, "minecraft:element_83": -94, "minecraft:element_82": -93, "minecraft:element_81": -92, "minecraft:element_80": -91, "minecraft:element_79": -90, "minecraft:element_78": -89, "minecraft:element_77": -88, "minecraft:element_76": -87, "minecraft:element_75": -86, "minecraft:element_74": -85, "minecraft:element_73": -84, "minecraft:element_72": -83, "minecraft:element_71": -82, "minecraft:element_70": -81, "minecraft:element_69": -80, "minecraft:element_68": -79, "minecraft:element_67": -78, "minecraft:element_66": -77, "minecraft:element_65": -76, "minecraft:element_64": -75, "minecraft:element_63": -74, "minecraft:element_62": -73, "minecraft:element_61": -72, "minecraft:element_60": -71, "minecraft:element_59": -70, "minecraft:element_58": -69, "minecraft:element_57": -68, "minecraft:element_56": -67, "minecraft:element_55": -66, "minecraft:element_54": -65, "minecraft:element_53": -64, "minecraft:element_52": -63, "minecraft:element_51": -62, "minecraft:element_50": -61, "minecraft:element_49": -60, "minecraft:element_48": -59, "minecraft:element_47": -58, "minecraft:element_46": -57, "minecraft:element_45": -56, "minecraft:element_44": -55, "minecraft:element_43": -54, "minecraft:element_42": -53, "minecraft:element_41": -52, "minecraft:element_40": -51, "minecraft:element_39": -50, "minecraft:element_38": -49, "minecraft:element_37": -48, "minecraft:element_36": -47, "minecraft:element_35": -46, "minecraft:element_34": -45, "minecraft:element_33": -44, "minecraft:element_32": -43, "minecraft:element_31": -42, "minecraft:element_30": -41, "minecraft:element_29": -40, "minecraft:element_28": -39, "minecraft:element_27": -38, "minecraft:element_26": -37, "minecraft:element_25": -36, "minecraft:element_24": -35, "minecraft:element_23": -34, "minecraft:element_22": -33, "minecraft:element_21": -32, "minecraft:element_20": -31, "minecraft:element_19": -30, "minecraft:element_18": -29, "minecraft:element_17": -28, "minecraft:element_16": -27, "minecraft:element_15": -26, "minecraft:element_14": -25, "minecraft:element_13": -24, "minecraft:element_12": -23, "minecraft:element_11": -22, "minecraft:element_10": -21, "minecraft:element_9": -20, "minecraft:element_8": -19, "minecraft:element_7": -18, "minecraft:element_6": -17, "minecraft:element_5": -16, "minecraft:element_4": -15, "minecraft:element_3": -14, "minecraft:element_2": -13, "minecraft:element_1": -12, "minecraft:blue_ice": -11, "minecraft:stripped_oak_log": -10, "minecraft:stripped_dark_oak_log": -9, "minecraft:stripped_acacia_log": -8, "minecraft:stripped_jungle_log": -7, "minecraft:stripped_birch_log": -6, "minecraft:stripped_spruce_log": -5, "minecraft:prismarine_bricks_stairs": -4, "minecraft:dark_prismarine_stairs": -3, "minecraft:prismarine_stairs": -2, "minecraft:air": 0, "minecraft:stone": 1, "minecraft:grass_block": 2, "minecraft:dirt": 3, "minecraft:cobblestone": 4, "minecraft:oak_planks": 5, "minecraft:oak_sapling": 6, "minecraft:bedrock": 7, "minecraft:flowing_water": 8, "minecraft:water": 9, "minecraft:flowing_lava": 10, "minecraft:lava": 11, "minecraft:sand": 12, "minecraft:gravel": 13, "minecraft:gold_ore": 14, "minecraft:iron_ore": 15, "minecraft:coal_ore": 16, "minecraft:oak_log": 17, "minecraft:oak_leaves": 18, "minecraft:sponge": 19, "minecraft:glass": 20, "minecraft:lapis_ore": 21, "minecraft:lapis_block": 22, "minecraft:dispenser": 23, "minecraft:sandstone": 24, "minecraft:noteblock": 25, "minecraft:golden_rail": 27, "minecraft:detector_rail": 28, "minecraft:sticky_piston": 29, "minecraft:web": 30, "minecraft:short_grass": 31, "minecraft:deadbush": 32, "minecraft:piston": 33, "minecraft:piston_arm_collision": 34, "minecraft:white_wool": 35, "minecraft:element_0": 36, "minecraft:dandelion": 37, "minecraft:poppy": 38, "minecraft:brown_mushroom": 39, "minecraft:red_mushroom": 40, "minecraft:gold_block": 41, "minecraft:iron_block": 42, "minecraft:smooth_stone_double_slab": 43, "minecraft:smooth_stone_slab": 44, "minecraft:brick_block": 45, "minecraft:tnt": 46, "minecraft:bookshelf": 47, "minecraft:mossy_cobblestone": 48, "minecraft:obsidian": 49, "minecraft:torch": 50, "minecraft:fire": 51, "minecraft:mob_spawner": 52, "minecraft:oak_stairs": 53, "minecraft:chest": 54, "minecraft:redstone_wire": 55, "minecraft:diamond_ore": 56, "minecraft:diamond_block": 57, "minecraft:crafting_table": 58, "minecraft:wheat_plant": 59, "minecraft:farmland": 60, "minecraft:furnace": 61, "minecraft:lit_furnace": 62, "minecraft:standing_sign": 63, "minecraft:ladder": 65, "minecraft:rail": 66, "minecraft:stone_stairs": 67, "minecraft:wall_sign": 68, "minecraft:lever": 69, "minecraft:stone_pressure_plate": 70, "minecraft:wooden_pressure_plate": 72, "minecraft:redstone_ore": 73, "minecraft:lit_redstone_ore": 74, "minecraft:unlit_redstone_torch": 75, "minecraft:redstone_torch": 76, "minecraft:stone_button": 77, "minecraft:snow_layer": 78, "minecraft:ice": 79, "minecraft:snow": 80, "minecraft:cactus": 81, "minecraft:clay": 82, "minecraft:reeds": 83, "minecraft:jukebox": 84, "minecraft:oak_fence": 85, "minecraft:pumpkin": 86, "minecraft:netherrack": 87, "minecraft:soul_sand": 88, "minecraft:glowstone": 89, "minecraft:portal": 90, "minecraft:lit_pumpkin": 91, "minecraft:cake_block": 92, "minecraft:unpowered_repeater": 93, "minecraft:powered_repeater": 94, "minecraft:invisible_bedrock": 95, "minecraft:trapdoor": 96, "minecraft:infested_stone": 97, "minecraft:stone_bricks": 98, "minecraft:brown_mushroom_block": 99, "minecraft:red_mushroom_block": 100, "minecraft:iron_bars": 101, "minecraft:glass_pane": 102, "minecraft:melon_block": 103, "minecraft:pumpkin_stem": 104, "minecraft:melon_stem": 105, "minecraft:vine": 106, "minecraft:fence_gate": 107, "minecraft:brick_stairs": 108, "minecraft:stone_brick_stairs": 109, "minecraft:mycelium": 110, "minecraft:waterlily": 111, "minecraft:nether_brick": 112, "minecraft:nether_brick_fence": 113, "minecraft:nether_brick_stairs": 114, "minecraft:nether_wart_plant": 115, "minecraft:enchanting_table": 116, "minecraft:end_portal": 119, "minecraft:end_portal_frame": 120, "minecraft:end_stone": 121, "minecraft:dragon_egg": 122, "minecraft:redstone_lamp": 123, "minecraft:lit_redstone_lamp": 124, "minecraft:dropper": 125, "minecraft:activator_rail": 126, "minecraft:cocoa": 127, "minecraft:sandstone_stairs": 128, "minecraft:emerald_ore": 129, "minecraft:ender_chest": 130, "minecraft:tripwire_hook": 131, "minecraft:tripwire": 132, "minecraft:emerald_block": 133, "minecraft:spruce_stairs": 134, "minecraft:birch_stairs": 135, "minecraft:jungle_stairs": 136, "minecraft:command_block": 137, "minecraft:beacon": 138, "minecraft:cobblestone_wall": 139, "minecraft:carrots": 141, "minecraft:potatoes": 142, "minecraft:wooden_button": 143, "minecraft:skeleton_skull": 144, "minecraft:anvil": 145, "minecraft:trapped_chest": 146, "minecraft:light_weighted_pressure_plate": 147, "minecraft:heavy_weighted_pressure_plate": 148, "minecraft:unpowered_comparator": 149, "minecraft:powered_comparator": 150, "minecraft:daylight_detector": 151, "minecraft:redstone_block": 152, "minecraft:quartz_ore": 153, "minecraft:quartz_block": 155, "minecraft:quartz_stairs": 156, "minecraft:double_oak_slab": 157, "minecraft:oak_slab": 158, "minecraft:stained_hardened_clay": 159, "minecraft:stained_glass_pane": 160, "minecraft:acacia_leaves": 161, "minecraft:acacia_log": 162, "minecraft:acacia_stairs": 163, "minecraft:dark_oak_stairs": 164, "minecraft:slime": 165, "minecraft:iron_trapdoor": 167, "minecraft:prismarine": 168, "minecraft:sea_lantern": 169, "minecraft:hay_block": 170, "minecraft:white_carpet": 171, "minecraft:hardened_clay": 172, "minecraft:coal_block": 173, "minecraft:packed_ice": 174, "minecraft:sunflower": 175, "minecraft:standing_banner": 176, "minecraft:wall_banner": 177, "minecraft:daylight_detector_inverted": 178, "minecraft:red_sandstone": 179, "minecraft:red_sandstone_stairs": 180, "minecraft:red_sandstone_double_slab": 181, "minecraft:red_sandstone_slab": 182, "minecraft:spruce_fence_gate": 183, "minecraft:birch_fence_gate": 184, "minecraft:jungle_fence_gate": 185, "minecraft:dark_oak_fence_gate": 186, "minecraft:acacia_fence_gate": 187, "minecraft:repeating_command_block": 188, "minecraft:chain_command_block": 189, "minecraft:hard_glass_pane": 190, "minecraft:hard_white_stained_glass_pane": 191, "minecraft:chemical_heat": 192, "minecraft:spruce_door": 193, "minecraft:birch_door": 194, "minecraft:jungle_door": 195, "minecraft:acacia_door": 196, "minecraft:dark_oak_door": 197, "minecraft:grass_path": 198, "minecraft:frame_block": 199, "minecraft:chorus_flower": 200, "minecraft:purpur_block": 201, "minecraft:colored_torch_red": 202, "minecraft:purpur_stairs": 203, "minecraft:colored_torch_blue": 204, "minecraft:undyed_shulker_box": 205, "minecraft:end_bricks": 206, "minecraft:frosted_ice": 207, "minecraft:end_rod": 208, "minecraft:end_gateway": 209, "minecraft:allow": 210, "minecraft:deny": 211, "minecraft:border_block": 212, "minecraft:magma": 213, "minecraft:nether_wart_block": 214, "minecraft:red_nether_brick": 215, "minecraft:bone_block": 216, "minecraft:structure_void": 217, "minecraft:white_shulker_box": 218, "minecraft:purple_glazed_terracotta": 219, "minecraft:white_glazed_terracotta": 220, "minecraft:orange_glazed_terracotta": 221, "minecraft:magenta_glazed_terracotta": 222, "minecraft:light_blue_glazed_terracotta": 223, "minecraft:yellow_glazed_terracotta": 224, "minecraft:lime_glazed_terracotta": 225, "minecraft:pink_glazed_terracotta": 226, "minecraft:gray_glazed_terracotta": 227, "minecraft:silver_glazed_terracotta": 228, "minecraft:cyan_glazed_terracotta": 229, "minecraft:blue_glazed_terracotta": 231, "minecraft:brown_glazed_terracotta": 232, "minecraft:green_glazed_terracotta": 233, "minecraft:red_glazed_terracotta": 234, "minecraft:black_glazed_terracotta": 235, "minecraft:concrete": 236, "minecraft:concrete_powder": 237, "minecraft:compound_creator": 238, "minecraft:underwater_torch": 239, "minecraft:chorus_plant": 240, "minecraft:white_stained_glass": 241, "minecraft:camera": 242, "minecraft:podzol": 243, "minecraft:beetroots": 244, "minecraft:stonecutter": 245, "minecraft:glowingobsidian": 246, "minecraft:netherreactor": 247, "minecraft:info_update": 248, "minecraft:info_update2": 249, "minecraft:moving_block": 250, "minecraft:observer": 251, "minecraft:structure_block": 252, "minecraft:hard_glass": 253, "minecraft:hard_white_stained_glass": 254, "minecraft:reserved6": 255, "minecraft:black_bundle": 257, "minecraft:blue_bundle": 258, "minecraft:brown_bundle": 259, "minecraft:bundle": 260, "minecraft:cyan_bundle": 261, "minecraft:gray_bundle": 262, "minecraft:green_bundle": 263, "minecraft:light_blue_bundle": 264, "minecraft:light_gray_bundle": 265, "minecraft:lime_bundle": 266, "minecraft:magenta_bundle": 267, "minecraft:orange_bundle": 268, "minecraft:pink_bundle": 269, "minecraft:purple_bundle": 270, "minecraft:red_bundle": 271, "minecraft:white_bundle": 272, "minecraft:yellow_bundle": 273, "minecraft:breeze_rod": 274, "minecraft:ominous_trial_key": 275, "minecraft:trial_key": 276, "minecraft:wind_charge": 277, "minecraft:apple": 278, "minecraft:golden_apple": 280, "minecraft:enchanted_golden_apple": 281, "minecraft:mushroom_stew": 282, "minecraft:bread": 283, "minecraft:porkchop": 284, "minecraft:cooked_porkchop": 285, "minecraft:cod": 286, "minecraft:salmon": 287, "minecraft:tropical_fish": 288, "minecraft:pufferfish": 289, "minecraft:cooked_cod": 290, "minecraft:cooked_salmon": 291, "minecraft:dried_kelp": 292, "minecraft:cookie": 293, "minecraft:melon_slice": 294, "minecraft:beef": 295, "minecraft:cooked_beef": 296, "minecraft:chicken": 297, "minecraft:cooked_chicken": 298, "minecraft:rotten_flesh": 299, "minecraft:spider_eye": 300, "minecraft:carrot": 301, "minecraft:potato": 302, "minecraft:baked_potato": 303, "minecraft:poisonous_potato": 304, "minecraft:golden_carrot": 305, "minecraft:pumpkin_pie": 306, "minecraft:beetroot": 307, "minecraft:beetroot_soup": 308, "minecraft:sweet_berries": 309, "minecraft:rabbit": 310, "minecraft:cooked_rabbit": 311, "minecraft:rabbit_stew": 312, "minecraft:wheat_seeds": 313, "minecraft:pumpkin_seeds": 314, "minecraft:melon_seeds": 315, "minecraft:nether_wart": 316, "minecraft:beetroot_seeds": 317, "minecraft:torchflower_seeds": 318, "minecraft:pitcher_pod": 319, "minecraft:iron_shovel": 320, "minecraft:iron_pickaxe": 321, "minecraft:iron_axe": 322, "minecraft:flint_and_steel": 323, "minecraft:bow": 324, "minecraft:arrow": 325, "minecraft:coal": 326, "minecraft:charcoal": 327, "minecraft:diamond": 328, "minecraft:iron_ingot": 329, "minecraft:gold_ingot": 330, "minecraft:iron_sword": 331, "minecraft:wooden_sword": 332, "minecraft:wooden_shovel": 333, "minecraft:wooden_pickaxe": 334, "minecraft:wooden_axe": 335, "minecraft:stone_sword": 336, "minecraft:stone_shovel": 337, "minecraft:stone_pickaxe": 338, "minecraft:stone_axe": 339, "minecraft:diamond_sword": 340, "minecraft:diamond_shovel": 341, "minecraft:diamond_pickaxe": 342, "minecraft:diamond_axe": 343, "minecraft:mace": 344, "minecraft:stick": 345, "minecraft:bowl": 346, "minecraft:golden_sword": 347, "minecraft:golden_shovel": 348, "minecraft:golden_pickaxe": 349, "minecraft:golden_axe": 350, "minecraft:string": 351, "minecraft:feather": 352, "minecraft:gunpowder": 353, "minecraft:wooden_hoe": 354, "minecraft:stone_hoe": 355, "minecraft:iron_hoe": 356, "minecraft:diamond_hoe": 357, "minecraft:golden_hoe": 358, "minecraft:wheat": 359, "minecraft:leather_helmet": 360, "minecraft:leather_chestplate": 361, "minecraft:leather_leggings": 362, "minecraft:leather_boots": 363, "minecraft:chainmail_helmet": 364, "minecraft:chainmail_chestplate": 365, "minecraft:chainmail_leggings": 366, "minecraft:chainmail_boots": 367, "minecraft:iron_helmet": 368, "minecraft:iron_chestplate": 369, "minecraft:iron_leggings": 370, "minecraft:iron_boots": 371, "minecraft:diamond_helmet": 372, "minecraft:diamond_chestplate": 373, "minecraft:diamond_leggings": 374, "minecraft:diamond_boots": 375, "minecraft:golden_helmet": 376, "minecraft:golden_chestplate": 377, "minecraft:golden_leggings": 378, "minecraft:golden_boots": 379, "minecraft:shield": 380, "minecraft:flint": 381, "minecraft:painting": 382, "minecraft:oak_sign": 383, "minecraft:wooden_door": 384, "minecraft:bucket": 385, "minecraft:milk_bucket": 386, "minecraft:water_bucket": 387, "minecraft:lava_bucket": 388, "minecraft:cod_bucket": 389, "minecraft:salmon_bucket": 390, "minecraft:tropical_fish_bucket": 391, "minecraft:pufferfish_bucket": 392, "minecraft:powder_snow_bucket": 393, "minecraft:axolotl_bucket": 394, "minecraft:minecart": 395, "minecraft:saddle": 396, "minecraft:iron_door": 397, "minecraft:redstone": 398, "minecraft:snowball": 399, "minecraft:oak_boat": 401, "minecraft:birch_boat": 402, "minecraft:jungle_boat": 403, "minecraft:spruce_boat": 404, "minecraft:acacia_boat": 405, "minecraft:dark_oak_boat": 406, "minecraft:leather": 407, "minecraft:kelp": 408, "minecraft:brick": 409, "minecraft:clay_ball": 410, "minecraft:sugar_cane": 411, "minecraft:paper": 412, "minecraft:book": 413, "minecraft:slime_ball": 414, "minecraft:chest_minecart": 415, "minecraft:egg": 416, "minecraft:compass": 417, "minecraft:fishing_rod": 418, "minecraft:clock": 419, "minecraft:glowstone_dust": 420, "minecraft:black_dye": 421, "minecraft:red_dye": 422, "minecraft:green_dye": 423, "minecraft:brown_dye": 424, "minecraft:blue_dye": 425, "minecraft:purple_dye": 426, "minecraft:cyan_dye": 427, "minecraft:light_gray_dye": 428, "minecraft:gray_dye": 429, "minecraft:pink_dye": 430, "minecraft:lime_dye": 431, "minecraft:yellow_dye": 432, "minecraft:light_blue_dye": 433, "minecraft:magenta_dye": 434, "minecraft:orange_dye": 435, "minecraft:white_dye": 436, "minecraft:bone_meal": 437, "minecraft:cocoa_beans": 438, "minecraft:ink_sac": 439, "minecraft:lapis_lazuli": 440, "minecraft:bone": 441, "minecraft:sugar": 442, "minecraft:cake": 443, "minecraft:bed": 444, "minecraft:repeater": 445, "minecraft:filled_map": 446, "minecraft:shears": 447, "minecraft:ender_pearl": 448, "minecraft:blaze_rod": 449, "minecraft:ghast_tear": 451, "minecraft:gold_nugget": 452, "minecraft:potion": 453, "minecraft:glass_bottle": 454, "minecraft:fermented_spider_eye": 455, "minecraft:blaze_powder": 456, "minecraft:magma_cream": 457, "minecraft:brewing_stand": 458, "minecraft:cauldron": 459, "minecraft:ender_eye": 460, "minecraft:glistering_melon_slice": 461, "minecraft:chicken_spawn_egg": 462, "minecraft:cow_spawn_egg": 463, "minecraft:pig_spawn_egg": 464, "minecraft:sheep_spawn_egg": 465, "minecraft:wolf_spawn_egg": 466, "minecraft:mooshroom_spawn_egg": 467, "minecraft:creeper_spawn_egg": 468, "minecraft:enderman_spawn_egg": 469, "minecraft:silverfish_spawn_egg": 470, "minecraft:skeleton_spawn_egg": 471, "minecraft:slime_spawn_egg": 472, "minecraft:spider_spawn_egg": 473, "minecraft:zombie_spawn_egg": 474, "minecraft:zombie_pigman_spawn_egg": 475, "minecraft:villager_spawn_egg": 476, "minecraft:squid_spawn_egg": 477, "minecraft:ocelot_spawn_egg": 478, "minecraft:witch_spawn_egg": 479, "minecraft:bat_spawn_egg": 480, "minecraft:ghast_spawn_egg": 481, "minecraft:magma_cube_spawn_egg": 482, "minecraft:blaze_spawn_egg": 483, "minecraft:cave_spider_spawn_egg": 484, "minecraft:horse_spawn_egg": 485, "minecraft:rabbit_spawn_egg": 486, "minecraft:endermite_spawn_egg": 487, "minecraft:guardian_spawn_egg": 488, "minecraft:stray_spawn_egg": 489, "minecraft:bogged_spawn_egg": 490, "minecraft:husk_spawn_egg": 491, "minecraft:wither_skeleton_spawn_egg": 492, "minecraft:donkey_spawn_egg": 493, "minecraft:mule_spawn_egg": 494, "minecraft:skeleton_horse_spawn_egg": 495, "minecraft:zombie_horse_spawn_egg": 496, "minecraft:shulker_spawn_egg": 497, "minecraft:npc_spawn_egg": 498, "minecraft:elder_guardian_spawn_egg": 499, "minecraft:polar_bear_spawn_egg": 500, "minecraft:llama_spawn_egg": 501, "minecraft:vindicator_spawn_egg": 502, "minecraft:evoker_spawn_egg": 503, "minecraft:vex_spawn_egg": 504, "minecraft:zombie_villager_spawn_egg": 505, "minecraft:parrot_spawn_egg": 506, "minecraft:tropical_fish_spawn_egg": 507, "minecraft:cod_spawn_egg": 508, "minecraft:pufferfish_spawn_egg": 509, "minecraft:salmon_spawn_egg": 510, "minecraft:drowned_spawn_egg": 511, "minecraft:dolphin_spawn_egg": 512, "minecraft:turtle_spawn_egg": 513, "minecraft:phantom_spawn_egg": 514, "minecraft:agent_spawn_egg": 515, "minecraft:cat_spawn_egg": 516, "minecraft:panda_spawn_egg": 517, "minecraft:fox_spawn_egg": 518, "minecraft:pillager_spawn_egg": 519, "minecraft:wandering_trader_spawn_egg": 520, "minecraft:ravager_spawn_egg": 521, "minecraft:bee_spawn_egg": 522, "minecraft:strider_spawn_egg": 523, "minecraft:hoglin_spawn_egg": 524, "minecraft:piglin_spawn_egg": 525, "minecraft:zoglin_spawn_egg": 526, "minecraft:piglin_brute_spawn_egg": 527, "minecraft:sniffer_spawn_egg": 528, "minecraft:breeze_spawn_egg": 529, "minecraft:axolotl_spawn_egg": 530, "minecraft:goat_spawn_egg": 531, "minecraft:glow_squid_spawn_egg": 532, "minecraft:iron_golem_spawn_egg": 533, "minecraft:snow_golem_spawn_egg": 534, "minecraft:ender_dragon_spawn_egg": 535, "minecraft:wither_spawn_egg": 536, "minecraft:glow_ink_sac": 537, "minecraft:copper_ingot": 538, "minecraft:raw_iron": 539, "minecraft:raw_gold": 540, "minecraft:raw_copper": 541, "minecraft:experience_bottle": 542, "minecraft:fire_charge": 543, "minecraft:writable_book": 544, "minecraft:written_book": 545, "minecraft:emerald": 546, "minecraft:frame": 547, "minecraft:flower_pot": 548, "minecraft:empty_map": 549, "minecraft:carrot_on_a_stick": 550, "minecraft:nether_star": 551, "minecraft:firework_rocket": 552, "minecraft:firework_star": 553, "minecraft:enchanted_book": 554, "minecraft:comparator": 555, "minecraft:netherbrick": 556, "minecraft:quartz": 557, "minecraft:tnt_minecart": 558, "minecraft:hopper_minecart": 559, "minecraft:hopper": 560, "minecraft:rabbit_foot": 561, "minecraft:rabbit_hide": 562, "minecraft:leather_horse_armor": 563, "minecraft:iron_horse_armor": 564, "minecraft:golden_horse_armor": 565, "minecraft:diamond_horse_armor": 566, "minecraft:music_disc_13": 567, "minecraft:music_disc_cat": 568, "minecraft:music_disc_blocks": 569, "minecraft:music_disc_chirp": 570, "minecraft:music_disc_far": 571, "minecraft:music_disc_mall": 572, "minecraft:music_disc_mellohi": 573, "minecraft:music_disc_stal": 574, "minecraft:music_disc_strad": 575, "minecraft:music_disc_ward": 576, "minecraft:music_disc_11": 577, "minecraft:music_disc_wait": 578, "minecraft:trident": 579, "minecraft:lead": 580, "minecraft:name_tag": 581, "minecraft:prismarine_crystals": 582, "minecraft:mutton": 583, "minecraft:cooked_mutton": 584, "minecraft:armor_stand": 585, "minecraft:chorus_fruit": 591, "minecraft:popped_chorus_fruit": 592, "minecraft:dragon_breath": 593, "minecraft:splash_potion": 594, "minecraft:lingering_potion": 595, "minecraft:command_block_minecart": 596, "minecraft:elytra": 597, "minecraft:prismarine_shard": 598, "minecraft:shulker_shell": 599, "minecraft:banner": 600, "minecraft:totem_of_undying": 601, "minecraft:iron_nugget": 602, "minecraft:nautilus_shell": 603, "minecraft:heart_of_the_sea": 604, "minecraft:turtle_scute": 605, "minecraft:turtle_helmet": 606, "minecraft:phantom_membrane": 607, "minecraft:crossbow": 608, "minecraft:spruce_sign": 609, "minecraft:birch_sign": 610, "minecraft:jungle_sign": 611, "minecraft:acacia_sign": 612, "minecraft:dark_oak_sign": 613, "minecraft:flower_banner_pattern": 614, "minecraft:creeper_banner_pattern": 615, "minecraft:skull_banner_pattern": 616, "minecraft:mojang_banner_pattern": 617, "minecraft:field_masoned_banner_pattern": 618, "minecraft:bordure_indented_banner_pattern": 619, "minecraft:piglin_banner_pattern": 620, "minecraft:globe_banner_pattern": 621, "minecraft:flow_banner_pattern": 622, "minecraft:guster_banner_pattern": 623, "minecraft:campfire": 624, "minecraft:suspicious_stew": 625, "minecraft:honeycomb": 626, "minecraft:honey_bottle": 627, "minecraft:ominous_bottle": 628, "minecraft:chalkboard": 629, "minecraft:camera_block": 630, "minecraft:compound": 631, "minecraft:ice_bomb": 632, "minecraft:bleach": 633, "minecraft:rapid_fertilizer": 634, "minecraft:balloon": 635, "minecraft:medicine": 636, "minecraft:sparkler": 637, "minecraft:glow_stick": 638, "minecraft:lodestone_compass": 639, "minecraft:netherite_sword": 640, "minecraft:netherite_shovel": 641, "minecraft:netherite_pickaxe": 642, "minecraft:netherite_axe": 643, "minecraft:netherite_hoe": 644, "minecraft:netherite_ingot": 645, "minecraft:netherite_helmet": 646, "minecraft:netherite_chestplate": 647, "minecraft:netherite_leggings": 648, "minecraft:netherite_boots": 649, "minecraft:netherite_scrap": 650, "minecraft:crimson_sign": 651, "minecraft:warped_sign": 652, "minecraft:crimson_door": 653, "minecraft:warped_door": 654, "minecraft:warped_fungus_on_a_stick": 655, "minecraft:chain": 656, "minecraft:music_disc_pigstep": 657, "minecraft:nether_sprouts": 658, "minecraft:soul_campfire": 659, "minecraft:glow_frame": 660, "minecraft:amethyst_shard": 661, "minecraft:spyglass": 662, "minecraft:music_disc_otherside": 663, "minecraft:goat_horn": 664, "minecraft:frog_spawn_egg": 665, "minecraft:tadpole_spawn_egg": 666, "minecraft:tadpole_bucket": 667, "minecraft:allay_spawn_egg": 668, "minecraft:warden_spawn_egg": 669, "minecraft:mangrove_sign": 671, "minecraft:mangrove_boat": 672, "minecraft:music_disc_5": 673, "minecraft:disc_fragment_5": 674, "minecraft:oak_chest_boat": 675, "minecraft:birch_chest_boat": 676, "minecraft:jungle_chest_boat": 677, "minecraft:spruce_chest_boat": 678, "minecraft:acacia_chest_boat": 679, "minecraft:dark_oak_chest_boat": 680, "minecraft:mangrove_chest_boat": 681, "minecraft:recovery_compass": 683, "minecraft:echo_shard": 684, "minecraft:trader_llama_spawn_egg": 685, "minecraft:cherry_boat": 686, "minecraft:cherry_chest_boat": 687, "minecraft:cherry_sign": 688, "minecraft:bamboo_sign": 689, "minecraft:bamboo_raft": 690, "minecraft:bamboo_chest_raft": 691, "minecraft:camel_spawn_egg": 692, "minecraft:angler_pottery_sherd": 693, "minecraft:archer_pottery_sherd": 694, "minecraft:arms_up_pottery_sherd": 695, "minecraft:blade_pottery_sherd": 696, "minecraft:brewer_pottery_sherd": 697, "minecraft:burn_pottery_sherd": 698, "minecraft:danger_pottery_sherd": 699, "minecraft:explorer_pottery_sherd": 700, "minecraft:flow_pottery_sherd": 701, "minecraft:friend_pottery_sherd": 702, "minecraft:guster_pottery_sherd": 703, "minecraft:heart_pottery_sherd": 704, "minecraft:heartbreak_pottery_sherd": 705, "minecraft:howl_pottery_sherd": 706, "minecraft:miner_pottery_sherd": 707, "minecraft:mourner_pottery_sherd": 708, "minecraft:plenty_pottery_sherd": 709, "minecraft:prize_pottery_sherd": 710, "minecraft:scrape_pottery_sherd": 711, "minecraft:sheaf_pottery_sherd": 712, "minecraft:shelter_pottery_sherd": 713, "minecraft:skull_pottery_sherd": 714, "minecraft:snort_pottery_sherd": 715, "minecraft:brush": 716, "minecraft:netherite_upgrade_smithing_template": 717, "minecraft:sentry_armor_trim_smithing_template": 718, "minecraft:dune_armor_trim_smithing_template": 719, "minecraft:coast_armor_trim_smithing_template": 720, "minecraft:wild_armor_trim_smithing_template": 721, "minecraft:ward_armor_trim_smithing_template": 722, "minecraft:eye_armor_trim_smithing_template": 723, "minecraft:vex_armor_trim_smithing_template": 724, "minecraft:tide_armor_trim_smithing_template": 725, "minecraft:snout_armor_trim_smithing_template": 726, "minecraft:rib_armor_trim_smithing_template": 727, "minecraft:spire_armor_trim_smithing_template": 728, "minecraft:silence_armor_trim_smithing_template": 729, "minecraft:wayfinder_armor_trim_smithing_template": 730, "minecraft:raiser_armor_trim_smithing_template": 731, "minecraft:shaper_armor_trim_smithing_template": 732, "minecraft:host_armor_trim_smithing_template": 733, "minecraft:flow_armor_trim_smithing_template": 734, "minecraft:bolt_armor_trim_smithing_template": 735, "minecraft:music_disc_relic": 736, "minecraft:skull": 737, "minecraft:white_terracotta": 738, "minecraft:armadillo_spawn_egg": 739, "minecraft:armadillo_scute": 740, "minecraft:wolf_armor": 741, "minecraft:pale_oak_boat": 744, "minecraft:pale_oak_chest_boat": 745, "minecraft:pale_oak_sign": 746, "minecraft:creaking_spawn_egg": 747, "minecraft:resin_brick": 748, "minecraft:wool": 749, "minecraft:blue_egg": 750, "minecraft:brown_egg": 751, "minecraft:carpet": 752, "minecraft:log": 753, "minecraft:fence": 754, "minecraft:stonebrick": 755, "minecraft:coral_block": 756, "minecraft:stone_block_slab": 757, "minecraft:stone_block_slab2": 758, "minecraft:stone_block_slab3": 759, "minecraft:stone_block_slab4": 760, "minecraft:double_stone_block_slab": 761, "minecraft:double_stone_block_slab2": 762, "minecraft:double_stone_block_slab3": 763, "minecraft:double_stone_block_slab4": 764, "minecraft:coral_fan": 765, "minecraft:coral_fan_dead": 766, "minecraft:sapling": 767, "minecraft:leaves": 768, "minecraft:leaves2": 769, "minecraft:wooden_slab": 770, "minecraft:red_flower": 771, "minecraft:double_plant": 772, "minecraft:double_wooden_slab": 773, "minecraft:coral": 774, "minecraft:tallgrass": 775, "minecraft:log2": 776, "minecraft:monster_egg": 777, "minecraft:stained_glass": 780, "minecraft:shulker_box": 782, "minecraft:wood": 783, "minecraft:music_disc_creator": 784, "minecraft:music_disc_creator_music_box": 785, "minecraft:music_disc_precipice": 786, "minecraft:chemistry_table": 787, "minecraft:hard_stained_glass": 788, "minecraft:hard_stained_glass_pane": 789, "minecraft:colored_torch_rg": 790, "minecraft:colored_torch_bp": 791, "minecraft:light_block": 792, "minecraft:boat": 793, "minecraft:dye": 794, "minecraft:banner_pattern": 795, "minecraft:spawn_egg": 796, "minecraft:end_crystal": 797, "minecraft:glow_berries": 798, "minecraft:respawn_anchor_charge_0": -272, "minecraft:respawn_anchor_charge_1": "-272 + (1 / 65536)", "minecraft:respawn_anchor_charge_2": "-272 + (2 / 65536)", "minecraft:respawn_anchor_charge_3": "-272 + (3 / 65536)", "minecraft:respawn_anchor_charge_4": "-272 + (4 / 65536)", "minecraft:barrel_closed": -203, "minecraft:barrel_open": "-203 + (1 / 65536)", "minecraft:redstone_wire_power_0": 55, "minecraft:redstone_wire_power_1": "55 + (1 / 65536)", "minecraft:redstone_wire_power_2": "55 + (2 / 65536)", "minecraft:redstone_wire_power_3": "55 + (3 / 65536)", "minecraft:redstone_wire_power_4": "55 + (4 / 65536)", "minecraft:redstone_wire_power_5": "55 + (5 / 65536)", "minecraft:redstone_wire_power_6": "55 + (6 / 65536)", "minecraft:redstone_wire_power_7": "55 + (7 / 65536)", "minecraft:redstone_wire_power_8": "55 + (8 / 65536)", "minecraft:redstone_wire_power_9": "55 + (9 / 65536)", "minecraft:redstone_wire_power_10": "55 + (10 / 65536)", "minecraft:redstone_wire_power_11": "55 + (11 / 65536)", "minecraft:redstone_wire_power_12": "55 + (12 / 65536)", "minecraft:redstone_wire_power_13": "55 + (13 / 65536)", "minecraft:redstone_wire_power_14": "55 + (14 / 65536)", "minecraft:redstone_wire_power_15": "55 + (15 / 65536)", "minecraft:wheat_plant_stage_0": 59, "minecraft:wheat_plant_stage_1": "59 + (1 / 65536)", "minecraft:wheat_plant_stage_2": "59 + (2 / 65536)", "minecraft:wheat_plant_stage_3": "59 + (3 / 65536)", "minecraft:wheat_plant_stage_4": "59 + (4 / 65536)", "minecraft:wheat_plant_stage_5": "59 + (5 / 65536)", "minecraft:wheat_plant_stage_6": "59 + (6 / 65536)", "minecraft:wheat_plant_stage_7": "59 + (7 / 65536)", "minecraft:wet_farmland": "60 + (1 / 65536)", "minecraft:snow_layer_1": 78, "minecraft:snow_layer_2": "78 + (1 / 65536)", "minecraft:snow_layer_3": "78 + (2 / 65536)", "minecraft:snow_layer_4": "78 + (3 / 65536)", "minecraft:snow_layer_5": "78 + (4 / 65536)", "minecraft:snow_layer_6": "78 + (5 / 65536)", "minecraft:snow_layer_7": "78 + (6 / 65536)", "minecraft:snow_layer_8": "78 + (7 / 65536)", "minecraft:cake_block_slice_0": 92, "minecraft:cake_block_slice_1": "92 + (1 / 65536)", "minecraft:cake_block_slice_2": "92 + (2 / 65536)", "minecraft:cake_block_slice_3": "92 + (3 / 65536)", "minecraft:cake_block_slice_4": "92 + (4 / 65536)", "minecraft:cake_block_slice_5": "92 + (5 / 65536)", "minecraft:cake_block_slice_6": "92 + (6 / 65536)", "minecraft:brown_mushroom_block_bit_0": 99, "minecraft:brown_mushroom_block_bit_1": "99 + (1 / 65536)", "minecraft:brown_mushroom_block_bit_2": "99 + (2 / 65536)", "minecraft:brown_mushroom_block_bit_3": "99 + (3 / 65536)", "minecraft:brown_mushroom_block_bit_4": "99 + (4 / 65536)", "minecraft:brown_mushroom_block_bit_5": "99 + (5 / 65536)", "minecraft:brown_mushroom_block_bit_6": "99 + (6 / 65536)", "minecraft:brown_mushroom_block_bit_7": "99 + (7 / 65536)", "minecraft:brown_mushroom_block_bit_8": "99 + (8 / 65536)", "minecraft:brown_mushroom_block_bit_9": "99 + (9 / 65536)", "minecraft:brown_mushroom_block_bit_10": "99 + (10 / 65536)", "minecraft:brown_mushroom_block_bit_11": "99 + (11 / 65536)", "minecraft:brown_mushroom_block_bit_12": "99 + (12 / 65536)", "minecraft:brown_mushroom_block_bit_13": "99 + (13 / 65536)", "minecraft:brown_mushroom_block_bit_14": "99 + (14 / 65536)", "minecraft:brown_mushroom_block_bit_15": "99 + (15 / 65536)", "minecraft:red_mushroom_block_bit_0": 100, "minecraft:red_mushroom_block_bit_1": "100 + (1 / 65536)", "minecraft:red_mushroom_block_bit_2": "100 + (2 / 65536)", "minecraft:red_mushroom_block_bit_3": "100 + (3 / 65536)", "minecraft:red_mushroom_block_bit_4": "100 + (4 / 65536)", "minecraft:red_mushroom_block_bit_5": "100 + (5 / 65536)", "minecraft:red_mushroom_block_bit_6": "100 + (6 / 65536)", "minecraft:red_mushroom_block_bit_7": "100 + (7 / 65536)", "minecraft:red_mushroom_block_bit_8": "100 + (8 / 65536)", "minecraft:red_mushroom_block_bit_9": "100 + (9 / 65536)", "minecraft:red_mushroom_block_bit_10": "100 + (10 / 65536)", "minecraft:red_mushroom_block_bit_11": "100 + (11 / 65536)", "minecraft:red_mushroom_block_bit_12": "100 + (12 / 65536)", "minecraft:red_mushroom_block_bit_13": "100 + (13 / 65536)", "minecraft:red_mushroom_block_bit_14": "100 + (14 / 65536)", "minecraft:red_mushroom_block_bit_15": "100 + (15 / 65536)", "minecraft:attached_pumpkin_stem": "104 + (1 / 65536)", "minecraft:attached_melon_stem": "105 + (1 / 65536)", "minecraft:nether_wart_plant_stage_0": 115, "minecraft:nether_wart_plant_stage_1": "115 + (1 / 65536)", "minecraft:nether_wart_plant_stage_2": "115 + (2 / 65536)", "minecraft:nether_wart_plant_stage_3": "115 + (3 / 65536)", "minecraft:filled_end_portal_frame": "120 + (4 / 65536)", "minecraft:cocoa_stage_0": 127, "minecraft:cocoa_stage_1": "127 + (1 / 65536)", "minecraft:cocoa_stage_2": "127 + (2 / 65536)", "minecraft:cocoa_stage_3": "127 + (3 / 65536)", "minecraft:conditional_command_block": "137 + (8 / 65536)", "minecraft:carrots_stage_0": 141, "minecraft:carrots_stage_1": "141 + (1 / 65536)", "minecraft:carrots_stage_2": "141 + (2 / 65536)", "minecraft:carrots_stage_3": "141 + (3 / 65536)", "minecraft:carrots_stage_4": "141 + (4 / 65536)", "minecraft:carrots_stage_5": "141 + (5 / 65536)", "minecraft:carrots_stage_6": "141 + (6 / 65536)", "minecraft:carrots_stage_7": "141 + (7 / 65536)", "minecraft:potatoes_stage_0": 142, "minecraft:potatoes_stage_1": "142 + (1 / 65536)", "minecraft:potatoes_stage_2": "142 + (2 / 65536)", "minecraft:potatoes_stage_3": "142 + (3 / 65536)", "minecraft:potatoes_stage_4": "142 + (4 / 65536)", "minecraft:potatoes_stage_5": "142 + (5 / 65536)", "minecraft:potatoes_stage_6": "142 + (6 / 65536)", "minecraft:potatoes_stage_7": "142 + (7 / 65536)", "minecraft:black_standing_banner": 176, "minecraft:red_standing_banner": "176 + (1 / 65536)", "minecraft:green_standing_banner": "176 + (2 / 65536)", "minecraft:brown_standing_banner": "176 + (3 / 65536)", "minecraft:blue_standing_banner": "176 + (4 / 65536)", "minecraft:purple_standing_banner": "176 + (5 / 65536)", "minecraft:cyan_standing_banner": "176 + (6 / 65536)", "minecraft:light_gray_standing_banner": "176 + (7 / 65536)", "minecraft:gray_standing_banner": "176 + (8 / 65536)", "minecraft:pink_standing_banner": "176 + (9 / 65536)", "minecraft:lime_standing_banner": "176 + (10 / 65536)", "minecraft:yellow_standing_banner": "176 + (11 / 65536)", "minecraft:light_blue_standing_banner": "176 + (12 / 65536)", "minecraft:magenta_standing_banner": "176 + (13 / 65536)", "minecraft:orange_standing_banner": "176 + (14 / 65536)", "minecraft:white_standing_banner": "176 + (15 / 65536)", "minecraft:black_wall_banner": 177, "minecraft:red_wall_banner": "177 + (1 / 65536)", "minecraft:green_wall_banner": "177 + (2 / 65536)", "minecraft:brown_wall_banner": "177 + (3 / 65536)", "minecraft:blue_wall_banner": "177 + (4 / 65536)", "minecraft:purple_wall_banner": "177 + (5 / 65536)", "minecraft:cyan_wall_banner": "177 + (6 / 65536)", "minecraft:light_gray_wall_banner": "177 + (7 / 65536)", "minecraft:gray_wall_banner": "177 + (8 / 65536)", "minecraft:pink_wall_banner": "177 + (9 / 65536)", "minecraft:lime_wall_banner": "177 + (10 / 65536)", "minecraft:yellow_wall_banner": "177 + (11 / 65536)", "minecraft:light_blue_wall_banner": "177 + (12 / 65536)", "minecraft:magenta_wall_banner": "177 + (13 / 65536)", "minecraft:orange_wall_banner": "177 + (14 / 65536)", "minecraft:white_wall_banner": "177 + (15 / 65536)", "minecraft:conditional_repeating_command_block": "188 + (8 / 65536)", "minecraft:conditional_chain_command_block": "189 + (8 / 65536)", "minecraft:beetroots_stage_0": 244, "minecraft:beetroots_stage_1": "244 + (1 / 65536)", "minecraft:beetroots_stage_2": "244 + (2 / 65536)", "minecraft:beetroots_stage_3": "244 + (3 / 65536)", "minecraft:beetroots_stage_4": "244 + (4 / 65536)", "minecraft:beetroots_stage_5": "244 + (5 / 65536)", "minecraft:beetroots_stage_6": "244 + (6 / 65536)", "minecraft:beetroots_stage_7": "244 + (7 / 65536)", "minecraft:structure_block_data": 252, "minecraft:structure_block_save": "252 + (1 / 65536)", "minecraft:structure_block_load": "252 + (2 / 65536)", "minecraft:structure_block_corner": "252 + (3 / 65536)", "minecraft:structure_block_invalid": "252 + (4 / 65536)", "minecraft:structure_block_export": "252 + (5 / 65536)", "minecraft:splash_arrow": "325 + (1 / 65536)", "minecraft:mundane_arrow": "325 + (2 / 65536)", "minecraft:thick_arrow": "325 + (4 / 65536)", "minecraft:awkward_arrow": "325 + (5 / 65536)", "minecraft:night_vision_arrow": "325 + (6 / 65536)", "minecraft:leaping_arrow": "325 + (9 / 65536)", "minecraft:fire_resistance_arrow": "325 + (13 / 65536)", "minecraft:swiftness_arrow": "325 + (15 / 65536)", "minecraft:slowness_arrow": "325 + (18 / 65536)", "minecraft:water_breathing_arrow": "325 + (20 / 65536)", "minecraft:healing_arrow": "325 + (22 / 65536)", "minecraft:harming_arrow": "325 + (24 / 65536)", "minecraft:poison_arrow": "325 + (26 / 65536)", "minecraft:regeneration_arrow": "325 + (29 / 65536)", "minecraft:strength_arrow": "325 + (32 / 65536)", "minecraft:weakness_arrow": "325 + (35 / 65536)", "minecraft:decay_arrow": "325 + (37 / 65536)", "minecraft:turtle_master_arrow": "325 + (38 / 65536)", "minecraft:slow_falling_arrow": "325 + (41 / 65536)", "minecraft:white_bed": 444, "minecraft:red_bed": "444 + (1 / 65536)", "minecraft:green_bed": "444 + (2 / 65536)", "minecraft:brown_bed": "444 + (3 / 65536)", "minecraft:blue_bed": "444 + (4 / 65536)", "minecraft:purple_bed": "444 + (5 / 65536)", "minecraft:cyan_bed": "444 + (6 / 65536)", "minecraft:light_gray_bed": "444 + (7 / 65536)", "minecraft:gray_bed": "444 + (8 / 65536)", "minecraft:pink_bed": "444 + (9 / 65536)", "minecraft:lime_bed": "444 + (10 / 65536)", "minecraft:yellow_bed": "444 + (11 / 65536)", "minecraft:light_blue_bed": "444 + (12 / 65536)", "minecraft:magenta_bed": "444 + (13 / 65536)", "minecraft:orange_bed": "444 + (14 / 65536)", "minecraft:black_bed": "444 + (15 / 65536)", "minecraft:locator_map": "446 + (2 / 65536)", "minecraft:ocean_explorer_map": "446 + (3 / 65536)", "minecraft:woodland_explorer_map": "446 + (4 / 65536)", "minecraft:treasure_map": "446 + (5 / 65536)", "minecraft:locked_map": "446 + (6 / 65536)", "minecraft:snowy_village_map": "446 + (7 / 65536)", "minecraft:taiga_village_map": "446 + (8 / 65536)", "minecraft:plains_village_map": "446 + (9 / 65536)", "minecraft:savanna_village_map": "446 + (10 / 65536)", "minecraft:desert_village_map": "446 + (11 / 65536)", "minecraft:jungle_village_map": "446 + (12 / 65536)", "minecraft:swamp_village_map": "446 + (13 / 65536)", "minecraft:mundane_potion": "453 + (1 / 65536)", "minecraft:thick_potion": "453 + (3 / 65536)", "minecraft:awkward_potion": "453 + (4 / 65536)", "minecraft:night_vision_potion": "453 + (5 / 65536)", "minecraft:leaping_potion": "453 + (8 / 65536)", "minecraft:fire_resistance_potion": "453 + (12 / 65536)", "minecraft:swiftness_potion": "453 + (14 / 65536)", "minecraft:slowness_potion": "453 + (17 / 65536)", "minecraft:water_breathing_potion": "453 + (19 / 65536)", "minecraft:healing_potion": "453 + (21 / 65536)", "minecraft:harming_potion": "453 + (23 / 65536)", "minecraft:poison_potion": "453 + (25 / 65536)", "minecraft:regeneration_potion": "453 + (28 / 65536)", "minecraft:strength_potion": "453 + (31 / 65536)", "minecraft:weakness_potion": "453 + (34 / 65536)", "minecraft:decay_potion": "453 + (36 / 65536)", "minecraft:turtle_master_potion": "453 + (37 / 65536)", "minecraft:slow_falling_potion": "453 + (40 / 65536)", "minecraft:mundane_splash_potion": "594 + (1 / 65536)", "minecraft:thick_splash_potion": "594 + (3 / 65536)", "minecraft:awkward_splash_potion": "594 + (4 / 65536)", "minecraft:night_vision_splash_potion": "594 + (5 / 65536)", "minecraft:leaping_splash_potion": "594 + (8 / 65536)", "minecraft:fire_resistance_splash_potion": "594 + (12 / 65536)", "minecraft:swiftness_splash_potion": "594 + (14 / 65536)", "minecraft:slowness_splash_potion": "594 + (17 / 65536)", "minecraft:water_breathing_splash_potion": "594 + (19 / 65536)", "minecraft:healing_splash_potion": "594 + (21 / 65536)", "minecraft:harming_splash_potion": "594 + (23 / 65536)", "minecraft:poison_splash_potion": "594 + (25 / 65536)", "minecraft:regeneration_splash_potion": "594 + (28 / 65536)", "minecraft:strength_splash_potion": "594 + (31 / 65536)", "minecraft:weakness_splash_potion": "594 + (34 / 65536)", "minecraft:decay_splash_potion": "594 + (36 / 65536)", "minecraft:turtle_master_splash_potion": "594 + (37 / 65536)", "minecraft:slow_falling_splash_potion": "594 + (40 / 65536)", "minecraft:mundane_lingering_potion": "595 + (1 / 65536)", "minecraft:thick_lingering_potion": "595 + (3 / 65536)", "minecraft:awkward_lingering_potion": "595 + (4 / 65536)", "minecraft:night_vision_lingering_potion": "595 + (5 / 65536)", "minecraft:leaping_lingering_potion": "595 + (8 / 65536)", "minecraft:fire_resistance_lingering_potion": "595 + (12 / 65536)", "minecraft:swiftness_lingering_potion": "595 + (14 / 65536)", "minecraft:slowness_lingering_potion": "595 + (17 / 65536)", "minecraft:water_breathing_lingering_potion": "595 + (19 / 65536)", "minecraft:healing_lingering_potion": "595 + (21 / 65536)", "minecraft:harming_lingering_potion": "595 + (23 / 65536)", "minecraft:poison_lingering_potion": "595 + (25 / 65536)", "minecraft:regeneration_lingering_potion": "595 + (28 / 65536)", "minecraft:strength_lingering_potion": "595 + (31 / 65536)", "minecraft:weakness_lingering_potion": "595 + (34 / 65536)", "minecraft:decay_lingering_potion": "595 + (36 / 65536)", "minecraft:turtle_master_lingering_potion": "595 + (37 / 65536)", "minecraft:slow_falling_lingering_potion": "595 + (40 / 65536)", "minecraft:black_banner": 600, "minecraft:red_banner": "600 + (1 / 65536)", "minecraft:green_banner": "600 + (2 / 65536)", "minecraft:brown_banner": "600 + (3 / 65536)", "minecraft:blue_banner": "600 + (4 / 65536)", "minecraft:purple_banner": "600 + (5 / 65536)", "minecraft:cyan_banner": "600 + (6 / 65536)", "minecraft:light_gray_banner": "600 + (7 / 65536)", "minecraft:gray_banner": "600 + (8 / 65536)", "minecraft:pink_banner": "600 + (9 / 65536)", "minecraft:lime_banner": "600 + (10 / 65536)", "minecraft:yellow_banner": "600 + (11 / 65536)", "minecraft:light_blue_banner": "600 + (12 / 65536)", "minecraft:magenta_banner": "600 + (13 / 65536)", "minecraft:orange_banner": "600 + (14 / 65536)", "minecraft:white_banner": "600 + (15 / 65536)", "minecraft:compound_salt": 630, "minecraft:compound_sodium_oxide": "630 + (1 / 65536)", "minecraft:compound_sodium_hydroxide": "630 + (2 / 65536)", "minecraft:compound_magnesium_nitrate": "630 + (3 / 65536)", "minecraft:compound_iron_sulfide": "630 + (4 / 65536)", "minecraft:compound_lithium_hydride": "630 + (5 / 65536)", "minecraft:compound_sodium_hydride": "630 + (6 / 65536)", "minecraft:compound_calcium_bromide": "630 + (7 / 65536)", "minecraft:compound_magnesium_oxide": "630 + (8 / 65536)", "minecraft:compound_sodium_acetate": "630 + (9 / 65536)", "minecraft:compound_luminol": "630 + (10 / 65536)", "minecraft:compound_charcoal": "630 + (11 / 65536)", "minecraft:compound_sugar": "630 + (12 / 65536)", "minecraft:compound_aluminum_oxide": "630 + (13 / 65536)", "minecraft:compound_boron_trioxide": "630 + (14 / 65536)", "minecraft:compound_soap": "630 + (15 / 65536)", "minecraft:compound_polyethylene": "630 + (16 / 65536)", "minecraft:compound_garbage": "630 + (17 / 65536)", "minecraft:compound_blue_jar": "630 + (24 / 65536)", "minecraft:compound_blue_beaker": "630 + (26 / 65536)", "minecraft:compound_glue": "630 + (27 / 65536)", "minecraft:compound_white_beaker": "630 + (28 / 65536)", "minecraft:compound_black_beaker": "630 + (29 / 65536)", "minecraft:compound_yellow_beaker": "630 + (31 / 65536)", "minecraft:compound_clear_beaker": "630 + (35 / 65536)", "minecraft:compound_blue_bottle": "630 + (38 / 65536)", "minecraft:white_balloon": 634, "minecraft:red_balloon": "634 + (1 / 65536)", "minecraft:green_balloon": "634 + (2 / 65536)", "minecraft:brown_balloon": "634 + (3 / 65536)", "minecraft:blue_balloon": "634 + (4 / 65536)", "minecraft:purple_balloon": "634 + (5 / 65536)", "minecraft:cyan_balloon": "634 + (6 / 65536)", "minecraft:light_gray_balloon": "634 + (7 / 65536)", "minecraft:gray_balloon": "634 + (8 / 65536)", "minecraft:pink_balloon": "634 + (9 / 65536)", "minecraft:lime_balloon": "634 + (10 / 65536)", "minecraft:yellow_balloon": "634 + (11 / 65536)", "minecraft:light_blue_balloon": "634 + (12 / 65536)", "minecraft:magenta_balloon": "634 + (13 / 65536)", "minecraft:orange_balloon": "634 + (14 / 65536)", "minecraft:black_balloon": "634 + (15 / 65536)", "minecraft:eye_drops": 635, "minecraft:tonic": "635 + (1 / 65536)", "minecraft:antidote": "635 + (2 / 65536)", "minecraft:elixir": "635 + (3 / 65536)", "minecraft:blue_sparkler": 636, "minecraft:red_sparkler": "636 + (1 / 65536)", "minecraft:green_sparkler": "636 + (2 / 65536)", "minecraft:pink_sparker": "636 + (5 / 65536)", "minecraft:orange_sparkler": "636 + (14 / 65536)", "minecraft:lit_blue_sparkler": "636 + (32 / 65536)", "minecraft:lit_red_sparkler": "636 + (33 / 65536)", "minecraft:lit_green_sparkler": "636 + (34 / 65536)", "minecraft:lit_pink_sparker": "636 + (37 / 65536)", "minecraft:lit_orange_sparkler": "636 + (46 / 65536)", "minecraft:red_glowstick": "637 + (1 / 65536)", "minecraft:green_glowstick": "637 + (2 / 65536)", "minecraft:brown_glowstick": "637 + (3 / 65536)", "minecraft:blue_glowstick": "637 + (4 / 65536)", "minecraft:purple_glowstick": "637 + (5 / 65536)", "minecraft:cyan_glowstick": "637 + (6 / 65536)", "minecraft:gray_glowstick": "637 + (8 / 65536)", "minecraft:pink_glowstick": "637 + (9 / 65536)", "minecraft:lime_glowstick": "637 + (10 / 65536)", "minecraft:yellow_glowstick": "637 + (11 / 65536)", "minecraft:light_blue_glowstick": "637 + (12 / 65536)", "minecraft:magenta_glowstick": "637 + (13 / 65536)", "minecraft:orange_glowstick": "637 + (14 / 65536)", "minecraft:white_glowstick": "637 + (15 / 65536)", "minecraft:lit_red_glowstick": "637 + (33 / 65536)", "minecraft:lit_green_glowstick": "637 + (34 / 65536)", "minecraft:lit_brown_glowstick": "637 + (35 / 65536)", "minecraft:lit_blue_glowstick": "637 + (36 / 65536)", "minecraft:lit_purple_glowstick": "637 + (37 / 65536)", "minecraft:lit_cyan_glowstick": "637 + (38 / 65536)", "minecraft:lit_gray_glowstick": "637 + (40 / 65536)", "minecraft:lit_pink_glowstick": "637 + (41 / 65536)", "minecraft:lit_lime_glowstick": "637 + (42 / 65536)", "minecraft:lit_yellow_glowstick": "637 + (43 / 65536)", "minecraft:lit_light_blue_glowstick": "637 + (44 / 65536)", "minecraft:lit_magenta_glowstick": "637 + (45 / 65536)", "minecraft:lit_orange_glowstick": "637 + (46 / 65536)", "minecraft:lit_white_glowstick": "637 + (47 / 65536)" };

// data/gametests/src/waila/BlockHandler.ts
var _BlockHandler = class _BlockHandler {
  /**
   * Helper function to check if a single value matches a condition rule.
   * Mirrors the logic used for TagsInterface.target matching.
   */
  static checkRemarkConditionRule(value, rule) {
    const valueNamePart = value.includes(":") ? value.split(":")[1] : value;
    const isNegatedRule = rule.startsWith("!");
    const actualRule = isNegatedRule ? rule.substring(1) : rule;
    let positiveMatchFound = false;
    if (actualRule === value) {
      positiveMatchFound = true;
    } else if (!actualRule.includes(":") && actualRule === valueNamePart) {
      positiveMatchFound = true;
    } else if (!actualRule.includes(":") && value.includes(actualRule)) {
      positiveMatchFound = true;
    } else if (!actualRule.includes(":") && valueNamePart.includes(actualRule)) {
      positiveMatchFound = true;
    }
    return isNegatedRule ? !positiveMatchFound : positiveMatchFound;
  }
  /**
   * Creates lookup data for a block
   */
  static createLookupData(block) {
    let hitId;
    try {
      const itemStack = block.getItemStack(1, true);
      hitId = itemStack?.typeId ?? block.typeId;
    } catch {
      hitId = block.typeId;
    }
    return {
      type: "tile" /* TILE */,
      hitIdentifier: hitId,
      block
    };
  }
  /**
   * Returns either the item aux or the icon texture path. Prefers the icon texture path if its rendered as an item.
   */
  static resolveIcon(blockId) {
    const namespacesType = namespaces_default;
    const [blockNamespace, blockName] = blockId.split(":");
    const namespaceData = namespacesType[blockNamespace];
    const texturePath = namespaceData?.textures?.root || "";
    if (!namespaceData?.textures?.list || namespaceData.textures.list.length === 0) {
      const isInBlockCatalog2 = BlockTypes.get(blockId) !== void 0;
      if (isInBlockCatalog2) {
        this.logger.debug(`resolveIcon (early exit): No texture list for ${blockNamespace}. Block ${blockId} is in catalog. Using aux.`);
        return this.getItemAux(blockId);
      } else {
        this.logger.debug(`resolveIcon (early exit): No texture list for ${blockNamespace}. Item ${blockId} not in catalog. Using default name.`);
        return `${texturePath}${blockName}`;
      }
    }
    const rawTextureList = namespaceData.textures.list;
    let foundItemTexture = null;
    for (const entry of rawTextureList) {
      if (typeof entry === "object" && entry !== null && Object.prototype.hasOwnProperty.call(entry, blockName)) {
        foundItemTexture = entry[blockName];
        break;
      }
    }
    if (foundItemTexture === null) {
      for (const entry of rawTextureList) {
        if (typeof entry === "string" && entry === blockName) {
          foundItemTexture = blockName;
          break;
        }
      }
    }
    if (foundItemTexture === null) {
      const blockNameParts = blockName.split("_");
      if (blockNameParts.length > 1) {
        const textureStringsForComplexMatch = [];
        for (const entry of rawTextureList) {
          if (typeof entry === "string") {
            textureStringsForComplexMatch.push(entry);
          } else if (typeof entry === "object" && entry !== null) {
            textureStringsForComplexMatch.push(...Object.values(entry));
          }
        }
        for (const textureString of textureStringsForComplexMatch) {
          const textureFileName = textureString.split("/").pop() ?? textureString;
          const textureParts = textureFileName.split("_");
          let matchCount = 0;
          let totalMatchedLength = 0;
          const matchedTextureIndices = /* @__PURE__ */ new Set();
          const matchedBlockIndices = /* @__PURE__ */ new Set();
          for (let i = 0; i < blockNameParts.length; i++) {
            const blockPart = blockNameParts[i];
            for (let j = 0; j < textureParts.length; j++) {
              if (matchedTextureIndices.has(j))
                continue;
              const texturePart = textureParts[j];
              if (blockPart === texturePart) {
                matchCount++;
                totalMatchedLength += blockPart.length;
                matchedTextureIndices.add(j);
                matchedBlockIndices.add(i);
                break;
              }
            }
          }
          const minPrefixLength = 4;
          for (let i = 0; i < blockNameParts.length; i++) {
            if (matchedBlockIndices.has(i))
              continue;
            const blockPart = blockNameParts[i];
            for (let j = 0; j < textureParts.length; j++) {
              if (matchedTextureIndices.has(j))
                continue;
              const texturePart = textureParts[j];
              let commonPrefixLen = 0;
              const lenToCompare = Math.min(blockPart.length, texturePart.length);
              for (let k = 0; k < lenToCompare; k++) {
                if (blockPart[k] === texturePart[k])
                  commonPrefixLen++;
                else
                  break;
              }
              if (commonPrefixLen >= minPrefixLength) {
                matchCount++;
                totalMatchedLength += commonPrefixLen;
                matchedTextureIndices.add(j);
                matchedBlockIndices.add(i);
                break;
              }
            }
          }
          const originalBlockNameLength = blockName.replace(/_/g, "").length;
          const textureNameLength = textureFileName.replace(/_/g, "").length;
          if (originalBlockNameLength === 0 || textureNameLength === 0)
            continue;
          const lengthRatio = Math.min(originalBlockNameLength, textureNameLength) / Math.max(originalBlockNameLength, textureNameLength);
          const minMatchCountForComplex = 2;
          const minTotalMatchedLengthRatio = 0.8;
          const minMatchCountRatio = blockNameParts.length > 0 ? 0.8 : 1;
          const minLengthRatioSimilarity = 0.7;
          const isSufficientlyCompleteMatch = matchCount >= blockNameParts.length;
          const isStrongPartialMatch = matchCount >= minMatchCountForComplex && totalMatchedLength >= originalBlockNameLength * minTotalMatchedLengthRatio && matchCount >= blockNameParts.length * minMatchCountRatio;
          if ((isSufficientlyCompleteMatch || isStrongPartialMatch) && lengthRatio >= minLengthRatioSimilarity) {
            foundItemTexture = textureString;
            break;
          }
        }
      }
    }
    const isInBlockCatalog = BlockTypes.get(blockId) !== void 0;
    const shouldRenderAsItem = foundItemTexture !== null || !isInBlockCatalog;
    this.logger.debug(
      `resolveIcon: blockId='${blockId}', namespace='${blockNamespace}', name='${blockName}', foundTexture='${foundItemTexture}', inCatalog=${isInBlockCatalog}, renderAsItem=${shouldRenderAsItem}`
    );
    if (shouldRenderAsItem) {
      return `${texturePath}${foundItemTexture ?? blockName}`;
    } else {
      return this.getItemAux(blockId);
    }
  }
  /**
   * Gets the AUX value for a block ID
   */
  static getItemAux(blockId) {
    const blockIdsType = blockIds_default;
    const auxValue = blockIdsType[blockId];
    if (auxValue === void 0) {
      return NaN;
    }
    return Number(auxValue) * 65536;
  }
  /**
   * Parses block tools data to determine which tools work with this block and returns a formatted icon string.
   */
  static getBlockToolIcons(block, player) {
    const blockId = block.typeId;
    const namespaceRemoved = blockId.replace(/:.*/, "");
    const blockTags = block.getTags();
    const matchedTagsData = blockTools_default.filter((tagRuleEntry) => {
      const typedTagRule = tagRuleEntry;
      let hasApplicablePositiveRule = false;
      let hasBlockingNegativeRule = false;
      for (const targetMatcher of typedTagRule.target) {
        if (typeof targetMatcher === "string") {
          const isNegation = targetMatcher.startsWith("!");
          const ruleContent = isNegation ? targetMatcher.substring(1) : targetMatcher;
          let currentRuleMatchesBlock = false;
          if (ruleContent === blockId) {
            currentRuleMatchesBlock = true;
          } else if (!ruleContent.includes(":")) {
            if (ruleContent === namespaceRemoved) {
              currentRuleMatchesBlock = true;
            } else if (blockId.includes(ruleContent)) {
              currentRuleMatchesBlock = true;
            }
          }
          if (currentRuleMatchesBlock) {
            if (isNegation) {
              hasBlockingNegativeRule = true;
              break;
            } else {
              hasApplicablePositiveRule = true;
            }
          }
        } else if (typeof targetMatcher === "object" && targetMatcher.tag) {
          const requiredTagRule = targetMatcher.tag;
          const isNegation = requiredTagRule.startsWith("!");
          const actualTag = isNegation ? requiredTagRule.substring(1) : requiredTagRule;
          if (blockTags.includes(actualTag)) {
            if (isNegation) {
              hasBlockingNegativeRule = true;
              break;
            } else {
              hasApplicablePositiveRule = true;
            }
          }
        }
      }
      if (hasBlockingNegativeRule) {
        return false;
      }
      return hasApplicablePositiveRule;
    });
    let playerMainHandItemTags = [];
    let playerMainHandItemTypeId = "__r4ui:none";
    try {
      const equipComponent = player.getComponent(EntityComponentTypes.Equippable);
      const mainHandItem = equipComponent?.getEquipment(EquipmentSlot2.Mainhand);
      if (mainHandItem) {
        playerMainHandItemTags = mainHandItem.getTags();
        playerMainHandItemTypeId = mainHandItem.typeId || "__r4ui:none";
      }
    } catch {
    }
    const processedTags = [];
    for (const tagData of matchedTagsData) {
      const typedTagData = tagData;
      let remarkIcon = "z" /* UNDEFINED */;
      const tagNameUpper = typedTagData.name.toUpperCase();
      const iconId = BlockToolsEnum[tagNameUpper] || "zz" /* UNDEFINED */;
      if (typedTagData.remarks) {
        for (const jsonRemarkKey in typedTagData.remarks) {
          const enumKeyCandidate = jsonRemarkKey.toUpperCase();
          if (enumKeyCandidate in TagRemarksEnum) {
            const remarkEnumValue = TagRemarksEnum[enumKeyCandidate];
            const conditions = typedTagData.remarks[jsonRemarkKey];
            let conditionMet = false;
            if (conditions.itemIds) {
              conditionMet = conditions.itemIds.some((idRule) => _BlockHandler.checkRemarkConditionRule(playerMainHandItemTypeId, idRule));
            }
            if (!conditionMet && conditions.tags) {
              conditionMet = conditions.tags.some((tagRule) => playerMainHandItemTags.some((heldItemTag) => _BlockHandler.checkRemarkConditionRule(heldItemTag, tagRule)));
            }
            if (conditionMet) {
              remarkIcon = remarkEnumValue;
              break;
            }
          }
        }
      }
      const firstLetter = iconId.charAt(0);
      if (processedTags.some((tag) => tag.id.startsWith(firstLetter))) {
        continue;
      }
      processedTags.push({ id: iconId, remark: remarkIcon });
      if (processedTags.length >= 2)
        break;
    }
    const tag1 = processedTags[0] || { id: "zz" /* UNDEFINED */, remark: "z" /* UNDEFINED */ };
    const tag2 = processedTags[1] || { id: "zz" /* UNDEFINED */, remark: "z" /* UNDEFINED */ };
    return `:${tag1.id},${tag1.remark};${tag2.id},${tag2.remark}:`;
  }
  /**
   * Gets block states in a readable format
   */
  static getBlockStates(block) {
    try {
      const permutation = block.permutation;
      const states = permutation.getAllStates();
      const blockStates = Object.keys(states).sort();
      if (blockStates.length === 0)
        return "";
      return `
${blockStates.map((state) => `\xA77${state.replace(/.+:/g, "")}: ${states[state]}\xA7r`).join("\n")}`;
    } catch {
      return "";
    }
  }
  /**
   * Gets block inventory contents
   */
  static getBlockInventory(block) {
    try {
      const inventoryComponent = block.getComponent(EntityComponentTypes.Inventory);
      const blockContainer = inventoryComponent?.container;
      if (!blockContainer)
        return "none";
      const items = [];
      for (let i = 0; i < blockContainer.size; i++) {
        const itemStack = blockContainer.getItem(i);
        if (itemStack) {
          items.push(itemStack.typeId);
        }
      }
      return items.length > 0 ? items : "empty";
    } catch (e) {
      if (e instanceof Error && e.message.includes("Component")) {
        return "none";
      }
      return "error";
    }
  }
  /**
   * Creates block render data for UI display
   */
  static createRenderData(block, player) {
    return {
      toolIcons: this.getBlockToolIcons(block, player),
      blockStates: this.getBlockStates(block),
      inventory: this.getBlockInventory(block)
    };
  }
};
_BlockHandler.logger = Logger.getLogger("BlockHandler");
var BlockHandler = _BlockHandler;

// data/gametests/src/waila/EntityHandler.ts
import { EntityComponentTypes as EntityComponentTypes2, EquipmentSlot as EquipmentSlot3, TicksPerSecond } from "@minecraft/server";

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/armor.json
var armor_default = { "minecraft:turtle_helmet": 2, "minecraft:leather_helmet": 1, "minecraft:leather_chestplate": 3, "minecraft:leather_leggings": 2, "minecraft:leather_boots": 1, "minecraft:golden_helmet": 2, "minecraft:golden_chestplate": 5, "minecraft:golden_leggings": 3, "minecraft:golden_boots": 1, "minecraft:chainmail_helmet": 2, "minecraft:chainmail_chestplate": 5, "minecraft:chainmail_leggings": 4, "minecraft:chainmail_boots": 1, "minecraft:iron_helmet": 2, "minecraft:iron_chestplate": 6, "minecraft:iron_leggings": 5, "minecraft:iron_boots": 2, "minecraft:diamond_helmet": 3, "minecraft:diamond_chestplate": 8, "minecraft:diamond_leggings": 6, "minecraft:diamond_boots": 3, "minecraft:netherite_helmet": 3, "minecraft:netherite_chestplate": 8, "minecraft:netherite_leggings": 6, "minecraft:netherite_boots": 3 };

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/entityInteractions.json
var entityInteractions_default = [{ name: "can_climb", target: ["spider"] }, { name: "is_tradeable", remarks: { correct: { itemIds: ["minecraft:emerald"] } }, target: ["merchant", "wandering_trader", "villager"] }, { name: "is_rideable", remarks: { correct: { itemIds: ["minecraft:saddle"] } }, target: ["boat", "camel", "donkey", "horse", "minecart", "mule", "pig", "strider", "!piglin"] }, { name: "tameable", target: ["cat", "donkey", "horse", "llama", "mule", "parrot", "skeleton_horse", "wolf"] }, { name: "golden_apple", remarks: { correct: { itemIds: ["minecraft:golden_apple"] }, incorrect: { itemIds: ["!minecraft:golden_apple"] } }, target: ["horse", "donkey"] }, { name: "wheat", remarks: { correct: { itemIds: ["minecraft:wheat"] }, incorrect: { itemIds: ["!minecraft:wheat"] } }, target: ["cow", "goat", "mooshroom", "sheep"] }, { name: "potato", remarks: { correct: { itemIds: ["minecraft:potato"] }, incorrect: { itemIds: ["!minecraft:potato"] } }, target: ["pig", "!piglin"] }, { name: "seeds", remarks: { correct: { itemIds: ["minecraft:wheat_seeds"] }, incorrect: { itemIds: ["!minecraft:wheat_seeds"] } }, target: ["chicken", "parrot"] }, { name: "fish", remarks: { correct: { itemIds: ["minecraft:cod", "minecraft:salmon", "minecraft:tropical_fish"] }, incorrect: { itemIds: ["!minecraft:cod", "!minecraft:salmon", "!minecraft:tropical_fish"] } }, target: ["cat", "ocelot"] }, { name: "hay_bale", remarks: { correct: { itemIds: ["minecraft:hay_block"] }, incorrect: { itemIds: ["!minecraft:hay_block"] } }, target: ["llama"] }, { name: "flowers", remarks: { correct: { itemIds: ["minecraft:poppy", "minecraft:blue_orchid", "minecraft:allium", "minecraft:azure_bluet", "minecraft:red_tulip", "minecraft:orange_tulip", "minecraft:white_tulip", "minecraft:pink_tulip", "minecraft:oxeye_daisy", "minecraft:cornflower", "minecraft:lily_of_the_valley", "minecraft:dandelion", "minecraft:wither_rose", "minecraft:sunflower", "minecraft:lilac", "minecraft:rose_bush", "minecraft:peony", "minecraft:flowering_azalea", "minecraft:azalea_leaves_flowered", "minecraft:mangrove_propagule", "minecraft:pitcher_plant", "minecraft:torchflower", "minecraft:cherry_leaves", "minecraft:pink_petals", "minecraft:wildflowers", "minecraft:cactus_flower"] }, incorrect: { itemIds: ["!minecraft:poppy", "!minecraft:blue_orchid", "!minecraft:allium", "!minecraft:azure_bluet", "!minecraft:red_tulip", "!minecraft:orange_tulip", "!minecraft:white_tulip", "!minecraft:pink_tulip", "!minecraft:oxeye_daisy", "!minecraft:cornflower", "!minecraft:lily_of_the_valley", "!minecraft:dandelion", "!minecraft:wither_rose", "!minecraft:sunflower", "!minecraft:lilac", "!minecraft:rose_bush", "!minecraft:peony", "!minecraft:flowering_azalea", "!minecraft:azalea_leaves_flowered", "!minecraft:mangrove_propagule", "!minecraft:pitcher_plant", "!minecraft:torchflower", "!minecraft:cherry_leaves", "!minecraft:pink_petals", "!minecraft:wildflowers", "!minecraft:cactus_flower"] } }, target: ["bee", "rabbit"] }, { name: "fungi", remarks: { correct: { itemIds: ["minecraft:crimson_fungus"] }, incorrect: { itemIds: ["!minecraft:crimson_fungus"] } }, target: ["hoglin"] }, { name: "fungi", remarks: { correct: { itemIds: ["minecraft:warped_fungus"] }, incorrect: { itemIds: ["!minecraft:warped_fungus"] } }, target: ["strider"] }, { name: "slimeball", remarks: { correct: { itemIds: ["minecraft:slimeball"] }, incorrect: { itemIds: ["!minecraft:slimeball"] } }, target: ["frog"] }, { name: "cactus", remarks: { correct: { itemIds: ["minecraft:cactus"] }, incorrect: { itemIds: ["!minecraft:cactus"] } }, target: ["camel"] }, { name: "torchflower", remarks: { correct: { itemIds: ["minecraft:torchflower"] }, incorrect: { itemIds: ["!minecraft:torchflower"] } }, target: ["sniffer"] }, { name: "spider_eye", remarks: { correct: { itemIds: ["minecraft:spider_eye"] }, incorrect: { itemIds: ["!minecraft:spider_eye"] } }, target: ["armadillo"] }];

// json5:/home/runner/work/WAILA/WAILA/.regolith/tmp/data/gametests/src/data/ignoredEntityRender.json
var ignoredEntityRender_default = ["area_effect_cloud", "fireball", "minecart", "potion", "minecraft:arrow", "minecraft:boat", "minecraft:chest_boat", "minecraft:egg", "minecraft:eye_of_ender_signal", "minecraft:item", "minecraft:snowball", "minecraft:tnt", "minecraft:wind_charge_projectile"];

// data/gametests/src/waila/EntityHandler.ts
var EntityHandler = class _EntityHandler {
  /**
   * Helper function to check if a single value matches a condition rule.
   * Mirrors the logic used for TagsInterface.target matching.
   */
  static checkRemarkConditionRule(value, rule) {
    const valueNamePart = value.includes(":") ? value.split(":")[1] : value;
    const isNegatedRule = rule.startsWith("!");
    const actualRule = isNegatedRule ? rule.substring(1) : rule;
    let positiveMatchFound = false;
    if (actualRule === value) {
      positiveMatchFound = true;
    } else if (!actualRule.includes(":") && actualRule === valueNamePart) {
      positiveMatchFound = true;
    } else if (!actualRule.includes(":") && value.includes(actualRule)) {
      positiveMatchFound = true;
    } else if (!actualRule.includes(":") && valueNamePart.includes(actualRule)) {
      positiveMatchFound = true;
    }
    return isNegatedRule ? !positiveMatchFound : positiveMatchFound;
  }
  /**
   * Creates lookup data for an entity
   */
  static createLookupData(entity) {
    const healthComponent = entity.getComponent(EntityComponentTypes2.Health);
    const lookupData = {
      type: "entity" /* ENTITY */,
      hitIdentifier: entity.typeId,
      entity,
      hp: healthComponent?.currentValue ?? 0,
      maxHp: healthComponent?.effectiveMax ?? 0
    };
    try {
      lookupData.effectsData = entity.getEffects().filter((effect) => effect.duration !== -1 && effect.amplifier !== -1).map((effect) => ({
        id: effect.typeId,
        amplifier: effect.amplifier,
        duration: Math.floor(effect.duration / TicksPerSecond)
      }));
    } catch {
      lookupData.effectsData = [];
    }
    if (entity.typeId === "minecraft:item") {
      const itemComponent = entity.getComponent(EntityComponentTypes2.Item);
      const itemData = lookupData;
      if (itemComponent?.itemStack) {
        itemData.itemStack = itemComponent.itemStack;
      }
    }
    return lookupData;
  }
  /**
   * Transforms entity ID into a displayable format
   */
  static transformEntityId(entity) {
    const entityId = entity.id ?? "0000000000000";
    if (ignoredEntityRender_default.some((id) => entity.typeId.includes(id))) {
      return "0000000000000";
    }
    const numericId = BigInt(entityId);
    return `${numericId < 0n ? "-" : ""}${String(numericId < 0n ? -numericId : numericId).padStart(12, "0")}`;
  }
  /**
   * Fetches entity tags based on components and interactions and returns a formatted icon string.
   */
  static getEntityTagIcons(entity, player) {
    const typeId = entity.typeId;
    const namespaceRemoved = typeId.replace(/:.*/, "");
    const interactionTagDefinitions = /* @__PURE__ */ new Map();
    entityInteractions_default.filter((tagDef) => {
      const typedTag = tagDef;
      let hasApplicablePositiveRule = false;
      let hasBlockingNegativeRule = false;
      for (const targetMatcher of typedTag.target) {
        if (typeof targetMatcher === "string") {
          const isNegation = targetMatcher.startsWith("!");
          const ruleContent = isNegation ? targetMatcher.substring(1) : targetMatcher;
          let currentRuleMatchesEntity = false;
          if (ruleContent === typeId) {
            currentRuleMatchesEntity = true;
          } else if (!ruleContent.includes(":")) {
            if (ruleContent === namespaceRemoved) {
              currentRuleMatchesEntity = true;
            } else if (typeId.includes(ruleContent)) {
              currentRuleMatchesEntity = true;
            }
          }
          if (currentRuleMatchesEntity) {
            if (isNegation) {
              hasBlockingNegativeRule = true;
              break;
            } else {
              hasApplicablePositiveRule = true;
            }
          }
        }
      }
      if (hasBlockingNegativeRule) {
        return false;
      }
      return hasApplicablePositiveRule;
    }).forEach((tagDef) => {
      const typedTag = tagDef;
      interactionTagDefinitions.set(typedTag.name.toUpperCase(), typedTag);
    });
    const componentDerivedTagNames = [];
    const getComponentValue = (ent, componentName) => {
      try {
        return ent.getComponent(componentName);
      } catch {
        return void 0;
      }
    };
    const componentList = [
      EntityComponentTypes2.CanFly,
      EntityComponentTypes2.CanPowerJump,
      EntityComponentTypes2.FireImmune,
      EntityComponentTypes2.IsBaby,
      EntityComponentTypes2.IsChested,
      EntityComponentTypes2.IsDyeable,
      EntityComponentTypes2.IsStunned,
      EntityComponentTypes2.IsTamed,
      EntityComponentTypes2.Projectile,
      EntityComponentTypes2.WantsJockey
    ];
    componentList.forEach((componentId) => {
      if (getComponentValue(entity, componentId)) {
        const tagName = componentId.replace("minecraft:", "").toUpperCase();
        componentDerivedTagNames.push(tagName);
      }
    });
    const allPotentialTagNames = /* @__PURE__ */ new Set([...interactionTagDefinitions.keys(), ...componentDerivedTagNames]);
    if (allPotentialTagNames.has("IS_BABY")) {
      allPotentialTagNames.delete("IS_RIDEABLE");
    }
    if (allPotentialTagNames.has("IS_TAMED")) {
      allPotentialTagNames.delete("TAMEABLE");
    }
    const orderedFinalTagNames = [];
    for (const name of interactionTagDefinitions.keys()) {
      if (allPotentialTagNames.has(name) && orderedFinalTagNames.length < 2 && !orderedFinalTagNames.includes(name)) {
        orderedFinalTagNames.push(name);
      }
    }
    for (const name of componentDerivedTagNames) {
      if (allPotentialTagNames.has(name) && orderedFinalTagNames.length < 2 && !orderedFinalTagNames.includes(name)) {
        orderedFinalTagNames.push(name);
      }
    }
    const finalTagNamesForProcessing = orderedFinalTagNames.slice(0, 2);
    let playerMainHandItemTags = [];
    let playerMainHandItemTypeId = "__r4ui:none";
    try {
      const equipComponent = player.getComponent(EntityComponentTypes2.Equippable);
      const mainHandItem = equipComponent?.getEquipment(EquipmentSlot3.Mainhand);
      if (mainHandItem) {
        playerMainHandItemTags = mainHandItem.getTags();
        playerMainHandItemTypeId = mainHandItem.typeId || "__r4ui:none";
      }
    } catch {
    }
    const processedTagsOutput = [];
    for (const tagName of finalTagNamesForProcessing) {
      const iconId = EntityInteractionsEnum[tagName] || "zz" /* UNDEFINED */;
      let remarkIcon = "z" /* UNDEFINED */;
      const tagDefinitionForRemarks = interactionTagDefinitions.get(tagName);
      if (tagDefinitionForRemarks?.remarks) {
        for (const jsonRemarkKey in tagDefinitionForRemarks.remarks) {
          const enumKeyCandidate = jsonRemarkKey.toUpperCase();
          if (enumKeyCandidate in TagRemarksEnum) {
            const remarkEnumValue = TagRemarksEnum[enumKeyCandidate];
            const conditions = tagDefinitionForRemarks.remarks[jsonRemarkKey];
            let conditionMet = false;
            if (conditions.itemIds) {
              conditionMet = conditions.itemIds.some((idRule) => _EntityHandler.checkRemarkConditionRule(playerMainHandItemTypeId, idRule));
            }
            if (!conditionMet && conditions.tags) {
              conditionMet = conditions.tags.some((tagRule) => playerMainHandItemTags.some((heldItemTag) => _EntityHandler.checkRemarkConditionRule(heldItemTag, tagRule)));
            }
            if (conditionMet) {
              remarkIcon = remarkEnumValue;
              break;
            }
          }
        }
      }
      processedTagsOutput.push({ id: iconId, remark: remarkIcon });
    }
    const tag1 = processedTagsOutput[0] || { id: "zz" /* UNDEFINED */, remark: "z" /* UNDEFINED */ };
    const tag2 = processedTagsOutput[1] || { id: "zz" /* UNDEFINED */, remark: "z" /* UNDEFINED */ };
    return `:${tag1.id},${tag1.remark};${tag2.id},${tag2.remark}:`;
  }
  /**
   * Creates health renderer string based on current and max health
   */
  static healthRenderer(currentHealth, maxHealth, MAX_LENGTH = 40) {
    let displayCurrent = currentHealth;
    let displayMax = maxHealth;
    if (displayMax > MAX_LENGTH) {
      displayCurrent = Math.round(displayCurrent / displayMax * MAX_LENGTH);
      displayMax = MAX_LENGTH;
    }
    const healthIcons = { empty: "a", half: "b", full: "c", padding: "y" };
    const MAX_HEARTS_DISPLAY = Math.ceil(displayMax / 2);
    displayCurrent = Math.max(0, displayCurrent);
    const fullHearts = Math.floor(displayCurrent / 2);
    const halfHearts = displayCurrent % 2;
    const emptyHearts = Math.max(0, MAX_HEARTS_DISPLAY - fullHearts - halfHearts);
    let healthString = healthIcons.full.repeat(fullHearts) + healthIcons.half.repeat(halfHearts) + healthIcons.empty.repeat(emptyHearts);
    const paddingNeeded = 20 - healthString.length;
    if (paddingNeeded > 0) {
      healthString += healthIcons.padding.repeat(paddingNeeded);
    } else if (paddingNeeded < 0) {
      healthString = healthString.substring(0, 20);
    }
    return healthString || "yyyyyyyyyyyyyyyyyyyy";
  }
  /**
   * Renders armor for a player or entity
   */
  static armorRenderer(entity) {
    const equipComponent = entity.getComponent(EntityComponentTypes2.Equippable);
    if (!equipComponent)
      return "dddddddddd";
    const armorTypes = armor_default;
    const currentArmor = [
      EquipmentSlot3.Head,
      EquipmentSlot3.Chest,
      EquipmentSlot3.Legs,
      EquipmentSlot3.Feet
    ].reduce((total, slot) => {
      const item = equipComponent.getEquipment(slot);
      return total + (armorTypes[item?.typeId ?? ""] || 0);
    }, 0);
    const maxArmor = 20;
    const armorIcons = { empty: "d", half: "e", full: "f" };
    const MAX_ARMOR_DISPLAY = Math.ceil(maxArmor / 2);
    const fullArmor = Math.floor(currentArmor / 2);
    const halfArmor = currentArmor % 2;
    const emptyArmor = Math.max(0, MAX_ARMOR_DISPLAY - fullArmor - halfArmor);
    let armorString = armorIcons.full.repeat(fullArmor) + armorIcons.half.repeat(halfArmor) + armorIcons.empty.repeat(emptyArmor);
    const paddingNeeded = 10 - armorString.length;
    if (paddingNeeded > 0) {
      armorString += armorIcons.empty.repeat(paddingNeeded);
    } else if (paddingNeeded < 0) {
      armorString = armorString.substring(0, 10);
    }
    return armorString || "dddddddddd";
  }
  /**
   * Renders entity effects into a formatted string
   */
  static effectsRenderer(entity) {
    const MAX_EFFECTS_TO_RESOLVE = 6;
    const effectList = [
      { name: "speed", id: 1, is_negative: false },
      { name: "slowness", id: 2, is_negative: true },
      { name: "haste", id: 3, is_negative: false },
      { name: "mining_fatigue", id: 4, is_negative: true },
      { name: "strength", id: 5, is_negative: false },
      { name: "instant_health", id: 6, is_negative: false },
      { name: "instant_damage", id: 7, is_negative: true },
      { name: "jump_boost", id: 8, is_negative: false },
      { name: "nausea", id: 9, is_negative: true },
      { name: "regeneration", id: 10, is_negative: false },
      { name: "resistance", id: 11, is_negative: false },
      { name: "fire_resistance", id: 12, is_negative: false },
      { name: "water_breathing", id: 13, is_negative: false },
      { name: "invisibility", id: 14, is_negative: false },
      { name: "blindness", id: 15, is_negative: true },
      { name: "night_vision", id: 16, is_negative: false },
      { name: "hunger", id: 17, is_negative: true },
      { name: "weakness", id: 18, is_negative: true },
      { name: "poison", id: 19, is_negative: true },
      { name: "wither", id: 20, is_negative: true },
      { name: "health_boost", id: 21, is_negative: false },
      { name: "absorption", id: 22, is_negative: false },
      { name: "saturation", id: 23, is_negative: false },
      { name: "levitation", id: 24, is_negative: true },
      { name: "fatal_poison", id: 25, is_negative: true },
      { name: "slow_falling", id: 26, is_negative: false },
      { name: "conduit_power", id: 27, is_negative: false },
      { name: "bad_omen", id: 28, is_negative: true },
      { name: "village_hero", id: 29, is_negative: false },
      { name: "darkness", id: 30, is_negative: true },
      { name: "wind_charged", id: 31, is_negative: true },
      { name: "weaving", id: 32, is_negative: true },
      { name: "oozing", id: 33, is_negative: true },
      { name: "infested", id: 34, is_negative: true }
    ];
    let effectString = "";
    let effectsResolved = 0;
    const effectsResolvedArray = [];
    for (const effectInfo of effectList) {
      let effectData;
      try {
        effectData = entity.getEffect(effectInfo.name);
      } catch {
        effectData = void 0;
      }
      if (effectData?.duration === -1 || effectData?.amplifier === -1) {
        effectData = void 0;
      }
      let effectDuration = effectData?.duration ?? 0;
      let effectAmplifier = effectData?.amplifier ?? 0;
      const effectTypeId = effectData?.typeId;
      if (effectsResolved >= MAX_EFFECTS_TO_RESOLVE) {
        effectDuration = 0;
        effectAmplifier = 0;
      } else {
        effectAmplifier = effectTypeId ? Math.min(effectAmplifier + 1, 9) : 0;
      }
      if (effectTypeId) {
        effectsResolved++;
        if (effectDuration > 0) {
          effectsResolvedArray.push(effectTypeId);
        }
      }
      effectDuration /= TicksPerSecond;
      const effectDurationMinutes = Math.min(99, Math.floor(effectDuration / 60));
      const effectDurationSeconds = Math.floor(effectDuration % 60);
      const effectCombinedDurationStr = `${effectDurationMinutes.toString().padStart(2, "0")}:${effectDurationSeconds.toString().padStart(2, "0")}`;
      effectString += `d${effectCombinedDurationStr}p${effectAmplifier.toString().padStart(1, "0")}`;
    }
    return { effectString, effectsResolvedArray };
  }
  /**
   * Creates entity render data for UI display
   */
  static createRenderData(entity, player, isPlayer) {
    const healthComponent = entity.getComponent(EntityComponentTypes2.Health);
    const currentHp = Math.floor(healthComponent?.currentValue ?? 0);
    const maxHp = Math.floor(healthComponent?.effectiveMax ?? 0);
    const intHealthDisplay = entity.matches({ families: ["inanimate"] }) || maxHp > 40 && !entity.matches({ type: "minecraft:player" });
    let healthRenderer;
    if (!intHealthDisplay) {
      healthRenderer = this.healthRenderer(
        currentHp,
        maxHp,
        isPlayer ? 20 : 40
      );
    } else if (maxHp > 40 && !isPlayer) {
      healthRenderer = "xyyyyyyyyyyyyyyyyyyy";
    } else {
      healthRenderer = "yyyyyyyyyyyyyyyyyyyy";
    }
    return {
      entityId: this.transformEntityId(entity),
      tagIcons: this.getEntityTagIcons(entity, player),
      hp: currentHp,
      maxHp,
      intHealthDisplay,
      healthRenderer,
      armorRenderer: this.armorRenderer(entity),
      effectsRenderer: this.effectsRenderer(entity)
    };
  }
};

// data/gametests/src/waila/Waila.ts
var WAILA = class _WAILA {
  constructor() {
    this.log = Logger.getLogger("Waila");
    this.MAX_DISTANCE = 8;
    this.playerPreviousLookState = /* @__PURE__ */ new Map();
    Logger.setLevel(LogLevel.Trace);
    const additionalTickInterval = MemoryTier.SuperHigh - system5.serverSystemInfo.memoryTier;
    const tickInterval = 1 + additionalTickInterval;
    system5.runInterval(() => this.toAllPlayers(), tickInterval);
    this.log.info(`WAILA loaded and running at ${tickInterval} tick(s) at a time.`);
  }
  static getInstance() {
    if (!_WAILA.instance) {
      _WAILA.instance = new _WAILA();
    }
    return _WAILA.instance;
  }
  /**
   * Requests the process for each player in the world.
   */
  toAllPlayers() {
    world4.getAllPlayers().forEach((player) => {
      const lookAtObject = this.fetchLookAt(player, this.MAX_DISTANCE);
      if (lookAtObject.hitIdentifier === void 0) {
        lookAtObject.hitIdentifier = "__r4ui:none";
        player.setDynamicProperty("r4isen1920_waila:old_log", void 0);
      }
      this.displayUI(player, lookAtObject);
    });
  }
  //#region Fetch
  /**
   * Fetches what block or entity the specified player is looking at.
   */
  fetchLookAt(player, max_dist) {
    try {
      const entityLookAt = player.getEntitiesFromViewDirection({
        maxDistance: max_dist
      });
      const playerEquippedItem = player.getComponent(EntityComponentTypes3.Equippable)?.getEquipment(EquipmentSlot4.Mainhand)?.typeId || "__r4ui:none";
      if (entityLookAt.length > 0 && entityLookAt[0]?.entity) {
        const entity = entityLookAt[0].entity;
        const lookAtEntity = EntityHandler.createLookupData(entity);
        lookAtEntity.viewAdditionalProperties = player.isSneaking;
        lookAtEntity.itemHeld = playerEquippedItem;
        return lookAtEntity;
      }
      const blockLookAt = player.getBlockFromViewDirection({
        includeLiquidBlocks: !player.isInWater,
        includePassableBlocks: !player.isInWater,
        maxDistance: max_dist
      });
      if (blockLookAt?.block) {
        const lookAtBlock = BlockHandler.createLookupData(blockLookAt.block);
        lookAtBlock.viewAdditionalProperties = player.isSneaking;
        lookAtBlock.itemHeld = playerEquippedItem;
        return lookAtBlock;
      }
      return {
        type: void 0,
        hitIdentifier: "__r4ui:none",
        viewAdditionalProperties: player.isSneaking,
        itemHeld: playerEquippedItem
      };
    } catch (e) {
      if (!(e instanceof LocationOutOfWorldBoundariesError)) {
        this.log.error(`Error in fetchLookAt: ${e}`);
      }
      return {
        type: void 0,
        hitIdentifier: "__r4ui:none",
        viewAdditionalProperties: player.isSneaking,
        itemHeld: "__r4ui:none"
      };
    }
  }
  /**
   * Fetches metadata for the looked-at object.
   */
  fetchLookAtMetadata(player, lookAtObject) {
    if (!lookAtObject.type || !lookAtObject.hitIdentifier || lookAtObject.hitIdentifier === "__r4ui:none") {
      return null;
    }
    const hitNamespace = lookAtObject.hitIdentifier.includes(":") ? lookAtObject.hitIdentifier.substring(0, lookAtObject.hitIdentifier.indexOf(":") + 1) : "minecraft:";
    let resultDisplayName = lookAtObject.hitIdentifier;
    let nameTagContextTranslationKey_local = void 0;
    let itemContextIdentifier_local = void 0;
    let resolvedIcon = NaN;
    const nameAliasTypes = nameAliases_default;
    if (lookAtObject.type === "entity" /* ENTITY */) {
      const entity = lookAtObject.entity;
      const entityNameTag = entity.nameTag;
      const entityTypeId = entity.typeId;
      const cleanEntityTypeId = entityTypeId.replace(/minecraft:/gm, "");
      const entityRenderData = EntityHandler.createRenderData(
        entity,
        player,
        entityTypeId === "minecraft:player"
      );
      const humanoidLikeEntities = [
        "minecraft:player"
      ];
      if (entityNameTag && entityNameTag.length > 0) {
        resultDisplayName = entityNameTag;
        nameTagContextTranslationKey_local = `entity.${cleanEntityTypeId}.name`;
      } else {
        if (humanoidLikeEntities.includes(entityTypeId)) {
          if (entityTypeId === "minecraft:player" && entity instanceof Player4) {
            resultDisplayName = `__r4ui:humanoid.${entity.name}`;
          } else {
            resultDisplayName = "__r4ui:humanoid_translate_type";
          }
        } else if (entityTypeId === "minecraft:item") {
          resultDisplayName = "entity.item.name";
          const itemEntity = lookAtObject;
          const itemStack = itemEntity.itemStack;
          if (itemStack) {
            itemContextIdentifier_local = itemStack.typeId;
            resolvedIcon = BlockHandler.resolveIcon(itemStack.typeId);
          }
        } else if (entityTypeId === "minecraft:npc") {
          resultDisplayName = "npcscreen.npc";
        } else {
          resultDisplayName = `entity.${cleanEntityTypeId}.name`;
        }
      }
      return {
        type: lookAtObject.type,
        hitIdentifier: entityTypeId,
        namespace: hitNamespace,
        icon: resolvedIcon,
        // NaN for non-item entities, aux value for item entities
        displayName: resultDisplayName,
        renderData: entityRenderData,
        ...nameTagContextTranslationKey_local && { nameTagContextTranslationKey: nameTagContextTranslationKey_local },
        ...itemContextIdentifier_local && { itemContextIdentifier: itemContextIdentifier_local }
      };
    }
    if (lookAtObject.type === "tile" /* TILE */) {
      const block = lookAtObject.block;
      const blockId = lookAtObject.hitIdentifier;
      resolvedIcon = BlockHandler.resolveIcon(blockId);
      const blockRenderData = BlockHandler.createRenderData(block, player);
      if (hitNamespace === "minecraft:") {
        const nameAlias = nameAliasTypes[blockId.replace(hitNamespace, "")];
        resultDisplayName = `${nameAlias?.startsWith("item.") ? "" : "tile."}${!nameAlias ? blockId.replace(hitNamespace, "") : nameAlias}.name`;
      } else {
        resultDisplayName = `${lookAtObject.type}.${blockId}.name`;
      }
      return {
        type: lookAtObject.type,
        hitIdentifier: blockId,
        namespace: hitNamespace,
        icon: resolvedIcon,
        displayName: resultDisplayName,
        renderData: blockRenderData
      };
    }
    return null;
  }
  //#region Render
  /**
   * Clears the UI for the specified player.
   */
  clearUI(player) {
    const options = {
      fadeInDuration: 0,
      fadeOutDuration: 0,
      stayDuration: 0
    };
    player.onScreenDisplay.setTitle(" ", options);
    try {
      player.runCommand(`title @s reset`);
    } catch (e) {
      this.log.warn(`Failed to run title reset command for ${player.name}: ${e}`);
    }
    player.setDynamicProperty("r4isen1920_waila:old_log", void 0);
  }
  /**
   * Handles final string parse and sends a request to the UI.
   */
  displayUI(player, lookAtObject) {
    const hasTarget = lookAtObject.hitIdentifier !== "__r4ui:none";
    const playerId = player.id;
    const hadPreviousTarget = this.playerPreviousLookState.get(playerId) ?? false;
    this.playerPreviousLookState.set(playerId, hasTarget);
    if (!hasTarget) {
      if (hadPreviousTarget) {
        this.clearUI(player);
      }
      return;
    }
    const comparisonData = this.createComparisonData(lookAtObject);
    const oldLog = player.getDynamicProperty("r4isen1920_waila:old_log");
    if (oldLog === comparisonData)
      return;
    player.setDynamicProperty("r4isen1920_waila:old_log", comparisonData);
    const metadata = this.fetchLookAtMetadata(player, lookAtObject);
    if (!metadata) {
      this.log.warn(`Failed to fetch metadata for ${lookAtObject.hitIdentifier}, clearing UI.`);
      this.clearUI(player);
      return;
    }
    const { title, subtitle } = this.generateUIComponents(player, metadata);
    player.onScreenDisplay.setTitle(title, {
      subtitle,
      fadeInDuration: 0,
      fadeOutDuration: 0,
      stayDuration: TicksPerSecond2 * 60
    });
  }
  /**
   * Creates a comparison string to determine if UI needs updating
   */
  createComparisonData(lookAtObject) {
    const baseData = {
      hit: lookAtObject.hitIdentifier,
      sneaking: lookAtObject.viewAdditionalProperties,
      itemHeld: lookAtObject.itemHeld
    };
    if (lookAtObject.type === "entity" /* ENTITY */) {
      const entityData = lookAtObject;
      Object.assign(baseData, {
        hp: entityData.hp,
        maxHp: entityData.maxHp,
        armor: EntityHandler.armorRenderer(entityData.entity),
        effects: entityData.effectsData?.map((e) => `${e.id}:${e.amplifier}:${e.duration}`).join(",") || ""
      });
    } else if (lookAtObject.type === "tile" /* TILE */ && lookAtObject.block) {
      const blockData = lookAtObject;
      Object.assign(baseData, {
        states: BlockHandler.getBlockStates(blockData.block)
      });
    }
    return JSON.stringify(baseData);
  }
  /**
   * Generates UI components for the title display
   */
  generateUIComponents(player, metadata) {
    const parseStrSubtitle = metadata.type === "entity" /* ENTITY */ && !metadata.itemContextIdentifier ? [{ text: metadata.renderData.entityId || "" }] : [{ text: typeof metadata.icon === "string" && metadata.icon.startsWith("textures/") ? metadata.icon : "" }];
    const isTileOrItemEntity = metadata.type === "tile" /* TILE */ || metadata.type === "entity" /* ENTITY */ && !!metadata.itemContextIdentifier;
    const prefixType = isTileOrItemEntity ? "A" : "B";
    let iconOrHealthArmor = "";
    let finalTagIcons = "";
    let effectsStr = "";
    if (isTileOrItemEntity) {
      iconOrHealthArmor = typeof metadata.icon === "number" ? `${metadata.icon >= 0 ? "" : "-"}${String(Math.abs(metadata.icon)).padStart(metadata.icon >= 0 ? 9 : 8, "0")}` : "000000000";
      if (metadata.type === "tile" /* TILE */) {
        const blockData = metadata.renderData;
        finalTagIcons = blockData.toolIcons;
      } else {
        finalTagIcons = `:zz,f;zz,f:`;
      }
    } else {
      const entityData = metadata.renderData;
      iconOrHealthArmor = `${entityData.healthRenderer}${entityData.armorRenderer}`;
      finalTagIcons = entityData.tagIcons;
      effectsStr = `${entityData.effectsRenderer.effectString}e${entityData.effectsRenderer.effectsResolvedArray.length.toString().padStart(2, "0")}`;
    }
    const nameElements = [];
    if (metadata.nameTagContextTranslationKey) {
      nameElements.push({ text: `${metadata.displayName} \xA77(` });
      nameElements.push({ translate: metadata.nameTagContextTranslationKey });
      nameElements.push({ text: ")\xA7r" });
    } else if (metadata.displayName === "__r4ui:humanoid_translate_type") {
      nameElements.push({ text: "__r4ui:humanoid." });
      const cleanHitIdentifier = metadata.hitIdentifier.replace(/minecraft:/gm, "");
      nameElements.push({ translate: `entity.${cleanHitIdentifier}.name` });
    } else if (metadata.displayName.startsWith("__r4ui:humanoid.")) {
      nameElements.push({ text: metadata.displayName });
    } else {
      nameElements.push({ translate: metadata.displayName });
    }
    nameElements.push({ text: "\xA7r" });
    const blockStatesText = metadata.type === "tile" /* TILE */ && player.isSneaking ? metadata.renderData.blockStates : "";
    const itemEntityText = metadata.type === "entity" /* ENTITY */ && metadata.itemContextIdentifier ? `
\xA77${metadata.itemContextIdentifier}\xA7r` : "";
    let healthText = "";
    let paddingNewlines = "";
    if (metadata.type === "entity" /* ENTITY */) {
      const entityData = metadata.renderData;
      if (entityData.maxHp > 0 && entityData.intHealthDisplay) {
        const percentage = Math.round(entityData.hp / entityData.maxHp * 100);
        const hpDisplay = entityData.maxHp < 1e6 ? (
          // "" corresponds to health icon in the UI
          `\uE10C ${entityData.hp}/${entityData.maxHp} (${percentage}%)`
        ) : "\uE10C \u221E";
        healthText = `
\xA77 ${hpDisplay}\xA7r`;
      }
      if (entityData.maxHp > 0 && entityData.maxHp <= 40 && !entityData.intHealthDisplay) {
        paddingNewlines += "\n";
      }
      if (entityData.maxHp > 20 && entityData.maxHp <= 40 && !entityData.intHealthDisplay) {
        paddingNewlines += "\n";
      }
      if (entityData.maxHp > 40 && !entityData.intHealthDisplay) {
        healthText = `
\xA77 ${entityData.maxHp < 1e6 ? `${entityData.hp}/${entityData.maxHp} (${Math.round(entityData.hp / entityData.maxHp * 100)}%)` : "\u221E"}\xA7r`;
      }
      const numEffects = entityData.effectsRenderer.effectsResolvedArray.length;
      if (numEffects > 0 && numEffects < 4) {
        paddingNewlines += "\n\n".repeat(numEffects);
      } else if (numEffects >= 4) {
        paddingNewlines += !entityData.intHealthDisplay && entityData.maxHp > 40 ? "\n" : "\n\n";
      }
      if (entityData.armorRenderer !== "dddddddddd") {
        paddingNewlines += "\n";
      }
    }
    const namespacesType = namespaces_default;
    const namespaceKey = Object.keys(namespacesType).find((ns) => metadata.namespace.startsWith(ns));
    const namespaceText = namespaceKey ? namespacesType[namespaceKey].display_name : metadata.namespace.length > 3 ? metadata.namespace.replace(/_/g, " ").replace(":", "").toTitle().abrevCaps() : metadata.namespace.replace(":", "").toUpperCase();
    const parseStr = [
      { text: `_r4ui:${prefixType}:` },
      { text: iconOrHealthArmor },
      { text: finalTagIcons },
      { text: effectsStr },
      ...nameElements,
      { text: blockStatesText },
      { text: itemEntityText },
      { text: healthText },
      { text: paddingNewlines },
      { text: "\n\xA79\xA7o" },
      { translate: namespaceText },
      { text: "\xA7r" }
    ];
    const filteredTitle = parseStr.filter(
      (part) => !(typeof part === "object" && "text" in part && part.text === "")
    );
    this.log.debug(filteredTitle, parseStrSubtitle);
    return { title: filteredTitle, subtitle: parseStrSubtitle };
  }
};
WAILA.getInstance();
/**
 *
 * @author
 * r4isen1920
 * https://mcpedl.com/user/r4isen1920
 *
 * @license
 * MIT License
 *
 */
