isaacscript-common 1.2.222 → 1.2.225

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.
@@ -77,7 +77,7 @@ function restoreDefaults(self, childTableName)
77
77
  end
78
78
  local childTableDefaults = saveDataDefaults[childTableName]
79
79
  if childTableDefaults == nil then
80
- logError((("Failed to find the default copy of the child table \"" .. childTableName) .. "\" for subscriber: ") .. subscriberName)
80
+ logError(((("Failed to find the default copy of the child table \"" .. childTableName) .. "\" for subscriber \"") .. subscriberName) .. "\". This error usually means that your save data is out of date. You can try purging all of your save data by deleting the following directory: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\data")
81
81
  goto __continue14
82
82
  end
83
83
  local childTableDefaultsTable = childTableDefaults
@@ -236,10 +236,7 @@ function validateValue(self, value, valueType, traversalDescription)
236
236
  end
237
237
  end
238
238
  function getNewValue(self, key, value, traversalDescription, serializationType)
239
- if isSerializableIsaacAPIClass(nil, value) then
240
- return copySerializableIsaacAPIClass(nil, value, serializationType)
241
- end
242
- if isSerializedIsaacAPIClass(nil, value) and serializationType == SerializationType.DESERIALIZE then
239
+ if isSerializableIsaacAPIClass(nil, value) or isSerializedIsaacAPIClass(nil, value) and serializationType == SerializationType.DESERIALIZE then
243
240
  return copySerializableIsaacAPIClass(nil, value, serializationType)
244
241
  end
245
242
  if type(value) == "table" then
@@ -17,7 +17,7 @@ local FLYING_CHARACTERS = __TS__New(Set, {
17
17
  PlayerType.PLAYER_THESOUL_B
18
18
  })
19
19
  local FLYING_TRINKETS = __TS__New(Set, {TrinketType.TRINKET_BAT_WING, TrinketType.TRINKET_AZAZELS_STUMP})
20
- local FLYING_NULL_ITEMS = {66, 101, 112}
20
+ local FLYING_NULL_ITEMS = {NullItemID.ID_REVERSE_SUN, NullItemID.ID_SPIRIT_SHACKLES_SOUL, NullItemID.ID_LOST_CURSE}
21
21
  function ____exports.getFlyingCollectibles(self, pruneConditionalItems)
22
22
  local collectiblesWithFlyingCacheFlag = getCollectiblesForCacheFlag(nil, CacheFlag.CACHE_FLYING)
23
23
  local collectiblesWithAllCacheFlag = getCollectiblesForCacheFlag(nil, CacheFlag.CACHE_ALL)
@@ -1,4 +1,5 @@
1
1
  /// <reference types="isaac-typescript-definitions" />
2
+ export declare function directionToDegrees(direction: Direction): int;
2
3
  export declare function getAngleDifference(angle1: float, angle2: float): float;
