isaacscript-common 30.12.11 → 31.0.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.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 30.12.11
3
+ isaacscript-common 31.0.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -25336,7 +25336,7 @@ end
25336
25336
  function ____exports.getRoomShapeWidth(self, roomShape)
25337
25337
  return ROOM_SHAPE_TO_GRID_WIDTH[roomShape]
25338
25338
  end
25339
- function ____exports.isLRoom(self, roomShape)
25339
+ function ____exports.isLRoomShape(self, roomShape)
25340
25340
  return L_ROOM_SHAPES_SET:has(roomShape)
25341
25341
  end
25342
25342
  function ____exports.isNarrowRoom(self, roomShape)
@@ -27306,9 +27306,9 @@ local Map = ____lualib.Map
27306
27306
  local __TS__Spread = ____lualib.__TS__Spread
27307
27307
  local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
27308
27308
  local __TS__ArrayMap = ____lualib.__TS__ArrayMap
27309
+ local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
27309
27310
  local __TS__StringIncludes = ____lualib.__TS__StringIncludes
27310
27311
  local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
27311
- local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
27312
27312
  local ____exports = {}
27313
27313
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
27314
27314
  local AngelRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.AngelRoomSubType
@@ -27318,7 +27318,6 @@ local DownpourRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.DownpourRoomSub
27318
27318
  local DungeonSubType = ____isaac_2Dtypescript_2Ddefinitions.DungeonSubType
27319
27319
  local GridRoom = ____isaac_2Dtypescript_2Ddefinitions.GridRoom
27320
27320
  local HomeRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.HomeRoomSubType
27321
- local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
27322
27321
  local RoomDescriptorFlag = ____isaac_2Dtypescript_2Ddefinitions.RoomDescriptorFlag
27323
27322
  local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
27324
27323
  local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
@@ -27357,9 +27356,8 @@ local getRoomData = ____roomData.getRoomData
27357
27356
  local getRoomDescriptor = ____roomData.getRoomDescriptor
27358
27357
  local getRoomDescriptorReadOnly = ____roomData.getRoomDescriptorReadOnly
27359
27358
  local getRoomGridIndex = ____roomData.getRoomGridIndex
27360
- local getRoomName = ____roomData.getRoomName
27361
- local getRoomStageID = ____roomData.getRoomStageID
27362
- local getRoomSubType = ____roomData.getRoomSubType
27359
+ local ____roomShape = require("src.functions.roomShape")
27360
+ local isLRoomShape = ____roomShape.isLRoomShape
27363
27361
  local ____roomTransition = require("src.functions.roomTransition")
27364
27362
  local reloadRoom = ____roomTransition.reloadRoom
27365
27363
  local ____stage = require("src.functions.stage")
@@ -27413,6 +27411,61 @@ function ____exports.getRoomsOutsideGrid(self)
27413
27411
  function(____, readOnlyRoomDescriptor) return getRoomDescriptor(nil, readOnlyRoomDescriptor.SafeGridIndex) end
27414
27412
  )
27415
27413
  end
