isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
59 lines (58 loc) • 2.92 kB
JavaScript
;
/**
* 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}`);
}