UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

88 lines 4.03 kB
import type { DoorSlot } from "isaac-typescript-definitions"; import { RoomShape } from "isaac-typescript-definitions"; import type { Corner } from "../interfaces/Corner"; /** * Helper function to get the grid index delta that a door out of the given room shape would lead * to. For example, if you went through the bottom door in a room of `RoomShape.SHAPE_1x2`, you * would end up in a room with a grid index that is +26 units from the `SafeGridIndex` of where you * started. */ export declare function getGridIndexDelta(roomShape: RoomShape, doorSlot: DoorSlot): int | undefined; /** * Helper function to see if a given room shape will grant a single charge or a double charge to the * player's active item(s). * * For example, `RoomShape.SHAPE_2x2` will return 2. */ export declare function getRoomShapeBottomRightPosition(roomShape: RoomShape): Readonly<Vector>; /** * Helper function to get the grid position of the bottom-right tile of a given room shape. * * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left * wall would be at "Vector(-1, -1)".) */ export declare function getRoomShapeBounds(roomShape: RoomShape): readonly [width: int, height: int]; /** * Helper function to get the number of charges that a given room shape will grant to a player upon * clearing it. * * For example, `RoomShape.SHAPE_2x2` will return 2. */ export declare function getRoomShapeCharges(roomShape: RoomShape): int; /** * Helper function to get the corners that exist in the given room shape. * * Note that these corner locations are not accurate for the Mother Boss Room and the Home closet * rooms. (Those rooms have custom shapes.) */ export declare function getRoomShapeCorners(roomShape: RoomShape): readonly Corner[]; /** * Helper function to get the dimensions of a room shape's layout. This is NOT the size of the * room's actual contents! For that, use the `getRoomShapeBounds` function. * * For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room. */ export declare function getRoomShapeLayoutSize(roomShape: RoomShape): readonly [width: int, height: int]; /** * Helper function to get the grid position of the top-left tile of a given room shape. * * "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left * wall would be at "Vector(-1, -1)".) */ export declare function getRoomShapeTopLeftPosition(roomShape: RoomShape): Readonly<Vector>; /** * Helper function to get the volume of a room shape, which is the amount of tiles that are inside * the room. * * (This cannot be directly calculated from the bounds since L rooms are a special case.) */ export declare function getRoomShapeVolume(roomShape: RoomShape): int; export declare function getRoomShapeWidth(roomShape: RoomShape): int; /** * Helper function to determine if the provided room is equal to `RoomShape.1x2` (4) or * `RoomShape.2x1` (6). */ export declare function is2x1RoomShape(roomShape: RoomShape): boolean; /** * Helper function to detect if the provided room shape is big. Specifically, this is all 1x2 rooms, * 2x2 rooms, and L rooms. */ export declare function isBigRoomShape(roomShape: RoomShape): boolean; /** * Helper function to determine if the provided room is equal to `RoomShape.LTL` (9), * `RoomShape.LTR` (10), `RoomShape.LBL` (11), or `RoomShape.LBR` (12). */ export declare function isLRoomShape(roomShape: RoomShape): boolean; /** * Helper function to determine if the provided room is equal to `RoomShape.IH` (2), `RoomShape.IV` * (3), `RoomShape.IIV` (5), or `RoomShape.IIH` (7). */ export declare function isNarrowRoom(roomShape: RoomShape): boolean; /** * Helper function to see if a given room shape will grant a single charge or a double charge to the * player's active item(s). * * For example, `RoomShape.SHAPE_2x2` will return true. */ export declare function isRoomShapeDoubleCharge(roomShape: RoomShape): boolean; //# sourceMappingURL=roomShape.d.ts.map