27414
+ function ____exports.is2x1Room(self, roomData)
27415
+ return roomData.Shape == RoomShape.SHAPE_1x2 or roomData.Shape == RoomShape.SHAPE_2x1
27416
+ end
27417
+ function ____exports.isAngelShop(self, roomData)
27418
+ return roomData.Type == RoomType.ANGEL and roomData.Subtype == asNumber(nil, AngelRoomSubType.SHOP)
27419
+ end
27420
+ function ____exports.isBeastRoom(self, roomData)
27421
+ return roomData.Type == RoomType.DUNGEON and roomData.Subtype == asNumber(nil, DungeonSubType.BEAST_ROOM)
27422
+ end
27423
+ function ____exports.isBossRoomOf(self, roomData, bossID)
27424
+ return roomData.Type == RoomType.BOSS and roomData.StageID == StageID.SPECIAL_ROOMS and roomData.Subtype == asNumber(nil, bossID)
27425
+ end
27426
+ function ____exports.isCrawlSpace(self, roomData)
27427
+ return roomData.Type == RoomType.DUNGEON and roomData.Subtype == asNumber(nil, DungeonSubType.NORMAL)
27428
+ end
27429
+ function ____exports.isDeathCertificateArea(self, roomData)
27430
+ return roomData.StageID == StageID.HOME and (roomData.Subtype == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE) or roomData.Subtype == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ITEMS))
27431
+ end
27432
+ function ____exports.isDevilsCrownTreasureRoom(self, roomDescriptor)
27433
+ return hasFlag(nil, roomDescriptor.Flags, RoomDescriptorFlag.DEVIL_TREASURE)
27434
+ end
27435
+ function ____exports.isDoubleTrouble(self, roomData)
27436
+ return roomData.Type == RoomType.BOSS and __TS__StringIncludes(roomData.Name, "Double Trouble")
27437
+ end
27438
+ function ____exports.isGenesisRoom(self, roomDescriptor)
27439
+ return roomDescriptor.GridIndex == asNumber(nil, GridRoom.GENESIS)
27440
+ end
27441
+ function ____exports.isHomeCloset(self, roomData)
27442
+ return roomData.StageID == StageID.HOME and (roomData.Subtype == asNumber(nil, HomeRoomSubType.CLOSET_LEFT) or roomData.Subtype == asNumber(nil, HomeRoomSubType.CLOSET_RIGHT))
27443
+ end
27444
+ function ____exports.isLRoom(self, roomData)
27445
+ return isLRoomShape(nil, roomData.Shape)
27446
+ end
27447
+ function ____exports.isMegaSatanRoom(self, roomDescriptor)
27448
+ return roomDescriptor.GridIndex == asNumber(nil, GridRoom.MEGA_SATAN)
27449
+ end
27450
+ function ____exports.isMineShaft(self, roomData)
27451
+ return (roomData.StageID == StageID.MINES or roomData.StageID == StageID.ASHPIT) and MINE_SHAFT_ROOM_SUB_TYPE_SET:has(roomData.Subtype)
27452
+ end
27453
+ function ____exports.isMinibossRoomOf(self, roomData, minibossID)
27454
+ return roomData.Type == RoomType.MINI_BOSS and roomData.StageID == StageID.SPECIAL_ROOMS and roomData.Subtype == asNumber(nil, minibossID)
27455
+ end
27456
+ function ____exports.isMirrorRoom(self, roomData)
27457
+ return roomData.Type == RoomType.DEFAULT and (roomData.StageID == StageID.DOWNPOUR or roomData.StageID == StageID.DROSS) and roomData.Subtype == asNumber(nil, DownpourRoomSubType.MIRROR)
27458
+ end
27459
+ function ____exports.isRoomType(self, roomData, ...)
27460
+ local roomTypes = {...}
27461
+ return __TS__ArrayIncludes(roomTypes, roomData.Type)
27462
+ end
27463
+ function ____exports.isSecretExit(self, roomDescriptor)
27464
+ return roomDescriptor.GridIndex == asNumber(nil, GridRoom.SECRET_EXIT)
27465
+ end
27466
+ function ____exports.isSecretShop(self, roomDescriptor)
27467
+ return roomDescriptor.GridIndex == asNumber(nil, GridRoom.SECRET_SHOP)
27468
+ end
27416
27469
  local SECRET_ROOM_TYPES = __TS__New(ReadonlySet, {RoomType.SECRET, RoomType.SUPER_SECRET, RoomType.ULTRA_SECRET})
27417
27470
  function ____exports.changeRoom(self, roomGridIndex)
27418
27471
  local level = game:GetLevel()
@@ -27478,101 +27531,76 @@ function ____exports.getRoomsOfDimension(self, dimension)
27478
27531
  return {__TS__Spread(roomsMap:values())}
27479
27532
  end
27480
27533
  function ____exports.in2x1Room(self)
27481
- local room = game:GetRoom()
27482
- local roomShape = room:GetRoomShape()
27483
- return roomShape == RoomShape.SHAPE_1x2 or roomShape == RoomShape.SHAPE_2x1
27534
+ local roomData = getRoomData(nil)
27535
+ return ____exports.is2x1Room(nil, roomData)
27484
27536
  end
27485
27537
  function ____exports.inAngelShop(self)
27486
- local room = game:GetRoom()
27487
- local roomType = room:GetType()
27488
- local roomSubType = getRoomSubType(nil)
27489
- return roomType == RoomType.ANGEL and roomSubType == asNumber(nil, AngelRoomSubType.SHOP)
27538
+ local roomData = getRoomData(nil)
27539
+ return ____exports.isAngelShop(nil, roomData)
27490
27540
  end
27491
27541
  function ____exports.inBeastRoom(self)
27492
- local room = game:GetRoom()
27493
- local roomType = room:GetType()
27494
- local roomSubType = getRoomSubType(nil)
27495
- return roomType == RoomType.DUNGEON and roomSubType == asNumber(nil, DungeonSubType.BEAST_ROOM)
27542
+ local roomData = getRoomData(nil)
27543
+ return ____exports.isBeastRoom(nil, roomData)
27496
27544
  end
27497
27545
  function ____exports.inBossRoomOf(self, bossID)
27498
- local room = game:GetRoom()
27499
- local roomType = room:GetType()
27500
- local roomStageID = getRoomStageID(nil)
27501
- local roomSubType = getRoomSubType(nil)
27502
- return roomType == RoomType.BOSS and roomStageID == StageID.SPECIAL_ROOMS and roomSubType == asNumber(nil, bossID)
27546
+ local roomData = getRoomData(nil)
27547
+ return ____exports.isBossRoomOf(nil, roomData, bossID)
27503
27548
  end
27504
27549
  function ____exports.inCrawlSpace(self)
27505
- local room = game:GetRoom()
27506
- local roomType = room:GetType()
27507
- local roomSubType = getRoomSubType(nil)
27508
- return roomType == RoomType.DUNGEON and roomSubType == asNumber(nil, DungeonSubType.NORMAL)
27550
+ local roomData = getRoomData(nil)
27551
+ return ____exports.isCrawlSpace(nil, roomData)
27509
27552
  end
27510
27553
  function ____exports.inDeathCertificateArea(self)
