UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

36 lines 1.98 kB
import { Feature } from "../../private/Feature"; export declare class PreventGridEntityRespawn extends Feature { private readonly runInNFrames; private readonly preUseItemWeNeedToGoDeeper; private readonly postNewRoomReordered; /** * Every time we re-enter the room, the sprites for all of the decorations will come back, so we * have to remove them again. */ private setDecorationsInvisible; /** * Helper function to prevent any removed grid entities from respawning if the player re-enters * the current room. * * This is accomplished by spawning a new grid entity on every tile that does not already have a * grid entity. This will force the game to spawn the new grid entity instead of the old one. The * natural grid entity to choose for this purpose is a decoration, since it is non-interacting. * Then, the decorations are made invisible and any shovel uses are intercepted to avoid creating * a crawl space (instead of a trapdoor). * * Another option besides decorations would be to use a pressure plates with a state of 1, which * is a state that is normally unused by the game and makes it invisible & persistent. However, * pickups will not be able to spawn on pressure plates, which lead to various bugs (e.g. pickups * spawning on top of pits). Thus, using a decoration is preferable. * * Yet another option to accomplish this would be to replace the room data with that of an empty * room. However, the room data must exactly match the room type, the room shape, and the doors, * so this is not possible to do in a robust way without adding empty rooms to the mod's `content` * folder to draw the data from. * * In order to use this function, you must upgrade your mod with * `ISCFeature.PREVENT_GRID_ENTITY_RESPAWN`. */ preventGridEntityRespawn(): void; } //# sourceMappingURL=PreventGridEntityRespawn.d.ts.map