UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

59 lines (58 loc) 2.92 kB
"use strict"; /** * Helper functions that have to do with external programs. * * @module */ Object.defineProperty(exports, "__esModule", { value: true }); exports.rebirthItemTrackerRemoveCollectible = rebirthItemTrackerRemoveCollectible; exports.rebirthItemTrackerWriteToFile = rebirthItemTrackerWriteToFile; const collectibles_1 = require("./collectibles"); const REBIRTH_ITEM_TRACKER_REMOVE_COLLECTIBLE_COMMAND = "REBIRTH_ITEM_TRACKER_REMOVE_COLLECTIBLE"; const REBIRTH_ITEM_TRACKER_WRITE_TO_FILE_COMMAND = "REBIRTH_ITEM_TRACKER_WRITE_TO_FILE"; /** * Helper function to let the Rebirth Item Tracker know that it should remove a collectible from its * list. * * The "item tracker" in this function does not refer to the in-game item tracker, but rather to the * external Python program. * * This function is variadic, meaning that you can pass as many collectible types as you want to * remove. * * Note that calling this function is not normally necessary when removing collectibles from * players. For example, when you remove a collectible with the `EntityPlayer.RemoveCollectible` * method, a message is sent to the log file by the game and the item tracker will automatically * remove it. However, in some cases, manually removing collectibles can be useful: * * - We may be giving the player a "fake" collectible (e.g. 1-Up for the purposes of an extra life) * and do not want the fake collectible to show up on the tracker. * - We may be removing a starting active item. Since active items are never removed from the * tracker, we want to tell the item tracker that the player never had a particular active item to * begin with. * * @see https://github.com/Rchardon/RebirthItemTracker */ function rebirthItemTrackerRemoveCollectible(...collectibleTypes) { for (const collectibleType of collectibleTypes) { // This cannot use the "log" function since the prefix will prevent the Rebirth Item Tracker // from recognizing the message. const collectibleName = (0, collectibles_1.getCollectibleName)(collectibleType); Isaac.DebugString(`${REBIRTH_ITEM_TRACKER_REMOVE_COLLECTIBLE_COMMAND} Removing collectible ${collectibleType} (${collectibleName}) on player 0 (Player)`); } } /** * Helper function to let the Rebirth Item Tracker know that it should write the submitted text * string to a file. This is useful for capturing text in programs like Open Broadcaster Software * (OBS). * * The "item tracker" in this function does not refer to the in-game item tracker, but rather to the * external Python program. * * @see https://github.com/Rchardon/RebirthItemTracker */ function rebirthItemTrackerWriteToFile(msg) { // This cannot use the "log" function since the prefix will prevent the Rebirth Item Tracker from // recognizing the message. Isaac.DebugString(`${REBIRTH_ITEM_TRACKER_WRITE_TO_FILE_COMMAND} ${msg}`); }