27511
- local roomStageID = getRoomStageID(nil)
27512
- local roomSubType = getRoomSubType(nil)
27513
- return roomStageID == StageID.HOME and (roomSubType == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE) or roomSubType == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ITEMS))
27554
+ local roomData = getRoomData(nil)
27555
+ return ____exports.isDeathCertificateArea(nil, roomData)
27514
27556
  end
27515
27557
  function ____exports.inDevilsCrownTreasureRoom(self)
27516
27558
  local roomDescriptor = getRoomDescriptorReadOnly(nil)
27517
- return hasFlag(nil, roomDescriptor.Flags, RoomDescriptorFlag.DEVIL_TREASURE)
27559
+ return ____exports.isDevilsCrownTreasureRoom(nil, roomDescriptor)
27518
27560
  end
27519
27561
  function ____exports.inDoubleTrouble(self)
27520
- local room = game:GetRoom()
27521
- local roomType = room:GetType()
27522
- local roomName = getRoomName(nil)
27523
- return roomType == RoomType.BOSS and __TS__StringIncludes(roomName, "Double Trouble")
27562
+ local roomData = getRoomData(nil)
27563
+ return ____exports.isDoubleTrouble(nil, roomData)
27524
27564
  end
27525
27565
  function ____exports.inGenesisRoom(self)
27526
- local roomGridIndex = getRoomGridIndex(nil)
27527
- return roomGridIndex == asNumber(nil, GridRoom.GENESIS)
27566
+ local roomDescriptor = getRoomDescriptorReadOnly(nil)
27567
+ return ____exports.isGenesisRoom(nil, roomDescriptor)
27528
27568
  end
27529
27569
  function ____exports.inHomeCloset(self)
27530
- local level = game:GetLevel()
27531
- local stage = level:GetStage()
27532
- local roomSubType = getRoomSubType(nil)
27533
- return stage == LevelStage.HOME and (roomSubType == asNumber(nil, HomeRoomSubType.CLOSET_LEFT) or roomSubType == asNumber(nil, HomeRoomSubType.CLOSET_RIGHT))
27570
+ local roomData = getRoomData(nil)
27571
+ return ____exports.isHomeCloset(nil, roomData)
27534
27572
  end
27535
27573
  function ____exports.inLRoom(self)
27536
- local room = game:GetRoom()
27537
- local roomShape = room:GetRoomShape()
27538
- return roomShape == RoomShape.LTL or roomShape == RoomShape.LTR or roomShape == RoomShape.LBL or roomShape == RoomShape.LBR
27574
+ local roomData = getRoomData(nil)
27575
+ return ____exports.isLRoom(nil, roomData)
27539
27576
  end
27540
27577
  function ____exports.inMegaSatanRoom(self)
27541
- local roomGridIndex = getRoomGridIndex(nil)
27542
- return roomGridIndex == asNumber(nil, GridRoom.MEGA_SATAN)
27578
+ local roomDescriptor = getRoomDescriptorReadOnly(nil)
27579
+ return ____exports.isMegaSatanRoom(nil, roomDescriptor)
27543
27580
  end
27544
27581
  function ____exports.inMineShaft(self)
27545
- local roomStageID = getRoomStageID(nil)
27546
- local roomSubType = getRoomSubType(nil)
27547
- return (roomStageID == StageID.MINES or roomStageID == StageID.ASHPIT) and MINE_SHAFT_ROOM_SUB_TYPE_SET:has(roomSubType)
27582
+ local roomData = getRoomData(nil)
27583
+ return ____exports.isMineShaft(nil, roomData)
27548
27584
  end
27549
27585
  function ____exports.inMinibossRoomOf(self, minibossID)
27550
- local room = game:GetRoom()
27551
- local roomType = room:GetType()
27552
- local roomStageID = getRoomStageID(nil)
27553
- local roomSubType = getRoomSubType(nil)
27554
- return roomType == RoomType.MINI_BOSS and roomStageID == StageID.SPECIAL_ROOMS and roomSubType == asNumber(nil, minibossID)
27586
+ local roomData = getRoomData(nil)
27587
+ return ____exports.isMinibossRoomOf(nil, roomData, minibossID)
27555
27588
  end
27556
27589
  function ____exports.inMirrorRoom(self)
27557
- local room = game:GetRoom()
27558
- local roomType = room:GetType()
27559
- local roomStageID = getRoomStageID(nil)
27560
- local roomSubType = getRoomSubType(nil)
27561
- return roomType == RoomType.DEFAULT and (roomStageID == StageID.DOWNPOUR or roomStageID == StageID.DROSS) and roomSubType == asNumber(nil, DownpourRoomSubType.MIRROR)
27590
+ local roomData = getRoomData(nil)
27591
+ return ____exports.isMirrorRoom(nil, roomData)
27562
27592
  end
27563
27593
  function ____exports.inRoomType(self, ...)
27564
- local roomTypes = {...}
27565
- local room = game:GetRoom()
27566
- local thisRoomType = room:GetType()
27567
- return __TS__ArrayIncludes(roomTypes, thisRoomType)
27594
+ local roomData = getRoomData(nil)
27595
+ return ____exports.isRoomType(nil, roomData, ...)
27568
27596
  end
27569
27597
  function ____exports.inSecretExit(self)
