Rooms
Overview
void
RoomHistoryData
RoomHistoryData
RoomConfig_Room?
GetRoomData(integer?
roomGridIndex)
GetRoomDescriptor(integer?
roomGridIndex)
integer
RoomHistoryData[]
integer
GetRoomShapeGridWidth(RoomShape
shape)
integer
GetRoomStageID(integer?
roomGridIndex)
integer
GetRoomSubType(integer?
roomGridIndex)
boolean
InBossRoomOf(BossID
bossID)
boolean
IsGridIndexInRoom(integer
gridIndex)
boolean
IsGridIndexInRoomShape(integer
gridIndex, RoomShape
roomShape)
boolean
void
Functions
EmptyRoom()
void EmptyRoom()
Helper function to remove all naturally spawning entities and grid entities from a room. Notably, this will not remove players, tears, familiars, lasers, knives, projectiles, blacklisted NPCs such as Dark Esau, charmed NPCs, friendly NPCs, persistent NPCs, most effects, doors, and walls.
GetLatestRoomDescription()
RoomHistoryData GetLatestRoomDescription()
Helper function to get information about the most recent room that is stored in the room history array. This is useful in the POST_ENTITY_REMOVE
callback; see the isLeavingRoom
function. Note that this function can return undefined in the case where it is called on the first room of the run.
GetPreviousRoomDescription()
RoomHistoryData GetPreviousRoomDescription()
Helper function to get information about the room that was previously visited. In the special case of only one room having been visited thus far (i.e. the starting room of the run), the starting room will be returned.
GetRoomData()
RoomConfig_Room? GetRoomData(integer? roomGridIndex)
Helper function to get the room data for the provided room.
GetRoomDescriptor()
RoomDescriptor
GetRoomDescriptor(integer? roomGridIndex)
Helper function to get the descriptor for a room.
GetRoomDescriptorReadOnly()
RoomDescriptor
GetRoomDescriptorReadOnly()
Alias for the Level.GetCurrentRoomDesc
method. Use this to make it more clear what type of RoomDescriptor
object that you are retrieving.
GetRoomGridIndex()
integer GetRoomGridIndex()
Helper function to get the grid index of the current room.
If the current room is inside of the grid, this function will return the
SafeGridIndex
from the room descriptor. (The safe grid index is defined as the top-left 1x1 section that the room overlaps with, or the top-right 1x1 section of aRoomType.SHAPE_LTL
room.) - If the current room is outside of the grid, it will return the index from theLevel.GetCurrentRoomIndex
method (sinceSafeGridIndex
is bugged for these cases). Use this function instead of theLevel.GetCurrentRoomIndex
method directly because the latter will return the specific 1x1 quadrant that the player entered the room at. For most situations, using the safe grid index is more reliable than this. Data structures that store data per room should use the room'sListIndex
instead ofSafeGridIndex
, since the former is unique across different dimensions.
GetRoomHistory()
RoomHistoryData[] GetRoomHistory()
@class RoomHistoryData @field Stage LevelStage @field StageType StageType @field RoomType RoomType @field StageID StageID @field Dimension Dimension @field RoomVariant integer @field RoomSubType integer @field RoomName string @field RoomGridIndex integer @field RoomListIndex integer @field RoomVisitedCount integer Helper function to get information about all of the rooms that a player has visited thus far on this run.
GetRoomShapeGridWidth()
integer GetRoomShapeGridWidth(
RoomShape
shape)
Helper function to get the width of the grid in a given room shape.
GetRoomStageID()
integer GetRoomStageID(integer? roomGridIndex)
Helper function to get the stage ID for a room from the XML/STB data. The room stage ID will correspond to the first number in the filename of the XML/STB file. For example, a Depths room would have a stage ID of 7.
GetRoomSubType()
integer GetRoomSubType(integer? roomGridIndex)
Helper function to get the sub-type for a room from the XML/STB data. The room sub-type will correspond to different things depending on what XML/STB file it draws from. For example, in the "00.special rooms.stb" file, an Angel Room with a sub-type of 0 will correspond to a normal Angel Room and a sub-type of 1 will correspond to an Angel Room shop for The Stairway.
InBossRoomOf()
boolean InBossRoomOf(
BossID
bossID)
Helper function to check if the current room is a boss room for a particular boss. This will only work for bosses that have dedicated boss rooms in the "00.special rooms.stb" file.
IsGridIndexInRoom()
boolean IsGridIndexInRoom(integer gridIndex)
Helper function to check if a grid index is inside a room, including walls. Accounts for room shape.
IsGridIndexInRoomShape()
boolean IsGridIndexInRoomShape(integer gridIndex,
RoomShape
roomShape)
Helper function to check if a grid index is valid in a certain room shape. Doesn't account for being out of bounds (less than 0 or greater than the grid size). For that use TSIL.Rooms.IsGridIndexInRoom
IsLeavingRoom()
boolean IsLeavingRoom()
Helper function to detect if the game is in the state where the room index has changed to a new room, but the entities from the previous room are currently in the process of despawning. (At this point, the POST_NEW_ROOM
callback and the POST_NEW_ROOM_EARLY
callback will not have fired yet, and there will not be an entry in the room history array for the current room.) This function is intended to be used in the POST_ENTITY_REMOVE
callback to detect when an entity is despawning.
UpdateRoom()
void UpdateRoom()
Helper function to trigger a room update without affecting entity positions or velocities.
Last updated