isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
41 lines (40 loc) • 1.9 kB
JavaScript
;
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);
}