isaacscript-common 1.2.124 → 1.2.127
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.lua +4 -4
- package/dist/callbacks/postCursedTeleport.lua +7 -7
- package/dist/callbacks/postPlayerChangeType.lua +11 -11
- package/dist/callbacks/postPlayerFatalDamage.lua +6 -7
- package/dist/callbacks/postPlayerInitLate.lua +6 -6
- package/dist/callbacks/postPurchase.lua +5 -5
- package/dist/callbacks/postTransformation.lua +3 -4
- package/dist/callbacks/postTrinketBreak.lua +4 -6
- package/dist/features/isPonyActive.lua +8 -8
- package/dist/functions/map.d.ts +6 -12
- package/dist/functions/map.lua +21 -12
- package/dist/functions/playerDataStructures.d.ts +33 -0
- package/dist/functions/playerDataStructures.lua +32 -0
- package/dist/functions/revive.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.lua +8 -0
- package/dist/types/PlayerIndex.d.ts +3 -2
- package/package.json +1 -1
|
@@ -5,8 +5,8 @@ local ____exports = {}
|
|
|
5
5
|
local hasSubscriptions, postPEffectUpdateReordered, queueEmpty, queueNotEmpty, v
|
|
6
6
|
local ____exports = require("features.saveDataManager.exports")
|
|
7
7
|
local saveDataManager = ____exports.saveDataManager
|
|
8
|
-
local
|
|
9
|
-
local
|
|
8
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
9
|
+
local defaultMapGetPlayer = ____playerDataStructures.defaultMapGetPlayer
|
|
10
10
|
local ____DefaultMap = require("types.DefaultMap")
|
|
11
11
|
local DefaultMap = ____DefaultMap.DefaultMap
|
|
12
12
|
local ____ModCallbacksCustom = require("types.ModCallbacksCustom")
|
|
@@ -27,7 +27,7 @@ function postPEffectUpdateReordered(self, player)
|
|
|
27
27
|
if not hasSubscriptions(nil) then
|
|
28
28
|
return
|
|
29
29
|
end
|
|
30
|
-
local pickingUpItem =
|
|
30
|
+
local pickingUpItem = defaultMapGetPlayer(nil, v.run.playersPickingUpItemMap, player)
|
|
31
31
|
if player:IsItemQueueEmpty() then
|
|
32
32
|
queueEmpty(nil, player, pickingUpItem)
|
|
33
33
|
else
|
|
@@ -52,7 +52,7 @@ function queueNotEmpty(self, player, pickingUpItem)
|
|
|
52
52
|
preItemPickupFire(nil, player, pickingUpItem)
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
|
-
v = {run = {
|
|
55
|
+
v = {run = {playersPickingUpItemMap = __TS__New(
|
|
56
56
|
DefaultMap,
|
|
57
57
|
function() return newPickingUpItem(nil) end
|
|
58
58
|
)}}
|
|
@@ -8,11 +8,11 @@ local ____exports = require("features.saveDataManager.exports")
|
|
|
8
8
|
local saveDataManager = ____exports.saveDataManager
|
|
9
9
|
local ____flag = require("functions.flag")
|
|
10
10
|
local hasFlag = ____flag.hasFlag
|
|
11
|
-
local ____map = require("functions.map")
|
|
12
|
-
local getMapPlayer = ____map.getMapPlayer
|
|
13
|
-
local setMapPlayer = ____map.setMapPlayer
|
|
14
11
|
local ____player = require("functions.player")
|
|
15
12
|
local getPlayerNumHitsRemaining = ____player.getPlayerNumHitsRemaining
|
|
13
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
14
|
+
local mapGetPlayer = ____playerDataStructures.mapGetPlayer
|
|
15
|
+
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
16
16
|
local ____postCursedTeleport = require("callbacks.subscriptions.postCursedTeleport")
|
|
17
17
|
local postCursedTeleportFire = ____postCursedTeleport.postCursedTeleportFire
|
|
18
18
|
local postCursedTeleportHasSubscriptions = ____postCursedTeleport.postCursedTeleportHasSubscriptions
|
|
@@ -33,7 +33,7 @@ function setDamageFrame(self, tookDamage, damageFlags)
|
|
|
33
33
|
if player == nil then
|
|
34
34
|
return
|
|
35
35
|
end
|
|
36
|
-
local trackingArray =
|
|
36
|
+
local trackingArray = mapGetPlayer(nil, v.run.playersDamageFrameMap, player)
|
|
37
37
|
if trackingArray ~= nil then
|
|
38
38
|
local lastDamageFrame, callbackFiredOnThisFrame = table.unpack(trackingArray)
|
|
39
39
|
if lastDamageFrame == gameFrameCount and callbackFiredOnThisFrame then
|
|
@@ -44,7 +44,7 @@ function setDamageFrame(self, tookDamage, damageFlags)
|
|
|
44
44
|
return
|
|
45
45
|
end
|
|
46
46
|
local newTrackingArray = {gameFrameCount, false}
|
|
47
|
-
|
|
47
|
+
mapSetPlayer(nil, v.run.playersDamageFrameMap, player, newTrackingArray)
|
|
48
48
|
end
|
|
49
49
|
function isPotentialNaturalTeleportFromSacrificeRoom(self, damageFlags)
|
|
50
50
|
local game = Game()
|
|
@@ -67,7 +67,7 @@ function postPlayerRenderPlayer(self, player)
|
|
|
67
67
|
if not hasSubscriptions(nil) then
|
|
68
68
|
return
|
|
69
69
|
end
|
|
70
|
-
local trackingArray =
|
|
70
|
+
local trackingArray = mapGetPlayer(nil, v.run.playersDamageFrameMap, player)
|
|
71
71
|
if trackingArray == nil then
|
|
72
72
|
return
|
|
73
73
|
end
|
|
@@ -81,7 +81,7 @@ function postPlayerRenderPlayer(self, player)
|
|
|
81
81
|
local game = Game()
|
|
82
82
|
local gameFrameCount = game:GetFrameCount()
|
|
83
83
|
local newTrackingArray = {gameFrameCount, true}
|
|
84
|
-
|
|
84
|
+
mapSetPlayer(nil, v.run.playersDamageFrameMap, player, newTrackingArray)
|
|
85
85
|
postCursedTeleportFire(nil, player)
|
|
86
86
|
end
|
|
87
87
|
function playerIsTeleportingFromCursedTeleport(self, player, lastDamageFrame)
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
2
|
local ____lualib = require("lualib_bundle")
|
|
3
|
-
local Map = ____lualib.Map
|
|
4
3
|
local __TS__New = ____lualib.__TS__New
|
|
5
4
|
local ____exports = {}
|
|
6
5
|
local hasSubscriptions, postPEffectUpdateReordered, v
|
|
7
6
|
local ____exports = require("features.saveDataManager.exports")
|
|
8
7
|
local saveDataManager = ____exports.saveDataManager
|
|
9
|
-
local
|
|
10
|
-
local
|
|
8
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
9
|
+
local defaultMapGetPlayer = ____playerDataStructures.defaultMapGetPlayer
|
|
10
|
+
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
11
|
+
local ____DefaultMap = require("types.DefaultMap")
|
|
12
|
+
local DefaultMap = ____DefaultMap.DefaultMap
|
|
11
13
|
local ____ModCallbacksCustom = require("types.ModCallbacksCustom")
|
|
12
14
|
local ModCallbacksCustom = ____ModCallbacksCustom.ModCallbacksCustom
|
|
13
15
|
local ____postPlayerChangeType = require("callbacks.subscriptions.postPlayerChangeType")
|
|
@@ -21,18 +23,16 @@ function postPEffectUpdateReordered(self, player)
|
|
|
21
23
|
return
|
|
22
24
|
end
|
|
23
25
|
local character = player:GetPlayerType()
|
|
24
|
-
local
|
|
25
|
-
local storedCharacter = v.run.characterMap:get(playerIndex)
|
|
26
|
-
if storedCharacter == nil then
|
|
27
|
-
v.run.characterMap:set(playerIndex, character)
|
|
28
|
-
return
|
|
29
|
-
end
|
|
26
|
+
local storedCharacter = defaultMapGetPlayer(nil, v.run.playersCharacterMap, player, character)
|
|
30
27
|
if character ~= storedCharacter then
|
|
31
|
-
v.run.
|
|
28
|
+
mapSetPlayer(nil, v.run.playersCharacterMap, player, character)
|
|
32
29
|
postPlayerChangeTypeFire(nil, player, storedCharacter, character)
|
|
33
30
|
end
|
|
34
31
|
end
|
|
35
|
-
v = {run = {
|
|
32
|
+
v = {run = {playersCharacterMap = __TS__New(
|
|
33
|
+
DefaultMap,
|
|
34
|
+
function(____, _key, character) return character end
|
|
35
|
+
)}}
|
|
36
36
|
function ____exports.postPlayerChangeTypeCallbackInit(self, mod)
|
|
37
37
|
saveDataManager(nil, "postPlayerChangeType", v, hasSubscriptions)
|
|
38
38
|
mod:AddCallbackCustom(ModCallbacksCustom.MC_POST_PEFFECT_UPDATE_REORDERED, postPEffectUpdateReordered)
|
|
@@ -6,8 +6,10 @@ local hasSubscriptions, entityTakeDmgPlayer, v
|
|
|
6
6
|
local ____exports = require("features.saveDataManager.exports")
|
|
7
7
|
local saveDataManager = ____exports.saveDataManager
|
|
8
8
|
local ____player = require("functions.player")
|
|
9
|
-
local getPlayerIndex = ____player.getPlayerIndex
|
|
10
9
|
local isChildPlayer = ____player.isChildPlayer
|
|
10
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
11
|
+
local defaultMapGetPlayer = ____playerDataStructures.defaultMapGetPlayer
|
|
12
|
+
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
11
13
|
local ____revive = require("functions.revive")
|
|
12
14
|
local isDamageToPlayerFatal = ____revive.isDamageToPlayerFatal
|
|
13
15
|
local willPlayerRevive = ____revive.willPlayerRevive
|
|
@@ -32,8 +34,8 @@ function entityTakeDmgPlayer(self, tookDamage, damageAmount, damageFlags, damage
|
|
|
32
34
|
end
|
|
33
35
|
local game = Game()
|
|
34
36
|
local gameFrameCount = game:GetFrameCount()
|
|
35
|
-
local
|
|
36
|
-
|
|
37
|
+
local lastDamageGameFrame = defaultMapGetPlayer(nil, v.run.playersLastDamageGameFrame, player)
|
|
38
|
+
mapSetPlayer(nil, v.run.playersLastDamageGameFrame, player, gameFrameCount)
|
|
37
39
|
if willPlayerRevive(nil, player) then
|
|
38
40
|
return nil
|
|
39
41
|
end
|
|
@@ -59,10 +61,7 @@ function entityTakeDmgPlayer(self, tookDamage, damageAmount, damageFlags, damage
|
|
|
59
61
|
end
|
|
60
62
|
return nil
|
|
61
63
|
end
|
|
62
|
-
v = {run = {playersLastDamageGameFrame = __TS__New(
|
|
63
|
-
DefaultMap,
|
|
64
|
-
function(____, _key, gameFrameCount) return gameFrameCount end
|
|
65
|
-
)}}
|
|
64
|
+
v = {run = {playersLastDamageGameFrame = __TS__New(DefaultMap, nil)}}
|
|
66
65
|
function ____exports.postPlayerFatalDamageCallbackInit(self, mod)
|
|
67
66
|
saveDataManager(nil, "postPlayerFatalDamage", v)
|
|
68
67
|
mod:AddCallback(ModCallbacks.MC_ENTITY_TAKE_DMG, entityTakeDmgPlayer, EntityType.ENTITY_PLAYER)
|
|
@@ -6,8 +6,9 @@ local ____exports = {}
|
|
|
6
6
|
local hasSubscriptions, postPlayerUpdate, v
|
|
7
7
|
local ____exports = require("features.saveDataManager.exports")
|
|
8
8
|
local saveDataManager = ____exports.saveDataManager
|
|
9
|
-
local
|
|
10
|
-
local
|
|
9
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
10
|
+
local setAddPlayer = ____playerDataStructures.setAddPlayer
|
|
11
|
+
local setHasPlayer = ____playerDataStructures.setHasPlayer
|
|
11
12
|
local ____postPlayerInitLate = require("callbacks.subscriptions.postPlayerInitLate")
|
|
12
13
|
local postPlayerInitLateFire = ____postPlayerInitLate.postPlayerInitLateFire
|
|
13
14
|
local postPlayerInitLateHasSubscriptions = ____postPlayerInitLate.postPlayerInitLateHasSubscriptions
|
|
@@ -18,13 +19,12 @@ function postPlayerUpdate(self, player)
|
|
|
18
19
|
if not hasSubscriptions(nil) then
|
|
19
20
|
return
|
|
20
21
|
end
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
v.run.firedSet:add(playerIndex)
|
|
22
|
+
if not setHasPlayer(nil, v.run.playersFiredSet, player) then
|
|
23
|
+
setAddPlayer(nil, v.run.playersFiredSet, player)
|
|
24
24
|
postPlayerInitLateFire(nil, player)
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
|
-
v = {run = {
|
|
27
|
+
v = {run = {playersFiredSet = __TS__New(Set)}}
|
|
28
28
|
function ____exports.postPlayerInitLateCallbackInit(self, mod)
|
|
29
29
|
saveDataManager(nil, "postPlayerInitLate", v, hasSubscriptions)
|
|
30
30
|
mod:AddCallback(ModCallbacks.MC_POST_PLAYER_UPDATE, postPlayerUpdate)
|
|
@@ -8,8 +8,9 @@ local ____exports = require("features.saveDataManager.exports")
|
|
|
8
8
|
local saveDataManager = ____exports.saveDataManager
|
|
9
9
|
local ____pickups = require("functions.pickups")
|
|
10
10
|
local getPickups = ____pickups.getPickups
|
|
11
|
-
local
|
|
12
|
-
local
|
|
11
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
12
|
+
local defaultMapGetPlayer = ____playerDataStructures.defaultMapGetPlayer
|
|
13
|
+
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
13
14
|
local ____DefaultMap = require("types.DefaultMap")
|
|
14
15
|
local DefaultMap = ____DefaultMap.DefaultMap
|
|
15
16
|
local ____postPurchase = require("callbacks.subscriptions.postPurchase")
|
|
@@ -23,9 +24,8 @@ function postPEffectUpdate(self, player)
|
|
|
23
24
|
return
|
|
24
25
|
end
|
|
25
26
|
local isHoldingItem = player:IsHoldingItem()
|
|
26
|
-
local
|
|
27
|
-
|
|
28
|
-
v.room.playersHoldingItemOnLastFrameMap:set(playerIndex, isHoldingItem)
|
|
27
|
+
local wasHoldingItemOnLastFrame = defaultMapGetPlayer(nil, v.room.playersHoldingItemOnLastFrameMap, player)
|
|
28
|
+
mapSetPlayer(nil, v.room.playersHoldingItemOnLastFrameMap, player, isHoldingItem)
|
|
29
29
|
if not wasHoldingItemOnLastFrame and isHoldingItem then
|
|
30
30
|
playerPickedUpNewItem(nil, player)
|
|
31
31
|
end
|
|
@@ -9,8 +9,8 @@ local ____exports = require("features.saveDataManager.exports")
|
|
|
9
9
|
local saveDataManager = ____exports.saveDataManager
|
|
10
10
|
local ____math = require("functions.math")
|
|
11
11
|
local range = ____math.range
|
|
12
|
-
local
|
|
13
|
-
local
|
|
12
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
13
|
+
local defaultMapGetPlayer = ____playerDataStructures.defaultMapGetPlayer
|
|
14
14
|
local ____DefaultMap = require("types.DefaultMap")
|
|
15
15
|
local DefaultMap = ____DefaultMap.DefaultMap
|
|
16
16
|
local ____ModCallbacksCustom = require("types.ModCallbacksCustom")
|
|
@@ -25,8 +25,7 @@ function postPEffectUpdateReordered(self, player)
|
|
|
25
25
|
if not hasSubscriptions(nil) then
|
|
26
26
|
return
|
|
27
27
|
end
|
|
28
|
-
local
|
|
29
|
-
local playerTransformationsMap = v.run.playersTransformationsMap:getAndSetDefault(playerIndex)
|
|
28
|
+
local playerTransformationsMap = defaultMapGetPlayer(nil, v.run.playersTransformationsMap, player)
|
|
30
29
|
for ____, playerForm in ipairs(VALID_TRANSFORMATIONS) do
|
|
31
30
|
local hasForm = player:HasPlayerForm(playerForm)
|
|
32
31
|
local storedForm = playerTransformationsMap:getAndSetDefault(playerForm)
|
|
@@ -5,8 +5,8 @@ local ____exports = {}
|
|
|
5
5
|
local hasSubscriptions, entityTakeDmgPlayer, postPEffectUpdateReordered, TRINKETS_THAT_CAN_BREAK, v
|
|
6
6
|
local ____exports = require("features.saveDataManager.exports")
|
|
7
7
|
local saveDataManager = ____exports.saveDataManager
|
|
8
|
-
local
|
|
9
|
-
local
|
|
8
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
9
|
+
local defaultMapGetPlayer = ____playerDataStructures.defaultMapGetPlayer
|
|
10
10
|
local ____DefaultMap = require("types.DefaultMap")
|
|
11
11
|
local DefaultMap = ____DefaultMap.DefaultMap
|
|
12
12
|
local ____ModCallbacksCustom = require("types.ModCallbacksCustom")
|
|
@@ -25,8 +25,7 @@ function entityTakeDmgPlayer(self, tookDamage, _damageAmount, _damageFlags, _dam
|
|
|
25
25
|
if player == nil then
|
|
26
26
|
return
|
|
27
27
|
end
|
|
28
|
-
local
|
|
29
|
-
local trinketMap = v.run.playersTrinketMap:getAndSetDefault(playerIndex)
|
|
28
|
+
local trinketMap = defaultMapGetPlayer(nil, v.run.playersTrinketMap, player)
|
|
30
29
|
for ____, trinketType in ipairs(TRINKETS_THAT_CAN_BREAK) do
|
|
31
30
|
do
|
|
32
31
|
local numTrinketsHeld = player:GetTrinketMultiplier(trinketType)
|
|
@@ -48,8 +47,7 @@ function postPEffectUpdateReordered(self, player)
|
|
|
48
47
|
if not hasSubscriptions(nil) then
|
|
49
48
|
return
|
|
50
49
|
end
|
|
51
|
-
local
|
|
52
|
-
local trinketMap = v.run.playersTrinketMap:getAndSetDefault(playerIndex)
|
|
50
|
+
local trinketMap = defaultMapGetPlayer(nil, v.run.playersTrinketMap, player)
|
|
53
51
|
for ____, trinketType in ipairs(TRINKETS_THAT_CAN_BREAK) do
|
|
54
52
|
local numTrinkets = player:GetTrinketMultiplier(trinketType)
|
|
55
53
|
trinketMap:set(trinketType, numTrinkets)
|
|
@@ -8,16 +8,17 @@ local ____errors = require("errors")
|
|
|
8
8
|
local getUpgradeErrorMsg = ____errors.getUpgradeErrorMsg
|
|
9
9
|
local ____flag = require("functions.flag")
|
|
10
10
|
local hasFlag = ____flag.hasFlag
|
|
11
|
-
local
|
|
12
|
-
local
|
|
11
|
+
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
12
|
+
local setAddPlayer = ____playerDataStructures.setAddPlayer
|
|
13
|
+
local setDeletePlayer = ____playerDataStructures.setDeletePlayer
|
|
14
|
+
local setHasPlayer = ____playerDataStructures.setHasPlayer
|
|
13
15
|
local ____exports = require("features.saveDataManager.exports")
|
|
14
16
|
local saveDataManager = ____exports.saveDataManager
|
|
15
17
|
function postPEffectUpdate(self, player)
|
|
16
18
|
local effects = player:GetEffects()
|
|
17
19
|
local entityFlags = player:GetEntityFlags()
|
|
18
20
|
local hasPonyCollectibleEffect = effects:HasCollectibleEffect(CollectibleType.COLLECTIBLE_PONY) or effects:HasCollectibleEffect(CollectibleType.COLLECTIBLE_WHITE_PONY)
|
|
19
|
-
local
|
|
20
|
-
local isPonyActiveOnPreviousFrame = v.run.playersIsPonyActive:has(playerIndex)
|
|
21
|
+
local isPonyActiveOnPreviousFrame = setHasPlayer(nil, v.run.playersIsPonyActive, player)
|
|
21
22
|
local hasPonyFlags = hasFlag(
|
|
22
23
|
nil,
|
|
23
24
|
entityFlags,
|
|
@@ -25,9 +26,9 @@ function postPEffectUpdate(self, player)
|
|
|
25
26
|
)
|
|
26
27
|
local isPonyActiveNow = hasPonyCollectibleEffect or isPonyActiveOnPreviousFrame and hasPonyFlags
|
|
27
28
|
if isPonyActiveNow then
|
|
28
|
-
v.run.playersIsPonyActive
|
|
29
|
+
setAddPlayer(nil, v.run.playersIsPonyActive, player)
|
|
29
30
|
else
|
|
30
|
-
v.run.playersIsPonyActive
|
|
31
|
+
setDeletePlayer(nil, v.run.playersIsPonyActive, player)
|
|
31
32
|
end
|
|
32
33
|
end
|
|
33
34
|
local FEATURE_NAME = "pony activation detector"
|
|
@@ -44,7 +45,6 @@ function ____exports.isPonyActive(self, player)
|
|
|
44
45
|
local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
|
|
45
46
|
error(msg)
|
|
46
47
|
end
|
|
47
|
-
|
|
48
|
-
return v.run.playersIsPonyActive:has(playerIndex)
|
|
48
|
+
return setHasPlayer(nil, v.run.playersIsPonyActive, player)
|
|
49
49
|
end
|
|
50
50
|
return ____exports
|
package/dist/functions/map.d.ts
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
2
|
import { DefaultMap } from "../types/DefaultMap";
|
|
3
|
-
import { PlayerIndex } from "../types/PlayerIndex";
|
|
4
3
|
/** Helper function to copy a map. (You can also use a Map constructor to accomplish this task.) */
|
|
5
4
|
export declare function copyMap<K, V>(oldMap: Map<K, V>): Map<K, V>;
|
|
6
5
|
/**
|
|
7
|
-
* Helper function to make using default maps with
|
|
8
|
-
*
|
|
6
|
+
* Helper function to make using default maps with `Seed` values easier. Use this instead of
|
|
7
|
+
* manually getting the current value, incrementing it, and then setting it.
|
|
9
8
|
*/
|
|
10
|
-
export declare function
|
|
9
|
+
export declare function defaultMapGetNextSeed<K, A extends unknown[]>(map: DefaultMap<K, Seed, A>, key: K, ...extraArgs: A): Seed;
|
|
11
10
|
/**
|
|
12
|
-
* Helper function to make using maps with
|
|
13
|
-
*
|
|
11
|
+
* Helper function to make using maps with `Seed` values easier. Use this instead of manually
|
|
12
|
+
* getting the current value, incrementing it, and then setting it.
|
|
14
13
|
*/
|
|
15
|
-
export declare function
|
|
16
|
-
/**
|
|
17
|
-
* Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
|
|
18
|
-
* `Map.set` method if you have a map of this type.
|
|
19
|
-
*/
|
|
20
|
-
export declare function setMapPlayer<V>(map: Map<PlayerIndex, V>, player: EntityPlayer, value: V): void;
|
|
14
|
+
export declare function mapGetNextSeed<K>(map: Map<K, Seed>, key: K): Seed | undefined;
|
package/dist/functions/map.lua
CHANGED
|
@@ -4,8 +4,8 @@ local Map = ____lualib.Map
|
|
|
4
4
|
local __TS__New = ____lualib.__TS__New
|
|
5
5
|
local __TS__Iterator = ____lualib.__TS__Iterator
|
|
6
6
|
local ____exports = {}
|
|
7
|
-
local
|
|
8
|
-
local
|
|
7
|
+
local ____random = require("functions.random")
|
|
8
|
+
local nextSeed = ____random.nextSeed
|
|
9
9
|
function ____exports.copyMap(self, oldMap)
|
|
10
10
|
local newMap = __TS__New(Map)
|
|
11
11
|
for ____, ____value in __TS__Iterator(oldMap:entries()) do
|
|
@@ -15,16 +15,25 @@ function ____exports.copyMap(self, oldMap)
|
|
|
15
15
|
end
|
|
16
16
|
return newMap
|
|
17
17
|
end
|
|
18
|
-
function ____exports.
|
|
19
|
-
local
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
local
|
|
24
|
-
|
|
18
|
+
function ____exports.defaultMapGetNextSeed(self, map, key, ...)
|
|
19
|
+
local seed = map:getAndSetDefault(key, ...)
|
|
20
|
+
if seed == 0 then
|
|
21
|
+
error("The seed map had a value of 0 for the key of: " .. tostring(key))
|
|
22
|
+
end
|
|
23
|
+
local newSeed = nextSeed(nil, seed)
|
|
24
|
+
map:set(key, newSeed)
|
|
25
|
+
return newSeed
|
|
25
26
|
end
|
|
26
|
-
function ____exports.
|
|
27
|
-
local
|
|
28
|
-
|
|
27
|
+
function ____exports.mapGetNextSeed(self, map, key)
|
|
28
|
+
local seed = map:get(key)
|
|
29
|
+
if seed == nil then
|
|
30
|
+
return nil
|
|
31
|
+
end
|
|
32
|
+
if seed == 0 then
|
|
33
|
+
error("The seed map had a value of 0 for the key of: " .. tostring(key))
|
|
34
|
+
end
|
|
35
|
+
local newSeed = nextSeed(nil, seed)
|
|
36
|
+
map:set(key, newSeed)
|
|
37
|
+
return newSeed
|
|
29
38
|
end
|
|
30
39
|
return ____exports
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
import { DefaultMap } from "../types/DefaultMap";
|
|
3
|
+
import { PlayerIndex } from "../types/PlayerIndex";
|
|
4
|
+
/**
|
|
5
|
+
* Helper function to make using default maps with an index of `PlayerIndex` easier. Use this
|
|
6
|
+
* instead of the `DefaultMap.getAndSetDefault` method if you have a default map of this type.
|
|
7
|
+
*/
|
|
8
|
+
export declare function defaultMapGetPlayer<V, A extends unknown[]>(map: DefaultMap<PlayerIndex, V, A>, player: EntityPlayer, ...extraArgs: A): V;
|
|
9
|
+
/**
|
|
10
|
+
* Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
|
|
11
|
+
* `Map.get` method if you have a map of this type.
|
|
12
|
+
*/
|
|
13
|
+
export declare function mapGetPlayer<V>(map: Map<PlayerIndex, V>, player: EntityPlayer): V | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
|
|
16
|
+
* `Map.set` method if you have a map of this type.
|
|
17
|
+
*/
|
|
18
|
+
export declare function mapSetPlayer<V>(map: Map<PlayerIndex, V>, player: EntityPlayer, value: V): void;
|
|
19
|
+
/**
|
|
20
|
+
* Helper function to make using sets with an type of `PlayerIndex` easier. Use this instead of the
|
|
21
|
+
* `Set.add` method if you have a set of this type.
|
|
22
|
+
*/
|
|
23
|
+
export declare function setAddPlayer(set: Set<PlayerIndex>, player: EntityPlayer): Set<PlayerIndex>;
|
|
24
|
+
/**
|
|
25
|
+
* Helper function to make using sets with an type of `PlayerIndex` easier. Use this instead of the
|
|
26
|
+
* `Set.delete` method if you have a set of this type.
|
|
27
|
+
*/
|
|
28
|
+
export declare function setDeletePlayer(set: Set<PlayerIndex>, player: EntityPlayer): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Helper function to make using sets with an type of `PlayerIndex` easier. Use this instead of the
|
|
31
|
+
* `Set.has` method if you have a set of this type.
|
|
32
|
+
*/
|
|
33
|
+
export declare function setHasPlayer(set: Set<PlayerIndex>, player: EntityPlayer): boolean;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
|
+
local ____lualib = require("lualib_bundle")
|
|
3
|
+
local Map = ____lualib.Map
|
|
4
|
+
local Set = ____lualib.Set
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____player = require("functions.player")
|
|
7
|
+
local getPlayerIndex = ____player.getPlayerIndex
|
|
8
|
+
function ____exports.defaultMapGetPlayer(self, map, player, ...)
|
|
9
|
+
local playerIndex = getPlayerIndex(nil, player)
|
|
10
|
+
return map:getAndSetDefault(playerIndex, ...)
|
|
11
|
+
end
|
|
12
|
+
function ____exports.mapGetPlayer(self, map, player)
|
|
13
|
+
local playerIndex = getPlayerIndex(nil, player)
|
|
14
|
+
return map:get(playerIndex)
|
|
15
|
+
end
|
|
16
|
+
function ____exports.mapSetPlayer(self, map, player, value)
|
|
17
|
+
local playerIndex = getPlayerIndex(nil, player)
|
|
18
|
+
map:set(playerIndex, value)
|
|
19
|
+
end
|
|
20
|
+
function ____exports.setAddPlayer(self, set, player)
|
|
21
|
+
local playerIndex = getPlayerIndex(nil, player)
|
|
22
|
+
return set:add(playerIndex)
|
|
23
|
+
end
|
|
24
|
+
function ____exports.setDeletePlayer(self, set, player)
|
|
25
|
+
local playerIndex = getPlayerIndex(nil, player)
|
|
26
|
+
return set:delete(playerIndex)
|
|
27
|
+
end
|
|
28
|
+
function ____exports.setHasPlayer(self, set, player)
|
|
29
|
+
local playerIndex = getPlayerIndex(nil, player)
|
|
30
|
+
return set:has(playerIndex)
|
|
31
|
+
end
|
|
32
|
+
return ____exports
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Uses the player's current health and other miscellaneous things to determine if incoming damage
|
|
4
4
|
* will be fatal.
|
|
5
5
|
*/
|
|
6
|
-
export declare function isDamageToPlayerFatal(player: EntityPlayer, damageAmount: int, damageSource: EntityRef, lastDamageGameFrame: int): boolean;
|
|
6
|
+
export declare function isDamageToPlayerFatal(player: EntityPlayer, damageAmount: int, damageSource: EntityRef, lastDamageGameFrame: int | null): boolean;
|
|
7
7
|
/**
|
|
8
8
|
* The `EntityPlayer.WillPlayerRevive()` function does not properly account for Mysterious Paper, so
|
|
9
9
|
* use this helper function instead for more robust revival detection.
|
package/dist/index.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ export * from "./functions/npc";
|
|
|
41
41
|
export * from "./functions/pickups";
|
|
42
42
|
export * from "./functions/pills";
|
|
43
43
|
export * from "./functions/player";
|
|
44
|
+
export * from "./functions/playerDataStructures";
|
|
44
45
|
export * from "./functions/playerHealth";
|
|
45
46
|
export * from "./functions/pocketItems";
|
|
46
47
|
export * from "./functions/positionVelocity";
|
package/dist/index.lua
CHANGED
|
@@ -337,6 +337,14 @@ do
|
|
|
337
337
|
end
|
|
338
338
|
end
|
|
339
339
|
end
|
|
340
|
+
do
|
|
341
|
+
local ____export = require("functions.playerDataStructures")
|
|
342
|
+
for ____exportKey, ____exportValue in pairs(____export) do
|
|
343
|
+
if ____exportKey ~= "default" then
|
|
344
|
+
____exports[____exportKey] = ____exportValue
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
end
|
|
340
348
|
do
|
|
341
349
|
local ____export = require("functions.playerHealth")
|
|
342
350
|
for ____exportKey, ____exportValue in pairs(____export) do
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
2
|
/**
|
|
3
3
|
* PlayerIndex is a specific type of string; see the documentation for the [[`getPlayerIndex`]]
|
|
4
|
-
* function. Mods can signify that data structures handle EntityPlayers by using this type
|
|
4
|
+
* function. Mods can signify that data structures handle EntityPlayers by using this type.
|
|
5
5
|
*
|
|
6
|
+
* For example:
|
|
6
7
|
* ```
|
|
7
|
-
* const
|
|
8
|
+
* const playersNameMap = new Map<PlayerIndex, string>();
|
|
8
9
|
* ```
|
|
9
10
|
*
|
|
10
11
|
* This type is branded for extra type safety.
|