27570
- local roomGridIndex = getRoomGridIndex(nil)
27571
- return roomGridIndex == asNumber(nil, GridRoom.SECRET_EXIT)
27598
+ local roomDescriptor = getRoomDescriptorReadOnly(nil)
27599
+ return ____exports.isSecretExit(nil, roomDescriptor)
27572
27600
  end
27573
27601
  function ____exports.inSecretShop(self)
27574
- local roomGridIndex = getRoomGridIndex(nil)
27575
- return roomGridIndex == asNumber(nil, GridRoom.SECRET_SHOP)
27602
+ local roomDescriptor = getRoomDescriptorReadOnly(nil)
27603
+ return ____exports.isSecretShop(nil, roomDescriptor)
27576
27604
  end
27577
27605
  function ____exports.inStartingRoom(self)
27578
27606
  local level = game:GetLevel()
@@ -27641,12 +27669,12 @@ function ____exports.setRoomCleared(self)
27641
27669
  for ____, door in ipairs(getDoors(nil)) do
27642
27670
  do
27643
27671
  if isHiddenSecretRoomDoor(nil, door) then
27644
- goto __continue59
27672
+ goto __continue77
27645
27673
  end
27646
27674
  openDoorFast(nil, door)
27647
27675
  door.ExtraVisible = false
27648
27676
  end
27649
- ::__continue59::
27677
+ ::__continue77::
27650
27678
  end
27651
27679
  sfxManager:Stop(SoundEffect.DOOR_HEAVY_OPEN)
27652
27680
  game:ShakeScreen(0)
@@ -29498,13 +29526,9 @@ function ____exports.logRoom()
29498
29526
  local roomListIndex = getRoomListIndex(nil)
29499
29527
  local roomData = getRoomData(nil)
29500
29528
  log("Logging room information:")
29501
- if roomData == nil then
29502
- log("- Room data is undefined.")
29503
- else
29504
- log("- Room stage ID: " .. tostring(roomData.StageID))
29505
- log((((("- Type/variant/sub-type: " .. tostring(roomData.Type)) .. ".") .. tostring(roomData.Variant)) .. ".") .. tostring(roomData.Subtype))
29506
- log("- Name: " .. roomData.Name)
29507
- end
29529
+ log("- Room stage ID: " .. tostring(roomData.StageID))
29530
+ log((((("- Type/variant/sub-type: " .. tostring(roomData.Type)) .. ".") .. tostring(roomData.Variant)) .. ".") .. tostring(roomData.Subtype))
29531
+ log("- Name: " .. roomData.Name)
29508
29532
  local roomGridIndexName = GridRoom[roomGridIndex]
29509
29533
  if roomGridIndexName == nil then
29510
29534
  log("- Grid index: " .. tostring(roomGridIndex))
@@ -42194,7 +42218,7 @@ local spawnEffectWithSeed = ____entitiesSpecific.spawnEffectWithSeed
42194
42218
  local ____rng = require("src.functions.rng")
42195
42219
  local newRNG = ____rng.newRNG
42196
42220
  local ____roomShape = require("src.functions.roomShape")
42197
- local isLRoom = ____roomShape.isLRoom
42221
+ local isLRoomShape = ____roomShape.isLRoomShape
42198
42222
  local isNarrowRoom = ____roomShape.isNarrowRoom
42199
42223
  local ____string = require("src.functions.string")
42200
42224
  local removeCharactersBefore = ____string.removeCharactersBefore
@@ -42231,7 +42255,7 @@ function spawnWallEntity(self, customStage, rng, isExtraWall)
42231
42255
  if numWallLayers == nil then
42232
42256
  error("Failed to get the layers when creating the backdrop for custom stage: " .. customStage.name)
42233
42257
  end
42234
- if isLRoom(nil, roomShape) then
42258
+ if isLRoomShape(nil, roomShape) then
42235
42259
  local cornerPNGPath = getBackdropPNGPath(nil, customStage, BackdropKind.CORNER, rng)
42236
42260
  sprite:ReplaceSpritesheet(0, cornerPNGPath)
42237
42261
  end
@@ -42278,7 +42302,7 @@ function spawnFloorEntity(self, customStage, rng)
42278
42302
  local wallPNGPath = getBackdropPNGPath(nil, customStage, BackdropKind.WALL, rng)
42279
42303
  sprite:ReplaceSpritesheet(layerID, wallPNGPath)
42280
42304
  end
42281
- elseif isLRoom(nil, roomShape) then
42305
+ elseif isLRoomShape(nil, roomShape) then
42282
42306
  for ____, layerID in ipairs(L_FLOOR_ANM2_LAYERS) do
42283
42307
  local LFloorPNGPath = getBackdropPNGPath(nil, customStage, BackdropKind.L_FLOOR, rng)
42284
42308
  sprite:ReplaceSpritesheet(layerID, LFloorPNGPath)
@@ -45924,13 +45948,13 @@ local ____gridIndex = require("src.functions.gridIndex")
45924
45948
  local getGridIndexesBetween = ____gridIndex.getGridIndexesBetween
45925
45949
  local ____roomShape = require("src.functions.roomShape")
45926
45950
  local getRoomShapeCorners = ____roomShape.getRoomShapeCorners
