isaacscript-common 1.2.22 → 1.2.23

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
  /// <reference types="isaac-typescript-definitions" />
2
2
  /**
3
3
  * Returns a set containing every collectible type with the given cache flag, including modded
4
- * items.
4
+ * collectibles.
5
5
  */
6
6
  export declare function getCollectiblesForCacheFlag(cacheFlag: CacheFlag): Set<CollectibleType | int>;
@@ -0,0 +1,18 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ /**
3
+ * Returns a set of all of the collectibles that grant flight. This is derived from collectibles
4
+ * that have `CacheFlag.CACHE_FLYING` set in the "items.xml" file.
5
+ *
6
+ * Collectibles that only grant flight conditionally are manually pruned. Collectibles such as Empty
7
+ * Vessel should be checked for via the `hasFlyingTemporaryEffect` function.
8
+ *
9
+ * @param pruneConditionalItems Whether or not collectibles that only grant flight conditionally
10
+ * should be included in the set (like Empty Vessel).
11
+ */
12
+ export declare function getFlyingCollectibles(pruneConditionalItems: boolean): Set<CollectibleType | int>;
13
+ /**
14
+ * Returns a set of all of the trinkets that grant flight. (All trinkets that grant flight do so
15
+ * conditionally, like Bat Wing.)
16
+ */
17
+ export declare function getFlyingTrinkets(): Set<CollectibleType | int>;
18
+ export declare function hasFlyingTemporaryEffect(player: EntityPlayer): boolean;
@@ -0,0 +1,44 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____lualib = require("lualib_bundle")
3
+ local Set = ____lualib.Set
4
+ local __TS__New = ____lualib.__TS__New
5
+ local __TS__Iterator = ____lualib.__TS__Iterator
6
+ local ____exports = {}
7
+ local ____collectibleCacheFlag = require("functions.collectibleCacheFlag")
8
+ local getCollectiblesForCacheFlag = ____collectibleCacheFlag.getCollectiblesForCacheFlag
9
+ local ____set = require("functions.set")
10
+ local copySet = ____set.copySet
11
+ local deleteSetsFromSet = ____set.deleteSetsFromSet
12
+ local FLYING_TRINKETS = __TS__New(Set, {TrinketType.TRINKET_BAT_WING, TrinketType.TRINKET_AZAZELS_STUMP})
13
+ function ____exports.getFlyingCollectibles(self, pruneConditionalItems)
14
+ local collectiblesWithFlyingCacheFlag = getCollectiblesForCacheFlag(nil, CacheFlag.CACHE_FLYING)
15
+ local collectiblesWithAllCacheFlag = getCollectiblesForCacheFlag(nil, CacheFlag.CACHE_ALL)
16
+ deleteSetsFromSet(nil, collectiblesWithFlyingCacheFlag, collectiblesWithAllCacheFlag)
17
+ if pruneConditionalItems then
18
+ collectiblesWithFlyingCacheFlag:delete(CollectibleType.COLLECTIBLE_BIBLE)
19
+ collectiblesWithFlyingCacheFlag:delete(CollectibleType.COLLECTIBLE_EMPTY_VESSEL)
20
+ collectiblesWithFlyingCacheFlag:delete(CollectibleType.COLLECTIBLE_ASTRAL_PROJECTION)
21
+ collectiblesWithFlyingCacheFlag:delete(CollectibleType.COLLECTIBLE_RECALL)
22
+ end
23
+ return collectiblesWithFlyingCacheFlag
24
+ end
25
+ function ____exports.getFlyingTrinkets(self)
26
+ return copySet(nil, FLYING_TRINKETS)
27
+ end
28
+ function ____exports.hasFlyingTemporaryEffect(self, player)
29
+ local effects = player:GetEffects()
30
+ local flyingCollectibles = ____exports.getFlyingCollectibles(nil, false)
31
+ for ____, collectibleType in __TS__Iterator(flyingCollectibles:values()) do
32
+ if effects:HasCollectibleEffect(collectibleType) then
33
+ return true
34
+ end
35
+ end
36
+ local flyingTrinkets = ____exports.getFlyingTrinkets(nil)
37
+ for ____, trinketType in __TS__Iterator(flyingTrinkets:values()) do
38
+ if effects:HasTrinketEffect(trinketType) then
39
+ return true
40
+ end
41
+ end
42
+ return false
43
+ end
44
+ return ____exports
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Helper function to add all of the contents of one set to another set. The first set passed will
3
- * be modified in place.
2
+ * Helper function to add all of the values in one set to another set. The first set passed will be
3
+ * modified in place.
4
4
  *
5
5
  * This function is variadic, meaning that you can specify N sets to add to the first set.
6
6
  */
@@ -13,3 +13,10 @@ export declare function copySet<T>(oldSet: Set<T>): Set<T>;
13
13
  * This function is variadic, meaning that you can specify N sets.
14
14
  */
15
15
  export declare function combineSets<T>(...sets: Array<Set<T>>): Set<T>;
