isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
331 lines (330 loc) • 11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ROOM_SHAPE_CORNERS = void 0;
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
const CornerType_1 = require("../enums/CornerType");
const readOnly_1 = require("../functions/readOnly");
/**
* The locations of the corners for each 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.)
*/
exports.ROOM_SHAPE_CORNERS = {
// 1
[isaac_typescript_definitions_1.RoomShape.SHAPE_1x1]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 14,
position: (0, readOnly_1.newReadonlyVector)(580, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 120,
position: (0, readOnly_1.newReadonlyVector)(60, 420),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 134,
position: (0, readOnly_1.newReadonlyVector)(580, 420),
},
],
// 2
[isaac_typescript_definitions_1.RoomShape.IH]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 30,
position: (0, readOnly_1.newReadonlyVector)(60, 220),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 44,
position: (0, readOnly_1.newReadonlyVector)(580, 220),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 90,
position: (0, readOnly_1.newReadonlyVector)(60, 340),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 104,
position: (0, readOnly_1.newReadonlyVector)(580, 340),
},
],
// 3
[isaac_typescript_definitions_1.RoomShape.IV]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 4,
position: (0, readOnly_1.newReadonlyVector)(220, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 10,
position: (0, readOnly_1.newReadonlyVector)(420, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 124,
position: (0, readOnly_1.newReadonlyVector)(220, 420),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 130,
position: (0, readOnly_1.newReadonlyVector)(420, 420),
},
],
// 4
[isaac_typescript_definitions_1.RoomShape.SHAPE_1x2]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 14,
position: (0, readOnly_1.newReadonlyVector)(580, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 225,
position: (0, readOnly_1.newReadonlyVector)(60, 700),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 239,
position: (0, readOnly_1.newReadonlyVector)(580, 700),
},
],
// 5
[isaac_typescript_definitions_1.RoomShape.IIV]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 4,
position: (0, readOnly_1.newReadonlyVector)(220, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 10,
position: (0, readOnly_1.newReadonlyVector)(420, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 229,
position: (0, readOnly_1.newReadonlyVector)(220, 700),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 235,
position: (0, readOnly_1.newReadonlyVector)(420, 700),
},
],
// 6
[isaac_typescript_definitions_1.RoomShape.SHAPE_2x1]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 27,
position: (0, readOnly_1.newReadonlyVector)(1100, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 224,
position: (0, readOnly_1.newReadonlyVector)(60, 420),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 251,
position: (0, readOnly_1.newReadonlyVector)(1100, 420),
},
],
// 7
[isaac_typescript_definitions_1.RoomShape.IIH]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 56,
position: (0, readOnly_1.newReadonlyVector)(60, 220),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 83,
position: (0, readOnly_1.newReadonlyVector)(1100, 220),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 168,
position: (0, readOnly_1.newReadonlyVector)(60, 340),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 195,
position: (0, readOnly_1.newReadonlyVector)(1100, 340),
},
],
// 8
[isaac_typescript_definitions_1.RoomShape.SHAPE_2x2]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 27,
position: (0, readOnly_1.newReadonlyVector)(1100, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 420,
position: (0, readOnly_1.newReadonlyVector)(60, 700),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 447,
position: (0, readOnly_1.newReadonlyVector)(1100, 700),
},
],
// 9
[isaac_typescript_definitions_1.RoomShape.LTL]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 13,
position: (0, readOnly_1.newReadonlyVector)(580, 140), // Center
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 27,
position: (0, readOnly_1.newReadonlyVector)(1100, 140),
},
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 196,
position: (0, readOnly_1.newReadonlyVector)(60, 420), // Left
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 209,
position: (0, readOnly_1.newReadonlyVector)(580, 420), // Center
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 420,
position: (0, readOnly_1.newReadonlyVector)(60, 700),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 447,
position: (0, readOnly_1.newReadonlyVector)(1100, 700),
},
],
// 10
[isaac_typescript_definitions_1.RoomShape.LTR]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 14,
position: (0, readOnly_1.newReadonlyVector)(580, 140), // Center
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 210,
position: (0, readOnly_1.newReadonlyVector)(580, 420), // Center
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 223,
position: (0, readOnly_1.newReadonlyVector)(1100, 420), // Right
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 420,
position: (0, readOnly_1.newReadonlyVector)(60, 700),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 447,
position: (0, readOnly_1.newReadonlyVector)(1100, 700),
},
],
// 11
[isaac_typescript_definitions_1.RoomShape.LBL]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 27,
position: (0, readOnly_1.newReadonlyVector)(1100, 140),
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 224,
position: (0, readOnly_1.newReadonlyVector)(580, 140), // Left
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 237,
position: (0, readOnly_1.newReadonlyVector)(580, 420), // Center
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 433,
position: (0, readOnly_1.newReadonlyVector)(580, 700), // Center
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 447,
position: (0, readOnly_1.newReadonlyVector)(1100, 700),
},
],
// 12
[isaac_typescript_definitions_1.RoomShape.LBR]: [
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 0,
position: (0, readOnly_1.newReadonlyVector)(60, 140),
},
{
type: CornerType_1.CornerType.TOP_RIGHT,
gridIndex: 27,
position: (0, readOnly_1.newReadonlyVector)(1100, 140),
},
{
type: CornerType_1.CornerType.TOP_LEFT,
gridIndex: 238,
position: (0, readOnly_1.newReadonlyVector)(580, 420), // Center
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 251,
position: (0, readOnly_1.newReadonlyVector)(1100, 420), // Right
},
{
type: CornerType_1.CornerType.BOTTOM_LEFT,
gridIndex: 420,
position: (0, readOnly_1.newReadonlyVector)(60, 700),
},
{
type: CornerType_1.CornerType.BOTTOM_RIGHT,
gridIndex: 434,
position: (0, readOnly_1.newReadonlyVector)(580, 700), // Right
},
],
};