45927
- local isLRoom = ____roomShape.isLRoom
45951
+ local isLRoomShape = ____roomShape.isLRoomShape
45928
45952
  local ____rooms = require("src.functions.rooms")
45929
45953
  local inBossRoomOf = ____rooms.inBossRoomOf
45930
45954
  local inHomeCloset = ____rooms.inHomeCloset
45931
45955
  function getVanillaWallGridIndexSetForRoomShape(self, roomShape)
45932
45956
  local corners = getRoomShapeCorners(nil, roomShape)
45933
- local lRoom = isLRoom(nil, roomShape)
45957
+ local lRoom = isLRoomShape(nil, roomShape)
45934
45958
  if lRoom and #corners ~= 6 then
45935
45959
  error(((("Failed to get the correct amount of corners for: RoomShape." .. RoomShape[roomShape]) .. " (") .. tostring(roomShape)) .. ")")
45936
45960
  end
@@ -46456,7 +46480,7 @@ local ____roomShape = require("src.functions.roomShape")
46456
46480
  local getRoomShapeBottomRightPosition = ____roomShape.getRoomShapeBottomRightPosition
46457
46481
  local getRoomShapeTopLeftPosition = ____roomShape.getRoomShapeTopLeftPosition
46458
46482
  local getRoomShapeWidth = ____roomShape.getRoomShapeWidth
46459
- local isLRoom = ____roomShape.isLRoom
46483
+ local isLRoomShape = ____roomShape.isLRoomShape
46460
46484
  function ____exports.gridPositionToWorldPosition(self, gridPosition)
46461
46485
  local x = (gridPosition.X + 2) * 40
46462
46486
  local y = (gridPosition.Y + 4) * 40
@@ -46489,13 +46513,13 @@ function ____exports.gridIndexToGridPosition(self, gridIndex, roomShape)
46489
46513
  return Vector(x, y)
46490
46514
  end
46491
46515
  function ____exports.isValidGridPosition(self, gridPosition, roomShape)
46492
- local ____isLRoom_result_0
46493
- if isLRoom(nil, roomShape) then
46494
- ____isLRoom_result_0 = isValidGridPositionLRoom(nil, gridPosition, roomShape)
46516
+ local ____isLRoomShape_result_0
46517
+ if isLRoomShape(nil, roomShape) then
46518
+ ____isLRoomShape_result_0 = isValidGridPositionLRoom(nil, gridPosition, roomShape)
46495
46519
  else
46496
- ____isLRoom_result_0 = isValidGridPositionNormal(nil, gridPosition, roomShape)
46520
+ ____isLRoomShape_result_0 = isValidGridPositionNormal(nil, gridPosition, roomShape)
46497
46521
  end
46498
- return ____isLRoom_result_0
46522
+ return ____isLRoomShape_result_0
46499
46523
  end
46500
46524
  function ____exports.worldPositionToGridPosition(self, worldPos)
46501
46525
  local x = math.floor(worldPos.X / 40 - 2 + 0.5)
@@ -47652,9 +47676,7 @@ local ____exports = {}
47652
47676
  local ADJACENT_ROOM_GRID_INDEX_DELTAS
47653
47677
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
47654
47678
  local DisplayFlag = ____isaac_2Dtypescript_2Ddefinitions.DisplayFlag
47655
- local DownpourRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.DownpourRoomSubType
47656
47679
  local LevelStateFlag = ____isaac_2Dtypescript_2Ddefinitions.LevelStateFlag
47657
- local MinesRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.MinesRoomSubType
47658
47680
  local RoomDescriptorFlag = ____isaac_2Dtypescript_2Ddefinitions.RoomDescriptorFlag
47659
47681
  local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
47660
47682
  local ____cachedClasses = require("src.core.cachedClasses")
@@ -47690,9 +47712,9 @@ local getGridIndexDelta = ____roomShape.getGridIndexDelta
47690
47712
  local ____rooms = require("src.functions.rooms")
47691
47713
  local getRooms = ____rooms.getRooms
47692
47714
  local getRoomsInsideGrid = ____rooms.getRoomsInsideGrid
47715
+ local isMineShaft = ____rooms.isMineShaft
47716
+ local isMirrorRoom = ____rooms.isMirrorRoom
47693
47717
  local isSecretRoomType = ____rooms.isSecretRoomType
47694
- local ____types = require("src.functions.types")
47695
- local asNumber = ____types.asNumber
47696
47718
  function ____exports.getAdjacentExistingRoomGridIndexes(self, roomGridIndex)
47697
47719
  local adjacentRoomGridIndexes = ____exports.getAdjacentRoomGridIndexes(nil, roomGridIndex)
47698
47720
  return __TS__ArrayFilter(
@@ -47714,7 +47736,10 @@ function ____exports.getAdjacentRoomGridIndexes(self, roomGridIndex)
47714
47736
  function(____, adjacentRoomGridIndex) return ____exports.isRoomInsideGrid(nil, adjacentRoomGridIndex) end
47715
47737
  )
47716
47738
  end