16
+ /**
17
+ * Helper function to delete all of the values in one set from another set. The first set passed
18
+ * will be modified in place.
19
+ *
20
+ * This function is variadic, meaning that you can specify N sets to remove from the first set.
21
+ */
22
+ export declare function deleteSetsFromSet<T>(mainSet: Set<T>, ...setsToRemove: Array<Set<T>>): void;
@@ -29,4 +29,12 @@ function ____exports.combineSets(self, ...)
29
29
  end
30
30
  return newSet
31
31
  end
32
+ function ____exports.deleteSetsFromSet(self, mainSet, ...)
33
+ local setsToRemove = {...}
34
+ for ____, set in ipairs(setsToRemove) do
35
+ for ____, value in __TS__Iterator(set:values()) do
36
+ mainSet:delete(value)
37
+ end
38
+ end
39
+ end
32
40
  return ____exports
@@ -11,5 +11,7 @@ export declare function getPlayerNumTransformationCollectibles(player: EntityPla
11
11
  * // transformationName is "Beelzebub"
12
12
  * ```
13
13
  */
14
- export declare function getTransformationName(transformation: PlayerForm): string;
14
+ export declare function getTransformationName(playerForm: PlayerForm): string;
15
15
  export declare function getTransformationsForCollectibleType(collectibleType: CollectibleType | int): Set<PlayerForm>;
16
+ export declare function isTransformationFlying(playerForm: PlayerForm): boolean;
17
+ export declare function playerHasFlyingTransformation(player: EntityPlayer): boolean;
@@ -27,6 +27,7 @@ local TRANSFORMATION_TO_TAG_MAP = __TS__New(Map, {
27
27
  {PlayerForm.PLAYERFORM_SPIDERBABY, 16384}
28
28
  })
29
29
  local TRANSFORMATIONS_NOT_BASED_ON_ITEMS = __TS__New(Set, {PlayerForm.PLAYERFORM_ADULTHOOD, PlayerForm.PLAYERFORM_STOMPY, PlayerForm.PLAYERFORM_FLIGHT})
30
+ local TRANSFORMATIONS_THAT_GRANT_FLYING = __TS__New(Set, {PlayerForm.PLAYERFORM_GUPPY, PlayerForm.PLAYERFORM_LORD_OF_THE_FLIES, PlayerForm.PLAYERFORM_ANGEL, PlayerForm.PLAYERFORM_EVIL_ANGEL})
30
31
  local TRANSFORMATION_TO_COLLECTIBLE_TYPES_MAP = __TS__New(Map)
31
32
  local COLLECTIBLE_TYPE_TO_TRANSFORMATION_MAP = __TS__New(Map)
32
33
  local function initMaps(self)
@@ -89,9 +90,9 @@ function ____exports.getPlayerNumTransformationCollectibles(self, player, player
89
90
  end
90
91
  return numCollectibles
91
92
  end
92
- function ____exports.getTransformationName(self, transformation)
93
+ function ____exports.getTransformationName(self, playerForm)
93
94
  local defaultName = "Unknown"
94
- local transformationName = TRANSFORMATION_NAME_MAP:get(transformation)
95
+ local transformationName = TRANSFORMATION_NAME_MAP:get(playerForm)
95
96
  return transformationName == nil and defaultName or transformationName
96
97
  end
97
98
  function ____exports.getTransformationsForCollectibleType(self, collectibleType)
@@ -101,4 +102,15 @@ function ____exports.getTransformationsForCollectibleType(self, collectibleType)
101
102
  local transformations = COLLECTIBLE_TYPE_TO_TRANSFORMATION_MAP:get(collectibleType)
102
103
  return transformations == nil and __TS__New(Set) or copySet(nil, transformations)
103
104
  end
105
+ function ____exports.isTransformationFlying(self, playerForm)
106
+ return TRANSFORMATIONS_THAT_GRANT_FLYING:has(playerForm)
107
+ end
108
+ function ____exports.playerHasFlyingTransformation(self, player)
109
+ for ____, playerForm in __TS__Iterator(TRANSFORMATIONS_THAT_GRANT_FLYING:values()) do
110
+ if player:HasPlayerForm(playerForm) then
111
+ return true
112
+ end
113
+ end
114
+ return false
115
+ end
104
116
  return ____exports
@@ -0,0 +1,5 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ /**
3
+ * Returns a set containing every trinket type with the given cache flag, including modded trinkets.
4
+ */
5
+ export declare function getTrinketsForCacheFlag(cacheFlag: CacheFlag): Set<TrinketType | int>;
@@ -0,0 +1,41 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____lualib = require("lualib_bundle")
3
+ local Map = ____lualib.Map
4
+ local __TS__New = ____lualib.__TS__New
5
+ local Set = ____lualib.Set
6
+ local ____exports = {}
7
+ local ____set = require("functions.set")
8
+ local copySet = ____set.copySet
9
+ local ____trinkets = require("functions.trinkets")
10
+ local getMaxTrinketID = ____trinkets.getMaxTrinketID
11
+ local trinketHasCacheFlag = ____trinkets.trinketHasCacheFlag
12
+ local ____util = require("functions.util")
13
+ local getEnumValues = ____util.getEnumValues
14
+ local CACHE_FLAG_TO_TRINKETS_MAP = __TS__New(Map)
15
+ local function initCacheFlagMap(self)
16
+ local maxTrinketID = getMaxTrinketID(nil)
17
+ for ____, cacheFlag in ipairs(getEnumValues(nil, CacheFlag)) do
18
+ local trinketsSet = __TS__New(Set)
19
+ do
20
+ local trinketType = 1
21
+ while trinketType <= maxTrinketID do
22
+ if trinketHasCacheFlag(nil, trinketType, cacheFlag) then
23
+ trinketsSet:add(trinketType)
24
+ end
25
+ trinketType = trinketType + 1
26
+ end
27
+ end
28
+ CACHE_FLAG_TO_TRINKETS_MAP:set(cacheFlag, trinketsSet)
29
+ end
30
+ end
31
+ function ____exports.getTrinketsForCacheFlag(self, cacheFlag)
32
+ if CACHE_FLAG_TO_TRINKETS_MAP.size == 0 then
33
+ initCacheFlagMap(nil)
34
+ end
35
+ local trinketsSet = CACHE_FLAG_TO_TRINKETS_MAP:get(cacheFlag)
36
+ if trinketsSet == nil then
37
+ return __TS__New(Set)
38
+ end
39
+ return copySet(nil, trinketsSet)
40
+ end
41
+ return ____exports
@@ -52,3 +52,4 @@ export declare function isGoldenTrinket(trinketType: TrinketType | int): boolean
52
52
  * avoid calling this function multiple times. 1 by default.
53
53
  */
54
54
  export declare function smeltTrinket(player: EntityPlayer, trinketType: TrinketType | int, numTrinkets?: number): void;
55
+ export declare function trinketHasCacheFlag(trinketType: TrinketType | int, cacheFlag: CacheFlag): boolean;
@@ -10,6 +10,8 @@ local ____trinketNameMap = require("maps.trinketNameMap")
10
10
  local TRINKET_NAME_MAP = ____trinketNameMap.TRINKET_NAME_MAP
11
11
  local ____entity = require("functions.entity")
12
12
  local getPickups = ____entity.getPickups
13
+ local ____flag = require("functions.flag")
14
+ local hasFlag = ____flag.hasFlag
13
15
  local ____player = require("functions.player")
14
16
  local useActiveItemTemp = ____player.useActiveItemTemp
15
17
  local ____trinketGive = require("functions.trinketGive")
@@ -98,4 +100,12 @@ function ____exports.smeltTrinket(self, player, trinketType, numTrinkets)
98
100
  end
99
101
  giveTrinketsBack(nil, player, trinketSituation)
100
102
  end
103
+ function ____exports.trinketHasCacheFlag(self, trinketType, cacheFlag)
104
+ local itemConfig = Isaac.GetItemConfig()
105
+ local itemConfigItem = itemConfig:GetTrinket(trinketType)
106
+ if itemConfigItem == nil then
107
+ return false
108
+ end
109
+ return hasFlag(nil, itemConfigItem.CacheFlags, cacheFlag)
110
+ end
101
111
  return ____exports
package/dist/index.d.ts CHANGED
@@ -24,6 +24,7 @@ export * from "./functions/doors";
24
24
  export * from "./functions/entity";
25
25
  export * from "./functions/familiars";
26
26
  export * from "./functions/flag";
27
+ export * from "./functions/flying";
27
28
  export * from "./functions/globals";
28
29
  export * from "./functions/gridEntity";
29
30
  export * from "./functions/input";
@@ -49,6 +50,7 @@ export * from "./functions/sprite";
49
50
  export * from "./functions/stage";
50
51
  export * from "./functions/tears";
51
52
  export * from "./functions/transformations";
53
+ export * from "./functions/trinketCacheFlag";
52
54
  export * from "./functions/trinketGive";
53
55
  export * from "./functions/trinkets";
54
56
  export * from "./functions/trinketSet";
package/dist/index.lua CHANGED
@@ -198,6 +198,14 @@ do
198
198
  end
199
199
  end
200
200
  end
201
+ do
202
+ local ____export = require("functions.flying")
203
+ for ____exportKey, ____exportValue in pairs(____export) do
204
+ if ____exportKey ~= "default" then
205
+ ____exports[____exportKey] = ____exportValue
206
+ end
207
+ end
208
+ end
201
209
  do
202
210
  local ____export = require("functions.globals")
203
211
  for ____exportKey, ____exportValue in pairs(____export) do
@@ -398,6 +406,14 @@ do
398
406
  end
399
407
  end
400
408
  end
409
+ do
410
+ local ____export = require("functions.trinketCacheFlag")
411
+ for ____exportKey, ____exportValue in pairs(____export) do
412
+ if ____exportKey ~= "default" then
413
+ ____exports[____exportKey] = ____exportValue
414
+ end
415
+ end
416
+ end
401
417
  do
402
418
  local ____export = require("functions.trinketGive")
403
419
  for ____exportKey, ____exportValue in pairs(____export) do
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "1.2.22",
3
+ "version": "1.2.23",
4
4
  "description": "Helper functions for IsaacScript mods",
5
5
  "keywords": [
6
6
  "isaac",