isaacscript-common 7.1.1 → 7.2.2
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/callbacks/itemPickup.d.ts.map +1 -1
- package/dist/callbacks/itemPickup.lua +3 -1
- package/dist/callbacks/postCustomDoorEnter.d.ts.map +1 -1
- package/dist/callbacks/postCustomDoorEnter.lua +14 -11
- package/dist/callbacks/postDiceRoomActivated.d.ts.map +1 -1
- package/dist/callbacks/postDiceRoomActivated.lua +5 -4
- package/dist/callbacks/postItemDischarged.lua +2 -1
- package/dist/callbacks/postSlotDestroyed.lua +3 -3
- package/dist/classes/DefaultMap.d.ts +5 -5
- package/dist/classes/DefaultMap.d.ts.map +1 -1
- package/dist/core/constants.d.ts +2 -2
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.lua +3 -1
- package/dist/core/constantsFirstLast.d.ts +2 -0
- package/dist/core/constantsFirstLast.d.ts.map +1 -1
- package/dist/core/constantsFirstLast.lua +36 -9
- package/dist/enums/AmbushType.d.ts +1 -0
- package/dist/enums/AmbushType.d.ts.map +1 -1
- package/dist/enums/AmbushType.lua +1 -0
- package/dist/enums/CornerType.d.ts +1 -0
- package/dist/enums/CornerType.d.ts.map +1 -1
- package/dist/enums/CornerType.lua +1 -0
- package/dist/enums/PocketItemType.d.ts +1 -0
- package/dist/enums/PocketItemType.d.ts.map +1 -1
- package/dist/enums/PocketItemType.lua +1 -0
- package/dist/enums/RockAltType.d.ts +1 -0
- package/dist/enums/RockAltType.d.ts.map +1 -1
- package/dist/enums/RockAltType.lua +1 -0
- package/dist/enums/SaveDataKey.d.ts +11 -0
- package/dist/enums/SaveDataKey.d.ts.map +1 -0
- package/dist/enums/{private/SaveDataKey.lua → SaveDataKey.lua} +2 -0
- package/dist/enums/SerializationType.d.ts +1 -0
- package/dist/enums/SerializationType.d.ts.map +1 -1
- package/dist/enums/SerializationType.lua +1 -0
- package/dist/enums/SlotDestructionType.d.ts +1 -0
- package/dist/enums/SlotDestructionType.d.ts.map +1 -1
- package/dist/enums/SlotDestructionType.lua +1 -0
- package/dist/enums/index.d.ts +1 -0
- package/dist/enums/index.d.ts.map +1 -1
- package/dist/enums/index.lua +8 -0
- package/dist/features/customGridEntity.d.ts.map +1 -1
- package/dist/features/customGridEntity.lua +3 -1
- package/dist/features/customStage/backdrop.d.ts +1 -1
- package/dist/features/customStage/backdrop.d.ts.map +1 -1
- package/dist/features/customStage/backdrop.lua +5 -3
- package/dist/features/customStage/customStageGridEntities.d.ts.map +1 -1
- package/dist/features/customStage/customStageGridEntities.lua +3 -1
- package/dist/features/customStage/exports.d.ts.map +1 -1
- package/dist/features/customStage/exports.lua +3 -1
- package/dist/features/customStage/init.lua +2 -2
- package/dist/features/customStage/shadows.d.ts.map +1 -1
- package/dist/features/customStage/shadows.lua +2 -1
- package/dist/features/deployJSONRoom.lua +13 -10
- package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
- package/dist/features/extraConsoleCommands/listCommands.lua +8 -2
- package/dist/features/saveDataManager/exports.d.ts +2 -1
- package/dist/features/saveDataManager/exports.d.ts.map +1 -1
- package/dist/features/saveDataManager/main.d.ts +1 -1
- package/dist/features/saveDataManager/main.d.ts.map +1 -1
- package/dist/features/saveDataManager/main.lua +1 -1
- package/dist/functions/bitSet128.d.ts.map +1 -1
- package/dist/functions/bosses.d.ts.map +1 -1
- package/dist/functions/bosses.lua +3 -1
- package/dist/functions/cacheFlag.d.ts +23 -1
- package/dist/functions/cacheFlag.d.ts.map +1 -1
- package/dist/functions/cacheFlag.lua +78 -0
- package/dist/functions/collectibles.d.ts.map +1 -1
- package/dist/functions/deepCopy.lua +2 -1
- package/dist/functions/doors.d.ts.map +1 -1
- package/dist/functions/doors.lua +3 -1
- package/dist/functions/entities.lua +2 -1
- package/dist/functions/flying.lua +2 -2
- package/dist/functions/gridEntities.lua +2 -1
- package/dist/functions/gridEntitiesSpecific.d.ts.map +1 -1
- package/dist/functions/gridEntitiesSpecific.lua +5 -3
- package/dist/functions/index.d.ts +0 -1
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.lua +0 -8
- package/dist/functions/input.d.ts +5 -2
- package/dist/functions/input.d.ts.map +1 -1
- package/dist/functions/input.lua +11 -3
- package/dist/functions/kColor.d.ts.map +1 -1
- package/dist/functions/levelGrid.d.ts.map +1 -1
- package/dist/functions/levelGrid.lua +3 -1
- package/dist/functions/nextStage.d.ts.map +1 -1
- package/dist/functions/nextStage.lua +7 -5
- package/dist/functions/npcs.d.ts.map +1 -1
- package/dist/functions/npcs.lua +4 -2
- package/dist/functions/pills.d.ts.map +1 -1
- package/dist/functions/pills.lua +9 -3
- package/dist/functions/playerIndex.d.ts.map +1 -1
- package/dist/functions/playerIndex.lua +2 -1
- package/dist/functions/players.d.ts +1 -1
- package/dist/functions/players.d.ts.map +1 -1
- package/dist/functions/players.lua +13 -15
- package/dist/functions/pocketItems.d.ts.map +1 -1
- package/dist/functions/pocketItems.lua +3 -1
- package/dist/functions/rng.d.ts.map +1 -1
- package/dist/functions/rng.lua +3 -0
- package/dist/functions/rockAlt.d.ts.map +1 -1
- package/dist/functions/rockAlt.lua +11 -20
- package/dist/functions/rooms.d.ts +4 -4
- package/dist/functions/rooms.d.ts.map +1 -1
- package/dist/functions/rooms.lua +18 -16
- package/dist/functions/spawnCollectible.d.ts.map +1 -1
- package/dist/functions/stage.d.ts.map +1 -1
- package/dist/functions/stage.lua +8 -2
- package/dist/functions/trinkets.d.ts.map +1 -1
- package/dist/functions/trinkets.lua +4 -2
- package/dist/functions/types.d.ts +64 -0
- package/dist/functions/types.d.ts.map +1 -1
- package/dist/functions/types.lua +63 -0
- package/dist/functions/vector.d.ts.map +1 -1
- package/dist/interfaces/ChargeBarSprites.d.ts +1 -1
- package/dist/interfaces/Corner.d.ts +5 -0
- package/dist/interfaces/Corner.d.ts.map +1 -1
- package/dist/interfaces/CustomStageLua.d.ts +57 -0
- package/dist/interfaces/CustomStageLua.d.ts.map +1 -1
- package/dist/interfaces/GridEntityCustomData.d.ts +6 -0
- package/dist/interfaces/GridEntityCustomData.d.ts.map +1 -1
- package/dist/interfaces/JSONRoomsFile.d.ts +7 -3
- package/dist/interfaces/JSONRoomsFile.d.ts.map +1 -1
- package/dist/interfaces/PlayerHealth.d.ts +1 -1
- package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
- package/dist/interfaces/PocketItemDescription.d.ts +1 -1
- package/dist/interfaces/PocketItemDescription.d.ts.map +1 -1
- package/dist/interfaces/RoomDescription.d.ts +1 -1
- package/dist/interfaces/RoomDescription.d.ts.map +1 -1
- package/dist/interfaces/StatTypeType.d.ts +4 -0
- package/dist/interfaces/StatTypeType.d.ts.map +1 -1
- package/dist/interfaces/TrinketSituation.d.ts +1 -1
- package/dist/interfaces/TrinketSituation.d.ts.map +1 -1
- package/dist/maps/keyboardToString.d.ts +4 -0
- package/dist/maps/keyboardToString.d.ts.map +1 -0
- package/dist/maps/keyboardToString.lua +73 -0
- package/dist/types/AnyEntity.d.ts +5 -0
- package/dist/types/AnyEntity.d.ts.map +1 -1
- package/dist/types/AnyGridEntity.d.ts +5 -0
- package/dist/types/AnyGridEntity.d.ts.map +1 -1
- package/dist/types/CollectibleIndex.d.ts +4 -3
- package/dist/types/CollectibleIndex.d.ts.map +1 -1
- package/dist/types/Immutable.d.ts +3 -1
- package/dist/types/Immutable.d.ts.map +1 -1
- package/dist/types/PickupIndex.d.ts +4 -2
- package/dist/types/PickupIndex.d.ts.map +1 -1
- package/dist/types/PlayerIndex.d.ts +3 -2
- package/dist/types/PlayerIndex.d.ts.map +1 -1
- package/dist/types/SerializedIsaacAPIClass.d.ts +6 -0
- package/dist/types/SerializedIsaacAPIClass.d.ts.map +1 -1
- package/dist/types/TSTLClass.d.ts +5 -0
- package/dist/types/TSTLClass.d.ts.map +1 -1
- package/dist/types/TrapdoorDestination.d.ts +3 -0
- package/dist/types/TrapdoorDestination.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/callbacks/itemPickup.ts +5 -2
- package/src/callbacks/postCustomDoorEnter.ts +18 -11
- package/src/callbacks/postDiceRoomActivated.ts +7 -12
- package/src/callbacks/postItemDischarged.ts +3 -1
- package/src/callbacks/postSlotDestroyed.ts +3 -2
- package/src/callbacks/reorderedCallbacks.ts +2 -2
- package/src/classes/DefaultMap.ts +8 -8
- package/src/core/constants.ts +3 -3
- package/src/core/constantsFirstLast.ts +29 -14
- package/src/enums/AmbushType.ts +1 -0
- package/src/enums/CornerType.ts +1 -0
- package/src/enums/PocketItemType.ts +1 -0
- package/src/enums/RockAltType.ts +1 -0
- package/src/enums/SaveDataKey.ts +10 -0
- package/src/enums/SerializationType.ts +1 -0
- package/src/enums/SlotDestructionType.ts +1 -0
- package/src/enums/index.ts +1 -0
- package/src/enums/indexTypeDoc.ts +1 -0
- package/src/features/customGridEntity.ts +2 -1
- package/src/features/customStage/backdrop.ts +5 -3
- package/src/features/customStage/customStageGridEntities.ts +2 -1
- package/src/features/customStage/exports.ts +5 -4
- package/src/features/customStage/init.ts +2 -2
- package/src/features/customStage/shadows.ts +2 -1
- package/src/features/deployJSONRoom.ts +14 -19
- package/src/features/extraConsoleCommands/listCommands.ts +3 -2
- package/src/features/fastReset.ts +1 -1
- package/src/features/indexTypeDoc.ts +2 -1
- package/src/features/saveDataManager/exports.ts +4 -4
- package/src/features/saveDataManager/main.ts +1 -1
- package/src/features/saveDataManager/save.ts +1 -1
- package/src/functions/bitSet128.ts +1 -5
- package/src/functions/bosses.ts +2 -1
- package/src/functions/cacheFlag.ts +90 -1
- package/src/functions/cards.ts +3 -3
- package/src/functions/collectibles.ts +2 -8
- package/src/functions/color.ts +1 -1
- package/src/functions/deepCopy.ts +2 -2
- package/src/functions/dimensions.ts +1 -1
- package/src/functions/doors.ts +2 -2
- package/src/functions/entities.ts +2 -2
- package/src/functions/flying.ts +1 -1
- package/src/functions/gridEntities.ts +2 -2
- package/src/functions/gridEntitiesSpecific.ts +4 -3
- package/src/functions/index.ts +0 -1
- package/src/functions/indexTypeDoc.ts +0 -1
- package/src/functions/input.ts +17 -4
- package/src/functions/jsonHelpers.ts +1 -1
- package/src/functions/kColor.ts +1 -5
- package/src/functions/levelGrid.ts +3 -2
- package/src/functions/nextStage.ts +6 -5
- package/src/functions/npcs.ts +3 -2
- package/src/functions/pills.ts +11 -9
- package/src/functions/playerIndex.ts +3 -1
- package/src/functions/players.ts +5 -6
- package/src/functions/pocketItems.ts +4 -4
- package/src/functions/rng.ts +8 -5
- package/src/functions/rockAlt.ts +28 -13
- package/src/functions/rooms.ts +27 -26
- package/src/functions/spawnCollectible.ts +1 -2
- package/src/functions/stage.ts +3 -2
- package/src/functions/trinkets.ts +6 -5
- package/src/functions/types.ts +100 -0
- package/src/functions/vector.ts +1 -5
- package/src/interfaces/ChargeBarSprites.ts +1 -1
- package/src/interfaces/Corner.ts +5 -0
- package/src/interfaces/CustomStageLua.ts +66 -0
- package/src/interfaces/GridEntityCustomData.ts +6 -0
- package/src/interfaces/JSONRoomsFile.ts +7 -3
- package/src/interfaces/PlayerHealth.ts +1 -1
- package/src/interfaces/PocketItemDescription.ts +1 -1
- package/src/interfaces/RoomDescription.ts +1 -1
- package/src/interfaces/StatTypeType.ts +4 -0
- package/src/interfaces/TrinketSituation.ts +1 -1
- package/src/maps/keyboardToString.ts +77 -0
- package/src/types/AnyEntity.ts +5 -0
- package/src/types/AnyGridEntity.ts +5 -0
- package/src/types/CollectibleIndex.ts +4 -3
- package/src/types/Immutable.ts +3 -1
- package/src/types/PickupIndex.ts +4 -2
- package/src/types/PlayerIndex.ts +3 -2
- package/src/types/SerializedIsaacAPIClass.ts +6 -0
- package/src/types/TSTLClass.ts +5 -0
- package/src/types/TrapdoorDestination.ts +3 -0
- package/dist/enums/private/SaveDataKey.d.ts +0 -7
- package/dist/enums/private/SaveDataKey.d.ts.map +0 -1
- package/dist/functions/collectibleCacheFlag.d.ts +0 -24
- package/dist/functions/collectibleCacheFlag.d.ts.map +0 -1
- package/dist/functions/collectibleCacheFlag.lua +0 -80
- package/src/enums/private/SaveDataKey.ts +0 -6
- package/src/functions/collectibleCacheFlag.ts +0 -90
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrinketSituation.d.ts","sourceRoot":"","sources":["../../src/interfaces/TrinketSituation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"TrinketSituation.d.ts","sourceRoot":"","sources":["../../src/interfaces/TrinketSituation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,WAAW,CAAC;IAChC,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,WAAW,CAAC;IAC1B,kBAAkB,EAAE,GAAG,CAAC;CACzB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Keyboard } from "isaac-typescript-definitions";
|
|
2
|
+
/** Maps each keyboard enum member to its corresponding lowercase and uppercase characters. */
|
|
3
|
+
export declare const KEYBOARD_TO_STRING: ReadonlyMap<Keyboard, readonly [lowercaseCharacter: string, uppercaseCharacter: string]>;
|
|
4
|
+
//# sourceMappingURL=keyboardToString.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboardToString.d.ts","sourceRoot":"","sources":["../../src/maps/keyboardToString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAC1C,QAAQ,EACR,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAuEjE,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local Map = ____lualib.Map
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
6
|
+
local Keyboard = ____isaac_2Dtypescript_2Ddefinitions.Keyboard
|
|
7
|
+
--- Maps each keyboard enum member to its corresponding lowercase and uppercase characters.
|
|
8
|
+
____exports.KEYBOARD_TO_STRING = __TS__New(Map, {
|
|
9
|
+
{Keyboard.SPACE, {" ", " "}},
|
|
10
|
+
{Keyboard.APOSTROPHE, {"'", "\""}},
|
|
11
|
+
{Keyboard.COMMA, {",", "<"}},
|
|
12
|
+
{Keyboard.MINUS, {"-", "_"}},
|
|
13
|
+
{Keyboard.PERIOD, {".", ">"}},
|
|
14
|
+
{Keyboard.SLASH, {"/", "?"}},
|
|
15
|
+
{Keyboard.ZERO, {"0", ")"}},
|
|
16
|
+
{Keyboard.ONE, {"1", "!"}},
|
|
17
|
+
{Keyboard.TWO, {"2", "@"}},
|
|
18
|
+
{Keyboard.THREE, {"3", "#"}},
|
|
19
|
+
{Keyboard.FOUR, {"4", "$"}},
|
|
20
|
+
{Keyboard.FIVE, {"5", "%"}},
|
|
21
|
+
{Keyboard.SIX, {"6", "^"}},
|
|
22
|
+
{Keyboard.SEVEN, {"7", "&"}},
|
|
23
|
+
{Keyboard.EIGHT, {"8", "*"}},
|
|
24
|
+
{Keyboard.NINE, {"9", "("}},
|
|
25
|
+
{Keyboard.SEMICOLON, {";", ":"}},
|
|
26
|
+
{Keyboard.EQUAL, {"=", "+"}},
|
|
27
|
+
{Keyboard.A, {"a", "A"}},
|
|
28
|
+
{Keyboard.B, {"b", "B"}},
|
|
29
|
+
{Keyboard.C, {"c", "C"}},
|
|
30
|
+
{Keyboard.D, {"d", "D"}},
|
|
31
|
+
{Keyboard.E, {"e", "E"}},
|
|
32
|
+
{Keyboard.F, {"f", "F"}},
|
|
33
|
+
{Keyboard.G, {"g", "G"}},
|
|
34
|
+
{Keyboard.H, {"h", "H"}},
|
|
35
|
+
{Keyboard.I, {"i", "I"}},
|
|
36
|
+
{Keyboard.J, {"j", "J"}},
|
|
37
|
+
{Keyboard.K, {"k", "K"}},
|
|
38
|
+
{Keyboard.L, {"l", "L"}},
|
|
39
|
+
{Keyboard.M, {"m", "M"}},
|
|
40
|
+
{Keyboard.N, {"n", "N"}},
|
|
41
|
+
{Keyboard.O, {"o", "O"}},
|
|
42
|
+
{Keyboard.P, {"p", "P"}},
|
|
43
|
+
{Keyboard.Q, {"q", "Q"}},
|
|
44
|
+
{Keyboard.R, {"r", "R"}},
|
|
45
|
+
{Keyboard.S, {"s", "S"}},
|
|
46
|
+
{Keyboard.T, {"t", "T"}},
|
|
47
|
+
{Keyboard.U, {"u", "U"}},
|
|
48
|
+
{Keyboard.V, {"v", "V"}},
|
|
49
|
+
{Keyboard.W, {"w", "W"}},
|
|
50
|
+
{Keyboard.X, {"x", "X"}},
|
|
51
|
+
{Keyboard.Y, {"y", "Y"}},
|
|
52
|
+
{Keyboard.Z, {"z", "Z"}},
|
|
53
|
+
{Keyboard.KP_0, {"0", "0"}},
|
|
54
|
+
{Keyboard.KP_1, {"1", "1"}},
|
|
55
|
+
{Keyboard.KP_2, {"2", "2"}},
|
|
56
|
+
{Keyboard.KP_3, {"3", "3"}},
|
|
57
|
+
{Keyboard.KP_4, {"4", "4"}},
|
|
58
|
+
{Keyboard.KP_5, {"5", "5"}},
|
|
59
|
+
{Keyboard.KP_6, {"6", "6"}},
|
|
60
|
+
{Keyboard.KP_7, {"7", "7"}},
|
|
61
|
+
{Keyboard.KP_8, {"8", "8"}},
|
|
62
|
+
{Keyboard.KP_9, {"9", "9"}},
|
|
63
|
+
{Keyboard.KP_DECIMAL, {".", "."}},
|
|
64
|
+
{Keyboard.KP_DIVIDE, {"/", "/"}},
|
|
65
|
+
{Keyboard.KP_MULTIPLY, {"*", "*"}},
|
|
66
|
+
{Keyboard.KP_SUBTRACT, {"-", "-"}},
|
|
67
|
+
{Keyboard.KP_ADD, {"+", "+"}},
|
|
68
|
+
{Keyboard.LEFT_BRACKET, {"[", "{"}},
|
|
69
|
+
{Keyboard.BACKSLASH, {"\\", "|"}},
|
|
70
|
+
{Keyboard.RIGHT_BRACKET, {"]", "}"}},
|
|
71
|
+
{Keyboard.GRAVE_ACCENT, {"`", "~"}}
|
|
72
|
+
})
|
|
73
|
+
return ____exports
|
|
@@ -9,5 +9,10 @@
|
|
|
9
9
|
/// <reference types="isaac-typescript-definitions" />
|
|
10
10
|
/// <reference types="isaac-typescript-definitions" />
|
|
11
11
|
/// <reference types="isaac-typescript-definitions" />
|
|
12
|
+
/**
|
|
13
|
+
* A type union that matches `Entity`, `EntityBomb`, `EntityEffect`, and so on.
|
|
14
|
+
*
|
|
15
|
+
* This is useful for building generic functions that should accept any kind of entity.
|
|
16
|
+
*/
|
|
12
17
|
export declare type AnyEntity = Entity | EntityBomb | EntityEffect | EntityFamiliar | EntityKnife | EntityLaser | EntityNPC | EntityPickup | EntityPlayer | EntityProjectile | EntityTear;
|
|
13
18
|
//# sourceMappingURL=AnyEntity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnyEntity.d.ts","sourceRoot":"","sources":["../../src/types/AnyEntity.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,oBAAY,SAAS,GACjB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,cAAc,GACd,WAAW,GACX,WAAW,GACX,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"AnyEntity.d.ts","sourceRoot":"","sources":["../../src/types/AnyEntity.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;GAIG;AACH,oBAAY,SAAS,GACjB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,cAAc,GACd,WAAW,GACX,WAAW,GACX,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,UAAU,CAAC"}
|
|
@@ -6,5 +6,10 @@
|
|
|
6
6
|
/// <reference types="isaac-typescript-definitions" />
|
|
7
7
|
/// <reference types="isaac-typescript-definitions" />
|
|
8
8
|
/// <reference types="isaac-typescript-definitions" />
|
|
9
|
+
/**
|
|
10
|
+
* A type union that matches `GridEntity`, `GridEntityDoor`, `GridEntityPit`, and so on.
|
|
11
|
+
*
|
|
12
|
+
* This is useful for building generic functions that should accept any kind of grid entity.
|
|
13
|
+
*/
|
|
9
14
|
export declare type AnyGridEntity = GridEntity | GridEntityDoor | GridEntityPit | GridEntityPoop | GridEntityPressurePlate | GridEntityRock | GridEntitySpikes | GridEntityTNT;
|
|
10
15
|
//# sourceMappingURL=AnyGridEntity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnyGridEntity.d.ts","sourceRoot":"","sources":["../../src/types/AnyGridEntity.ts"],"names":[],"mappings":";;;;;;;;AAAA,oBAAY,aAAa,GACrB,UAAU,GACV,cAAc,GACd,aAAa,GACb,cAAc,GACd,uBAAuB,GACvB,cAAc,GACd,gBAAgB,GAChB,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"AnyGridEntity.d.ts","sourceRoot":"","sources":["../../src/types/AnyGridEntity.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;GAIG;AACH,oBAAY,aAAa,GACrB,UAAU,GACV,cAAc,GACd,aAAa,GACb,cAAc,GACd,uBAAuB,GACvB,cAAc,GACd,gBAAgB,GAChB,aAAa,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `CollectibleIndex` is a specific type of string
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* `CollectibleIndex` is a specific type of string that represents a unique identifier for a
|
|
3
|
+
* collectible. Mods can signify that data structures handle collectibles by using this type.
|
|
4
|
+
*
|
|
5
|
+
* For more information, see the documentation for the `getCollectibleIndex` function.
|
|
5
6
|
*
|
|
6
7
|
* For example:
|
|
7
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectibleIndex.d.ts","sourceRoot":"","sources":["../../src/types/CollectibleIndex.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CollectibleIndex.d.ts","sourceRoot":"","sources":["../../src/types/CollectibleIndex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,oBAAY,gBAAgB,GAAG,MAAM,GAAG;IACtC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Immutable is a type that will make the given array/map/set/object recursively read-only.
|
|
2
|
+
* Immutable is a utility type that will make the given array/map/set/object recursively read-only.
|
|
3
|
+
*
|
|
4
|
+
* You can use this type to easily build safe data structures.
|
|
3
5
|
*
|
|
4
6
|
* From: https://stackoverflow.com/questions/41879327/deepreadonly-object-typescript
|
|
5
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Immutable.d.ts","sourceRoot":"","sources":["../../src/types/Immutable.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Immutable.d.ts","sourceRoot":"","sources":["../../src/types/Immutable.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,kBAAkB,GACnD,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,cAAc,CAAC,CAAC,CAAC,GACjB,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC/B,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACtB,YAAY,CAAC,CAAC,CAAC,GACf,eAAe,CAAC,CAAC,CAAC,CAAC;AAEvB,aAAK,kBAAkB,GACnB,SAAS,GACT,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,CAAC;AACb,aAAK,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,aAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,aAAK,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,aAAK,eAAe,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
2
|
/**
|
|
3
|
-
* `PickupIndex` is a specific type of
|
|
4
|
-
*
|
|
3
|
+
* `PickupIndex` is a specific type of number that represents a unique identifier for a pickup. Mods
|
|
4
|
+
* can signify that data structures handle collectibles by using this type.
|
|
5
|
+
*
|
|
6
|
+
* For more information, see the documentation for the `getPickupIndex` function.
|
|
5
7
|
*
|
|
6
8
|
* For example:
|
|
7
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickupIndex.d.ts","sourceRoot":"","sources":["../../src/types/PickupIndex.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"PickupIndex.d.ts","sourceRoot":"","sources":["../../src/types/PickupIndex.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AACH,oBAAY,WAAW,GAAG,GAAG,GAAG;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
2
|
/**
|
|
3
3
|
* `PlayerIndex` is a specific type of number that represents a unique identifier for a player. Mods
|
|
4
|
-
* can signify that data structures handle `EntityPlayer` by using this type.
|
|
5
|
-
*
|
|
4
|
+
* can signify that data structures handle `EntityPlayer` by using this type.
|
|
5
|
+
*
|
|
6
|
+
* For more information, see the documentation for the `getPlayerIndex` function.
|
|
6
7
|
*
|
|
7
8
|
* For example:
|
|
8
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerIndex.d.ts","sourceRoot":"","sources":["../../src/types/PlayerIndex.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"PlayerIndex.d.ts","sourceRoot":"","sources":["../../src/types/PlayerIndex.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AACH,oBAAY,WAAW,GAAG,GAAG,GAAG;IAAE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
/// <reference types="typescript-to-lua/language-extensions" />
|
|
2
|
+
/**
|
|
3
|
+
* This is a type representing an Isaac API class like `Color` or `RNG` that has been written to the
|
|
4
|
+
* "save#.dat" file. It is used by the save data manager when reading and writing to that file.
|
|
5
|
+
*
|
|
6
|
+
* For the list of supported classes, see the `CopyableIsaacAPIClassType` enum.
|
|
7
|
+
*/
|
|
2
8
|
export declare type SerializedIsaacAPIClass = LuaMap<string, unknown> & {
|
|
3
9
|
readonly __serializedIsaacAPIClassBrand: symbol;
|
|
4
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerializedIsaacAPIClass.d.ts","sourceRoot":"","sources":["../../src/types/SerializedIsaacAPIClass.ts"],"names":[],"mappings":";AAAA,oBAAY,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC9D,QAAQ,CAAC,8BAA8B,EAAE,MAAM,CAAC;CACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"SerializedIsaacAPIClass.d.ts","sourceRoot":"","sources":["../../src/types/SerializedIsaacAPIClass.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,oBAAY,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC9D,QAAQ,CAAC,8BAA8B,EAAE,MAAM,CAAC;CACjD,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
/// <reference types="typescript-to-lua/language-extensions" />
|
|
2
|
+
/**
|
|
3
|
+
* This is a type representing a user-created class from TypeScript code.
|
|
4
|
+
*
|
|
5
|
+
* This type is used by the save data manager to when copying, serializing, and deserializing.
|
|
6
|
+
*/
|
|
2
7
|
export declare type TSTLClass = LuaMap<AnyNotNil, unknown> & {
|
|
3
8
|
readonly __tstlClassBrand: symbol;
|
|
4
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TSTLClass.d.ts","sourceRoot":"","sources":["../../src/types/TSTLClass.ts"],"names":[],"mappings":";AAAA,oBAAY,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"TSTLClass.d.ts","sourceRoot":"","sources":["../../src/types/TSTLClass.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,oBAAY,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { LevelStage, StageType } from "isaac-typescript-definitions";
|
|
2
|
+
/**
|
|
3
|
+
* This is the type that you need to specify when using the `spawnCustomTrapdoor` helper function.
|
|
4
|
+
*/
|
|
2
5
|
export declare type TrapdoorDestination = [stage: LevelStage, stageType: StageType] | [customStageName: string, floorNum: int];
|
|
3
6
|
//# sourceMappingURL=TrapdoorDestination.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrapdoorDestination.d.ts","sourceRoot":"","sources":["../../src/types/TrapdoorDestination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAErE,oBAAY,mBAAmB,GAC3B,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,GACzC,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"TrapdoorDestination.d.ts","sourceRoot":"","sources":["../../src/types/TrapdoorDestination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,oBAAY,mBAAmB,GAC3B,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,GACzC,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "isaacscript-common",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.2.2",
|
|
4
4
|
"description": "Helper functions and features for IsaacScript mods.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"isaac",
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
"main": "dist/index",
|
|
23
23
|
"types": "dist/index.d.ts",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"isaac-typescript-definitions": "^3.
|
|
25
|
+
"isaac-typescript-definitions": "^3.5.0"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -12,6 +12,7 @@ import { ModUpgraded } from "../classes/ModUpgraded";
|
|
|
12
12
|
import { ModCallbackCustom } from "../enums/ModCallbackCustom";
|
|
13
13
|
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
14
14
|
import { defaultMapGetPlayer } from "../functions/playerDataStructures";
|
|
15
|
+
import { asNumber } from "../functions/types";
|
|
15
16
|
import {
|
|
16
17
|
newPickingUpItem,
|
|
17
18
|
PickingUpItem,
|
|
@@ -71,8 +72,10 @@ function postPEffectUpdateReordered(player: EntityPlayer) {
|
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
function queueEmpty(player: EntityPlayer, pickingUpItem: PickingUpItem) {
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
if (
|
|
76
|
+
pickingUpItem.itemType === ItemType.NULL ||
|
|
77
|
+
asNumber(pickingUpItem.subType) === 0
|
|
78
|
+
) {
|
|
76
79
|
return;
|
|
77
80
|
}
|
|
78
81
|
|
|
@@ -15,11 +15,16 @@ import { directionToVector } from "../functions/direction";
|
|
|
15
15
|
import { doorSlotToDirection } from "../functions/doors";
|
|
16
16
|
import { getEffects, spawnEffect } from "../functions/entitiesSpecific";
|
|
17
17
|
import { getClosestPlayer } from "../functions/players";
|
|
18
|
+
import { asNumber } from "../functions/types";
|
|
18
19
|
import {
|
|
19
20
|
postCustomDoorEnterFire,
|
|
20
21
|
postCustomDoorEnterHasSubscriptions,
|
|
21
22
|
} from "./subscriptions/postCustomDoorEnter";
|
|
22
23
|
|
|
24
|
+
interface EntityEffectCustomDoor extends EntityEffect {
|
|
25
|
+
State: DoorState;
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
interface CustomDoorData {
|
|
24
29
|
slot: DoorSlot;
|
|
25
30
|
state: DoorState;
|
|
@@ -72,41 +77,43 @@ export function initCustomDoorInternal(
|
|
|
72
77
|
|
|
73
78
|
// ModCallback.POST_EFFECT_UPDATE (55)
|
|
74
79
|
function postEffectUpdaterCustomEntity(effect: EntityEffect) {
|
|
80
|
+
const customDoor = effect as EntityEffectCustomDoor;
|
|
81
|
+
|
|
75
82
|
const ptrHash = GetPtrHash(effect);
|
|
76
83
|
const doorData = v.room.customDoors.get(ptrHash);
|
|
77
84
|
if (doorData === undefined) {
|
|
78
85
|
return;
|
|
79
86
|
}
|
|
80
87
|
|
|
81
|
-
if (doorData.state ===
|
|
88
|
+
if (doorData.state === customDoor.State) {
|
|
82
89
|
return;
|
|
83
90
|
}
|
|
84
|
-
doorData.state =
|
|
91
|
+
doorData.state = customDoor.State;
|
|
85
92
|
|
|
86
93
|
doorChangedState(effect);
|
|
87
94
|
}
|
|
88
95
|
|
|
89
|
-
function doorChangedState(
|
|
96
|
+
function doorChangedState(door: EntityEffectCustomDoor) {
|
|
90
97
|
const room = game.GetRoom();
|
|
91
98
|
|
|
92
|
-
const sprite =
|
|
93
|
-
const animation = getAnimationForCustomDoor(
|
|
99
|
+
const sprite = door.GetSprite();
|
|
100
|
+
const animation = getAnimationForCustomDoor(door);
|
|
94
101
|
sprite.Play(animation, true);
|
|
95
102
|
|
|
96
|
-
const gridIndex = room.GetGridIndex(
|
|
103
|
+
const gridIndex = room.GetGridIndex(door.Position);
|
|
97
104
|
const wall = room.GetGridEntity(gridIndex);
|
|
98
105
|
if (wall !== undefined) {
|
|
99
106
|
wall.CollisionClass =
|
|
100
|
-
|
|
107
|
+
door.State === DoorState.OPEN
|
|
101
108
|
? GridCollisionClass.WALL_EXCEPT_PLAYER
|
|
102
109
|
: GridCollisionClass.WALL;
|
|
103
110
|
}
|
|
104
111
|
}
|
|
105
112
|
|
|
106
|
-
function getAnimationForCustomDoor(
|
|
107
|
-
const freshlySpawned =
|
|
113
|
+
function getAnimationForCustomDoor(door: EntityEffectCustomDoor): string {
|
|
114
|
+
const freshlySpawned = door.FrameCount === 0;
|
|
108
115
|
|
|
109
|
-
switch (
|
|
116
|
+
switch (door.State) {
|
|
110
117
|
case DoorState.OPEN: {
|
|
111
118
|
return freshlySpawned ? "Opened" : "Open";
|
|
112
119
|
}
|
|
@@ -220,7 +227,7 @@ export function spawnCustomDoorInternal(
|
|
|
220
227
|
effect.RenderZOffset = -10000;
|
|
221
228
|
effect.PositionOffset = getPositionOffset(doorSlot);
|
|
222
229
|
const sprite = effect.GetSprite();
|
|
223
|
-
sprite.Rotation = (doorSlot
|
|
230
|
+
sprite.Rotation = asNumber(doorSlot) * 90 - 90;
|
|
224
231
|
|
|
225
232
|
// Keep track of metadata about this door.
|
|
226
233
|
const ptrHash = GetPtrHash(effect);
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DiceFloorSubType,
|
|
3
|
-
EffectVariant,
|
|
4
|
-
ModCallback,
|
|
5
|
-
} from "isaac-typescript-definitions";
|
|
1
|
+
import { EffectVariant, ModCallback } from "isaac-typescript-definitions";
|
|
6
2
|
import { saveDataManager } from "../features/saveDataManager/exports";
|
|
7
3
|
import { isCloseEnoughToTriggerDiceFloor } from "../functions/effects";
|
|
8
4
|
import { getClosestPlayer } from "../functions/players";
|
|
@@ -34,6 +30,8 @@ function hasSubscriptions() {
|
|
|
34
30
|
// ModCallback.POST_EFFECT_UPDATE (55)
|
|
35
31
|
// EffectVariant.DICE_FLOOR (76)
|
|
36
32
|
function postEffectUpdateDiceFloor(effect: EntityEffect) {
|
|
33
|
+
const diceFloor = effect as EntityEffectDiceFloor;
|
|
34
|
+
|
|
37
35
|
if (!hasSubscriptions()) {
|
|
38
36
|
return;
|
|
39
37
|
}
|
|
@@ -44,16 +42,13 @@ function postEffectUpdateDiceFloor(effect: EntityEffect) {
|
|
|
44
42
|
|
|
45
43
|
// When using the debug console to go to a dice room, the player can appear on top of the dice
|
|
46
44
|
// floor before they snap to the door.
|
|
47
|
-
if (
|
|
45
|
+
if (diceFloor.FrameCount === 0) {
|
|
48
46
|
return;
|
|
49
47
|
}
|
|
50
48
|
|
|
51
|
-
const closestPlayer = getClosestPlayer(
|
|
52
|
-
if (isCloseEnoughToTriggerDiceFloor(closestPlayer,
|
|
49
|
+
const closestPlayer = getClosestPlayer(diceFloor.Position);
|
|
50
|
+
if (isCloseEnoughToTriggerDiceFloor(closestPlayer, diceFloor)) {
|
|
53
51
|
v.room.diceRoomActivated = true;
|
|
54
|
-
postDiceRoomActivatedFire(
|
|
55
|
-
closestPlayer,
|
|
56
|
-
effect.SubType as DiceFloorSubType,
|
|
57
|
-
);
|
|
52
|
+
postDiceRoomActivatedFire(closestPlayer, diceFloor.SubType);
|
|
58
53
|
}
|
|
59
54
|
}
|
|
@@ -131,11 +131,13 @@ function preNPCCollisionSucker(
|
|
|
131
131
|
npc: EntityNPC,
|
|
132
132
|
collider: Entity,
|
|
133
133
|
): boolean | undefined {
|
|
134
|
+
const sucker = npc as EntityNPCSucker;
|
|
135
|
+
|
|
134
136
|
if (!hasSubscriptions()) {
|
|
135
137
|
return undefined;
|
|
136
138
|
}
|
|
137
139
|
|
|
138
|
-
if (
|
|
140
|
+
if (sucker.Variant !== SuckerVariant.BULB) {
|
|
139
141
|
return undefined;
|
|
140
142
|
}
|
|
141
143
|
|
|
@@ -36,7 +36,7 @@ export function postSlotDestroyedInit(mod: ModUpgraded): void {
|
|
|
36
36
|
|
|
37
37
|
mod.AddCallback(
|
|
38
38
|
ModCallback.POST_ENTITY_REMOVE,
|
|
39
|
-
|
|
39
|
+
postEntityRemoveSlot,
|
|
40
40
|
EntityType.SLOT,
|
|
41
41
|
); // 67
|
|
42
42
|
|
|
@@ -51,7 +51,8 @@ function hasSubscriptions() {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
// ModCallback.POST_ENTITY_REMOVE (67)
|
|
54
|
-
|
|
54
|
+
// EntityType.SLOT (6)
|
|
55
|
+
function postEntityRemoveSlot(entity: Entity) {
|
|
55
56
|
const slot = entity as EntitySlot;
|
|
56
57
|
const ptrHash = GetPtrHash(slot);
|
|
57
58
|
const gameFrameCount = game.GetFrameCount();
|
|
@@ -31,8 +31,8 @@ import {
|
|
|
31
31
|
postNewRoomReorderedHasSubscriptions,
|
|
32
32
|
} from "./subscriptions/postNewRoomReordered";
|
|
33
33
|
|
|
34
|
-
let currentStage
|
|
35
|
-
let currentStageType
|
|
34
|
+
let currentStage: int | null = null;
|
|
35
|
+
let currentStageType: int | null = null;
|
|
36
36
|
let usedGlowingHourGlass = false;
|
|
37
37
|
let forceNewLevel = false;
|
|
38
38
|
let forceNewRoom = false;
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { isFunction, isPrimitive } from "../functions/types";
|
|
2
2
|
|
|
3
|
-
// eslint-disable-next-line isaacscript/complete-sentences-jsdoc
|
|
4
|
-
/**
|
|
5
|
-
* A function that creates the default value for your `DefaultMap`. For example, if it was a
|
|
6
|
-
* `DefaultMap` containing maps, the factory function would be: `() => new Map()`
|
|
7
|
-
*/
|
|
8
|
-
export type FactoryFunction<V, Args extends unknown[]> = (...args: Args) => V;
|
|
9
|
-
|
|
10
3
|
/**
|
|
11
4
|
* `DefaultMap` is a data structure that makes working with default values easier.
|
|
12
5
|
*
|
|
@@ -116,7 +109,7 @@ export class DefaultMap<Key, Value, Args extends unknown[] = []> extends Map<
|
|
|
116
109
|
this.defaultValue = undefined;
|
|
117
110
|
this.defaultValueFactory = defaultValueOrFactoryFunction;
|
|
118
111
|
} else {
|
|
119
|
-
this.defaultValue = defaultValueOrFactoryFunction
|
|
112
|
+
this.defaultValue = defaultValueOrFactoryFunction;
|
|
120
113
|
this.defaultValueFactory = undefined;
|
|
121
114
|
}
|
|
122
115
|
}
|
|
@@ -169,6 +162,13 @@ export class DefaultMap<Key, Value, Args extends unknown[] = []> extends Map<
|
|
|
169
162
|
}
|
|
170
163
|
}
|
|
171
164
|
|
|
165
|
+
// eslint-disable-next-line isaacscript/complete-sentences-jsdoc
|
|
166
|
+
/**
|
|
167
|
+
* A function that creates the default value for your `DefaultMap`. For example, if it was a
|
|
168
|
+
* `DefaultMap` containing maps, the factory function would be: `() => new Map()`
|
|
169
|
+
*/
|
|
170
|
+
export type FactoryFunction<V, Args extends unknown[]> = (...args: Args) => V;
|
|
171
|
+
|
|
172
172
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
173
173
|
function test() {
|
|
174
174
|
// Boolean
|
package/src/core/constants.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
CollectibleType,
|
|
3
2
|
Dimension,
|
|
4
3
|
DisplayFlag,
|
|
5
4
|
ItemPoolType,
|
|
@@ -7,6 +6,7 @@ import {
|
|
|
7
6
|
} from "isaac-typescript-definitions";
|
|
8
7
|
import { getEnumLength } from "../functions/enums";
|
|
9
8
|
import { addFlag } from "../functions/flag";
|
|
9
|
+
import { asCollectibleType } from "../functions/types";
|
|
10
10
|
import { NUM_NORMAL_PILL_COLORS } from "./constantsFirstLast";
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -64,8 +64,8 @@ export const EMPTY_PNG_PATH = "gfx/none.png";
|
|
|
64
64
|
* encountered by the player. The first TMTRAINER item takes the final possible 32 bit number. The
|
|
65
65
|
* second TMTRAINER item subtracts one from that, and so on.
|
|
66
66
|
*/
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
|
|
68
|
+
export const FIRST_GLITCHED_COLLECTIBLE_TYPE = asCollectibleType((1 << 32) - 1);
|
|
69
69
|
|
|
70
70
|
/** Game frames are what is returned by the `Game.GetFrameCount` method. */
|
|
71
71
|
export const GAME_FRAMES_PER_SECOND = 30;
|
|
@@ -9,6 +9,14 @@ import {
|
|
|
9
9
|
TrinketType,
|
|
10
10
|
} from "isaac-typescript-definitions";
|
|
11
11
|
import { getEnumLength, getLastEnumValue } from "../functions/enums";
|
|
12
|
+
import {
|
|
13
|
+
asCard,
|
|
14
|
+
asCollectibleType,
|
|
15
|
+
asNumber,
|
|
16
|
+
asPillEffect,
|
|
17
|
+
asPlayerType,
|
|
18
|
+
asTrinketType,
|
|
19
|
+
} from "../functions/types";
|
|
12
20
|
import { itemConfig } from "./cachedClasses";
|
|
13
21
|
|
|
14
22
|
// ------------
|
|
@@ -24,8 +32,9 @@ export const FIRST_COLLECTIBLE_TYPE = CollectibleType.SAD_ONION;
|
|
|
24
32
|
* Equal to `itemConfig.GetCollectibles().Size - 1`. (`Size` includes invalid collectibles, like
|
|
25
33
|
* 666. We subtract one to account for `CollectibleType.NULL`.)
|
|
26
34
|
*/
|
|
27
|
-
export const LAST_COLLECTIBLE_TYPE = (
|
|
28
|
-
|
|
35
|
+
export const LAST_COLLECTIBLE_TYPE = asCollectibleType(
|
|
36
|
+
itemConfig.GetCollectibles().Size - 1,
|
|
37
|
+
);
|
|
29
38
|
|
|
30
39
|
/**
|
|
31
40
|
* Calculated from the `CollectibleType` enum.
|
|
@@ -39,8 +48,9 @@ export const LAST_VANILLA_COLLECTIBLE_TYPE = getLastEnumValue(CollectibleType);
|
|
|
39
48
|
* If there are no modded collectibles, this constant will represent a collectible type that does
|
|
40
49
|
* not exist.
|
|
41
50
|
*/
|
|
42
|
-
export const FIRST_MODDED_COLLECTIBLE_TYPE =
|
|
43
|
-
(
|
|
51
|
+
export const FIRST_MODDED_COLLECTIBLE_TYPE = asCollectibleType(
|
|
52
|
+
asNumber(LAST_VANILLA_COLLECTIBLE_TYPE) + 1,
|
|
53
|
+
);
|
|
44
54
|
|
|
45
55
|
/** Calculated from the `CollectibleType` enum. `CollectibleType.NULL` is not included. */
|
|
46
56
|
export const NUM_VANILLA_COLLECTIBLE_TYPES = getEnumLength(CollectibleType) - 1;
|
|
@@ -79,7 +89,7 @@ export const FIRST_TRINKET_TYPE = TrinketType.SWALLOWED_PENNY;
|
|
|
79
89
|
* Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
|
|
80
90
|
* `TrinketType.NULL`.)
|
|
81
91
|
*/
|
|
82
|
-
export const LAST_TRINKET_TYPE = NUM_TRINKET_TYPES
|
|
92
|
+
export const LAST_TRINKET_TYPE = asTrinketType(NUM_TRINKET_TYPES);
|
|
83
93
|
|
|
84
94
|
/** Calculated from the `TrinketType` enum. */
|
|
85
95
|
export const LAST_VANILLA_TRINKET_TYPE = getLastEnumValue(TrinketType);
|
|
@@ -87,8 +97,9 @@ export const LAST_VANILLA_TRINKET_TYPE = getLastEnumValue(TrinketType);
|
|
|
87
97
|
/**
|
|
88
98
|
* If there are no modded trinkets, this constant will represent a trinket type that does not exist.
|
|
89
99
|
*/
|
|
90
|
-
export const FIRST_MODDED_TRINKET_TYPE = (
|
|
91
|
-
|
|
100
|
+
export const FIRST_MODDED_TRINKET_TYPE = asTrinketType(
|
|
101
|
+
asNumber(LAST_VANILLA_TRINKET_TYPE) + 1,
|
|
102
|
+
);
|
|
92
103
|
|
|
93
104
|
// -----
|
|
94
105
|
// Cards
|
|
@@ -114,13 +125,13 @@ export const FIRST_CARD = Card.FOOL;
|
|
|
114
125
|
*
|
|
115
126
|
* Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
|
|
116
127
|
*/
|
|
117
|
-
export const LAST_CARD = NUM_CARDS
|
|
128
|
+
export const LAST_CARD = asCard(NUM_CARDS);
|
|
118
129
|
|
|
119
130
|
/** Calculated from the `Card` enum. */
|
|
120
131
|
export const MAX_VANILLA_CARD = getLastEnumValue(Card);
|
|
121
132
|
|
|
122
133
|
/** If there are no modded cards, this constant will represent a card that does not exist. */
|
|
123
|
-
export const FIRST_MODDED_CARD = ((MAX_VANILLA_CARD
|
|
134
|
+
export const FIRST_MODDED_CARD = asCard(asNumber(MAX_VANILLA_CARD) + 1);
|
|
124
135
|
|
|
125
136
|
// ------------
|
|
126
137
|
// Pill Effects
|
|
@@ -153,7 +164,7 @@ export const FIRST_PILL_EFFECT = PillEffect.BAD_GAS;
|
|
|
153
164
|
* Equal to `itemConfig.GetPillEffects().Size - 1`. (We subtract one to account for
|
|
154
165
|
* `PillEffect.NULL`.)
|
|
155
166
|
*/
|
|
156
|
-
export const LAST_PILL_EFFECT = NUM_PILL_EFFECTS
|
|
167
|
+
export const LAST_PILL_EFFECT = asPillEffect(NUM_PILL_EFFECTS);
|
|
157
168
|
|
|
158
169
|
/** Calculated from the `PillEffect` enum. */
|
|
159
170
|
export const LAST_VANILLA_PILL_EFFECT = getLastEnumValue(PillEffect);
|
|
@@ -162,8 +173,9 @@ export const LAST_VANILLA_PILL_EFFECT = getLastEnumValue(PillEffect);
|
|
|
162
173
|
* If there are no modded pill effects, this constant will represent a pill effect that does not
|
|
163
174
|
* exist.
|
|
164
175
|
*/
|
|
165
|
-
export const FIRST_MODDED_PILL_EFFECT = (
|
|
166
|
-
|
|
176
|
+
export const FIRST_MODDED_PILL_EFFECT = asPillEffect(
|
|
177
|
+
asNumber(LAST_VANILLA_PILL_EFFECT) + 1,
|
|
178
|
+
);
|
|
167
179
|
|
|
168
180
|
// -----------
|
|
169
181
|
// Pill Colors
|
|
@@ -207,9 +219,12 @@ export const LAST_VANILLA_CHARACTER = getLastEnumValue(PlayerType);
|
|
|
207
219
|
|
|
208
220
|
/**
|
|
209
221
|
* If there are no modded characters, this constant will represent a character that does not exist.
|
|
222
|
+
* (There is no way to determine the amount of modded characters at run-time, since there is no
|
|
223
|
+
* exposed player config.)
|
|
210
224
|
*/
|
|
211
|
-
export const FIRST_MODDED_CHARACTER = (
|
|
212
|
-
|
|
225
|
+
export const FIRST_MODDED_CHARACTER = asPlayerType(
|
|
226
|
+
asNumber(LAST_VANILLA_CHARACTER) + 1,
|
|
227
|
+
);
|
|
213
228
|
|
|
214
229
|
// ----------
|
|
215
230
|
// Room Types
|
package/src/enums/AmbushType.ts
CHANGED
package/src/enums/CornerType.ts
CHANGED