47717
- function ____exports.getNewRoomCandidatesBesideRoom(self, roomGridIndex)
47739
+ function ____exports.getNewRoomCandidatesBesideRoom(self, roomGridIndex, ensureDeadEnd)
47740
+ if ensureDeadEnd == nil then
47741
+ ensureDeadEnd = true
47742
+ end
47718
47743
  local roomDescriptor = getRoomDescriptor(nil, roomGridIndex)
47719
47744
  if not ____exports.isRoomInsideGrid(nil, roomDescriptor.SafeGridIndex) then
47720
47745
  return {}
@@ -47733,7 +47758,7 @@ function ____exports.getNewRoomCandidatesBesideRoom(self, roomGridIndex)
47733
47758
  if not hasFlag(nil, roomData.Doors, doorSlotFlag) then
47734
47759
  goto __continue17
47735
47760
  end
47736
- if not ____exports.isDeadEnd(nil, adjacentRoomGridIndex) then
47761
+ if ensureDeadEnd and not ____exports.isDeadEnd(nil, adjacentRoomGridIndex) then
47737
47762
  goto __continue17
47738
47763
  end
47739
47764
  roomCandidates[#roomCandidates + 1] = {doorSlot = doorSlot, roomGridIndex = adjacentRoomGridIndex}
@@ -47742,15 +47767,19 @@ function ____exports.getNewRoomCandidatesBesideRoom(self, roomGridIndex)
47742
47767
  end
47743
47768
  return roomCandidates
47744
47769
  end
47745
- function ____exports.getNewRoomCandidatesForLevel(self)
47770
+ function ____exports.getNewRoomCandidatesForLevel(self, ensureDeadEnd)
47771
+ if ensureDeadEnd == nil then
47772
+ ensureDeadEnd = true
47773
+ end
47746
47774
  local rooms = getRoomsInsideGrid(nil)
47747
47775
  local normalRooms = __TS__ArrayFilter(
47748
47776
  rooms,
47749
- function(____, room) return room.Data ~= nil and room.Data.Type == RoomType.DEFAULT and room.Data.Subtype ~= asNumber(nil, DownpourRoomSubType.MIRROR) and room.Data.Subtype ~= asNumber(nil, MinesRoomSubType.MINESHAFT_ENTRANCE) end
47777
+ function(____, room) return room.Data ~= nil and room.Data.Type == RoomType.DEFAULT and not isMirrorRoom(nil, room.Data) and not isMineShaft(nil, room.Data) end
47750
47778
  )
47779
+ local roomsToLookThrough = ensureDeadEnd and normalRooms or rooms
47751
47780
  local newRoomCandidates = {}
47752
- for ____, room in ipairs(normalRooms) do
47753
- local newRoomCandidatesBesideRoom = ____exports.getNewRoomCandidatesBesideRoom(nil, room.SafeGridIndex)
47781
+ for ____, room in ipairs(roomsToLookThrough) do
47782
+ local newRoomCandidatesBesideRoom = ____exports.getNewRoomCandidatesBesideRoom(nil, room.SafeGridIndex, ensureDeadEnd)
47754
47783
  for ____, ____value in ipairs(newRoomCandidatesBesideRoom) do
47755
47784
  local doorSlot = ____value.doorSlot
47756
47785
  local roomGridIndex = ____value.roomGridIndex
@@ -47838,11 +47867,14 @@ function ____exports.getAllRoomGridIndexes(self)
47838
47867
  function(____, roomDescriptor) return roomDescriptor.SafeGridIndex end
47839
47868
  )
47840
47869
  end
47841
- function ____exports.getNewRoomCandidate(self, seedOrRNG)
47870
+ function ____exports.getNewRoomCandidate(self, seedOrRNG, ensureDeadEnd)
47842
47871
  if seedOrRNG == nil then
47843
47872
  seedOrRNG = getRandomSeed(nil)
47844
47873
  end
47845
- local newRoomCandidatesForLevel = ____exports.getNewRoomCandidatesForLevel(nil)
47874
+ if ensureDeadEnd == nil then
47875
+ ensureDeadEnd = true
47876
+ end
47877
+ local newRoomCandidatesForLevel = ____exports.getNewRoomCandidatesForLevel(nil, ensureDeadEnd)
47846
47878
  if #newRoomCandidatesForLevel == 0 then
47847
47879
  return nil
47848
47880
  end
@@ -47899,13 +47931,16 @@ function ____exports.isRedKeyRoom(self, roomGridIndex)
47899
47931
  local roomDescriptor = getRoomDescriptor(nil, roomGridIndex)
47900
47932
  return hasFlag(nil, roomDescriptor.Flags, RoomDescriptorFlag.RED_ROOM)
47901
47933
  end
47902
- function ____exports.newRoom(self, seedOrRNG)
47934
+ function ____exports.newRoom(self, seedOrRNG, ensureDeadEnd, customRoomData)
47935
+ if ensureDeadEnd == nil then
47936
+ ensureDeadEnd = true
47937
+ end
47903
47938
  local level = game:GetLevel()
47904
47939
  if seedOrRNG == nil then
47905
47940
  seedOrRNG = level:GetDungeonPlacementSeed()
47906
47941
  end
47907
47942
  local rng = isRNG(nil, seedOrRNG) and seedOrRNG or newRNG(nil, seedOrRNG)
