isaacscript-common 1.2.140 → 1.2.141

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____lualib = require("lualib_bundle")
3
+ local Set = ____lualib.Set
4
+ local __TS__New = ____lualib.__TS__New
5
+ local ____exports = {}
6
+ local hasSubscriptions, postRender, checkSlotAnimationChanged, checkSlotBroken, BROKEN_ANIMATIONS, v
7
+ local ____exports = require("features.saveDataManager.exports")
8
+ local saveDataManager = ____exports.saveDataManager
9
+ local ____entitySpecific = require("functions.entitySpecific")
10
+ local getSlots = ____entitySpecific.getSlots
11
+ local ____DefaultMap = require("types.DefaultMap")
12
+ local DefaultMap = ____DefaultMap.DefaultMap
13
+ local ____postSlotAnimationChanged = require("callbacks.subscriptions.postSlotAnimationChanged")
14
+ local postSlotAnimationChangedFire = ____postSlotAnimationChanged.postSlotAnimationChangedFire
15
+ local postSlotAnimationChangedHasSubscriptions = ____postSlotAnimationChanged.postSlotAnimationChangedHasSubscriptions
16
+ local ____postSlotDestroyed = require("callbacks.subscriptions.postSlotDestroyed")
17
+ local postSlotDestroyedFire = ____postSlotDestroyed.postSlotDestroyedFire
18
+ local postSlotDestroyedHasSubscriptions = ____postSlotDestroyed.postSlotDestroyedHasSubscriptions
19
+ local ____postSlotRender = require("callbacks.subscriptions.postSlotRender")
20
+ local postSlotRenderFire = ____postSlotRender.postSlotRenderFire
21
+ local postSlotRenderHasSubscriptions = ____postSlotRender.postSlotRenderHasSubscriptions
22
+ function hasSubscriptions(self)
23
+ return postSlotRenderHasSubscriptions(nil) or postSlotDestroyedHasSubscriptions(nil) or postSlotAnimationChangedHasSubscriptions(nil)
24
+ end
25
+ function postRender(self)
26
+ if not hasSubscriptions(nil) then
27
+ return
28
+ end
29
+ for ____, slot in ipairs(getSlots(nil)) do
30
+ postSlotRenderFire(nil, slot)
31
+ checkSlotAnimationChanged(nil, slot)
32
+ checkSlotBroken(nil, slot)
33
+ end
34
+ end
35
+ function checkSlotAnimationChanged(self, slot)
36
+ local sprite = slot:GetSprite()
37
+ local currentAnimation = sprite:GetAnimation()
38
+ local ptrHash = GetPtrHash(slot)
39
+ local previousAnimation = v.room.slotAnimations:getAndSetDefault(ptrHash, slot)
40
+ v.room.slotAnimations:set(ptrHash, currentAnimation)
41
+ if currentAnimation ~= previousAnimation then
42
+ postSlotAnimationChangedFire(nil, slot, previousAnimation, currentAnimation)
43
+ end
44
+ end
45
+ function checkSlotBroken(self, slot)
46
+ local ptrHash = GetPtrHash(slot)
47
+ local alreadyBroken = v.room.brokenSlots:has(ptrHash)
48
+ if alreadyBroken then
49
+ return
50
+ end
51
+ local sprite = slot:GetSprite()
52
+ local animation = sprite:GetAnimation()
53
+ if BROKEN_ANIMATIONS:has(animation) then
54
+ v.room.brokenSlots:add(ptrHash)
55
+ postSlotDestroyedFire(nil, slot)
56
+ end
57
+ end
58
+ BROKEN_ANIMATIONS = __TS__New(Set, {"Broken", "Death"})
59
+ v = {room = {
60
+ slotAnimations = __TS__New(
61
+ DefaultMap,
62
+ function(____, _key, slot)
63
+ local sprite = slot:GetSprite()
64
+ return sprite:GetAnimation()
65
+ end
66
+ ),
67
+ brokenSlots = __TS__New(Set)
68
+ }}
69
+ function ____exports.postSlotRenderCallbacksInit(self, mod)
70
+ saveDataManager(nil, "postSlotRender", v, hasSubscriptions)
71
+ mod:AddCallback(ModCallbacks.MC_POST_RENDER, postRender)
72
+ end
73
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ export declare type PostSlotAnimationChangedCallbackType = (slot: Entity, previousAnimation: string, currentAnimation: string) => void;
@@ -0,0 +1,25 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____lualib = require("lualib_bundle")
3
+ local __TS__ArrayPush = ____lualib.__TS__ArrayPush
4
+ local ____exports = {}
5
+ local subscriptions = {}
6
+ function ____exports.postSlotAnimationChangedHasSubscriptions(self)
7
+ return #subscriptions > 0
8
+ end
9
+ function ____exports.postSlotAnimationChangedRegister(self, callback, slotVariant)
10
+ __TS__ArrayPush(subscriptions, {callback, slotVariant})
11
+ end
12
+ function ____exports.postSlotAnimationChangedFire(self, slot, previousAnimation, currentAnimation)
13
+ for ____, ____value in ipairs(subscriptions) do
14
+ local callback = ____value[1]
15
+ local slotVariant = ____value[2]
16
+ do
17
+ if slotVariant ~= nil and slotVariant ~= slot.Variant then
18
+ goto __continue5
19
+ end
20
+ callback(nil, slot, previousAnimation, currentAnimation)
21
+ end
22
+ ::__continue5::
23
+ end
24
+ end
25
+ return ____exports
@@ -37,6 +37,7 @@ import { PostPlayerUpdateReorderedCallbackType } from "../callbacks/subscription
37
37
  import { PostProjectileInitLateCallbackType } from "../callbacks/subscriptions/postProjectileInitLate";
