isaacscript-common 1.2.227 → 1.2.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -0
- package/dist/constants.lua +1 -0
- package/dist/functions/roomShape.d.ts +31 -0
- package/dist/functions/roomShape.lua +15 -0
- package/dist/objects/roomShapeBounds.d.ts +8 -0
- package/dist/objects/roomShapeBounds.lua +24 -0
- package/dist/objects/roomShapeLayoutSizes.d.ts +10 -0
- package/dist/objects/roomShapeLayoutSizes.lua +25 -0
- package/dist/objects/roomShapeVolumes.d.ts +13 -0
- package/dist/objects/roomShapeVolumes.lua +27 -0
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export declare const FIRST_GLITCHED_COLLECTIBLE_TYPE: number;
|
|
|
37
37
|
export declare const GAME_FRAMES_PER_SECOND = 30;
|
|
38
38
|
export declare const GRID_INDEX_CENTER_OF_1X1_ROOM = 67;
|
|
39
39
|
export declare const ISAAC_FRAMES_PER_SECOND = 60;
|
|
40
|
+
export declare const LEVEL_GRID_COLUMN_HEIGHT = 13;
|
|
40
41
|
export declare const LEVEL_GRID_ROW_LENGTH = 13;
|
|
41
42
|
/** In a 2x2 room, there can be 8 doors. */
|
|
42
43
|
export declare const MAX_NUM_DOORS = 8;
|
package/dist/constants.lua
CHANGED
|
@@ -13,6 +13,7 @@ ____exports.FIRST_GLITCHED_COLLECTIBLE_TYPE = (1 << 32) - 1
|
|
|
13
13
|
____exports.GAME_FRAMES_PER_SECOND = 30
|
|
14
14
|
____exports.GRID_INDEX_CENTER_OF_1X1_ROOM = 67
|
|
15
15
|
____exports.ISAAC_FRAMES_PER_SECOND = 60
|
|
16
|
+
____exports.LEVEL_GRID_COLUMN_HEIGHT = 13
|
|
16
17
|
____exports.LEVEL_GRID_ROW_LENGTH = 13
|
|
17
18
|
____exports.MAX_NUM_DOORS = 8
|
|
18
19
|
____exports.MAX_NUM_FAMILIARS = 64
|
|
@@ -6,5 +6,36 @@
|
|
|
6
6
|
* started.
|
|
7
7
|
*/
|
|
8
8
|
export declare function getGridIndexDelta(roomShape: RoomShape, doorSlot: DoorSlot): int | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Helper function to get the grid position of the bottom-right tile of a given room shape.
|
|
11
|
+
*
|
|
12
|
+
* "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
|
|
13
|
+
* wall would be at "Vector(-1, -1)".)
|
|
14
|
+
*/
|
|
9
15
|
export declare function getRoomShapeBottomRightPosition(roomShape: RoomShape): Vector;
|
|
16
|
+
/**
|
|
17
|
+
* Helper function to get the bounds of a room shape, which are a box representing its contents.
|
|
18
|
+
* This does not include the tiles that the walls are on. L rooms use the same bounds as a 2x2 room.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getRoomShapeBounds(roomShape: RoomShape): Vector;
|
|
21
|
+
/**
|
|
22
|
+
* Helper function to get the dimensions of a room shape's layout. This is NOT the size of the
|
|
23
|
+
* room's actual contents! For that, use the `getRoomShapeBounds` function.
|
|
24
|
+
*
|
|
25
|
+
* For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getRoomShapeLayoutSize(roomShape: RoomShape): Vector;
|
|
28
|
+
/**
|
|
29
|
+
* Helper function to get the grid position of the top-left tile of a given room shape.
|
|
30
|
+
*
|
|
31
|
+
* "Vector(0, 0)" corresponds to the top left tile of a room, not including the walls. (The top-left
|
|
32
|
+
* wall would be at "Vector(-1, -1)".)
|
|
33
|
+
*/
|
|
10
34
|
export declare function getRoomShapeTopLeftPosition(roomShape: RoomShape): Vector;
|
|
35
|
+
/**
|
|
36
|
+
* Helper function to get the volume of a room shape, which is the amount of tiles that are inside
|
|
37
|
+
* the room.
|
|
38
|
+
*
|
|
39
|
+
* (This cannot be directly calculated from the bounds since L rooms are a special case.)
|
|
40
|
+
*/
|
|
41
|
+
export declare function getRoomShapeVolume(roomShape: RoomShape): int;
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local Map = ____lualib.Map
|
|
3
3
|
local ____exports = {}
|
|
4
|
+
local ____roomShapeBounds = require("objects.roomShapeBounds")
|
|
5
|
+
local ROOM_SHAPE_BOUNDS = ____roomShapeBounds.ROOM_SHAPE_BOUNDS
|
|
6
|
+
local ____roomShapeLayoutSizes = require("objects.roomShapeLayoutSizes")
|
|
7
|
+
local ROOM_SHAPE_LAYOUT_SIZES = ____roomShapeLayoutSizes.ROOM_SHAPE_LAYOUT_SIZES
|
|
4
8
|
local ____roomShapeToBottomRightPosition = require("objects.roomShapeToBottomRightPosition")
|
|
5
9
|
local ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION = ____roomShapeToBottomRightPosition.ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION
|
|
6
10
|
local ____roomShapeToGridIndexDelta = require("objects.roomShapeToGridIndexDelta")
|
|
7
11
|
local ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA = ____roomShapeToGridIndexDelta.ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA
|
|
8
12
|
local ____roomShapeToTopLeftPosition = require("objects.roomShapeToTopLeftPosition")
|
|
9
13
|
local ROOM_SHAPE_TO_TOP_LEFT_POSITION = ____roomShapeToTopLeftPosition.ROOM_SHAPE_TO_TOP_LEFT_POSITION
|
|
14
|
+
local ____roomShapeVolumes = require("objects.roomShapeVolumes")
|
|
15
|
+
local ROOM_SHAPE_VOLUMES = ____roomShapeVolumes.ROOM_SHAPE_VOLUMES
|
|
10
16
|
function ____exports.getGridIndexDelta(self, roomShape, doorSlot)
|
|
11
17
|
local doorSlotToGridIndexMap = ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape]
|
|
12
18
|
if doorSlotToGridIndexMap == nil then
|
|
@@ -17,7 +23,16 @@ end
|
|
|
17
23
|
function ____exports.getRoomShapeBottomRightPosition(self, roomShape)
|
|
18
24
|
return ROOM_SHAPE_TO_BOTTOM_RIGHT_POSITION[roomShape]
|
|
19
25
|
end
|
|
26
|
+
function ____exports.getRoomShapeBounds(self, roomShape)
|
|
27
|
+
return ROOM_SHAPE_BOUNDS[roomShape]
|
|
28
|
+
end
|
|
29
|
+
function ____exports.getRoomShapeLayoutSize(self, roomShape)
|
|
30
|
+
return ROOM_SHAPE_LAYOUT_SIZES[roomShape]
|
|
31
|
+
end
|
|
20
32
|
function ____exports.getRoomShapeTopLeftPosition(self, roomShape)
|
|
21
33
|
return ROOM_SHAPE_TO_TOP_LEFT_POSITION[roomShape]
|
|
22
34
|
end
|
|
35
|
+
function ____exports.getRoomShapeVolume(self, roomShape)
|
|
36
|
+
return ROOM_SHAPE_VOLUMES[roomShape]
|
|
37
|
+
end
|
|
23
38
|
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
/**
|
|
3
|
+
* The size of a room shape's contents. This does not include the tiles that the walls are on. L
|
|
4
|
+
* rooms use the same bounds as a 2x2 room.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ROOM_SHAPE_BOUNDS: {
|
|
7
|
+
readonly [key in RoomShape]: Vector;
|
|
8
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
|
+
local ____exports = {}
|
|
3
|
+
local ____roomShapeVolumes = require("objects.roomShapeVolumes")
|
|
4
|
+
local NARROW_CONTENTS_HEIGHT = ____roomShapeVolumes.NARROW_CONTENTS_HEIGHT
|
|
5
|
+
local NARROW_CONTENTS_WIDTH = ____roomShapeVolumes.NARROW_CONTENTS_WIDTH
|
|
6
|
+
local ONE_BY_ONE_CONTENTS_HEIGHT = ____roomShapeVolumes.ONE_BY_ONE_CONTENTS_HEIGHT
|
|
7
|
+
local ONE_BY_ONE_CONTENTS_WIDTH = ____roomShapeVolumes.ONE_BY_ONE_CONTENTS_WIDTH
|
|
8
|
+
local TWO_BY_TWO_BOUNDS = Vector(ONE_BY_ONE_CONTENTS_WIDTH * 2, ONE_BY_ONE_CONTENTS_HEIGHT * 2)
|
|
9
|
+
____exports.ROOM_SHAPE_BOUNDS = {
|
|
10
|
+
[RoomShape.ROOMSHAPE_1x1] = Vector(ONE_BY_ONE_CONTENTS_WIDTH, ONE_BY_ONE_CONTENTS_HEIGHT),
|
|
11
|
+
[RoomShape.ROOMSHAPE_IH] = Vector(ONE_BY_ONE_CONTENTS_WIDTH, NARROW_CONTENTS_HEIGHT),
|
|
12
|
+
[RoomShape.ROOMSHAPE_IV] = Vector(NARROW_CONTENTS_WIDTH, ONE_BY_ONE_CONTENTS_HEIGHT),
|
|
13
|
+
[RoomShape.ROOMSHAPE_1x2] = Vector(ONE_BY_ONE_CONTENTS_WIDTH, ONE_BY_ONE_CONTENTS_HEIGHT * 2),
|
|
14
|
+
[RoomShape.ROOMSHAPE_IIV] = Vector(NARROW_CONTENTS_WIDTH, ONE_BY_ONE_CONTENTS_HEIGHT * 2),
|
|
15
|
+
[RoomShape.ROOMSHAPE_2x1] = Vector(ONE_BY_ONE_CONTENTS_WIDTH * 2, ONE_BY_ONE_CONTENTS_HEIGHT),
|
|
16
|
+
[RoomShape.ROOMSHAPE_IIH] = Vector(ONE_BY_ONE_CONTENTS_WIDTH * 2, NARROW_CONTENTS_HEIGHT),
|
|
17
|
+
[RoomShape.ROOMSHAPE_2x2] = TWO_BY_TWO_BOUNDS,
|
|
18
|
+
[RoomShape.ROOMSHAPE_LTL] = TWO_BY_TWO_BOUNDS,
|
|
19
|
+
[RoomShape.ROOMSHAPE_LTR] = TWO_BY_TWO_BOUNDS,
|
|
20
|
+
[RoomShape.ROOMSHAPE_LBL] = TWO_BY_TWO_BOUNDS,
|
|
21
|
+
[RoomShape.ROOMSHAPE_LBR] = TWO_BY_TWO_BOUNDS,
|
|
22
|
+
[RoomShape.NUM_ROOMSHAPES] = Vector.Zero
|
|
23
|
+
}
|
|
24
|
+
return ____exports
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
/**
|
|
3
|
+
* The dimensions of a room shape's layout. This is NOT the size of the room's actual contents! For
|
|
4
|
+
* that, use `ROOM_SHAPE_BOUNDS`.
|
|
5
|
+
*
|
|
6
|
+
* For example, a horizontal narrow room has a layout size of equal to that of a 1x1 room.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ROOM_SHAPE_LAYOUT_SIZES: {
|
|
9
|
+
readonly [key in RoomShape]: Vector;
|
|
10
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
|
+
local ____exports = {}
|
|
3
|
+
local ____roomShapeVolumes = require("objects.roomShapeVolumes")
|
|
4
|
+
local ONE_BY_ONE_CONTENTS_HEIGHT = ____roomShapeVolumes.ONE_BY_ONE_CONTENTS_HEIGHT
|
|
5
|
+
local ONE_BY_ONE_CONTENTS_WIDTH = ____roomShapeVolumes.ONE_BY_ONE_CONTENTS_WIDTH
|
|
6
|
+
local ONE_BY_ONE_LAYOUT_SIZE = Vector(ONE_BY_ONE_CONTENTS_WIDTH, ONE_BY_ONE_CONTENTS_HEIGHT)
|
|
7
|
+
local TWO_BY_ONE_VERTICAL_LAYOUT_SIZE = Vector(ONE_BY_ONE_CONTENTS_WIDTH, ONE_BY_ONE_CONTENTS_HEIGHT * 2)
|
|
8
|
+
local TWO_BY_ONE_HORIZONTAL_LAYOUT_SIZE = Vector(ONE_BY_ONE_CONTENTS_WIDTH * 2, ONE_BY_ONE_CONTENTS_HEIGHT)
|
|
9
|
+
local TWO_BY_TWO_LAYOUT_SIZE = Vector(ONE_BY_ONE_CONTENTS_WIDTH * 2, ONE_BY_ONE_CONTENTS_HEIGHT * 2)
|
|
10
|
+
____exports.ROOM_SHAPE_LAYOUT_SIZES = {
|
|
11
|
+
[RoomShape.ROOMSHAPE_1x1] = ONE_BY_ONE_LAYOUT_SIZE,
|
|
12
|
+
[RoomShape.ROOMSHAPE_IH] = ONE_BY_ONE_LAYOUT_SIZE,
|
|
13
|
+
[RoomShape.ROOMSHAPE_IV] = ONE_BY_ONE_LAYOUT_SIZE,
|
|
14
|
+
[RoomShape.ROOMSHAPE_1x2] = TWO_BY_ONE_VERTICAL_LAYOUT_SIZE,
|
|
15
|
+
[RoomShape.ROOMSHAPE_IIV] = TWO_BY_ONE_VERTICAL_LAYOUT_SIZE,
|
|
16
|
+
[RoomShape.ROOMSHAPE_2x1] = TWO_BY_ONE_HORIZONTAL_LAYOUT_SIZE,
|
|
17
|
+
[RoomShape.ROOMSHAPE_IIH] = TWO_BY_ONE_HORIZONTAL_LAYOUT_SIZE,
|
|
18
|
+
[RoomShape.ROOMSHAPE_2x2] = TWO_BY_TWO_LAYOUT_SIZE,
|
|
19
|
+
[RoomShape.ROOMSHAPE_LTL] = TWO_BY_TWO_LAYOUT_SIZE,
|
|
20
|
+
[RoomShape.ROOMSHAPE_LTR] = TWO_BY_TWO_LAYOUT_SIZE,
|
|
21
|
+
[RoomShape.ROOMSHAPE_LBL] = TWO_BY_TWO_LAYOUT_SIZE,
|
|
22
|
+
[RoomShape.ROOMSHAPE_LBR] = TWO_BY_TWO_LAYOUT_SIZE,
|
|
23
|
+
[RoomShape.NUM_ROOMSHAPES] = TWO_BY_TWO_LAYOUT_SIZE
|
|
24
|
+
}
|
|
25
|
+
return ____exports
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
export declare const ONE_BY_ONE_CONTENTS_WIDTH = 13;
|
|
3
|
+
export declare const ONE_BY_ONE_CONTENTS_HEIGHT = 7;
|
|
4
|
+
export declare const NARROW_CONTENTS_WIDTH = 5;
|
|
5
|
+
export declare const NARROW_CONTENTS_HEIGHT = 3;
|
|
6
|
+
/**
|
|
7
|
+
* Volume is the amount of tiles that are inside the room shape.
|
|
8
|
+
*
|
|
9
|
+
* (This cannot be directly calculated from the bounds since L rooms are a special case.)
|
|
10
|
+
*/
|
|
11
|
+
export declare const ROOM_SHAPE_VOLUMES: {
|
|
12
|
+
readonly [key in RoomShape]: int;
|
|
13
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
|
+
local ____exports = {}
|
|
3
|
+
____exports.ONE_BY_ONE_CONTENTS_WIDTH = 13
|
|
4
|
+
____exports.ONE_BY_ONE_CONTENTS_HEIGHT = 7
|
|
5
|
+
local ONE_BY_ONE_VOLUME = ____exports.ONE_BY_ONE_CONTENTS_HEIGHT * ____exports.ONE_BY_ONE_CONTENTS_WIDTH
|
|
6
|
+
____exports.NARROW_CONTENTS_WIDTH = 5
|
|
7
|
+
____exports.NARROW_CONTENTS_HEIGHT = 3
|
|
8
|
+
local NARROW_HORIZONTAL_VOLUME = ____exports.ONE_BY_ONE_CONTENTS_WIDTH * ____exports.NARROW_CONTENTS_HEIGHT
|
|
9
|
+
local NARROW_VERTICAL_VOLUME = ____exports.NARROW_CONTENTS_WIDTH * ____exports.ONE_BY_ONE_CONTENTS_HEIGHT
|
|
10
|
+
local ONE_BY_TWO_VOLUME = ONE_BY_ONE_VOLUME * 2
|
|
11
|
+
local L_ROOM_VOLUME = ONE_BY_ONE_VOLUME * 3
|
|
12
|
+
____exports.ROOM_SHAPE_VOLUMES = {
|
|
13
|
+
[RoomShape.ROOMSHAPE_1x1] = ONE_BY_ONE_VOLUME,
|
|
14
|
+
[RoomShape.ROOMSHAPE_IH] = NARROW_HORIZONTAL_VOLUME,
|
|
15
|
+
[RoomShape.ROOMSHAPE_IV] = NARROW_VERTICAL_VOLUME,
|
|
16
|
+
[RoomShape.ROOMSHAPE_1x2] = ONE_BY_TWO_VOLUME,
|
|
17
|
+
[RoomShape.ROOMSHAPE_IIV] = NARROW_VERTICAL_VOLUME * 2,
|
|
18
|
+
[RoomShape.ROOMSHAPE_2x1] = ONE_BY_TWO_VOLUME,
|
|
19
|
+
[RoomShape.ROOMSHAPE_IIH] = NARROW_HORIZONTAL_VOLUME * 2,
|
|
20
|
+
[RoomShape.ROOMSHAPE_2x2] = ONE_BY_ONE_VOLUME * 4,
|
|
21
|
+
[RoomShape.ROOMSHAPE_LTL] = L_ROOM_VOLUME,
|
|
22
|
+
[RoomShape.ROOMSHAPE_LTR] = L_ROOM_VOLUME,
|
|
23
|
+
[RoomShape.ROOMSHAPE_LBL] = L_ROOM_VOLUME,
|
|
24
|
+
[RoomShape.ROOMSHAPE_LBR] = L_ROOM_VOLUME,
|
|
25
|
+
[RoomShape.NUM_ROOMSHAPES] = 0
|
|
26
|
+
}
|
|
27
|
+
return ____exports
|