local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
local ____CornerType = require("enums.CornerType")
local CornerType = ____CornerType.CornerType
local ____readOnly = require("functions.readOnly")
local newReadonlyVector = ____readOnly.newReadonlyVector
--- 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 = {
    [RoomShape.SHAPE_1x1] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 14,
            position = newReadonlyVector(nil, 580, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 120,
            position = newReadonlyVector(nil, 60, 420)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 134,
            position = newReadonlyVector(nil, 580, 420)
        }
    },
    [RoomShape.IH] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 30,
            position = newReadonlyVector(nil, 60, 220)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 44,
            position = newReadonlyVector(nil, 580, 220)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 90,
            position = newReadonlyVector(nil, 60, 340)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 104,
            position = newReadonlyVector(nil, 580, 340)
        }
    },
    [RoomShape.IV] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 4,
            position = newReadonlyVector(nil, 220, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 10,
            position = newReadonlyVector(nil, 420, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 124,
            position = newReadonlyVector(nil, 220, 420)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 130,
            position = newReadonlyVector(nil, 420, 420)
        }
    },
    [RoomShape.SHAPE_1x2] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 14,
            position = newReadonlyVector(nil, 580, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 225,
            position = newReadonlyVector(nil, 60, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 239,
            position = newReadonlyVector(nil, 580, 700)
        }
    },
    [RoomShape.IIV] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 4,
            position = newReadonlyVector(nil, 220, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 10,
            position = newReadonlyVector(nil, 420, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 229,
            position = newReadonlyVector(nil, 220, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 235,
            position = newReadonlyVector(nil, 420, 700)
        }
    },
    [RoomShape.SHAPE_2x1] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 27,
            position = newReadonlyVector(nil, 1100, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 224,
            position = newReadonlyVector(nil, 60, 420)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 251,
            position = newReadonlyVector(nil, 1100, 420)
        }
    },
    [RoomShape.IIH] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 56,
            position = newReadonlyVector(nil, 60, 220)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 83,
            position = newReadonlyVector(nil, 1100, 220)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 168,
            position = newReadonlyVector(nil, 60, 340)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 195,
            position = newReadonlyVector(nil, 1100, 340)
        }
    },
    [RoomShape.SHAPE_2x2] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 27,
            position = newReadonlyVector(nil, 1100, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 420,
            position = newReadonlyVector(nil, 60, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 447,
            position = newReadonlyVector(nil, 1100, 700)
        }
    },
    [RoomShape.LTL] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 13,
            position = newReadonlyVector(nil, 580, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 27,
            position = newReadonlyVector(nil, 1100, 140)
        },
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 196,
            position = newReadonlyVector(nil, 60, 420)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 209,
            position = newReadonlyVector(nil, 580, 420)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 420,
            position = newReadonlyVector(nil, 60, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 447,
            position = newReadonlyVector(nil, 1100, 700)
        }
    },
    [RoomShape.LTR] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 14,
            position = newReadonlyVector(nil, 580, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 210,
            position = newReadonlyVector(nil, 580, 420)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 223,
            position = newReadonlyVector(nil, 1100, 420)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 420,
            position = newReadonlyVector(nil, 60, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 447,
            position = newReadonlyVector(nil, 1100, 700)
        }
    },
    [RoomShape.LBL] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 27,
            position = newReadonlyVector(nil, 1100, 140)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 224,
            position = newReadonlyVector(nil, 580, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 237,
            position = newReadonlyVector(nil, 580, 420)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 433,
            position = newReadonlyVector(nil, 580, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 447,
            position = newReadonlyVector(nil, 1100, 700)
        }
    },
    [RoomShape.LBR] = {
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 0,
            position = newReadonlyVector(nil, 60, 140)
        },
        {
            type = CornerType.TOP_RIGHT,
            gridIndex = 27,
            position = newReadonlyVector(nil, 1100, 140)
        },
        {
            type = CornerType.TOP_LEFT,
            gridIndex = 238,
            position = newReadonlyVector(nil, 580, 420)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 251,
            position = newReadonlyVector(nil, 1100, 420)
        },
        {
            type = CornerType.BOTTOM_LEFT,
            gridIndex = 420,
            position = newReadonlyVector(nil, 60, 700)
        },
        {
            type = CornerType.BOTTOM_RIGHT,
            gridIndex = 434,
            position = newReadonlyVector(nil, 580, 700)
        }
    }
}
return ____exports