38
38
  import { PostPurchaseCallbackType } from "../callbacks/subscriptions/postPurchase";
39
39
  import { PostSacrificeCallbackType } from "../callbacks/subscriptions/postSacrifice";
40
+ import { PostSlotAnimationChangedCallbackType } from "../callbacks/subscriptions/postSlotAnimationChanged";
40
41
  import { PostSlotDestroyedCallbackType } from "../callbacks/subscriptions/postSlotDestroyed";
41
42
  import { PostSlotInitCallbackType } from "../callbacks/subscriptions/postSlotInit";
42
43
  import { PostSlotRenderCallbackType } from "../callbacks/subscriptions/postSlotRender";
@@ -196,6 +197,10 @@ export interface CallbackParametersCustom {
196
197
  callback: PostSlotRenderCallbackType,
197
198
  slotVariant?: SlotVariant
198
199
  ];
200
+ [ModCallbacksCustom.MC_POST_SLOT_ANIMATION_CHANGED]: [
201
+ callback: PostSlotAnimationChangedCallbackType,
202
+ slotVariant?: SlotVariant
203
+ ];
199
204
  [ModCallbacksCustom.MC_POST_SLOT_DESTROYED]: [
200
205
  callback: PostSlotDestroyedCallbackType,
201
206
  slotVariant?: SlotVariant
@@ -47,13 +47,14 @@ export declare enum ModCallbacksCustom {
47
47
  MC_POST_SLOT_INIT = 38,
48
48
  MC_POST_SLOT_UPDATE = 39,
49
49
  MC_POST_SLOT_RENDER = 40,
50
- MC_POST_SLOT_DESTROYED = 41,
51
- MC_POST_GRID_ENTITY_INIT = 42,
52
- MC_POST_GRID_ENTITY_UPDATE = 43,
53
- MC_POST_GRID_ENTITY_REMOVE = 44,
54
- MC_POST_GRID_ENTITY_STATE_CHANGE = 45,
55
- MC_POST_GRID_ENTITY_BROKEN = 46,
56
- MC_POST_GRID_ENTITY_COLLISION = 47,
57
- MC_POST_BONE_SWING = 48,
58
- MC_POST_CUSTOM_DOOR_ENTER = 49
50
+ MC_POST_SLOT_ANIMATION_CHANGED = 41,
51
+ MC_POST_SLOT_DESTROYED = 42,
52
+ MC_POST_GRID_ENTITY_INIT = 43,
53
+ MC_POST_GRID_ENTITY_UPDATE = 44,
54
+ MC_POST_GRID_ENTITY_REMOVE = 45,
55
+ MC_POST_GRID_ENTITY_STATE_CHANGE = 46,
56
+ MC_POST_GRID_ENTITY_BROKEN = 47,
57
+ MC_POST_GRID_ENTITY_COLLISION = 48,
58
+ MC_POST_BONE_SWING = 49,
59
+ MC_POST_CUSTOM_DOOR_ENTER = 50
59
60
  }
@@ -83,22 +83,24 @@ ____exports.ModCallbacksCustom.MC_POST_SLOT_UPDATE = 39
83
83
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_SLOT_UPDATE] = "MC_POST_SLOT_UPDATE"
84
84
  ____exports.ModCallbacksCustom.MC_POST_SLOT_RENDER = 40
