isaacscript-common 6.7.1 → 6.10.0
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/features/customStage/customStageGridEntities.lua +2 -2
- package/dist/features/customStage/exports.d.ts.map +1 -1
- package/dist/features/customStage/exports.lua +5 -4
- package/dist/features/customStage/init.d.ts.map +1 -1
- package/dist/features/customStage/init.lua +12 -3
- package/dist/features/customStage/streakText.d.ts +4 -2
- package/dist/features/customStage/streakText.d.ts.map +1 -1
- package/dist/features/customStage/streakText.lua +216 -15
- package/dist/features/customStage/v.d.ts +4 -2
- package/dist/features/customStage/v.d.ts.map +1 -1
- package/dist/features/customStage/v.lua +9 -1
- package/dist/features/customStage/versusScreen.d.ts +1 -1
- package/dist/features/customStage/versusScreen.d.ts.map +1 -1
- package/dist/features/customStage/versusScreen.lua +2 -5
- package/dist/features/extraConsoleCommands/commandsSubroutines.lua +4 -4
- package/dist/features/extraConsoleCommands/init.lua +1 -0
- package/dist/features/extraConsoleCommands/listCommands.d.ts +8 -0
- package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
- package/dist/features/extraConsoleCommands/listCommands.lua +13 -0
- package/dist/features/saveDataManager/exports.d.ts.map +1 -1
- package/dist/features/saveDataManager/exports.lua +2 -4
- package/dist/features/saveDataManager/load.d.ts +1 -1
- package/dist/features/saveDataManager/load.d.ts.map +1 -1
- package/dist/features/saveDataManager/main.d.ts.map +1 -1
- package/dist/features/saveDataManager/main.lua +0 -1
- package/dist/features/saveDataManager/maps.d.ts +3 -3
- package/dist/features/saveDataManager/maps.d.ts.map +1 -1
- package/dist/features/saveDataManager/maps.lua +1 -4
- package/dist/features/saveDataManager/merge.d.ts +2 -2
- package/dist/features/saveDataManager/merge.d.ts.map +1 -1
- package/dist/features/saveDataManager/merge.lua +3 -3
- package/dist/features/saveDataManager/save.d.ts +1 -1
- package/dist/features/saveDataManager/save.d.ts.map +1 -1
- package/dist/features/saveDataManager/save.lua +1 -2
- package/dist/features/saveDataManager/{serializationBrand.d.ts → serializationBrands.d.ts} +1 -1
- package/dist/features/saveDataManager/serializationBrands.d.ts.map +1 -0
- package/dist/features/saveDataManager/{serializationBrand.lua → serializationBrands.lua} +0 -0
- package/dist/functions/array.d.ts.map +1 -1
- package/dist/functions/color.d.ts +1 -1
- package/dist/functions/color.d.ts.map +1 -1
- package/dist/functions/deepCopy.d.ts +1 -1
- package/dist/functions/deepCopy.lua +27 -27
- package/dist/functions/deepCopyTests.lua +3 -3
- package/dist/functions/entities.d.ts +1 -1
- package/dist/functions/entities.d.ts.map +1 -1
- package/dist/functions/input.d.ts.map +1 -1
- package/dist/functions/input.lua +8 -10
- package/dist/functions/jsonHelpers.d.ts +1 -1
- package/dist/functions/jsonHelpers.d.ts.map +1 -1
- package/dist/functions/kColor.d.ts +1 -1
- package/dist/functions/kColor.d.ts.map +1 -1
- package/dist/functions/log.d.ts +15 -7
- package/dist/functions/log.d.ts.map +1 -1
- package/dist/functions/log.lua +196 -156
- package/dist/functions/mergeTests.d.ts +2 -2
- package/dist/functions/mergeTests.lua +2 -2
- package/dist/functions/pickupsSpecific.d.ts +2 -2
- package/dist/functions/pickupsSpecific.d.ts.map +1 -1
- package/dist/functions/playerIndex.d.ts +1 -1
- package/dist/functions/playerIndex.lua +1 -1
- package/dist/functions/rng.d.ts +1 -1
- package/dist/functions/rng.d.ts.map +1 -1
- package/dist/functions/run.d.ts +8 -0
- package/dist/functions/run.d.ts.map +1 -1
- package/dist/functions/run.lua +15 -0
- package/dist/functions/table.d.ts +9 -9
- package/dist/functions/table.d.ts.map +1 -1
- package/dist/functions/table.lua +23 -21
- package/dist/functions/types.d.ts +1 -1
- package/dist/functions/types.d.ts.map +1 -1
- package/dist/functions/vector.d.ts +1 -1
- package/dist/functions/vector.d.ts.map +1 -1
- package/dist/interfaces/SaveData.d.ts +1 -1
- package/dist/interfaces/private/TSTLClassMetatable.d.ts +1 -1
- package/dist/interfaces/private/TSTLClassMetatable.d.ts.map +1 -1
- package/dist/lualib_bundle.lua +38 -7
- package/dist/types/PlayerIndex.d.ts +3 -2
- package/dist/types/PlayerIndex.d.ts.map +1 -1
- package/dist/types/private/IsaacAPIClass.d.ts +1 -1
- package/dist/types/private/IsaacAPIClass.d.ts.map +1 -1
- package/dist/types/private/SerializedIsaacAPIClass.d.ts +1 -1
- package/dist/types/private/SerializedIsaacAPIClass.d.ts.map +1 -1
- package/dist/types/private/TSTLClass.d.ts +1 -1
- package/dist/types/private/TSTLClass.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/features/customStage/customStageGridEntities.ts +4 -4
- package/src/features/customStage/exports.ts +5 -3
- package/src/features/customStage/init.ts +19 -7
- package/src/features/customStage/streakText.ts +284 -19
- package/src/features/customStage/v.ts +6 -1
- package/src/features/customStage/versusScreen.ts +2 -5
- package/src/features/extraConsoleCommands/commandsSubroutines.ts +3 -3
- package/src/features/extraConsoleCommands/init.ts +1 -0
- package/src/features/extraConsoleCommands/listCommands.ts +14 -0
- package/src/features/saveDataManager/exports.ts +3 -8
- package/src/features/saveDataManager/load.ts +2 -3
- package/src/features/saveDataManager/main.ts +4 -5
- package/src/features/saveDataManager/maps.ts +3 -3
- package/src/features/saveDataManager/merge.ts +11 -11
- package/src/features/saveDataManager/save.ts +6 -6
- package/src/features/saveDataManager/{serializationBrand.ts → serializationBrands.ts} +0 -0
- package/src/functions/array.ts +2 -4
- package/src/functions/color.ts +3 -3
- package/src/functions/deepCopy.ts +39 -36
- package/src/functions/deepCopyTests.ts +11 -11
- package/src/functions/entities.ts +7 -7
- package/src/functions/input.ts +7 -8
- package/src/functions/isaacAPIClass.ts +3 -3
- package/src/functions/jsonHelpers.ts +3 -3
- package/src/functions/kColor.ts +3 -3
- package/src/functions/log.ts +230 -183
- package/src/functions/mergeTests.ts +24 -24
- package/src/functions/pickupsSpecific.ts +3 -3
- package/src/functions/playerIndex.ts +1 -1
- package/src/functions/rng.ts +3 -3
- package/src/functions/run.ts +14 -0
- package/src/functions/table.ts +25 -23
- package/src/functions/tstlClass.ts +1 -1
- package/src/functions/types.ts +3 -1
- package/src/functions/vector.ts +3 -3
- package/src/interfaces/SaveData.ts +1 -1
- package/src/interfaces/private/TSTLClassMetatable.ts +1 -1
- package/src/types/PlayerIndex.ts +3 -2
- package/src/types/private/IsaacAPIClass.ts +1 -1
- package/src/types/private/SerializedIsaacAPIClass.ts +1 -1
- package/src/types/private/TSTLClass.ts +1 -1
- package/dist/features/saveDataManager/serializationBrand.d.ts.map +0 -1
package/dist/functions/log.lua
CHANGED
|
@@ -8,6 +8,7 @@ local __TS__ArraySort = ____lualib.__TS__ArraySort
|
|
|
8
8
|
local __TS__TypeOf = ____lualib.__TS__TypeOf
|
|
9
9
|
local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
|
|
10
10
|
local ____exports = {}
|
|
11
|
+
local getEntityLogLine, getGridEntityLogLine
|
|
11
12
|
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
12
13
|
local DamageFlag = ____isaac_2Dtypescript_2Ddefinitions.DamageFlag
|
|
13
14
|
local EffectVariant = ____isaac_2Dtypescript_2Ddefinitions.EffectVariant
|
|
@@ -37,6 +38,7 @@ local ____flag = require("functions.flag")
|
|
|
37
38
|
local hasFlag = ____flag.hasFlag
|
|
38
39
|
local ____gridEntities = require("functions.gridEntities")
|
|
39
40
|
local getGridEntities = ____gridEntities.getGridEntities
|
|
41
|
+
local getGridEntityID = ____gridEntities.getGridEntityID
|
|
40
42
|
local ____isaacAPIClass = require("functions.isaacAPIClass")
|
|
41
43
|
local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
|
|
42
44
|
local ____playerHealth = require("functions.playerHealth")
|
|
@@ -86,6 +88,70 @@ function ____exports.log(msg)
|
|
|
86
88
|
local debugMsg = ____exports.getDebugPrependString(nil, msg)
|
|
87
89
|
Isaac.DebugString(debugMsg)
|
|
88
90
|
end
|
|
91
|
+
--- Helper function to log information about a specific entity.
|
|
92
|
+
function ____exports.logEntity(entity)
|
|
93
|
+
local msg = getEntityLogLine(nil, entity)
|
|
94
|
+
____exports.log(msg)
|
|
95
|
+
end
|
|
96
|
+
function getEntityLogLine(self, entity, num)
|
|
97
|
+
local msg = num == nil and "" or tostring(num) .. ") "
|
|
98
|
+
msg = msg .. getEntityID(nil, entity)
|
|
99
|
+
local bomb = entity:ToBomb()
|
|
100
|
+
if bomb ~= nil then
|
|
101
|
+
msg = msg .. " (bomb)"
|
|
102
|
+
end
|
|
103
|
+
local effect = entity:ToEffect()
|
|
104
|
+
if effect ~= nil then
|
|
105
|
+
msg = msg .. (" (effect) (State: " .. tostring(effect.State)) .. ")"
|
|
106
|
+
end
|
|
107
|
+
local familiar = entity:ToFamiliar()
|
|
108
|
+
if familiar ~= nil then
|
|
109
|
+
msg = msg .. (" (familiar) (State: " .. tostring(familiar.State)) .. ")"
|
|
110
|
+
end
|
|
111
|
+
local knife = entity:ToKnife()
|
|
112
|
+
if knife ~= nil then
|
|
113
|
+
msg = msg .. " (knife)"
|
|
114
|
+
end
|
|
115
|
+
local laser = entity:ToLaser()
|
|
116
|
+
if laser ~= nil then
|
|
117
|
+
msg = msg .. " (laser)"
|
|
118
|
+
end
|
|
119
|
+
local npc = entity:ToNPC()
|
|
120
|
+
if npc ~= nil then
|
|
121
|
+
msg = msg .. (" (NPC) (State: " .. tostring(npc.State)) .. ")"
|
|
122
|
+
end
|
|
123
|
+
local pickup = entity:ToPickup()
|
|
124
|
+
if pickup ~= nil then
|
|
125
|
+
msg = msg .. (" (pickup) (State: " .. tostring(pickup.State)) .. ")"
|
|
126
|
+
end
|
|
127
|
+
local player = entity:ToPlayer()
|
|
128
|
+
if player ~= nil then
|
|
129
|
+
msg = msg .. " (player)"
|
|
130
|
+
end
|
|
131
|
+
local projectile = entity:ToProjectile()
|
|
132
|
+
if projectile ~= nil then
|
|
133
|
+
msg = msg .. " (projectile)"
|
|
134
|
+
end
|
|
135
|
+
local tear = entity:ToTear()
|
|
136
|
+
if tear ~= nil then
|
|
137
|
+
msg = msg .. " (tear)"
|
|
138
|
+
end
|
|
139
|
+
msg = msg .. "\n"
|
|
140
|
+
msg = msg .. (" - Index: " .. tostring(entity.Index)) .. "\n"
|
|
141
|
+
msg = msg .. (" - InitSeed: " .. tostring(entity.InitSeed)) .. "\n"
|
|
142
|
+
msg = msg .. (" - DropSeed: " .. tostring(entity.DropSeed)) .. "\n"
|
|
143
|
+
msg = msg .. (((" - Position: (" .. tostring(entity.Position.X)) .. ", ") .. tostring(entity.Position.Y)) .. ")\n"
|
|
144
|
+
msg = msg .. (((" - Velocity: (" .. tostring(entity.Velocity.X)) .. ", ") .. tostring(entity.Velocity.Y)) .. ")\n"
|
|
145
|
+
msg = msg .. (((" - HP: " .. tostring(entity.HitPoints)) .. " / ") .. tostring(entity.MaxHitPoints)) .. "\n"
|
|
146
|
+
msg = msg .. (" - Parent: " .. tostring(entity.Parent)) .. "\n"
|
|
147
|
+
msg = msg .. (" - Child: " .. tostring(entity.Child)) .. "\n"
|
|
148
|
+
msg = msg .. (" - SpawnerEntity: " .. tostring(entity.SpawnerEntity)) .. "\n"
|
|
149
|
+
msg = msg .. (((" - SpawnerType / SpawnerVariant: " .. tostring(entity.SpawnerType)) .. ".") .. tostring(entity.SpawnerVariant)) .. "\n"
|
|
150
|
+
if npc ~= nil then
|
|
151
|
+
msg = msg .. (" - CanShutDoors: " .. tostring(npc.CanShutDoors)) .. "\n"
|
|
152
|
+
end
|
|
153
|
+
return msg
|
|
154
|
+
end
|
|
89
155
|
--- Helper function for printing out every flag that is turned on. Useful when debugging.
|
|
90
156
|
function ____exports.logFlags(flags, flagEnum, description)
|
|
91
157
|
if description == nil then
|
|
@@ -108,6 +174,56 @@ function ____exports.logFlags(flags, flagEnum, description)
|
|
|
108
174
|
____exports.log(" n/a (no flags)")
|
|
109
175
|
end
|
|
110
176
|
end
|
|
177
|
+
--- Helper function for log information about a specific grid entity.
|
|
178
|
+
function ____exports.logGridEntity(gridEntity)
|
|
179
|
+
local msg = getGridEntityLogLine(nil, gridEntity)
|
|
180
|
+
____exports.log(msg)
|
|
181
|
+
end
|
|
182
|
+
function getGridEntityLogLine(self, gridEntity, num)
|
|
183
|
+
local gridEntityDesc = gridEntity:GetSaveState()
|
|
184
|
+
local msg = num == nil and "" or tostring(num) .. ") "
|
|
185
|
+
msg = msg .. getGridEntityID(nil, gridEntity)
|
|
186
|
+
local door = gridEntity:ToDoor()
|
|
187
|
+
if door ~= nil then
|
|
188
|
+
msg = msg .. " (door)"
|
|
189
|
+
end
|
|
190
|
+
local pit = gridEntity:ToPit()
|
|
191
|
+
if pit ~= nil then
|
|
192
|
+
msg = msg .. " (pit)"
|
|
193
|
+
end
|
|
194
|
+
local poop = gridEntity:ToPoop()
|
|
195
|
+
if poop ~= nil then
|
|
196
|
+
msg = msg .. " (poop)"
|
|
197
|
+
end
|
|
198
|
+
local pressurePlate = gridEntity:ToPressurePlate()
|
|
199
|
+
if pressurePlate ~= nil then
|
|
200
|
+
msg = msg .. " (pressurePlate)"
|
|
201
|
+
end
|
|
202
|
+
local rock = gridEntity:ToRock()
|
|
203
|
+
if rock ~= nil then
|
|
204
|
+
msg = msg .. " (rock)"
|
|
205
|
+
end
|
|
206
|
+
local spikes = gridEntity:ToSpikes()
|
|
207
|
+
if spikes ~= nil then
|
|
208
|
+
msg = msg .. " (spikes)"
|
|
209
|
+
end
|
|
210
|
+
local tnt = gridEntity:ToTNT()
|
|
211
|
+
if tnt ~= nil then
|
|
212
|
+
msg = msg .. " (TNT)"
|
|
213
|
+
end
|
|
214
|
+
msg = msg .. (" - State: " .. tostring(gridEntity.State)) .. "\n"
|
|
215
|
+
msg = msg .. (" - VarData: " .. tostring(gridEntity.VarData)) .. "\n"
|
|
216
|
+
msg = msg .. (((" - Position: (" .. tostring(gridEntity.Position.X)) .. ", ") .. tostring(gridEntity.Position.Y)) .. ")\n"
|
|
217
|
+
msg = msg .. (" - SpawnSeed: " .. tostring(gridEntityDesc.SpawnSeed)) .. "\n"
|
|
218
|
+
msg = msg .. (" - VariableSeed: " .. tostring(gridEntityDesc.VariableSeed)) .. ")\n"
|
|
219
|
+
if door ~= nil then
|
|
220
|
+
msg = msg .. (" - Slot: " .. tostring(door.Slot)) .. "\n"
|
|
221
|
+
msg = msg .. (" - Direction: " .. tostring(door.Direction)) .. "\n"
|
|
222
|
+
msg = msg .. (" - TargetRoomIndex: " .. tostring(door.TargetRoomIndex)) .. "\n"
|
|
223
|
+
msg = msg .. (" - TargetRoomType: " .. tostring(door.TargetRoomType)) .. "\n"
|
|
224
|
+
end
|
|
225
|
+
return msg
|
|
226
|
+
end
|
|
111
227
|
local IGNORE_EFFECT_VARIANTS = __TS__New(Set, {
|
|
112
228
|
EffectVariant.BLOOD_EXPLOSION,
|
|
113
229
|
EffectVariant.BLOOD_PARTICLE,
|
|
@@ -119,6 +235,71 @@ local IGNORE_EFFECT_VARIANTS = __TS__New(Set, {
|
|
|
119
235
|
EffectVariant.LIGHT,
|
|
120
236
|
EffectVariant.TADPOLE
|
|
121
237
|
})
|
|
238
|
+
--- Helper function for printing out every entity (or filtered entity) in the current room.
|
|
239
|
+
function ____exports.logAllEntities(includeBackgroundEffects, entityTypeFilter)
|
|
240
|
+
local msg = "Entities in the room"
|
|
241
|
+
if entityTypeFilter ~= nil then
|
|
242
|
+
msg = msg .. (" (filtered to entity type " .. tostring(entityTypeFilter)) .. ")"
|
|
243
|
+
elseif not includeBackgroundEffects then
|
|
244
|
+
msg = msg .. " (not including background effects)"
|
|
245
|
+
end
|
|
246
|
+
msg = msg .. ":\n"
|
|
247
|
+
local entities = getEntities(nil)
|
|
248
|
+
local numMatchedEntities = 0
|
|
249
|
+
__TS__ArrayForEach(
|
|
250
|
+
entities,
|
|
251
|
+
function(____, entity, i)
|
|
252
|
+
if entityTypeFilter ~= nil and entity.Type ~= entityTypeFilter then
|
|
253
|
+
return
|
|
254
|
+
end
|
|
255
|
+
local effect = entity:ToEffect()
|
|
256
|
+
if not includeBackgroundEffects and effect ~= nil and IGNORE_EFFECT_VARIANTS:has(effect.Variant) then
|
|
257
|
+
return
|
|
258
|
+
end
|
|
259
|
+
msg = msg .. getEntityLogLine(nil, entity, i + 1)
|
|
260
|
+
numMatchedEntities = numMatchedEntities + 1
|
|
261
|
+
end
|
|
262
|
+
)
|
|
263
|
+
if numMatchedEntities == 0 then
|
|
264
|
+
msg = msg .. "(no entities matched)\n"
|
|
265
|
+
else
|
|
266
|
+
msg = msg .. ((("(" .. tostring(numMatchedEntities)) .. " total ") .. (numMatchedEntities == 1 and "entity" or "entities")) .. ")\n"
|
|
267
|
+
end
|
|
268
|
+
____exports.log(msg)
|
|
269
|
+
end
|
|
270
|
+
--- Helper function for printing out every grid entity (or filtered grid entity) in the current room.
|
|
271
|
+
function ____exports.logAllGridEntities(includeWalls, gridEntityTypeFilter)
|
|
272
|
+
local msg = "Grid entities in the room"
|
|
273
|
+
if gridEntityTypeFilter ~= nil then
|
|
274
|
+
msg = msg .. (" (filtered to grid entity type " .. tostring(gridEntityTypeFilter)) .. ")"
|
|
275
|
+
elseif not includeWalls then
|
|
276
|
+
msg = msg .. " (not including walls)"
|
|
277
|
+
end
|
|
278
|
+
msg = msg .. ":\n"
|
|
279
|
+
local gridEntities = getGridEntities(nil)
|
|
280
|
+
local numMatchedEntities = 0
|
|
281
|
+
__TS__ArrayForEach(
|
|
282
|
+
gridEntities,
|
|
283
|
+
function(____, gridEntity)
|
|
284
|
+
local gridEntityIndex = gridEntity:GetGridIndex()
|
|
285
|
+
local gridEntityType = gridEntity:GetType()
|
|
286
|
+
if gridEntityTypeFilter ~= nil and gridEntityType ~= gridEntityTypeFilter then
|
|
287
|
+
return
|
|
288
|
+
end
|
|
289
|
+
if not includeWalls and gridEntityType == GridEntityType.WALL and gridEntityTypeFilter ~= GridEntityType.WALL then
|
|
290
|
+
return
|
|
291
|
+
end
|
|
292
|
+
msg = msg .. getGridEntityLogLine(nil, gridEntity, gridEntityIndex)
|
|
293
|
+
numMatchedEntities = numMatchedEntities + 1
|
|
294
|
+
end
|
|
295
|
+
)
|
|
296
|
+
if numMatchedEntities == 0 then
|
|
297
|
+
msg = msg .. "(no grid entities matched)\n"
|
|
298
|
+
else
|
|
299
|
+
msg = msg .. ((("(" .. tostring(numMatchedEntities)) .. " total grid ") .. (numMatchedEntities == 1 and "entity" or "entities")) .. ")\n"
|
|
300
|
+
end
|
|
301
|
+
____exports.log(msg)
|
|
302
|
+
end
|
|
122
303
|
function ____exports.logArray(array)
|
|
123
304
|
local arrayString = arrayToString(nil, array)
|
|
124
305
|
____exports.log("Array: " .. arrayString)
|
|
@@ -156,91 +337,11 @@ function ____exports.logEffects(player)
|
|
|
156
337
|
end
|
|
157
338
|
)
|
|
158
339
|
end
|
|
159
|
-
--- Helper function for
|
|
160
|
-
function ____exports.logEntities(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
msg = msg .. (" (filtered to entity type " .. tostring(entityTypeFilter)) .. ")"
|
|
164
|
-
elseif not includeBackgroundEffects then
|
|
165
|
-
msg = msg .. " (not including background effects)"
|
|
166
|
-
end
|
|
167
|
-
msg = msg .. ":\n"
|
|
168
|
-
local entities = getEntities(nil)
|
|
169
|
-
local numMatchedEntities = 0
|
|
170
|
-
__TS__ArrayForEach(
|
|
171
|
-
entities,
|
|
172
|
-
function(____, entity, i)
|
|
173
|
-
if entityTypeFilter ~= nil and entity.Type ~= entityTypeFilter then
|
|
174
|
-
return
|
|
175
|
-
end
|
|
176
|
-
local effect = entity:ToEffect()
|
|
177
|
-
if not includeBackgroundEffects and effect ~= nil and IGNORE_EFFECT_VARIANTS:has(effect.Variant) then
|
|
178
|
-
return
|
|
179
|
-
end
|
|
180
|
-
local entityID = getEntityID(nil, entity)
|
|
181
|
-
msg = msg .. (tostring(i + 1) .. ") ") .. entityID
|
|
182
|
-
local bomb = entity:ToBomb()
|
|
183
|
-
if bomb ~= nil then
|
|
184
|
-
msg = msg .. " (bomb)"
|
|
185
|
-
end
|
|
186
|
-
if effect ~= nil then
|
|
187
|
-
msg = msg .. (" (effect) (State: " .. tostring(effect.State)) .. ")"
|
|
188
|
-
end
|
|
189
|
-
local familiar = entity:ToFamiliar()
|
|
190
|
-
if familiar ~= nil then
|
|
191
|
-
msg = msg .. (" (familiar) (State: " .. tostring(familiar.State)) .. ")"
|
|
192
|
-
end
|
|
193
|
-
local knife = entity:ToKnife()
|
|
194
|
-
if knife ~= nil then
|
|
195
|
-
msg = msg .. " (knife)"
|
|
196
|
-
end
|
|
197
|
-
local laser = entity:ToLaser()
|
|
198
|
-
if laser ~= nil then
|
|
199
|
-
msg = msg .. " (laser)"
|
|
200
|
-
end
|
|
201
|
-
local npc = entity:ToNPC()
|
|
202
|
-
if npc ~= nil then
|
|
203
|
-
msg = msg .. (" (NPC) (State: " .. tostring(npc.State)) .. ")"
|
|
204
|
-
end
|
|
205
|
-
local pickup = entity:ToPickup()
|
|
206
|
-
if pickup ~= nil then
|
|
207
|
-
msg = msg .. (" (pickup) (State: " .. tostring(pickup.State)) .. ")"
|
|
208
|
-
end
|
|
209
|
-
local player = entity:ToPlayer()
|
|
210
|
-
if player ~= nil then
|
|
211
|
-
msg = msg .. " (player)"
|
|
212
|
-
end
|
|
213
|
-
local projectile = entity:ToProjectile()
|
|
214
|
-
if projectile ~= nil then
|
|
215
|
-
msg = msg .. " (projectile)"
|
|
216
|
-
end
|
|
217
|
-
local tear = entity:ToTear()
|
|
218
|
-
if tear ~= nil then
|
|
219
|
-
msg = msg .. " (tear)"
|
|
220
|
-
end
|
|
221
|
-
msg = msg .. "\n"
|
|
222
|
-
msg = msg .. (" - Index: " .. tostring(entity.Index)) .. "\n"
|
|
223
|
-
msg = msg .. (" - InitSeed: " .. tostring(entity.InitSeed)) .. "\n"
|
|
224
|
-
msg = msg .. (" - DropSeed: " .. tostring(entity.DropSeed)) .. "\n"
|
|
225
|
-
msg = msg .. (((" - Position: (" .. tostring(entity.Position.X)) .. ", ") .. tostring(entity.Position.Y)) .. ")\n"
|
|
226
|
-
msg = msg .. (((" - Velocity: (" .. tostring(entity.Velocity.X)) .. ", ") .. tostring(entity.Velocity.Y)) .. ")\n"
|
|
227
|
-
msg = msg .. (((" - HP: " .. tostring(entity.HitPoints)) .. " / ") .. tostring(entity.MaxHitPoints)) .. "\n"
|
|
228
|
-
msg = msg .. (" - Parent: " .. tostring(entity.Parent)) .. "\n"
|
|
229
|
-
msg = msg .. (" - Child: " .. tostring(entity.Child)) .. "\n"
|
|
230
|
-
msg = msg .. (" - SpawnerEntity: " .. tostring(entity.SpawnerEntity)) .. "\n"
|
|
231
|
-
msg = msg .. (((" - SpawnerType / SpawnerVariant: " .. tostring(entity.SpawnerType)) .. ".") .. tostring(entity.SpawnerVariant)) .. "\n"
|
|
232
|
-
if npc ~= nil then
|
|
233
|
-
msg = msg .. (" - CanShutDoors: " .. tostring(npc.CanShutDoors)) .. "\n"
|
|
234
|
-
end
|
|
235
|
-
numMatchedEntities = numMatchedEntities + 1
|
|
236
|
-
end
|
|
237
|
-
)
|
|
238
|
-
if numMatchedEntities == 0 then
|
|
239
|
-
msg = msg .. "(no entities matched)\n"
|
|
240
|
-
else
|
|
241
|
-
msg = msg .. ((("(" .. tostring(numMatchedEntities)) .. " total ") .. (numMatchedEntities == 1 and "entity" or "entities")) .. ")\n"
|
|
340
|
+
--- Helper function for logging an array of specific entities.
|
|
341
|
+
function ____exports.logEntities(entities)
|
|
342
|
+
for ____, entity in ipairs(entities) do
|
|
343
|
+
____exports.logEntity(entity)
|
|
242
344
|
end
|
|
243
|
-
____exports.log(msg)
|
|
244
345
|
end
|
|
245
346
|
--- Helper function for printing out every entity flag that is turned on. Useful when debugging.
|
|
246
347
|
function ____exports.logEntityFlags(flags)
|
|
@@ -277,78 +378,11 @@ function ____exports.logGameStateFlags()
|
|
|
277
378
|
____exports.log(" n/a (no flags)")
|
|
278
379
|
end
|
|
279
380
|
end
|
|
280
|
-
--- Helper function for
|
|
281
|
-
function ____exports.logGridEntities(
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
msg = msg .. (" (filtered to grid entity type " .. tostring(gridEntityTypeFilter)) .. ")"
|
|
285
|
-
elseif not includeWalls then
|
|
286
|
-
msg = msg .. " (not including walls)"
|
|
381
|
+
--- Helper function for logging an array of specific grid entities.
|
|
382
|
+
function ____exports.logGridEntities(gridEntities)
|
|
383
|
+
for ____, gridEntity in ipairs(gridEntities) do
|
|
384
|
+
____exports.logGridEntity(gridEntity)
|
|
287
385
|
end
|
|
288
|
-
msg = msg .. ":\n"
|
|
289
|
-
local gridEntities = getGridEntities(nil)
|
|
290
|
-
local numMatchedEntities = 0
|
|
291
|
-
__TS__ArrayForEach(
|
|
292
|
-
gridEntities,
|
|
293
|
-
function(____, gridEntity)
|
|
294
|
-
local gridEntityIndex = gridEntity:GetGridIndex()
|
|
295
|
-
local gridEntityType = gridEntity:GetType()
|
|
296
|
-
local gridEntityVariant = gridEntity:GetVariant()
|
|
297
|
-
local gridEntityDesc = gridEntity:GetSaveState()
|
|
298
|
-
if gridEntityTypeFilter ~= nil and gridEntityType ~= gridEntityTypeFilter then
|
|
299
|
-
return
|
|
300
|
-
end
|
|
301
|
-
if not includeWalls and gridEntityType == GridEntityType.WALL and gridEntityTypeFilter ~= GridEntityType.WALL then
|
|
302
|
-
return
|
|
303
|
-
end
|
|
304
|
-
msg = msg .. (((((tostring(gridEntityIndex) .. ") ") .. tostring(gridEntityType)) .. ".") .. tostring(gridEntityVariant)) .. ".") .. tostring(gridEntity.State)
|
|
305
|
-
local door = gridEntity:ToDoor()
|
|
306
|
-
if door ~= nil then
|
|
307
|
-
msg = msg .. " (door)"
|
|
308
|
-
end
|
|
309
|
-
local pit = gridEntity:ToPit()
|
|
310
|
-
if pit ~= nil then
|
|
311
|
-
msg = msg .. " (pit)"
|
|
312
|
-
end
|
|
313
|
-
local poop = gridEntity:ToPoop()
|
|
314
|
-
if poop ~= nil then
|
|
315
|
-
msg = msg .. " (poop)"
|
|
316
|
-
end
|
|
317
|
-
local pressurePlate = gridEntity:ToPressurePlate()
|
|
318
|
-
if pressurePlate ~= nil then
|
|
319
|
-
msg = msg .. " (pressurePlate)"
|
|
320
|
-
end
|
|
321
|
-
local rock = gridEntity:ToRock()
|
|
322
|
-
if rock ~= nil then
|
|
323
|
-
msg = msg .. " (rock)"
|
|
324
|
-
end
|
|
325
|
-
local spikes = gridEntity:ToSpikes()
|
|
326
|
-
if spikes ~= nil then
|
|
327
|
-
msg = msg .. " (spikes)"
|
|
328
|
-
end
|
|
329
|
-
local tnt = gridEntity:ToTNT()
|
|
330
|
-
if tnt ~= nil then
|
|
331
|
-
msg = msg .. " (TNT)"
|
|
332
|
-
end
|
|
333
|
-
msg = msg .. (" - VarData: " .. tostring(gridEntity.VarData)) .. "\n"
|
|
334
|
-
msg = msg .. (((" - Position: (" .. tostring(gridEntity.Position.X)) .. ", ") .. tostring(gridEntity.Position.Y)) .. ")\n"
|
|
335
|
-
msg = msg .. (" - SpawnSeed: " .. tostring(gridEntityDesc.SpawnSeed)) .. "\n"
|
|
336
|
-
msg = msg .. (" - VariableSeed: " .. tostring(gridEntityDesc.VariableSeed)) .. ")\n"
|
|
337
|
-
if door ~= nil then
|
|
338
|
-
msg = msg .. (" - Slot: " .. tostring(door.Slot)) .. "\n"
|
|
339
|
-
msg = msg .. (" - Direction: " .. tostring(door.Direction)) .. "\n"
|
|
340
|
-
msg = msg .. (" - TargetRoomIndex: " .. tostring(door.TargetRoomIndex)) .. "\n"
|
|
341
|
-
msg = msg .. (" - TargetRoomType: " .. tostring(door.TargetRoomType)) .. "\n"
|
|
342
|
-
end
|
|
343
|
-
numMatchedEntities = numMatchedEntities + 1
|
|
344
|
-
end
|
|
345
|
-
)
|
|
346
|
-
if numMatchedEntities == 0 then
|
|
347
|
-
msg = msg .. "(no grid entities matched)\n"
|
|
348
|
-
else
|
|
349
|
-
msg = msg .. ((("(" .. tostring(numMatchedEntities)) .. " total grid ") .. (numMatchedEntities == 1 and "entity" or "entities")) .. ")\n"
|
|
350
|
-
end
|
|
351
|
-
____exports.log(msg)
|
|
352
386
|
end
|
|
353
387
|
function ____exports.logKColor(kColor)
|
|
354
388
|
____exports.log((((((("Color: R" .. tostring(kColor.Red)) .. ", G") .. tostring(kColor.Green)) .. ", B") .. tostring(kColor.Blue)) .. ", A") .. tostring(kColor.Alpha))
|
|
@@ -498,7 +532,9 @@ function ____exports.logTable(luaTable, parentTables)
|
|
|
498
532
|
end
|
|
499
533
|
);
|
|
500
534
|
(function()
|
|
501
|
-
|
|
535
|
+
local ____TS__ObjectKeys_result_0 = __TS__ObjectKeys(luaTable)
|
|
536
|
+
local length = ____TS__ObjectKeys_result_0.length
|
|
537
|
+
____exports.log((indentation .. "The size of the table was: ") .. tostring(length))
|
|
502
538
|
end)(nil)
|
|
503
539
|
end
|
|
504
540
|
--- Helper function to print out the differences between the entries of two tables. Note that this
|
|
@@ -567,17 +603,21 @@ end
|
|
|
567
603
|
function ____exports.setLogFunctionsGlobal(self)
|
|
568
604
|
local globals = _G
|
|
569
605
|
globals.log = ____exports.log
|
|
606
|
+
globals.logAllEntities = ____exports.logAllEntities
|
|
607
|
+
globals.logAllGridEntities = ____exports.logAllGridEntities
|
|
570
608
|
globals.logArray = ____exports.logArray
|
|
571
609
|
globals.logColor = ____exports.logColor
|
|
572
610
|
globals.logDamageFlags = ____exports.logDamageFlags
|
|
573
611
|
globals.logEffects = ____exports.logEffects
|
|
574
612
|
globals.logEntities = ____exports.logEntities
|
|
613
|
+
globals.logEntity = ____exports.logEntity
|
|
575
614
|
globals.logEntityID = ____exports.logEntityID
|
|
576
615
|
globals.logEntityFlags = ____exports.logEntityFlags
|
|
577
616
|
globals.logError = ____exports.logError
|
|
578
617
|
globals.logFlags = ____exports.logFlags
|
|
579
618
|
globals.logGameStateFlags = ____exports.logGameStateFlags
|
|
580
619
|
globals.logGridEntities = ____exports.logGridEntities
|
|
620
|
+
globals.logGridEntity = ____exports.logGridEntity
|
|
581
621
|
globals.logKColor = ____exports.logKColor
|
|
582
622
|
globals.logLevelStateFlags = ____exports.logLevelStateFlags
|
|
583
623
|
globals.logMap = ____exports.logMap
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Run the suite of tests that prove that the "merge"
|
|
3
|
-
*
|
|
2
|
+
* Run the suite of tests that prove that the "merge" function works properly. (This function is not
|
|
3
|
+
* exported but is used internally in the save data manager.)
|
|
4
4
|
*
|
|
5
5
|
* This function is only useful if you are troubleshooting the save data manager.
|
|
6
6
|
*/
|
|
@@ -240,8 +240,8 @@ function oldTableHasRNGSerialized(self)
|
|
|
240
240
|
error("The old table's seed not match: " .. tostring(seed))
|
|
241
241
|
end
|
|
242
242
|
end
|
|
243
|
-
--- Run the suite of tests that prove that the "merge"
|
|
244
|
-
--
|
|
243
|
+
--- Run the suite of tests that prove that the "merge" function works properly. (This function is not
|
|
244
|
+
-- exported but is used internally in the save data manager.)
|
|
245
245
|
--
|
|
246
246
|
-- This function is only useful if you are troubleshooting the save data manager.
|
|
247
247
|
function ____exports.runMergeTests(self)
|
|
@@ -171,12 +171,12 @@ export declare function spawnBattery(batterySubType: BatterySubType, position: V
|
|
|
171
171
|
*/
|
|
172
172
|
export declare function spawnBatteryWithSeed(batterySubType: BatterySubType, position: Vector, seedOrRNG: Seed | RNG, velocity?: Vector, spawner?: Entity | undefined): EntityPickupBattery;
|
|
173
173
|
/** Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.BOMB` (40). */
|
|
174
|
-
export declare function spawnBombPickup(bombSubType: BombSubType, position: Vector, velocity?: Vector, spawner?: Entity | undefined, seedOrRNG?: Seed | RNG | undefined):
|
|
174
|
+
export declare function spawnBombPickup(bombSubType: BombSubType, position: Vector, velocity?: Vector, spawner?: Entity | undefined, seedOrRNG?: Seed | RNG | undefined): EntityPickupBomb;
|
|
175
175
|
/**
|
|
176
176
|
* Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.BOMB` (40) and a
|
|
177
177
|
* specific seed.
|
|
178
178
|
*/
|
|
179
|
-
export declare function spawnBombPickupWithSeed(bombSubType: BombSubType, position: Vector, seedOrRNG: Seed | RNG, velocity?: Vector, spawner?: Entity | undefined):
|
|
179
|
+
export declare function spawnBombPickupWithSeed(bombSubType: BombSubType, position: Vector, seedOrRNG: Seed | RNG, velocity?: Vector, spawner?: Entity | undefined): EntityPickupBomb;
|
|
180
180
|
/**
|
|
181
181
|
* Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.TAROT_CARD` (300).
|
|
182
182
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pickupsSpecific.d.ts","sourceRoot":"","sources":["../../src/functions/pickupsSpecific.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pickupsSpecific.d.ts","sourceRoot":"","sources":["../../src/functions/pickupsSpecific.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ export declare function getPlayerFromIndex(playerIndex: PlayerIndex): EntityPlay
|
|
|
40
40
|
* this is not desired, pass true for the `differentiateForgottenAndSoul` argument, and the RNG of
|
|
41
41
|
* Spoon Bender (3) will be used for The Soul.
|
|
42
42
|
*
|
|
43
|
-
* Also note that this index
|
|
43
|
+
* Also note that this index does not work in the `POST_PLAYER_INIT` function for players 2 through
|
|
44
44
|
* 4. With that said, in almost all cases, you should be lazy-initializing your data structures in
|
|
45
45
|
* other callbacks, so this should not be an issue.
|
|
46
46
|
*/
|
|
@@ -56,7 +56,7 @@ end
|
|
|
56
56
|
-- this is not desired, pass true for the `differentiateForgottenAndSoul` argument, and the RNG of
|
|
57
57
|
-- Spoon Bender (3) will be used for The Soul.
|
|
58
58
|
--
|
|
59
|
-
-- Also note that this index
|
|
59
|
+
-- Also note that this index does not work in the `POST_PLAYER_INIT` function for players 2 through
|
|
60
60
|
-- 4. With that said, in almost all cases, you should be lazy-initializing your data structures in
|
|
61
61
|
-- other callbacks, so this should not be an issue.
|
|
62
62
|
function ____exports.getPlayerIndex(self, player, differentiateForgottenAndSoul)
|
package/dist/functions/rng.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// <reference types="isaac-typescript-definitions" />
|
|
3
3
|
/// <reference types="isaac-typescript-definitions" />
|
|
4
4
|
import { SerializationType } from "../enums/SerializationType";
|
|
5
|
-
declare type SerializedRNG =
|
|
5
|
+
declare type SerializedRNG = LuaMap<string, unknown> & {
|
|
6
6
|
readonly __serializedRNGBrand: symbol;
|
|
7
7
|
};
|
|
8
8
|
interface CopyRNGReturn {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../../src/functions/rng.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,aAAK,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../../src/functions/rng.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,aAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC7C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,UAAU,aAAa;IACrB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAC9B,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC7C,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;CACtC;AAYD;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,CAAC,SAAS,GAAG,GAAG,aAAa,EAC7B,CAAC,SAAS,iBAAiB,EAC3B,GAAG,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAClD,wBAAgB,OAAO,CAAC,CAAC,SAAS,GAAG,GAAG,aAAa,EACnD,GAAG,EAAE,CAAC,GACL,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAiDzC;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,2EAA2E;AAC3E,wBAAgB,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,GAAG,CAEpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,aAAa,CAMxE;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,OAAkB,GAAG,GAAG,CAIlD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAoBjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAK1D;AAED,4FAA4F;AAC5F,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CASlD"}
|
package/dist/functions/run.d.ts
CHANGED
|
@@ -13,6 +13,14 @@ export declare function onSetSeed(): boolean;
|
|
|
13
13
|
* You can optionally specify a `PlayerType` to restart the game as that character.
|
|
14
14
|
*/
|
|
15
15
|
export declare function restart(character?: PlayerType): void;
|
|
16
|
+
/**
|
|
17
|
+
* Helper function to restart on the next render frame. Useful because it is impossible to restart
|
|
18
|
+
* the game inside of the `POST_NEW_ROOM`, `POST_NEW_LEVEL`, or `POST_GAME_STARTED` callbacks when a
|
|
19
|
+
* run is first starting.
|
|
20
|
+
*
|
|
21
|
+
* You can optionally specify a `PlayerType` to restart the game as that character.
|
|
22
|
+
*/
|
|
23
|
+
export declare function restartNextRenderFrame(character?: PlayerType): void;
|
|
16
24
|
/**
|
|
17
25
|
* Helper function to change the run status to that of an unseeded run with a new random seed.
|
|
18
26
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/functions/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/functions/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAMrE;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAiBpD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAInE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAUlC"}
|
package/dist/functions/run.lua
CHANGED
|
@@ -6,6 +6,8 @@ local ____cachedClasses = require("cachedClasses")
|
|
|
6
6
|
local game = ____cachedClasses.game
|
|
7
7
|
local ____constantsFirstLast = require("constantsFirstLast")
|
|
8
8
|
local FIRST_CHARACTER = ____constantsFirstLast.FIRST_CHARACTER
|
|
9
|
+
local ____runInNFrames = require("features.runInNFrames")
|
|
10
|
+
local runNextRenderFrame = ____runInNFrames.runNextRenderFrame
|
|
9
11
|
local ____log = require("functions.log")
|
|
10
12
|
local log = ____log.log
|
|
11
13
|
--- Whether or not the player is playing on a set seed (i.e. that they entered in a specific seed by
|
|
@@ -36,6 +38,19 @@ function ____exports.restart(self, character)
|
|
|
36
38
|
log((((("Restarting the run as PlayerType." .. tostring(PlayerType[character])) .. " (") .. tostring(character)) .. ") with a console command of: ") .. command)
|
|
37
39
|
Isaac.ExecuteCommand(command)
|
|
38
40
|
end
|
|
41
|
+
--- Helper function to restart on the next render frame. Useful because it is impossible to restart
|
|
42
|
+
-- the game inside of the `POST_NEW_ROOM`, `POST_NEW_LEVEL`, or `POST_GAME_STARTED` callbacks when a
|
|
43
|
+
-- run is first starting.
|
|
44
|
+
--
|
|
45
|
+
-- You can optionally specify a `PlayerType` to restart the game as that character.
|
|
46
|
+
function ____exports.restartNextRenderFrame(self, character)
|
|
47
|
+
runNextRenderFrame(
|
|
48
|
+
nil,
|
|
49
|
+
function()
|
|
50
|
+
____exports.restart(nil, character)
|
|
51
|
+
end
|
|
52
|
+
)
|
|
53
|
+
end
|
|
39
54
|
--- Helper function to change the run status to that of an unseeded run with a new random seed.
|
|
40
55
|
--
|
|
41
56
|
-- This is useful to revert the behavior where playing on a set and restarting the game will not
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
/// <reference types="typescript-to-lua/language-extensions" />
|
|
2
2
|
/**
|
|
3
|
-
* In a Map
|
|
3
|
+
* In a `Map`, you can use the `clear` method to delete every element. However, in a `LuaMap`, the
|
|
4
4
|
* `clear` method does not exist. Use this helper function as a drop-in replacement for this.
|
|
5
5
|
*/
|
|
6
|
-
export declare function clearTable(
|
|
6
|
+
export declare function clearTable(luaMap: LuaMap): void;
|
|
7
7
|
/** Helper function to copy specific values from a object to a table. */
|
|
8
|
-
export declare function copyValuesToTable(object: unknown, keys: string[],
|
|
8
|
+
export declare function copyValuesToTable(object: unknown, keys: string[], luaMap: LuaMap<string, unknown>): void;
|
|
9
9
|
/**
|
|
10
10
|
* Helper function to safely get boolean values from a Lua table. Will throw an error if the
|
|
11
11
|
* specific value does not exist on the table.
|
|
12
12
|
*
|
|
13
13
|
* This function is variadic, meaning that you can specify N arguments to get N values.
|
|
14
14
|
*/
|
|
15
|
-
export declare function getBooleansFromTable(
|
|
15
|
+
export declare function getBooleansFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): boolean[];
|
|
16
16
|
/**
|
|
17
17
|
* Helper function to safely get number values from a Lua table. Will throw an error if the specific
|
|
18
18
|
* value does not exist on the table or if it cannot be converted to a number.
|
|
19
19
|
*
|
|
20
20
|
* This function is variadic, meaning that you can specify N arguments to get N values.
|
|
21
21
|
*/
|
|
22
|
-
export declare function getNumbersFromTable(
|
|
22
|
+
export declare function getNumbersFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): number[];
|
|
23
23
|
/**
|
|
24
24
|
* Helper function to safely get string values from a Lua table. Will throw an error if the specific
|
|
25
25
|
* value does not exist on the table.
|
|
26
26
|
*
|
|
27
27
|
* This function is variadic, meaning that you can specify N arguments to get N values.
|
|
28
28
|
*/
|
|
29
|
-
export declare function getStringsFromTable(
|
|
29
|
+
export declare function getStringsFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): string[];
|
|
30
30
|
/**
|
|
31
31
|
* Helper function to iterate over a table deterministically. This is useful because by default, the
|
|
32
32
|
* `pairs` function will return the keys of a Lua table in a random order.
|
|
@@ -36,18 +36,18 @@ export declare function getStringsFromTable(luaTable: LuaTable<string, unknown>,
|
|
|
36
36
|
* This function will only work on tables that have number keys or string keys. It will throw a
|
|
37
37
|
* run-time error if it encounters a key of another type.
|
|
38
38
|
*
|
|
39
|
-
* @param
|
|
39
|
+
* @param luaMap The table to iterate over.
|
|
40
40
|
* @param func The function to run for each iteration.
|
|
41
41
|
* @param inOrder Optional. Whether to iterate in order. True by default. You can dynamically set to
|
|
42
42
|
* false in situations where iterating randomly would not matter and you need the
|
|
43
43
|
* extra performance.
|
|
44
44
|
*/
|
|
45
|
-
export declare function iterateTableInOrder<K, V>(
|
|
45
|
+
export declare function iterateTableInOrder<K, V>(luaMap: LuaMap<K, V>, func: (key: K, value: V) => void, inOrder?: boolean): void;
|
|
46
46
|
/**
|
|
47
47
|
* Helper function to check if a Lua table has all of the provided keys.
|
|
48
48
|
*
|
|
49
49
|
* This function is variadic, meaning that you can specify as many arguments as you want to check
|
|
50
50
|
* for.
|
|
51
51
|
*/
|
|
52
|
-
export declare function tableHasKeys(
|
|
52
|
+
export declare function tableHasKeys(luaMap: LuaMap<AnyNotNil, unknown>, ...keys: string[]): boolean;
|
|
53
53
|
//# sourceMappingURL=table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/functions/table.ts"],"names":[],"mappings":";AAEA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/functions/table.ts"],"names":[],"mappings":";AAEA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAON;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,EAAE,CAoBX;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,EAAE,CA4BV;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,EAAE,CAmBV;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,UAAO,GACb,IAAI,CA6BN;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAClC,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAET"}
|