"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
        },
    ],
};