85
85
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_SLOT_RENDER] = "MC_POST_SLOT_RENDER"
86
- ____exports.ModCallbacksCustom.MC_POST_SLOT_DESTROYED = 41
86
+ ____exports.ModCallbacksCustom.MC_POST_SLOT_ANIMATION_CHANGED = 41
87
+ ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_SLOT_ANIMATION_CHANGED] = "MC_POST_SLOT_ANIMATION_CHANGED"
88
+ ____exports.ModCallbacksCustom.MC_POST_SLOT_DESTROYED = 42
87
89
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_SLOT_DESTROYED] = "MC_POST_SLOT_DESTROYED"
88
- ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_INIT = 42
90
+ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_INIT = 43
89
91
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_INIT] = "MC_POST_GRID_ENTITY_INIT"
90
- ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_UPDATE = 43
92
+ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_UPDATE = 44
91
93
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_UPDATE] = "MC_POST_GRID_ENTITY_UPDATE"
92
- ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_REMOVE = 44
94
+ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_REMOVE = 45
93
95
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_REMOVE] = "MC_POST_GRID_ENTITY_REMOVE"
94
- ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_STATE_CHANGE = 45
96
+ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_STATE_CHANGE = 46
95
97
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_STATE_CHANGE] = "MC_POST_GRID_ENTITY_STATE_CHANGE"
96
- ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_BROKEN = 46
98
+ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_BROKEN = 47
97
99
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_BROKEN] = "MC_POST_GRID_ENTITY_BROKEN"
98
- ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION = 47
100
+ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION = 48
99
101
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION] = "MC_POST_GRID_ENTITY_COLLISION"
100
- ____exports.ModCallbacksCustom.MC_POST_BONE_SWING = 48
102
+ ____exports.ModCallbacksCustom.MC_POST_BONE_SWING = 49
101
103
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_BONE_SWING] = "MC_POST_BONE_SWING"
102
- ____exports.ModCallbacksCustom.MC_POST_CUSTOM_DOOR_ENTER = 49
104
+ ____exports.ModCallbacksCustom.MC_POST_CUSTOM_DOOR_ENTER = 50
103
105
  ____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_CUSTOM_DOOR_ENTER] = "MC_POST_CUSTOM_DOOR_ENTER"
104
106
  return ____exports
@@ -81,6 +81,8 @@ local ____postPurchase = require("callbacks.subscriptions.postPurchase")
81
81
  local postPurchaseRegister = ____postPurchase.postPurchaseRegister
82
82
  local ____postSacrifice = require("callbacks.subscriptions.postSacrifice")
83
83
  local postSacrificeRegister = ____postSacrifice.postSacrificeRegister
84
+ local ____postSlotAnimationChanged = require("callbacks.subscriptions.postSlotAnimationChanged")
85
+ local postSlotAnimationChangedRegister = ____postSlotAnimationChanged.postSlotAnimationChangedRegister
84
86
  local ____postSlotDestroyed = require("callbacks.subscriptions.postSlotDestroyed")
85
87
  local postSlotDestroyedRegister = ____postSlotDestroyed.postSlotDestroyedRegister
86
88
  local ____postSlotInit = require("callbacks.subscriptions.postSlotInit")
@@ -370,6 +372,12 @@ function getCallbackRegisterFunction(self, callbackID)
370
372
  return postSlotRenderRegister
371
373
  end
372
374
  end
375
+ ____cond19 = ____cond19 or ____switch19 == ModCallbacksCustom.MC_POST_SLOT_ANIMATION_CHANGED
376
+ if ____cond19 then
377
+ do
378
+ return postSlotAnimationChangedRegister
379
+ end
380
+ end
373
381
  ____cond19 = ____cond19 or ____switch19 == ModCallbacksCustom.MC_POST_SLOT_DESTROYED
374
382
  if ____cond19 then
375
383
  do
@@ -57,8 +57,8 @@ local ____postSacrifice = require("callbacks.postSacrifice")
57
57
  local postSacrificeCallbackInit = ____postSacrifice.postSacrificeCallbackInit
58
58
  local ____postSlotInitUpdate = require("callbacks.postSlotInitUpdate")
59
59
  local postSlotInitUpdateCallbacksInit = ____postSlotInitUpdate.postSlotInitUpdateCallbacksInit
60
- local ____postSlotRenderBroken = require("callbacks.postSlotRenderBroken")
61
- local postSlotRenderBrokenCallbacksInit = ____postSlotRenderBroken.postSlotRenderBrokenCallbacksInit
60
+ local ____postSlotRender = require("callbacks.postSlotRender")
61
+ local postSlotRenderCallbacksInit = ____postSlotRender.postSlotRenderCallbacksInit
62
62
  local ____postTearInitLate = require("callbacks.postTearInitLate")
63
63
  local postTearInitLateCallbackInit = ____postTearInitLate.postTearInitLateCallbackInit
64
64
  local ____postTearInitVeryLate = require("callbacks.postTearInitVeryLate")
@@ -130,7 +130,7 @@ function initCustomCallbacks(self, mod)
130
130
  postTrinketBreakCallbackInit(nil, mod)
131
131
  postCursedTeleportCallbackInit(nil, mod)
132
132
  postSlotInitUpdateCallbacksInit(nil, mod)
133
- postSlotRenderBrokenCallbacksInit(nil, mod)
133
+ postSlotRenderCallbacksInit(nil, mod)
134
134
  postGridEntityCallbacksInit(nil, mod)
135
135
  postGridEntityCollisionInit(nil, mod)
136
136
  postBoneSwingCallbackInit(nil, mod)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "1.2.140",
3
+ "version": "1.2.141",
4
4
  "description": "Helper functions for IsaacScript mods",
5
5
  "keywords": [
6
6
  "isaac",