UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

41 lines (40 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSlotName = getSlotName; exports.isSlotMachine = isSlotMachine; const isaac_typescript_definitions_1 = require("isaac-typescript-definitions"); const slotNames_1 = require("../objects/slotNames"); const ReadonlySet_1 = require("../types/ReadonlySet"); const entityTypes_1 = require("./entityTypes"); const SLOT_MACHINE_VARIANTS = new ReadonlySet_1.ReadonlySet([ isaac_typescript_definitions_1.SlotVariant.SLOT_MACHINE, // 1 isaac_typescript_definitions_1.SlotVariant.BLOOD_DONATION_MACHINE, // 2, isaac_typescript_definitions_1.SlotVariant.FORTUNE_TELLING_MACHINE, // 3 isaac_typescript_definitions_1.SlotVariant.DONATION_MACHINE, // 8 isaac_typescript_definitions_1.SlotVariant.SHOP_RESTOCK_MACHINE, // 10 isaac_typescript_definitions_1.SlotVariant.GREED_DONATION_MACHINE, // 11 isaac_typescript_definitions_1.SlotVariant.MOMS_DRESSING_TABLE, // 12 isaac_typescript_definitions_1.SlotVariant.CRANE_GAME, // 16 isaac_typescript_definitions_1.SlotVariant.CONFESSIONAL, // 17 ]); /** * Helper function to get the name of a slot, as listed in the "entities2.xml" file. Returns * "Unknown" if the provided slot variant is not valid. * * This function only works for vanilla slot variants. * * For example, `getSlotName(SlotVariant.BLOOD_DONATION_MACHINE)` would return "Blood Donation * Machine". */ function getSlotName(slotVariant) { // Handle modded slots. // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition return slotNames_1.SLOT_NAMES[slotVariant] ?? slotNames_1.DEFAULT_SLOT_NAME; } /** Returns true for the specific variants of `EntityType.SLOT` that are machines. */ function isSlotMachine(entity) { if (!(0, entityTypes_1.isSlot)(entity)) { return false; } return SLOT_MACHINE_VARIANTS.has(entity.Variant); }