isaacscript-common 51.8.0 → 51.9.1

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.
@@ -5246,8 +5246,9 @@ export declare function getCollectibleName(collectibleOrCollectibleType: EntityP
5246
5246
  export declare function getCollectiblePedestalType(collectible: EntityPickup): CollectiblePedestalType;
5247
5247
 
5248
5248
  /**
5249
- * Helper function to get a collectible's quality. For example, Mom's Knife has a quality of 4.
5250
- * Returns 0 if the provided collectible type was not valid.
5249
+ * Helper function to get a collectible's quality, which ranges from 0 to 4 (inclusive). For
5250
+ * example, Mom's Knife has a quality of 4. Returns 0 if the provided collectible type was not
5251
+ * valid.
5251
5252
  */
5252
5253
  export declare function getCollectibleQuality(collectibleOrCollectibleType: EntityPickup | CollectibleType): int;
5253
5254
 
@@ -16735,6 +16736,15 @@ export declare function setFloorDisplayFlags(displayFlagsMap: Map<int, BitFlags<
16735
16736
  */
16736
16737
  export declare function setGridEntityInvisible(gridEntity: GridEntity): void;
16737
16738
 
16739
+ /**
16740
+ * Helper function to change the type of a grid entity to another type. Use this instead of the
16741
+ * `GridEntity.SetType` method since that does not properly handle updating the sprite of the grid
16742
+ * entity after the type is changed.
16743
+ *
16744
+ * Setting the new type to `GridEntityType.NULL` (0) will have no effect.
16745
+ */
16746
+ export declare function setGridEntityType(gridEntity: GridEntity, gridEntityType: GridEntityType): void;
16747
+
16738
16748
  /**
16739
16749
  * Helper function to check for one or more elements in a set at once without having to repeatedly
16740
16750
  * call the `Set.has` method.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 51.8.0
3
+ isaacscript-common 51.9.1
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -26953,6 +26953,42 @@ ____exports.ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP = __TS__New(ReadonlyMap,
26953
26953
  {RoomShape.IIH, 56},
26954
26954
  {RoomShape.LTL, 13}
26955
26955
  })
26956
+ return ____exports
26957
+ end,
26958
+ ["src.objects.gridEntityTypeToANM2Path"] = function(...)
26959
+ local ____exports = {}
26960
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
26961
+ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
26962
+ ____exports.GRID_ENTITY_TYPE_TO_ANM2_PATH = {
26963
+ [GridEntityType.NULL] = nil,
26964
+ [GridEntityType.DECORATION] = "gfx/grid/Props_01_Basement.anm2",
26965
+ [GridEntityType.ROCK] = "gfx/grid/grid_rock.anm2",
26966
+ [GridEntityType.BLOCK] = "gfx/grid/grid_rock.anm2",
26967
+ [GridEntityType.ROCK_TINTED] = "gfx/grid/grid_rock.anm2",
26968
+ [GridEntityType.ROCK_BOMB] = "gfx/grid/grid_rock.anm2",
26969
+ [GridEntityType.ROCK_ALT] = "gfx/grid/grid_rock.anm2",
26970
+ [GridEntityType.PIT] = "gfx/grid/grid_pit.anm2",
26971
+ [GridEntityType.SPIKES] = "gfx/grid/grid_spikes.anm2",
26972
+ [GridEntityType.SPIKES_ON_OFF] = "gfx/grid/grid_spikes.anm2",
26973
+ [GridEntityType.SPIDER_WEB] = "gfx/grid/grid_web.anm2",
26974
+ [GridEntityType.LOCK] = "gfx/grid/grid_locks.anm2",
26975
+ [GridEntityType.TNT] = "gfx/grid/grid_tnt.anm2",
26976
+ [GridEntityType.FIREPLACE] = "gfx/grid/grid_fireplace.anm2",
26977
+ [GridEntityType.POOP] = "gfx/grid/grid_poop.anm2",
26978
+ [GridEntityType.WALL] = nil,
26979
+ [GridEntityType.DOOR] = nil,
26980
+ [GridEntityType.TRAPDOOR] = "gfx/grid/Door_11_TrapDoor.anm2",
26981
+ [GridEntityType.CRAWL_SPACE] = "gfx/grid/door_20_secrettrapdoor.anm2",
26982
+ [GridEntityType.GRAVITY] = nil,
26983
+ [GridEntityType.PRESSURE_PLATE] = "gfx/grid/grid_pressureplate.anm2",
26984
+ [GridEntityType.STATUE] = nil,
26985
+ [GridEntityType.ROCK_SUPER_SPECIAL] = "gfx/grid/grid_rock.anm2",
26986
+ [GridEntityType.TELEPORTER] = "gfx/grid/grid_teleporter.anm2",
26987
+ [GridEntityType.PILLAR] = "gfx/grid/grid_rock.anm2",
26988
+ [GridEntityType.ROCK_SPIKED] = "gfx/grid/grid_rock.anm2",
26989
+ [GridEntityType.ROCK_ALT_2] = "gfx/grid/grid_rock.anm2",
26990
+ [GridEntityType.ROCK_GOLD] = "gfx/grid/grid_rock.anm2"
26991
+ }
26956
26992
  return ____exports
26957
26993
  end,
26958
26994
  ["src.sets.poopGridEntityXMLTypesSet"] = function(...)
@@ -28316,6 +28352,8 @@ local GRID_ENTITY_XML_MAP = ____gridEntityXMLMap.GRID_ENTITY_XML_MAP
28316
28352
  local ____roomShapeToTopLeftWallGridIndexMap = require("src.maps.roomShapeToTopLeftWallGridIndexMap")
28317
28353
  local DEFAULT_TOP_LEFT_WALL_GRID_INDEX = ____roomShapeToTopLeftWallGridIndexMap.DEFAULT_TOP_LEFT_WALL_GRID_INDEX
28318
28354
  local ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP = ____roomShapeToTopLeftWallGridIndexMap.ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP
28355
+ local ____gridEntityTypeToANM2Path = require("src.objects.gridEntityTypeToANM2Path")
28356
+ local GRID_ENTITY_TYPE_TO_ANM2_PATH = ____gridEntityTypeToANM2Path.GRID_ENTITY_TYPE_TO_ANM2_PATH
28319
28357
  local ____poopGridEntityXMLTypesSet = require("src.sets.poopGridEntityXMLTypesSet")
28320
28358
  local POOP_GRID_ENTITY_XML_TYPES_SET = ____poopGridEntityXMLTypesSet.POOP_GRID_ENTITY_XML_TYPES_SET
28321
28359
  local ____ReadonlySet = require("src.types.ReadonlySet")
@@ -28704,6 +28742,16 @@ function ____exports.setGridEntityInvisible(self, gridEntity)
28704
28742
  local sprite = gridEntity:GetSprite()
28705
28743
  sprite:Reset()
28706
28744
  end
28745
+ function ____exports.setGridEntityType(self, gridEntity, gridEntityType)
28746
+ gridEntity:SetType(gridEntityType)
28747
+ local sprite = gridEntity:GetSprite()
28748
+ local anm2Path = GRID_ENTITY_TYPE_TO_ANM2_PATH[gridEntityType]
28749
+ if anm2Path ~= nil then
28750
+ sprite:Load(anm2Path, true)
28751
+ local defaultAnimation = sprite:GetDefaultAnimation()
28752
+ sprite:Play(defaultAnimation, true)
28753
+ end
28754
+ end
28707
28755
  function ____exports.spawnGiantPoop(self, topLeftGridIndex)
28708
28756
  local room = game:GetRoom()
28709
28757
  local gridWidth = room:GetGridWidth()
@@ -68,8 +68,9 @@ export declare function getCollectibleName(collectibleOrCollectibleType: EntityP
68
68
  */
69
69
  export declare function getCollectiblePedestalType(collectible: EntityPickup): CollectiblePedestalType;
70
70
  /**
71
- * Helper function to get a collectible's quality. For example, Mom's Knife has a quality of 4.
72
- * Returns 0 if the provided collectible type was not valid.
71
+ * Helper function to get a collectible's quality, which ranges from 0 to 4 (inclusive). For
72
+ * example, Mom's Knife has a quality of 4. Returns 0 if the provided collectible type was not
73
+ * valid.
73
74
  */
74
75
  export declare function getCollectibleQuality(collectibleOrCollectibleType: EntityPickup | CollectibleType): int;
75
76
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"collectibles.d.ts","sourceRoot":"","sources":["../../../src/functions/collectibles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collectibles.d.ts","sourceRoot":"","sources":["../../../src/functions/collectibles.ts"],"names":[],"mappings":"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"}
@@ -290,8 +290,9 @@ function ____exports.getCollectiblePedestalType(self, collectible)
290
290
  local sprite = collectible:GetSprite()
291
291
  return sprite:GetOverlayFrame()
292
292
  end
293
- --- Helper function to get a collectible's quality. For example, Mom's Knife has a quality of 4.
294
- -- Returns 0 if the provided collectible type was not valid.
293
+ --- Helper function to get a collectible's quality, which ranges from 0 to 4 (inclusive). For
294
+ -- example, Mom's Knife has a quality of 4. Returns 0 if the provided collectible type was not
295
+ -- valid.
295
296
  function ____exports.getCollectibleQuality(self, collectibleOrCollectibleType)
296
297
  local collectibleType = getCollectibleTypeFromArg(nil, collectibleOrCollectibleType, "getCollectibleQuality")
297
298
  local itemConfigItem = itemConfig:GetCollectible(collectibleType)
@@ -234,6 +234,14 @@ export declare function removeGridEntity(gridEntityOrGridIndex: GridEntity | int
234
234
  * reset.)
235
235
  */
236
236
  export declare function setGridEntityInvisible(gridEntity: GridEntity): void;
237
+ /**
238
+ * Helper function to change the type of a grid entity to another type. Use this instead of the
239
+ * `GridEntity.SetType` method since that does not properly handle updating the sprite of the grid
240
+ * entity after the type is changed.
241
+ *
242
+ * Setting the new type to `GridEntityType.NULL` (0) will have no effect.
243
+ */
244
+ export declare function setGridEntityType(gridEntity: GridEntity, gridEntityType: GridEntityType): void;
237
245
  /**
238
246
  * Helper function to spawn a giant poop. This is performed by spawning each of the four quadrant
239
247
  * grid entities in the appropriate positions.
@@ -1 +1 @@
1
- {"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/gridEntities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/gridEntities.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ local GRID_ENTITY_XML_MAP = ____gridEntityXMLMap.GRID_ENTITY_XML_MAP
28
28
  local ____roomShapeToTopLeftWallGridIndexMap = require("src.maps.roomShapeToTopLeftWallGridIndexMap")
29
29
  local DEFAULT_TOP_LEFT_WALL_GRID_INDEX = ____roomShapeToTopLeftWallGridIndexMap.DEFAULT_TOP_LEFT_WALL_GRID_INDEX
30
30
  local ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP = ____roomShapeToTopLeftWallGridIndexMap.ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP
31
+ local ____gridEntityTypeToANM2Path = require("src.objects.gridEntityTypeToANM2Path")
32
+ local GRID_ENTITY_TYPE_TO_ANM2_PATH = ____gridEntityTypeToANM2Path.GRID_ENTITY_TYPE_TO_ANM2_PATH
31
33
  local ____poopGridEntityXMLTypesSet = require("src.sets.poopGridEntityXMLTypesSet")
32
34
  local POOP_GRID_ENTITY_XML_TYPES_SET = ____poopGridEntityXMLTypesSet.POOP_GRID_ENTITY_XML_TYPES_SET
33
35
  local ____ReadonlySet = require("src.types.ReadonlySet")
@@ -582,6 +584,21 @@ function ____exports.setGridEntityInvisible(self, gridEntity)
582
584
  local sprite = gridEntity:GetSprite()
583
585
  sprite:Reset()
584
586
  end
587
+ --- Helper function to change the type of a grid entity to another type. Use this instead of the
588
+ -- `GridEntity.SetType` method since that does not properly handle updating the sprite of the grid
589
+ -- entity after the type is changed.
590
+ --
591
+ -- Setting the new type to `GridEntityType.NULL` (0) will have no effect.
592
+ function ____exports.setGridEntityType(self, gridEntity, gridEntityType)
593
+ gridEntity:SetType(gridEntityType)
594
+ local sprite = gridEntity:GetSprite()
595
+ local anm2Path = GRID_ENTITY_TYPE_TO_ANM2_PATH[gridEntityType]
596
+ if anm2Path ~= nil then
597
+ sprite:Load(anm2Path, true)
598
+ local defaultAnimation = sprite:GetDefaultAnimation()
599
+ sprite:Play(defaultAnimation, true)
600
+ end
601
+ end
585
602
  --- Helper function to spawn a giant poop. This is performed by spawning each of the four quadrant
586
603
  -- grid entities in the appropriate positions.
587
604
  --
@@ -0,0 +1,31 @@
1
+ export declare const GRID_ENTITY_TYPE_TO_ANM2_PATH: {
2
+ readonly 0: undefined;
3
+ readonly 1: "gfx/grid/Props_01_Basement.anm2";
4
+ readonly 2: "gfx/grid/grid_rock.anm2";
5
+ readonly 3: "gfx/grid/grid_rock.anm2";
6
+ readonly 4: "gfx/grid/grid_rock.anm2";
7
+ readonly 5: "gfx/grid/grid_rock.anm2";
8
+ readonly 6: "gfx/grid/grid_rock.anm2";
9
+ readonly 7: "gfx/grid/grid_pit.anm2";
10
+ readonly 8: "gfx/grid/grid_spikes.anm2";
11
+ readonly 9: "gfx/grid/grid_spikes.anm2";
12
+ readonly 10: "gfx/grid/grid_web.anm2";
13
+ readonly 11: "gfx/grid/grid_locks.anm2";
14
+ readonly 12: "gfx/grid/grid_tnt.anm2";
15
+ readonly 13: "gfx/grid/grid_fireplace.anm2";
16
+ readonly 14: "gfx/grid/grid_poop.anm2";
17
+ readonly 15: undefined;
18
+ readonly 16: undefined;
19
+ readonly 17: "gfx/grid/Door_11_TrapDoor.anm2";
20
+ readonly 18: "gfx/grid/door_20_secrettrapdoor.anm2";
21
+ readonly 19: undefined;
22
+ readonly 20: "gfx/grid/grid_pressureplate.anm2";
23
+ readonly 21: undefined;
24
+ readonly 22: "gfx/grid/grid_rock.anm2";
25
+ readonly 23: "gfx/grid/grid_teleporter.anm2";
26
+ readonly 24: "gfx/grid/grid_rock.anm2";
27
+ readonly 25: "gfx/grid/grid_rock.anm2";
28
+ readonly 26: "gfx/grid/grid_rock.anm2";
29
+ readonly 27: "gfx/grid/grid_rock.anm2";
30
+ };
31
+ //# sourceMappingURL=gridEntityTypeToANM2Path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gridEntityTypeToANM2Path.d.ts","sourceRoot":"","sources":["../../../src/objects/gridEntityTypeToANM2Path.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CqB,CAAC"}
@@ -0,0 +1,34 @@
1
+ local ____exports = {}
2
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
+ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
4
+ ____exports.GRID_ENTITY_TYPE_TO_ANM2_PATH = {
5
+ [GridEntityType.NULL] = nil,
6
+ [GridEntityType.DECORATION] = "gfx/grid/Props_01_Basement.anm2",
7
+ [GridEntityType.ROCK] = "gfx/grid/grid_rock.anm2",
8
+ [GridEntityType.BLOCK] = "gfx/grid/grid_rock.anm2",
9
+ [GridEntityType.ROCK_TINTED] = "gfx/grid/grid_rock.anm2",
10
+ [GridEntityType.ROCK_BOMB] = "gfx/grid/grid_rock.anm2",
11
+ [GridEntityType.ROCK_ALT] = "gfx/grid/grid_rock.anm2",
12
+ [GridEntityType.PIT] = "gfx/grid/grid_pit.anm2",
13
+ [GridEntityType.SPIKES] = "gfx/grid/grid_spikes.anm2",
14
+ [GridEntityType.SPIKES_ON_OFF] = "gfx/grid/grid_spikes.anm2",
15
+ [GridEntityType.SPIDER_WEB] = "gfx/grid/grid_web.anm2",
16
+ [GridEntityType.LOCK] = "gfx/grid/grid_locks.anm2",
17
+ [GridEntityType.TNT] = "gfx/grid/grid_tnt.anm2",
18
+ [GridEntityType.FIREPLACE] = "gfx/grid/grid_fireplace.anm2",
19
+ [GridEntityType.POOP] = "gfx/grid/grid_poop.anm2",
20
+ [GridEntityType.WALL] = nil,
21
+ [GridEntityType.DOOR] = nil,
22
+ [GridEntityType.TRAPDOOR] = "gfx/grid/Door_11_TrapDoor.anm2",
23
+ [GridEntityType.CRAWL_SPACE] = "gfx/grid/door_20_secrettrapdoor.anm2",
24
+ [GridEntityType.GRAVITY] = nil,
25
+ [GridEntityType.PRESSURE_PLATE] = "gfx/grid/grid_pressureplate.anm2",
26
+ [GridEntityType.STATUE] = nil,
27
+ [GridEntityType.ROCK_SUPER_SPECIAL] = "gfx/grid/grid_rock.anm2",
28
+ [GridEntityType.TELEPORTER] = "gfx/grid/grid_teleporter.anm2",
29
+ [GridEntityType.PILLAR] = "gfx/grid/grid_rock.anm2",
30
+ [GridEntityType.ROCK_SPIKED] = "gfx/grid/grid_rock.anm2",
31
+ [GridEntityType.ROCK_ALT_2] = "gfx/grid/grid_rock.anm2",
32
+ [GridEntityType.ROCK_GOLD] = "gfx/grid/grid_rock.anm2"
33
+ }
34
+ return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "51.8.0",
3
+ "version": "51.9.1",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -25,6 +25,6 @@
25
25
  "main": "dist/src/index",
26
26
  "types": "dist/index.rollup.d.ts",
27
27
  "dependencies": {
28
- "isaac-typescript-definitions": "^21.0.2"
28
+ "isaac-typescript-definitions": "^21.0.3"
29
29
  }
30
30
  }
@@ -360,8 +360,9 @@ export function getCollectiblePedestalType(
360
360
  }
361
361
 
362
362
  /**
363
- * Helper function to get a collectible's quality. For example, Mom's Knife has a quality of 4.
364
- * Returns 0 if the provided collectible type was not valid.
363
+ * Helper function to get a collectible's quality, which ranges from 0 to 4 (inclusive). For
364
+ * example, Mom's Knife has a quality of 4. Returns 0 if the provided collectible type was not
365
+ * valid.
365
366
  */
366
367
  export function getCollectibleQuality(
367
368
  collectibleOrCollectibleType: EntityPickup | CollectibleType,
@@ -16,6 +16,7 @@ import {
16
16
  DEFAULT_TOP_LEFT_WALL_GRID_INDEX,
17
17
  ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP,
18
18
  } from "../maps/roomShapeToTopLeftWallGridIndexMap";
19
+ import { GRID_ENTITY_TYPE_TO_ANM2_PATH } from "../objects/gridEntityTypeToANM2Path";
19
20
  import { POOP_GRID_ENTITY_XML_TYPES_SET } from "../sets/poopGridEntityXMLTypesSet";
20
21
  import type { AnyGridEntity } from "../types/AnyGridEntity";
21
22
  import type { GridEntityID } from "../types/GridEntityID";
@@ -230,20 +231,6 @@ export function getGridEntities(
230
231
  });
231
232
  }
232
233
 
233
- function getAllGridEntities(): GridEntity[] {
234
- const room = game.GetRoom();
235
-
236
- const gridEntities: GridEntity[] = [];
237
- for (const gridIndex of getAllGridIndexes()) {
238
- const gridEntity = room.GetGridEntity(gridIndex);
239
- if (gridEntity !== undefined) {
240
- gridEntities.push(gridEntity);
241
- }
242
- }
243
-
244
- return gridEntities;
245
- }
246
-
247
234
  /**
248
235
  * Helper function to get every grid entity in the current room except for certain specific types.
249
236
  *
@@ -266,6 +253,20 @@ export function getGridEntitiesExcept(
266
253
  });
267
254
  }
268
255
 
256
+ function getAllGridEntities(): GridEntity[] {
257
+ const room = game.GetRoom();
258
+
259
+ const gridEntities: GridEntity[] = [];
260
+ for (const gridIndex of getAllGridIndexes()) {
261
+ const gridEntity = room.GetGridEntity(gridIndex);
262
+ if (gridEntity !== undefined) {
263
+ gridEntities.push(gridEntity);
264
+ }
265
+ }
266
+
267
+ return gridEntities;
268
+ }
269
+
269
270
  /** Helper function to get all grid entities in a given radius around a given point. */
270
271
  export function getGridEntitiesInRadius(
271
272
  targetPosition: Vector,
@@ -716,6 +717,28 @@ export function setGridEntityInvisible(gridEntity: GridEntity): void {
716
717
  sprite.Reset();
717
718
  }
718
719
 
720
+ /**
721
+ * Helper function to change the type of a grid entity to another type. Use this instead of the
722
+ * `GridEntity.SetType` method since that does not properly handle updating the sprite of the grid
723
+ * entity after the type is changed.
724
+ *
725
+ * Setting the new type to `GridEntityType.NULL` (0) will have no effect.
726
+ */
727
+ export function setGridEntityType(
728
+ gridEntity: GridEntity,
729
+ gridEntityType: GridEntityType,
730
+ ): void {
731
+ gridEntity.SetType(gridEntityType);
732
+
733
+ const sprite = gridEntity.GetSprite();
734
+ const anm2Path = GRID_ENTITY_TYPE_TO_ANM2_PATH[gridEntityType];
735
+ if (anm2Path !== undefined) {
736
+ sprite.Load(anm2Path, true);
737
+ const defaultAnimation = sprite.GetDefaultAnimation();
738
+ sprite.Play(defaultAnimation, true);
739
+ }
740
+ }
741
+
719
742
  /**
720
743
  * Helper function to spawn a giant poop. This is performed by spawning each of the four quadrant
721
744
  * grid entities in the appropriate positions.
@@ -0,0 +1,49 @@
1
+ import { GridEntityType } from "isaac-typescript-definitions";
2
+
3
+ // cspell:disable
4
+
5
+ export const GRID_ENTITY_TYPE_TO_ANM2_PATH = {
6
+ [GridEntityType.NULL]: undefined, // 0
7
+ [GridEntityType.DECORATION]: "gfx/grid/Props_01_Basement.anm2", // 1
8
+ // Also there is:
9
+ // - props_03_caves.anm2
10
+ // - props_05_depths.anm2
11
+ // - props_07_the womb.anm2
12
+ // - props_07_utero.anm2
13
+ // - props_07_the womb_blue.anm2
14
+ // - props_09_sheol.anm2
15
+ // - props_10_cathedral.anm2
16
+ // - props_11_the chest.anm2
17
+ // - props_12_greed.anm2
18
+ // - props_01x_downpour.anm2
19
+ // - props_02x_dross.anm2
20
+ // - props_03x_mines.anm2
21
+ // - props_07_the corpse.anm2
22
+ // - props_0ex_isaacs_bedroom.anm2
23
+ [GridEntityType.ROCK]: "gfx/grid/grid_rock.anm2", // 2
24
+ [GridEntityType.BLOCK]: "gfx/grid/grid_rock.anm2", // 3
25
+ [GridEntityType.ROCK_TINTED]: "gfx/grid/grid_rock.anm2", // 4
26
+ [GridEntityType.ROCK_BOMB]: "gfx/grid/grid_rock.anm2", // 5
27
+ [GridEntityType.ROCK_ALT]: "gfx/grid/grid_rock.anm2", // 6
28
+ [GridEntityType.PIT]: "gfx/grid/grid_pit.anm2", // 7
29
+ [GridEntityType.SPIKES]: "gfx/grid/grid_spikes.anm2", // 8
30
+ [GridEntityType.SPIKES_ON_OFF]: "gfx/grid/grid_spikes.anm2", // 9
31
+ [GridEntityType.SPIDER_WEB]: "gfx/grid/grid_web.anm2", // 10
32
+ [GridEntityType.LOCK]: "gfx/grid/grid_locks.anm2", // 11
33
+ [GridEntityType.TNT]: "gfx/grid/grid_tnt.anm2", // 12
34
+ [GridEntityType.FIREPLACE]: "gfx/grid/grid_fireplace.anm2", // 13
35
+ [GridEntityType.POOP]: "gfx/grid/grid_poop.anm2", // 14
36
+ [GridEntityType.WALL]: undefined, // 15
37
+ [GridEntityType.DOOR]: undefined, // 16
38
+ [GridEntityType.TRAPDOOR]: "gfx/grid/Door_11_TrapDoor.anm2", // 17
39
+ [GridEntityType.CRAWL_SPACE]: "gfx/grid/door_20_secrettrapdoor.anm2", // 18
40
+ [GridEntityType.GRAVITY]: undefined, // 19
41
+ [GridEntityType.PRESSURE_PLATE]: "gfx/grid/grid_pressureplate.anm2", // 20
42
+ [GridEntityType.STATUE]: undefined, // 21
43
+ [GridEntityType.ROCK_SUPER_SPECIAL]: "gfx/grid/grid_rock.anm2", // 22
44
+ [GridEntityType.TELEPORTER]: "gfx/grid/grid_teleporter.anm2", // 23
45
+ [GridEntityType.PILLAR]: "gfx/grid/grid_rock.anm2", // 24
46
+ [GridEntityType.ROCK_SPIKED]: "gfx/grid/grid_rock.anm2", // 25
47
+ [GridEntityType.ROCK_ALT_2]: "gfx/grid/grid_rock.anm2", // 26
48
+ [GridEntityType.ROCK_GOLD]: "gfx/grid/grid_rock.anm2", // 27
49
+ } as const satisfies Record<GridEntityType, string | undefined>;