47908
- local newRoomCandidate = ____exports.getNewRoomCandidate(nil, rng)
47943
+ local newRoomCandidate = ____exports.getNewRoomCandidate(nil, rng, ensureDeadEnd)
47909
47944
  if newRoomCandidate == nil then
47910
47945
  return nil
47911
47946
  end
@@ -47915,6 +47950,9 @@ function ____exports.newRoom(self, seedOrRNG)
47915
47950
  level:MakeRedRoomDoor(adjacentRoomGridIndex, doorSlot)
47916
47951
  local roomDescriptor = getRoomDescriptor(nil, newRoomGridIndex)
47917
47952
  roomDescriptor.Flags = removeFlag(nil, roomDescriptor.Flags, RoomDescriptorFlag.RED_ROOM)
47953
+ if customRoomData ~= nil then
47954
+ roomDescriptor.Data = customRoomData
47955
+ end
47918
47956
  local roomData = roomDescriptor.Data
47919
47957
  if roomData ~= nil then
47920
47958
  local hasFullMap = level:GetStateFlag(LevelStateFlag.FULL_MAP_EFFECT)
@@ -20,7 +20,7 @@ local spawnEffectWithSeed = ____entitiesSpecific.spawnEffectWithSeed
20
20
  local ____rng = require("src.functions.rng")
21
21
  local newRNG = ____rng.newRNG
22
22
  local ____roomShape = require("src.functions.roomShape")
23
- local isLRoom = ____roomShape.isLRoom
23
+ local isLRoomShape = ____roomShape.isLRoomShape
24
24
  local isNarrowRoom = ____roomShape.isNarrowRoom
25
25
  local ____string = require("src.functions.string")
26
26
  local removeCharactersBefore = ____string.removeCharactersBefore
@@ -57,7 +57,7 @@ function spawnWallEntity(self, customStage, rng, isExtraWall)
57
57
  if numWallLayers == nil then
58
58
  error("Failed to get the layers when creating the backdrop for custom stage: " .. customStage.name)
59
59
  end
60
- if isLRoom(nil, roomShape) then
60
+ if isLRoomShape(nil, roomShape) then
61
61
  local cornerPNGPath = getBackdropPNGPath(nil, customStage, BackdropKind.CORNER, rng)
62
62
  sprite:ReplaceSpritesheet(0, cornerPNGPath)
63
63
  end
@@ -104,7 +104,7 @@ function spawnFloorEntity(self, customStage, rng)
104
104
  local wallPNGPath = getBackdropPNGPath(nil, customStage, BackdropKind.WALL, rng)
105
105
  sprite:ReplaceSpritesheet(layerID, wallPNGPath)
106
106
  end
107
- elseif isLRoom(nil, roomShape) then
107
+ elseif isLRoomShape(nil, roomShape) then
108
108
  for ____, layerID in ipairs(L_FLOOR_ANM2_LAYERS) do
109
109
  local LFloorPNGPath = getBackdropPNGPath(nil, customStage, BackdropKind.L_FLOOR, rng)
110
110
  sprite:ReplaceSpritesheet(layerID, LFloorPNGPath)
@@ -48,34 +48,41 @@ export declare function getAllRoomGridIndexes(): readonly int[];
48
48
  *
49
49
  * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
50
50
  * `RNG.Next` method will be called. Default is `getRandomSeed()`.
51
+ * @param ensureDeadEnd Optional. Whether to pick a valid dead end attached to a normal room. If
52
+ * false, the function will randomly pick from any valid location that would
53
+ * have a red door.
51
54
  * @returns Either a tuple of adjacent room grid index, `DoorSlot`, and new room grid index, or
52
55
  * undefined.
53
56
  */