3
4
  /**
4
5
  * Helper function to get an array of equidistant points on the circumference around a circle.
@@ -1,8 +1,13 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__ArrayPush = ____lualib.__TS__ArrayPush
3
3
  local ____exports = {}
4
+ local ____directionToDegrees = require("objects.directionToDegrees")
5
+ local DIRECTION_TO_DEGREES = ____directionToDegrees.DIRECTION_TO_DEGREES
4
6
  local ____vector = require("functions.vector")
5
7
  local directionToVector = ____vector.directionToVector
8
+ function ____exports.directionToDegrees(self, direction)
9
+ return DIRECTION_TO_DEGREES[direction]
10
+ end
6
11
  function ____exports.getAngleDifference(self, angle1, angle2)
7
12
  local subtractedAngle = angle1 - angle2
8
13
  return (subtractedAngle + 180) % 360 - 180
@@ -394,7 +394,7 @@ function ____exports.getTotalPlayerCollectibles(self, collectibleType)
394
394
  end
395
395
  function ____exports.hasLostCurse(self, player)
396
396
  local effects = player:GetEffects()
397
- return effects:HasNullEffect(112)
397
+ return effects:HasNullEffect(NullItemID.ID_LOST_CURSE)
398
398
  end
399
399
  function ____exports.hasOpenActiveItemSlot(self, player)
400
400
  if ____exports.isCharacter(nil, player, PlayerType.PLAYER_THESOUL_B) then
@@ -543,14 +543,14 @@ function ____exports.setBlindfold(self, player, enabled, modifyCostume)
543
543
  player:ChangePlayerType(character)
544
544
  game.Challenge = challenge
545
545
  if not modifyCostume then
546
- player:TryRemoveNullCostume(14)
546
+ player:TryRemoveNullCostume(NullItemID.ID_BLINDFOLD)
547
547
  end
548
548
  else
549
549
  game.Challenge = Challenge.CHALLENGE_NULL
550
550
  player:ChangePlayerType(character)
551
551
  game.Challenge = challenge
552
552
  if modifyCostume then
553
- player:TryRemoveNullCostume(14)
553
+ player:TryRemoveNullCostume(NullItemID.ID_BLINDFOLD)
554
554
  end
555
555
  end
556
556
  end
@@ -32,8 +32,8 @@ function ____exports.willReviveFromSpiritShackles(self, player)
32
32
  return false
33
33
  end
34
34
  local effects = player:GetEffects()
35
- local spiritShacklesEnabled = not effects:HasNullEffect(102)
36
- local playerInSoulForm = effects:HasNullEffect(101)
35
+ local spiritShacklesEnabled = not effects:HasNullEffect(NullItemID.ID_SPIRIT_SHACKLES_DISABLED)
36
+ local playerInSoulForm = effects:HasNullEffect(NullItemID.ID_SPIRIT_SHACKLES_SOUL)
37
37
  return spiritShacklesEnabled and not playerInSoulForm
38
38
  end
39
39
  function ____exports.isDamageToPlayerFatal(self, player, damageAmount, damageSource, lastDamageGameFrame)
@@ -1,115 +1,30 @@
1
- --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectValues = ____lualib.__TS__ObjectValues
3
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
2
4
  local ____exports = {}
3
- local ____SerializableIsaacAPIClassType = require("enums.private.SerializableIsaacAPIClassType")
4
- local SerializableIsaacAPIClassType = ____SerializableIsaacAPIClassType.SerializableIsaacAPIClassType
5
- local ____color = require("functions.color")
6
- local copyColor = ____color.copyColor
7
- local isSerializedColor = ____color.isSerializedColor
5
+ local ____serializableIsaacAPIClassTypeToCopyFunction = require("objects.serializableIsaacAPIClassTypeToCopyFunction")
6
+ local SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_COPY_FUNCTION = ____serializableIsaacAPIClassTypeToCopyFunction.SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_COPY_FUNCTION
7
+ local ____serializableIsaacAPIClassTypeToIdentityFunction = require("objects.serializableIsaacAPIClassTypeToIdentityFunction")
8
+ local SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_IDENTITY_FUNCTION = ____serializableIsaacAPIClassTypeToIdentityFunction.SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_IDENTITY_FUNCTION
8
9
  local ____isaacAPIClass = require("functions.isaacAPIClass")
9
10
  local getIsaacAPIClassType = ____isaacAPIClass.getIsaacAPIClassType
10
- local ____kColor = require("functions.kColor")
11
- local copyKColor = ____kColor.copyKColor
12
- local isSerializedKColor = ____kColor.isSerializedKColor
13
- local ____rng = require("functions.rng")
14
- local copyRNG = ____rng.copyRNG
15
- local isSerializedRNG = ____rng.isSerializedRNG
16
- local ____utils = require("functions.utils")
17
- local ensureAllCases = ____utils.ensureAllCases
18
- local getEnumValues = ____utils.getEnumValues
19
- local ____vector = require("functions.vector")
20
- local copyVector = ____vector.copyVector
21
- local isSerializedVector = ____vector.isSerializedVector
22
11
  function ____exports.copySerializableIsaacAPIClass(self, isaacAPIClassOrSerializedTable, serializationType)
23
12
  local isaacAPIClassType = getIsaacAPIClassType(nil, isaacAPIClassOrSerializedTable)
24
- repeat
25
- local ____switch3 = isaacAPIClassType
26
- local ____cond3 = ____switch3 == SerializableIsaacAPIClassType.COLOR
27
- if ____cond3 then
28
- do
29
- local color = isaacAPIClassOrSerializedTable
30
- return copyColor(nil, color, serializationType)
31
- end
32
- end
33
- ____cond3 = ____cond3 or ____switch3 == SerializableIsaacAPIClassType.KCOLOR
34
- if ____cond3 then
35
- do
36
- local kColor = isaacAPIClassOrSerializedTable
37
- return copyKColor(nil, kColor, serializationType)
38
- end
39
- end
40
- ____cond3 = ____cond3 or ____switch3 == SerializableIsaacAPIClassType.RNG
41
- if ____cond3 then
42
- do
43
- local rng = isaacAPIClassOrSerializedTable
44
- return copyRNG(nil, rng)
45
- end
46
- end
47
- ____cond3 = ____cond3 or ____switch3 == SerializableIsaacAPIClassType.VECTOR
48
- if ____cond3 then
49
- do
50
- local vector = isaacAPIClassOrSerializedTable
51
- return copyVector(nil, vector)
52
- end
53
- end
54
- do
55
- do
56
- return ensureAllCases(nil, isaacAPIClassType)
57
- end
58
- end
59
- until true
13
+ local copyFunction = SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_COPY_FUNCTION[isaacAPIClassType]
14
+ if copyFunction == nil then
15
+ error(("Failed to copy Isaac API class \"" .. isaacAPIClassType) .. "\" since there is not a defined copy function for this class type.")
16
+ end
17
+ return copyFunction(nil, isaacAPIClassOrSerializedTable, serializationType)
60
18
  end
61
19
  function ____exports.isSerializedIsaacAPIClass(self, object)
62
20
  local objectType = type(object)
63
21
  if objectType ~= "table" then
64
22
  return false
65
23
  end
66
- local serializableIsaacAPIClassTypes = getEnumValues(nil, SerializableIsaacAPIClassType)
67
- for ____, serializableIsaacAPIClassType in ipairs(serializableIsaacAPIClassTypes) do
68
- repeat
69
- local ____switch12 = serializableIsaacAPIClassType
70
- local ____cond12 = ____switch12 == SerializableIsaacAPIClassType.COLOR
71
- if ____cond12 then
72
- do
73
- if isSerializedColor(nil, object) then
74
- return true
75
- end
76
- break
77
- end
78
- end
79
- ____cond12 = ____cond12 or ____switch12 == SerializableIsaacAPIClassType.KCOLOR
80
- if ____cond12 then
81
- do
82
- if isSerializedKColor(nil, object) then
83
- return true
84
- end
85
- break
86
- end
87
- end
88
- ____cond12 = ____cond12 or ____switch12 == SerializableIsaacAPIClassType.RNG
89
- if ____cond12 then
90
- do
91
- if isSerializedRNG(nil, object) then
92
- return true
93
- end
94
- break
95
- end
96
- end
97
- ____cond12 = ____cond12 or ____switch12 == SerializableIsaacAPIClassType.VECTOR
98
- if ____cond12 then
99
- do
100
- if isSerializedVector(nil, object) then
101
- return true
102
- end
103
- break
104
- end
105
- end
106
- do
107
- do
108
- ensureAllCases(nil, serializableIsaacAPIClassType)
109
- end
110
- end
111
- until true
112
- end
113
- return false
24
+ local identityFunctions = __TS__ObjectValues(SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_IDENTITY_FUNCTION)
25
+ return __TS__ArraySome(
26
+ identityFunctions,
27
+ function(____, identityFunction) return identityFunction(nil, object) end
28
+ )
114
29
  end
115
30
  return ____exports
@@ -0,0 +1,4 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ export declare const DIRECTION_TO_DEGREES: {
3
+ readonly [key in Direction]: int;
4
+ };
@@ -0,0 +1,10 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____exports = {}
3
+ ____exports.DIRECTION_TO_DEGREES = {
4
+ [Direction.NO_DIRECTION] = 0,
5
+ [Direction.LEFT] = 180,
6
+ [Direction.UP] = 270,
7
+ [Direction.RIGHT] = 0,
8
+ [Direction.DOWN] = 90
9
+ }
10
+ return ____exports
@@ -0,0 +1,5 @@
1
+ import { SerializableIsaacAPIClassType } from "../enums/private/SerializableIsaacAPIClassType";
2
+ import { SerializationType } from "../enums/SerializationType";
3
+ export declare const SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_COPY_FUNCTION: {
4
+ readonly [key in SerializableIsaacAPIClassType]: (object: unknown, serializationType: SerializationType) => boolean;
5
+ };
@@ -0,0 +1,14 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____exports = {}
3
+ local ____SerializableIsaacAPIClassType = require("enums.private.SerializableIsaacAPIClassType")
4
+ local SerializableIsaacAPIClassType = ____SerializableIsaacAPIClassType.SerializableIsaacAPIClassType
5
+ local ____color = require("functions.color")
6
+ local copyColor = ____color.copyColor
7
+ local ____kColor = require("functions.kColor")
8
+ local copyKColor = ____kColor.copyKColor
9
+ local ____rng = require("functions.rng")
10
+ local copyRNG = ____rng.copyRNG
11
+ local ____vector = require("functions.vector")
12
+ local copyVector = ____vector.copyVector
13
+ ____exports.SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_COPY_FUNCTION = {[SerializableIsaacAPIClassType.COLOR] = copyColor, [SerializableIsaacAPIClassType.KCOLOR] = copyKColor, [SerializableIsaacAPIClassType.RNG] = copyRNG, [SerializableIsaacAPIClassType.VECTOR] = copyVector}
14
+ return ____exports
@@ -0,0 +1,4 @@
1
+ import { SerializableIsaacAPIClassType } from "../enums/private/SerializableIsaacAPIClassType";
2
+ export declare const SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_IDENTITY_FUNCTION: {
3
+ readonly [key in SerializableIsaacAPIClassType]: (object: unknown) => boolean;
4
+ };
@@ -0,0 +1,14 @@
1
+ --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
+ local ____exports = {}
3
+ local ____SerializableIsaacAPIClassType = require("enums.private.SerializableIsaacAPIClassType")
4
+ local SerializableIsaacAPIClassType = ____SerializableIsaacAPIClassType.SerializableIsaacAPIClassType
5
+ local ____color = require("functions.color")
6
+ local isColor = ____color.isColor
7
+ local ____kColor = require("functions.kColor")
8
+ local isKColor = ____kColor.isKColor
9
+ local ____rng = require("functions.rng")
10
+ local isRNG = ____rng.isRNG
11
+ local ____vector = require("functions.vector")
12
+ local isVector = ____vector.isVector
13
+ ____exports.SERIALIZABLE_ISAAC_API_CLASS_TYPE_TO_IDENTITY_FUNCTION = {[SerializableIsaacAPIClassType.COLOR] = isColor, [SerializableIsaacAPIClassType.KCOLOR] = isKColor, [SerializableIsaacAPIClassType.RNG] = isRNG, [SerializableIsaacAPIClassType.VECTOR] = isVector}
14
+ return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "1.2.222",
3
+ "version": "1.2.225",
4
4
  "description": "Helper functions for IsaacScript mods",
5
5
  "keywords": [
6
6
  "isaac",
@@ -25,7 +25,7 @@
25
25
  "dist/**/*.d.ts"
26
26
  ],
27
27
  "devDependencies": {
28
- "isaac-typescript-definitions": "^1.0.380",
28
+ "isaac-typescript-definitions": "^1.0.384",
29
29
  "isaacscript-lint": "^1.0.95",
30
30
  "isaacscript-tsconfig": "^1.1.8",
31
31
  "typedoc": "^0.22.13",