isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
83 lines (69 loc) • 1.71 kB
text/typescript
import { DoorSlot, RoomShape } from "isaac-typescript-definitions";
import { ReadonlySet } from "../types/ReadonlySet";
const ALL_DOOR_SLOTS_SET = new ReadonlySet<DoorSlot>([
DoorSlot.LEFT_0, // 0
DoorSlot.UP_0, // 1
DoorSlot.RIGHT_0, // 2
DoorSlot.DOWN_0, // 3
DoorSlot.LEFT_1, // 4
DoorSlot.UP_1, // 5
DoorSlot.RIGHT_1, // 6
DoorSlot.DOWN_1, // 7
]);
export const ROOM_SHAPE_TO_DOOR_SLOTS = {
// 1
[]: new ReadonlySet([
DoorSlot.LEFT_0, // 0
DoorSlot.UP_0, // 1
DoorSlot.RIGHT_0, // 2
DoorSlot.DOWN_0, // 3
]),
// 2
[]: new ReadonlySet([
DoorSlot.LEFT_0, // 0
DoorSlot.RIGHT_0, // 2
]),
// 3
[]: new ReadonlySet([
DoorSlot.UP_0, // 1
DoorSlot.DOWN_0, // 3
]),
// 4
[]: new ReadonlySet([
DoorSlot.LEFT_0, // 0
DoorSlot.UP_0, // 1
DoorSlot.RIGHT_0, // 2
DoorSlot.DOWN_0, // 3
DoorSlot.LEFT_1, // 4
DoorSlot.RIGHT_1, // 6
]),
// 5
[]: new ReadonlySet([
DoorSlot.UP_0, // 1
DoorSlot.DOWN_0, // 3
]),
// 6
[]: new ReadonlySet([
DoorSlot.LEFT_0, // 0
DoorSlot.UP_0, // 1
DoorSlot.RIGHT_0, // 2
DoorSlot.DOWN_0, // 3
DoorSlot.UP_1, // 5
DoorSlot.DOWN_1, // 7
]),
// 7
[]: new ReadonlySet([
DoorSlot.LEFT_0, // 0
DoorSlot.RIGHT_0, // 2
]),
// 8
[]: ALL_DOOR_SLOTS_SET,
// 9
[]: ALL_DOOR_SLOTS_SET,
// 10
[]: ALL_DOOR_SLOTS_SET,
// 11
[]: ALL_DOOR_SLOTS_SET,
// 12
[]: ALL_DOOR_SLOTS_SET,
} as const satisfies Record<RoomShape, ReadonlySet<DoorSlot>>;