54
- export declare function getNewRoomCandidate(seedOrRNG?: Seed | RNG): {
57
+ export declare function getNewRoomCandidate(seedOrRNG?: Seed | RNG, ensureDeadEnd?: boolean): {
55
58
  readonly adjacentRoomGridIndex: int;
56
59
  readonly doorSlot: DoorSlot;
57
60
  readonly newRoomGridIndex: int;
58
61
  } | undefined;
59
62
  /**
60
63
  * Helper function to iterate through the possible doors for a room and see if any of them would be
61
- * a valid spot to insert a brand new room on the floor. (Any potential new rooms cannot be
62
- * connected to any other existing rooms on the floor.)
64
+ * a valid spot to insert a brand new room on the floor.
63
65
  *
64
66
  * @param roomGridIndex Optional. Default is the current room index.
67
+ * @param ensureDeadEnd Optional. Whether to only include doors that lead to a valid dead end
68
+ * attached to a normal room. If false, the function will include all doors
69
+ * that would have a red door.
65
70
  * @returns A array of tuples of `DoorSlot` and room grid index.
66
71
  */
67
- export declare function getNewRoomCandidatesBesideRoom(roomGridIndex?: int): ReadonlyArray<{
72
+ export declare function getNewRoomCandidatesBesideRoom(roomGridIndex?: int, ensureDeadEnd?: boolean): ReadonlyArray<{
68
73
  readonly doorSlot: DoorSlot;
69
74
  readonly roomGridIndex: int;
70
75
  }>;
71
76
  /**
72
- * Helper function to search through all of the rooms on the floor for a spot to insert a brand new
73
- * room.
77
+ * Helper function to get all of the spots on the floor to insert a brand new room.
74
78
  *
79
+ * @param ensureDeadEnd Optional. Whether to only include spots that are a valid dead end attached
80
+ * to a normal room. If false, the function will include all valid spots that
81
+ * have a red door.
75
82
  * @returns A array of tuples containing the adjacent room grid index, the `DoorSlot`, and the new
76
83
  * room grid index.
77
84
  */
78
- export declare function getNewRoomCandidatesForLevel(): ReadonlyArray<{
85
+ export declare function getNewRoomCandidatesForLevel(ensureDeadEnd?: boolean): ReadonlyArray<{
79
86
  readonly adjacentRoomGridIndex: int;
80
87
  readonly doorSlot: DoorSlot;
81
88
  readonly newRoomGridIndex: int;
@@ -177,23 +184,25 @@ export declare function isRedKeyRoom(roomGridIndex?: int): boolean;
177
184
  */
178
185
  export declare function isRoomInsideGrid(roomGridIndex?: int): boolean;
179
186
  /**
180
- * Helper function to generate a new room on the floor at a valid dead end attached to a normal
181
- * room.
187
+ * Helper function to generate a new room on the floor.
182
188
  *
183
189
  * Under the hood, this function uses the `Level.MakeRedRoomDoor` method to create the room.
184
190
  *
185
- * The newly created room will have data corresponding to the game's randomly generated red room. If
186
- * you want to modify this, use the `setRoomData` helper function.
187
- *
188
191
  * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
189
192
  * `RNG.Next` method will be called. Default is `Level.GetDungeonPlacementSeed`.
190
193
  * Note that the RNG is only used to select the random location to put the room on
191
194
  * the floor; it does not influence the randomly chosen room contents. (That is
192
195
  * performed by the game and can not be manipulated prior to its generation.)
196
+ * @param ensureDeadEnd Optional. Whether to place the room at a valid dead end attached to a normal
197
+ * room. If false, it will randomly appear at any valid location that would
198
+ * have a red door.
199
+ * @param customRoomData Optional. By default, the newly created room will have data corresponding
200
+ * to the game's randomly generated red room. If you provide this function
201
+ * with room data, it will be used to override the vanilla data.
193
202
  * @returns The room grid index of the new room or undefined if the floor had no valid dead ends to
194
203
  * place a room.
195
204
  */
196
- export declare function newRoom(seedOrRNG?: Seed | RNG): int | undefined;
205
+ export declare function newRoom(seedOrRNG?: Seed | RNG, ensureDeadEnd?: boolean, customRoomData?: RoomConfig): int | undefined;
197
206
  /**
198
207
  * Helper function to check if a room exists at the given room grid index. (A room will exist if it
199
208
  * has non-undefined data in the room descriptor.)
@@ -1 +1 @@
1
- {"version":3,"file":"levelGrid.d.ts","sourceRoot":"","sources":["../../../src/functions/levelGrid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"levelGrid.d.ts","sourceRoot":"","sources":["../../../src/functions/levelGrid.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAIL,QAAQ,EACT,MAAM,8BAA8B,CAAC;AAoCtC;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,aAAa,CAAC,EAAE,GAAG,GAClB,SAAS,GAAG,EAAE,CAKhB;AAED;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CACnD,aAAa,CAAC,EAAE,GAAG,GAClB,SAAS,GAAG,EAAE,CAKhB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,GAAG,GAClB,SAAS,GAAG,EAAE,CAchB;AAED,0FAA0F;AAC1F,wBAAgB,qBAAqB,IAAI,SAAS,GAAG,EAAE,CAGtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,aAAa,UAAO,GAElB;IACE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;CAChC,GACD,SAAS,CAOZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,CAAC,EAAE,GAAG,EACnB,aAAa,UAAO,GACnB,aAAa,CAAC;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAA;CAAE,CAAC,CAiD7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,UAAO,GACnB,aAAa,CAAC;IACf,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;CAChC,CAAC,CAoCD;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,GAAG,GAClB,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAgB5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,SAAS,EAAE,QAAQ,EAAE,GACvB,cAAc,EAAE,CASlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,SAAS,EAAE,QAAQ,EAAE,GACvB,SAAS,GAAG,EAAE,CAGhB;AAED;;;;;;GAMG;AACH,wBAAgB,uCAAuC,CACrD,iBAAiB,EAAE,GAAG,EACtB,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAa5B;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAE5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,iBAAiB,EAAE,GAAG,EACtB,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAa5B;AAED;;;;;;GAMG;AACH,wBAAgB,0CAA0C,CACxD,iBAAiB,EAAE,GAAG,EACtB,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAa5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,OAAO,CAKtD;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,GAAG,GACjB,OAAO,CAGT;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,GAAG,GACjB,OAAO,CAqBT;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,OAAO,CAGzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,OAAO,CAM7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,OAAO,CACrB,SAAS,CAAC,EAAE,IAAI,GAAG,GAAG,EACtB,aAAa,UAAO,EACpB,cAAc,CAAC,EAAE,UAAU,GAC1B,GAAG,GAAG,SAAS,CAuDjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAGtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAE7D"}