isaacscript-common 6.9.0 → 6.10.2
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/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 +73 -37
- package/dist/functions/deepCopyTests.d.ts.map +1 -1
- package/dist/functions/deepCopyTests.lua +85 -18
- 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 +1 -1
- package/dist/functions/log.d.ts.map +1 -1
- package/dist/functions/log.lua +3 -1
- package/dist/functions/mergeTests.d.ts +2 -2
- package/dist/functions/mergeTests.lua +2 -6
- 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/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/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 +95 -41
- package/src/functions/deepCopyTests.ts +161 -28
- 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 +7 -4
- package/src/functions/mergeTests.ts +24 -32
- package/src/functions/playerIndex.ts +1 -1
- package/src/functions/rng.ts +3 -3
- 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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* It supports the following object types:
|
|
7
7
|
*
|
|
8
|
-
* -
|
|
8
|
+
* - Basic TSTL objects / tables
|
|
9
9
|
* - TSTL `Map`
|
|
10
10
|
* - TSTL `Set`
|
|
11
11
|
* - TSTL classes
|
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
* are no longer used in the code, or copy over old variables of a different type, which can cause
|
|
22
22
|
* run-time errors. In such cases, users will have to manually delete their save data.
|
|
23
23
|
*/
|
|
24
|
-
export declare function merge(oldObject:
|
|
24
|
+
export declare function merge(oldObject: LuaMap<AnyNotNil, unknown> | Map<AnyNotNil, unknown> | Set<AnyNotNil>, newTable: LuaMap<AnyNotNil, unknown>, traversalDescription: string): void;
|
|
25
25
|
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/features/saveDataManager/merge.ts"],"names":[],"mappings":";AAgBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,KAAK,CACnB,SAAS,EACL,
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/features/saveDataManager/merge.ts"],"names":[],"mappings":";AAgBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,KAAK,CACnB,SAAS,EACL,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAC1B,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GACvB,GAAG,CAAC,SAAS,CAAC,EAClB,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EACpC,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CA2BN"}
|
|
@@ -29,14 +29,14 @@ local ____utils = require("functions.utils")
|
|
|
29
29
|
local getTraversalDescription = ____utils.getTraversalDescription
|
|
30
30
|
local ____saveDataManagerConstants = require("features.saveDataManager.saveDataManagerConstants")
|
|
31
31
|
local SAVE_DATA_MANAGER_DEBUG = ____saveDataManagerConstants.SAVE_DATA_MANAGER_DEBUG
|
|
32
|
-
local
|
|
33
|
-
local isSerializationBrand =
|
|
32
|
+
local ____serializationBrands = require("features.saveDataManager.serializationBrands")
|
|
33
|
+
local isSerializationBrand = ____serializationBrands.isSerializationBrand
|
|
34
34
|
--- `merge` takes the values from a new table and recursively merges them into an old object (while
|
|
35
35
|
-- performing appropriate deserialization).
|
|
36
36
|
--
|
|
37
37
|
-- It supports the following object types:
|
|
38
38
|
--
|
|
39
|
-
-- -
|
|
39
|
+
-- - Basic TSTL objects / tables
|
|
40
40
|
-- - TSTL `Map`
|
|
41
41
|
-- - TSTL `Set`
|
|
42
42
|
-- - TSTL classes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
2
|
/// <reference types="typescript-to-lua/language-extensions" />
|
|
3
3
|
import { SaveData } from "../../interfaces/SaveData";
|
|
4
|
-
export declare function saveToDisk(mod: Mod, saveDataMap:
|
|
4
|
+
export declare function saveToDisk(mod: Mod, saveDataMap: LuaMap<string, SaveData>, saveDataConditionalFuncMap: LuaMap<string, () => boolean>): void;
|
|
5
5
|
//# sourceMappingURL=save.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/features/saveDataManager/save.ts"],"names":[],"mappings":";;AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAMrD,wBAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/features/saveDataManager/save.ts"],"names":[],"mappings":";;AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAMrD,wBAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACrC,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GACxD,IAAI,CAUN"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
|
-
local Map = ____lualib.Map
|
|
3
2
|
local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
|
|
4
3
|
local ____exports = {}
|
|
5
4
|
local getAllSaveDataToWriteToDisk
|
|
@@ -22,7 +21,7 @@ function getAllSaveDataToWriteToDisk(self, saveDataMap, saveDataConditionalFuncM
|
|
|
22
21
|
nil,
|
|
23
22
|
saveDataMap,
|
|
24
23
|
function(____, subscriberName, saveData)
|
|
25
|
-
local conditionalFunc = saveDataConditionalFuncMap
|
|
24
|
+
local conditionalFunc = saveDataConditionalFuncMap[subscriberName]
|
|
26
25
|
if conditionalFunc ~= nil then
|
|
27
26
|
local shouldSave = conditionalFunc(nil)
|
|
28
27
|
if not shouldSave then
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare function isSerializationBrand(key: unknown): boolean;
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=serializationBrands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializationBrands.d.ts","sourceRoot":"","sources":["../../../src/features/saveDataManager/serializationBrands.ts"],"names":[],"mappings":"AASA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM1D"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/functions/array.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/functions/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="typescript-to-lua/language-extensions" />
|
|
2
2
|
/// <reference types="isaac-typescript-definitions" />
|
|
3
3
|
import { SerializationType } from "../enums/SerializationType";
|
|
4
|
-
declare type SerializedColor =
|
|
4
|
+
declare type SerializedColor = LuaMap<string, unknown> & {
|
|
5
5
|
readonly __serializedColorBrand: symbol;
|
|
6
6
|
};
|
|
7
7
|
interface CopyColorReturn {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/functions/color.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,aAAK,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/functions/color.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,aAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC/C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,UAAU,eAAe;IACvB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAChC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC/C,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CACxC;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,KAAK,GAAG,eAAe,EACjC,CAAC,SAAS,iBAAiB,EAC3B,KAAK,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACtD,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,eAAe,EACzD,KAAK,EAAE,CAAC,GACP,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAuE3C,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,KAAK,CAExD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAM5E"}
|
|
@@ -6,7 +6,7 @@ import { SerializationType } from "../enums/SerializationType";
|
|
|
6
6
|
* It supports the following object types:
|
|
7
7
|
*
|
|
8
8
|
* - Primitives (i.e. strings, numbers, and booleans)
|
|
9
|
-
* -
|
|
9
|
+
* - Basic TSTL objects / tables
|
|
10
10
|
* - TSTL `Map`
|
|
11
11
|
* - TSTL `Set`
|
|
12
12
|
* - TSTL classes
|
|
@@ -17,8 +17,8 @@ local ____SerializationType = require("enums.SerializationType")
|
|
|
17
17
|
local SerializationType = ____SerializationType.SerializationType
|
|
18
18
|
local ____saveDataManagerConstants = require("features.saveDataManager.saveDataManagerConstants")
|
|
19
19
|
local SAVE_DATA_MANAGER_DEBUG = ____saveDataManagerConstants.SAVE_DATA_MANAGER_DEBUG
|
|
20
|
-
local
|
|
21
|
-
local isSerializationBrand =
|
|
20
|
+
local ____serializationBrands = require("features.saveDataManager.serializationBrands")
|
|
21
|
+
local isSerializationBrand = ____serializationBrands.isSerializationBrand
|
|
22
22
|
local ____array = require("functions.array")
|
|
23
23
|
local isArray = ____array.isArray
|
|
24
24
|
local ____enums = require("functions.enums")
|
|
@@ -27,7 +27,6 @@ local ____isaacAPIClass = require("functions.isaacAPIClass")
|
|
|
27
27
|
local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
|
|
28
28
|
local ____log = require("functions.log")
|
|
29
29
|
local log = ____log.log
|
|
30
|
-
local logTable = ____log.logTable
|
|
31
30
|
local ____serialization = require("functions.serialization")
|
|
32
31
|
local copyIsaacAPIClass = ____serialization.copyIsaacAPIClass
|
|
33
32
|
local deserializeIsaacAPIClass = ____serialization.deserializeIsaacAPIClass
|
|
@@ -51,7 +50,7 @@ local twoDimensionalSort = ____utils.twoDimensionalSort
|
|
|
51
50
|
-- It supports the following object types:
|
|
52
51
|
--
|
|
53
52
|
-- - Primitives (i.e. strings, numbers, and booleans)
|
|
54
|
-
-- -
|
|
53
|
+
-- - Basic TSTL objects / tables
|
|
55
54
|
-- - TSTL `Map`
|
|
56
55
|
-- - TSTL `Set`
|
|
57
56
|
-- - TSTL classes
|
|
@@ -114,10 +113,10 @@ function ____exports.deepCopy(self, value, serializationType, traversalDescripti
|
|
|
114
113
|
____cond6 = ____cond6 or ____switch6 == "table"
|
|
115
114
|
if ____cond6 then
|
|
116
115
|
do
|
|
117
|
-
local
|
|
116
|
+
local luaMap = value
|
|
118
117
|
return deepCopyTable(
|
|
119
118
|
nil,
|
|
120
|
-
|
|
119
|
+
luaMap,
|
|
121
120
|
serializationType,
|
|
122
121
|
traversalDescription,
|
|
123
122
|
insideMap
|
|
@@ -132,58 +131,58 @@ function ____exports.deepCopy(self, value, serializationType, traversalDescripti
|
|
|
132
131
|
end
|
|
133
132
|
until true
|
|
134
133
|
end
|
|
135
|
-
function deepCopyTable(self,
|
|
136
|
-
if isDefaultMap(nil,
|
|
134
|
+
function deepCopyTable(self, luaMap, serializationType, traversalDescription, insideMap)
|
|
135
|
+
if isDefaultMap(nil, luaMap) or luaMap[SerializationBrand.DEFAULT_MAP] ~= nil then
|
|
137
136
|
return deepCopyDefaultMap(
|
|
138
137
|
nil,
|
|
139
|
-
|
|
138
|
+
luaMap,
|
|
140
139
|
serializationType,
|
|
141
140
|
traversalDescription,
|
|
142
141
|
insideMap
|
|
143
142
|
)
|
|
144
143
|
end
|
|
145
|
-
if isTSTLMap(nil,
|
|
144
|
+
if isTSTLMap(nil, luaMap) or luaMap[SerializationBrand.MAP] ~= nil then
|
|
146
145
|
return deepCopyMap(
|
|
147
146
|
nil,
|
|
148
|
-
|
|
147
|
+
luaMap,
|
|
149
148
|
serializationType,
|
|
150
149
|
traversalDescription,
|
|
151
150
|
insideMap
|
|
152
151
|
)
|
|
153
152
|
end
|
|
154
|
-
if isTSTLSet(nil,
|
|
153
|
+
if isTSTLSet(nil, luaMap) or luaMap[SerializationBrand.SET] ~= nil then
|
|
155
154
|
return deepCopySet(
|
|
156
155
|
nil,
|
|
157
|
-
|
|
156
|
+
luaMap,
|
|
158
157
|
serializationType,
|
|
159
158
|
traversalDescription,
|
|
160
159
|
insideMap
|
|
161
160
|
)
|
|
162
161
|
end
|
|
163
|
-
local className = getTSTLClassName(nil,
|
|
162
|
+
local className = getTSTLClassName(nil, luaMap)
|
|
164
163
|
if className == "WeakMap" then
|
|
165
164
|
error("The deep copy function does not support copying the \"WeakMap\" class for: " .. traversalDescription)
|
|
166
165
|
end
|
|
167
166
|
if className == "WeakSet" then
|
|
168
167
|
error("The deep copy function does not support copying the \"WeakSet\" class for: " .. traversalDescription)
|
|
169
168
|
end
|
|
170
|
-
if isUserDefinedTSTLClass(nil,
|
|
169
|
+
if isUserDefinedTSTLClass(nil, luaMap) then
|
|
171
170
|
return deepCopyTSTLClass(
|
|
172
171
|
nil,
|
|
173
|
-
|
|
172
|
+
luaMap,
|
|
174
173
|
serializationType,
|
|
175
174
|
traversalDescription,
|
|
176
175
|
insideMap
|
|
177
176
|
)
|
|
178
177
|
end
|
|
179
|
-
checkMetatable(nil,
|
|
180
|
-
if isSerializedIsaacAPIClass(nil,
|
|
181
|
-
return deserializeIsaacAPIClass(nil,
|
|
178
|
+
checkMetatable(nil, luaMap, traversalDescription)
|
|
179
|
+
if isSerializedIsaacAPIClass(nil, luaMap) and serializationType == SerializationType.DESERIALIZE then
|
|
180
|
+
return deserializeIsaacAPIClass(nil, luaMap)
|
|
182
181
|
end
|
|
183
|
-
if isArray(nil,
|
|
182
|
+
if isArray(nil, luaMap) then
|
|
184
183
|
return deepCopyArray(
|
|
185
184
|
nil,
|
|
186
|
-
|
|
185
|
+
luaMap,
|
|
187
186
|
serializationType,
|
|
188
187
|
traversalDescription,
|
|
189
188
|
insideMap
|
|
@@ -191,13 +190,16 @@ function deepCopyTable(self, luaTable, serializationType, traversalDescription,
|
|
|
191
190
|
end
|
|
192
191
|
return deepCopyNormalLuaTable(
|
|
193
192
|
nil,
|
|
194
|
-
|
|
193
|
+
luaMap,
|
|
195
194
|
serializationType,
|
|
196
195
|
traversalDescription,
|
|
197
196
|
insideMap
|
|
198
197
|
)
|
|
199
198
|
end
|
|
200
199
|
function deepCopyDefaultMap(self, defaultMap, serializationType, traversalDescription, insideMap)
|
|
200
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
201
|
+
log("deepCopy is copying a DefaultMap.")
|
|
202
|
+
end
|
|
201
203
|
local ____isDefaultMap_result_0
|
|
202
204
|
if isDefaultMap(nil, defaultMap) then
|
|
203
205
|
____isDefaultMap_result_0 = defaultMap:getConstructorArg()
|
|
@@ -256,15 +258,15 @@ function deepCopyDefaultMap(self, defaultMap, serializationType, traversalDescri
|
|
|
256
258
|
end
|
|
257
259
|
function getNewDefaultMap(self, defaultMap, serializationType, traversalDescription, constructorArg)
|
|
258
260
|
repeat
|
|
259
|
-
local
|
|
260
|
-
local
|
|
261
|
-
if
|
|
261
|
+
local ____switch34 = serializationType
|
|
262
|
+
local ____cond34 = ____switch34 == SerializationType.NONE
|
|
263
|
+
if ____cond34 then
|
|
262
264
|
do
|
|
263
265
|
return __TS__New(DefaultMap, constructorArg)
|
|
264
266
|
end
|
|
265
267
|
end
|
|
266
|
-
|
|
267
|
-
if
|
|
268
|
+
____cond34 = ____cond34 or ____switch34 == SerializationType.SERIALIZE
|
|
269
|
+
if ____cond34 then
|
|
268
270
|
do
|
|
269
271
|
local newDefaultMap = {}
|
|
270
272
|
newDefaultMap[SerializationBrand.DEFAULT_MAP] = ""
|
|
@@ -272,8 +274,8 @@ function getNewDefaultMap(self, defaultMap, serializationType, traversalDescript
|
|
|
272
274
|
return newDefaultMap
|
|
273
275
|
end
|
|
274
276
|
end
|
|
275
|
-
|
|
276
|
-
if
|
|
277
|
+
____cond34 = ____cond34 or ____switch34 == SerializationType.DESERIALIZE
|
|
278
|
+
if ____cond34 then
|
|
277
279
|
do
|
|
278
280
|
if isDefaultMap(nil, defaultMap) then
|
|
279
281
|
error(("The deep copy function failed to deserialize a default map of \"" .. traversalDescription) .. "\", since it was not a Lua table.")
|
|
@@ -288,6 +290,9 @@ function getNewDefaultMap(self, defaultMap, serializationType, traversalDescript
|
|
|
288
290
|
until true
|
|
289
291
|
end
|
|
290
292
|
function deepCopyMap(self, map, serializationType, traversalDescription, insideMap)
|
|
293
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
294
|
+
log("deepCopy is copying a Map.")
|
|
295
|
+
end
|
|
291
296
|
local newMap
|
|
292
297
|
if serializationType == SerializationType.SERIALIZE then
|
|
293
298
|
newMap = {}
|
|
@@ -325,6 +330,9 @@ function deepCopyMap(self, map, serializationType, traversalDescription, insideM
|
|
|
325
330
|
return newMap
|
|
326
331
|
end
|
|
327
332
|
function deepCopySet(self, set, serializationType, traversalDescription, insideMap)
|
|
333
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
334
|
+
log("deepCopy is copying a Set.")
|
|
335
|
+
end
|
|
328
336
|
local newSet
|
|
329
337
|
if serializationType == SerializationType.SERIALIZE then
|
|
330
338
|
newSet = {}
|
|
@@ -359,6 +367,9 @@ function deepCopySet(self, set, serializationType, traversalDescription, insideM
|
|
|
359
367
|
return newSet
|
|
360
368
|
end
|
|
361
369
|
function deepCopyTSTLClass(self, tstlClass, serializationType, traversalDescription, insideMap)
|
|
370
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
371
|
+
log("deepCopy is copying a TSTL class.")
|
|
372
|
+
end
|
|
362
373
|
local newClass
|
|
363
374
|
if serializationType == SerializationType.SERIALIZE then
|
|
364
375
|
newClass = {}
|
|
@@ -385,6 +396,9 @@ function deepCopyTSTLClass(self, tstlClass, serializationType, traversalDescript
|
|
|
385
396
|
return newClass
|
|
386
397
|
end
|
|
387
398
|
function deepCopyArray(self, array, serializationType, traversalDescription, insideMap)
|
|
399
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
400
|
+
log("deepCopy is copying an array.")
|
|
401
|
+
end
|
|
388
402
|
local newArray = {}
|
|
389
403
|
for ____, value in ipairs(array) do
|
|
390
404
|
local newValue = ____exports.deepCopy(
|
|
@@ -398,11 +412,14 @@ function deepCopyArray(self, array, serializationType, traversalDescription, ins
|
|
|
398
412
|
end
|
|
399
413
|
return newArray
|
|
400
414
|
end
|
|
401
|
-
function deepCopyNormalLuaTable(self,
|
|
415
|
+
function deepCopyNormalLuaTable(self, luaMap, serializationType, traversalDescription, insideMap)
|
|
416
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
417
|
+
log("deepCopy is copying a normal Lua table.")
|
|
418
|
+
end
|
|
402
419
|
local newTable = {}
|
|
403
420
|
local ____getCopiedEntries_result_5 = getCopiedEntries(
|
|
404
421
|
nil,
|
|
405
|
-
|
|
422
|
+
luaMap,
|
|
406
423
|
serializationType,
|
|
407
424
|
traversalDescription,
|
|
408
425
|
insideMap
|
|
@@ -433,9 +450,16 @@ function getCopiedEntries(self, object, serializationType, traversalDescription,
|
|
|
433
450
|
end
|
|
434
451
|
end
|
|
435
452
|
if SAVE_DATA_MANAGER_DEBUG then
|
|
436
|
-
logTable(entries)
|
|
437
453
|
__TS__ArraySort(entries, twoDimensionalSort)
|
|
438
454
|
end
|
|
455
|
+
local convertStringKeysToNumbers = serializationType == SerializationType.DESERIALIZE and __TS__ArraySome(
|
|
456
|
+
entries,
|
|
457
|
+
function(____, ____bindingPattern0)
|
|
458
|
+
local key
|
|
459
|
+
key = ____bindingPattern0[1]
|
|
460
|
+
return key == SerializationBrand.OBJECT_WITH_NUMBER_KEYS
|
|
461
|
+
end
|
|
462
|
+
)
|
|
439
463
|
local hasNumberKeys = __TS__ArraySome(
|
|
440
464
|
entries,
|
|
441
465
|
function(____, ____bindingPattern0)
|
|
@@ -451,7 +475,7 @@ function getCopiedEntries(self, object, serializationType, traversalDescription,
|
|
|
451
475
|
local value = ____value[2]
|
|
452
476
|
do
|
|
453
477
|
if isSerializationBrand(nil, key) then
|
|
454
|
-
goto
|
|
478
|
+
goto __continue87
|
|
455
479
|
end
|
|
456
480
|
traversalDescription = getTraversalDescription(nil, key, traversalDescription)
|
|
457
481
|
local newValue = ____exports.deepCopy(
|
|
@@ -461,15 +485,24 @@ function getCopiedEntries(self, object, serializationType, traversalDescription,
|
|
|
461
485
|
traversalDescription,
|
|
462
486
|
insideMap
|
|
463
487
|
)
|
|
464
|
-
local keyToUse =
|
|
488
|
+
local keyToUse = key
|
|
489
|
+
if convertStringKeysToNumbers then
|
|
490
|
+
local numberKey = tonumber(key)
|
|
491
|
+
if numberKey ~= nil then
|
|
492
|
+
keyToUse = numberKey
|
|
493
|
+
end
|
|
494
|
+
end
|
|
495
|
+
if convertNumberKeysToStrings then
|
|
496
|
+
keyToUse = tostring(key)
|
|
497
|
+
end
|
|
465
498
|
copiedEntries[#copiedEntries + 1] = {keyToUse, newValue}
|
|
466
499
|
end
|
|
467
|
-
::
|
|
500
|
+
::__continue87::
|
|
468
501
|
end
|
|
469
502
|
return {entries = copiedEntries, convertedNumberKeysToStrings = convertNumberKeysToStrings}
|
|
470
503
|
end
|
|
471
|
-
function checkMetatable(self,
|
|
472
|
-
local metatable = getmetatable(
|
|
504
|
+
function checkMetatable(self, luaMap, traversalDescription)
|
|
505
|
+
local metatable = getmetatable(luaMap)
|
|
473
506
|
if metatable == nil then
|
|
474
507
|
return
|
|
475
508
|
end
|
|
@@ -477,6 +510,9 @@ function checkMetatable(self, luaTable, traversalDescription)
|
|
|
477
510
|
error(("The deepCopy function detected that " .. tableDescription) .. " has a metatable. Copying tables with metatables is not supported, unless they are explicitly handled by the save data manager. (e.g. TypeScriptToLua Maps, TypeScriptToLua Sets, etc.)")
|
|
478
511
|
end
|
|
479
512
|
function deepCopyUserdata(self, value, serializationType, traversalDescription)
|
|
513
|
+
if SAVE_DATA_MANAGER_DEBUG then
|
|
514
|
+
log("deepCopy is copying userdata.")
|
|
515
|
+
end
|
|
480
516
|
local classType = getIsaacAPIClassName(nil, value)
|
|
481
517
|
if classType == nil then
|
|
482
518
|
error("The deep copy function was not able to derive the Isaac API class type for: " .. traversalDescription)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepCopyTests.d.ts","sourceRoot":"","sources":["../../src/functions/deepCopyTests.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"deepCopyTests.d.ts","sourceRoot":"","sources":["../../src/functions/deepCopyTests.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CA2BvC"}
|
|
@@ -3,8 +3,10 @@ local __TS__TypeOf = ____lualib.__TS__TypeOf
|
|
|
3
3
|
local Map = ____lualib.Map
|
|
4
4
|
local __TS__New = ____lualib.__TS__New
|
|
5
5
|
local Set = ____lualib.Set
|
|
6
|
+
local __TS__Spread = ____lualib.__TS__Spread
|
|
7
|
+
local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
|
|
6
8
|
local ____exports = {}
|
|
7
|
-
local copiedObjectIsTable, copiedObjectHasKeyAndValueString, copiedTableHasKeyAndValueNumber, copiedTableDoesNotCoerceTypes, copiedObjectHasNoReferencesForPrimitivesForward, copiedObjectHasNoReferencesForPrimitivesBackward, copiedObjectHasNoReferencesForArray, copiedObjectHasChildObject, copiedMapIsMap, copiedMapHasValue, copiedSetIsSet, copiedSetHasValue, copiedMapHasChildMap, copiedDefaultMapHasChildDefaultMap, copiedDefaultMapHasBrand
|
|
9
|
+
local copiedObjectIsTable, copiedObjectHasKeyAndValueString, copiedTableHasKeyAndValueNumber, copiedTableDoesNotCoerceTypes, copiedObjectHasNoReferencesForPrimitivesForward, copiedObjectHasNoReferencesForPrimitivesBackward, copiedObjectHasNoReferencesForArray, copiedObjectHasChildObject, copiedMapIsMap, copiedMapHasValue, copiedSetIsSet, copiedSetHasValue, copiedMapHasChildMap, copiedDefaultMapHasChildDefaultMap, copiedDefaultMapHasBrand, copiedSerializedMapHasStringKeyType, copiedSerializedMapHasNumberKeyType, copiedSerializedDefaultMapHasStringKeyType, copiedSerializedDefaultMapHasNumberKeyType
|
|
8
10
|
local ____DefaultMap = require("classes.DefaultMap")
|
|
9
11
|
local DefaultMap = ____DefaultMap.DefaultMap
|
|
10
12
|
local ____SerializationBrand = require("enums.private.SerializationBrand")
|
|
@@ -172,11 +174,8 @@ function copiedMapIsMap(self)
|
|
|
172
174
|
oldMap:set(keyToLookFor, valueToLookFor)
|
|
173
175
|
local newObject = deepCopy(nil, oldMap, SerializationType.NONE, "copiedMapIsMap")
|
|
174
176
|
local newMap = newObject
|
|
175
|
-
if not isTable(nil, newMap) then
|
|
176
|
-
error("The copied Map had a type of: " .. __TS__TypeOf(newMap))
|
|
177
|
-
end
|
|
178
177
|
if not isTSTLMap(nil, newMap) then
|
|
179
|
-
error("The copied Map was not a Map
|
|
178
|
+
error("The copied Map was not a Map and has a type of: " .. __TS__TypeOf(newMap))
|
|
180
179
|
end
|
|
181
180
|
end
|
|
182
181
|
function copiedMapHasValue(self)
|
|
@@ -186,6 +185,9 @@ function copiedMapHasValue(self)
|
|
|
186
185
|
oldMap:set(keyToLookFor, valueToLookFor)
|
|
187
186
|
local newTable = deepCopy(nil, oldMap, SerializationType.NONE, "copiedMapHasValue")
|
|
188
187
|
local newMap = newTable
|
|
188
|
+
if not isTSTLMap(nil, newMap) then
|
|
189
|
+
error("The copied Map was not a Map and has a type of: " .. __TS__TypeOf(newMap))
|
|
190
|
+
end
|
|
189
191
|
local value = newMap:get(keyToLookFor)
|
|
190
192
|
if value == nil then
|
|
191
193
|
error("The copied Map did not have a key of: " .. keyToLookFor)
|
|
@@ -200,11 +202,8 @@ function copiedSetIsSet(self)
|
|
|
200
202
|
oldSet:add(valueToLookFor)
|
|
201
203
|
local newTable = deepCopy(nil, oldSet, SerializationType.NONE, "copiedSetIsSet")
|
|
202
204
|
local newSet = newTable
|
|
203
|
-
if not isTable(nil, newSet) then
|
|
204
|
-
error("The copied Set had a type of: " .. __TS__TypeOf(newSet))
|
|
205
|
-
end
|
|
206
205
|
if not isTSTLSet(nil, newSet) then
|
|
207
|
-
error("The copied Set was not a
|
|
206
|
+
error("The copied Set was not a Set and has a type of: " .. __TS__TypeOf(newSet))
|
|
208
207
|
end
|
|
209
208
|
end
|
|
210
209
|
function copiedSetHasValue(self)
|
|
@@ -213,6 +212,9 @@ function copiedSetHasValue(self)
|
|
|
213
212
|
oldSet:add(valueToLookFor)
|
|
214
213
|
local newTable = deepCopy(nil, oldSet, SerializationType.NONE, "copiedSetHasValue")
|
|
215
214
|
local newSet = newTable
|
|
215
|
+
if not isTSTLSet(nil, newSet) then
|
|
216
|
+
error("The copied Set was not a Set and has a type of: " .. __TS__TypeOf(newSet))
|
|
217
|
+
end
|
|
216
218
|
local hasValue = newSet:has(valueToLookFor)
|
|
217
219
|
if not hasValue then
|
|
218
220
|
error("The copied Set did not have a value of: " .. valueToLookFor)
|
|
@@ -223,20 +225,20 @@ function copiedMapHasChildMap(self)
|
|
|
223
225
|
local childMapValue = 456
|
|
224
226
|
local oldChildMap = __TS__New(Map)
|
|
225
227
|
oldChildMap:set(childMapKey, childMapValue)
|
|
226
|
-
local keyToLookFor = "
|
|
228
|
+
local keyToLookFor = "childMap"
|
|
227
229
|
local oldMap = __TS__New(Map)
|
|
228
230
|
oldMap:set(keyToLookFor, oldChildMap)
|
|
229
231
|
local newTable = deepCopy(nil, oldMap, SerializationType.NONE, "copiedMapHasChildMap")
|
|
230
232
|
local newMap = newTable
|
|
233
|
+
if not isTSTLMap(nil, newMap) then
|
|
234
|
+
error("The copied Map was not a Map and had a type of: " .. __TS__TypeOf(newMap))
|
|
235
|
+
end
|
|
231
236
|
local newChildMap = newMap:get(keyToLookFor)
|
|
232
237
|
if newChildMap == nil then
|
|
233
238
|
error("The copied Map did not have a child map at key: " .. keyToLookFor)
|
|
234
239
|
end
|
|
235
|
-
if not isTable(nil, newChildMap) then
|
|
236
|
-
error("The copied child Map had a type of: " .. __TS__TypeOf(newChildMap))
|
|
237
|
-
end
|
|
238
240
|
if not isTSTLMap(nil, newChildMap) then
|
|
239
|
-
error("The copied child Map was not a Map
|
|
241
|
+
error("The copied child Map was not a Map and had a type of: " .. __TS__TypeOf(newChildMap))
|
|
240
242
|
end
|
|
241
243
|
local value = newChildMap:get(childMapKey)
|
|
242
244
|
if value == nil then
|
|
@@ -261,15 +263,15 @@ function copiedDefaultMapHasChildDefaultMap(self)
|
|
|
261
263
|
oldChildMap:set(childMapKey2, childMapCustomValue)
|
|
262
264
|
local newTable = deepCopy(nil, oldParentMap, SerializationType.NONE, "copiedDefaultMapHasChildDefaultMap")
|
|
263
265
|
local newParentMap = newTable
|
|
266
|
+
if not isDefaultMap(nil, newParentMap) then
|
|
267
|
+
error("The copied parent DefaultMap was not a DefaultMap and had a type of: " .. __TS__TypeOf(newParentMap))
|
|
268
|
+
end
|
|
264
269
|
local newChildMap = newParentMap:get(parentMapKey)
|
|
265
270
|
if newChildMap == nil then
|
|
266
271
|
error("The copied DefaultMap did not have a child map at key: " .. parentMapKey)
|
|
267
272
|
end
|
|
268
|
-
if not isTable(nil, newChildMap) then
|
|
269
|
-
error("The copied child DefaultMap had a type of: " .. __TS__TypeOf(newChildMap))
|
|
270
|
-
end
|
|
271
273
|
if not isDefaultMap(nil, newChildMap) then
|
|
272
|
-
error("The copied child DefaultMap was not a DefaultMap
|
|
274
|
+
error("The copied child DefaultMap was not a DefaultMap and had a type of: " .. __TS__TypeOf(newChildMap))
|
|
273
275
|
end
|
|
274
276
|
local newChildMapValue1 = newChildMap:get(childMapKey1)
|
|
275
277
|
if newChildMapValue1 == nil then
|
|
@@ -290,10 +292,71 @@ function copiedDefaultMapHasBrand(self)
|
|
|
290
292
|
local oldDefaultValue = "foo"
|
|
291
293
|
local oldDefaultMap = __TS__New(DefaultMap, oldDefaultValue)
|
|
292
294
|
local newTable = deepCopy(nil, oldDefaultMap, SerializationType.SERIALIZE, "copiedDefaultMapHasBrand")
|
|
295
|
+
if not isTable(nil, newTable) then
|
|
296
|
+
error("The copied DefaultMap was not a table and had a type of: " .. __TS__TypeOf(newTable))
|
|
297
|
+
end
|
|
293
298
|
if not (newTable[SerializationBrand.DEFAULT_MAP] ~= nil) then
|
|
294
299
|
error("The copied DefaultMap does not have the brand: " .. SerializationBrand.DEFAULT_MAP)
|
|
295
300
|
end
|
|
296
301
|
end
|
|
302
|
+
function copiedSerializedMapHasStringKeyType(self)
|
|
303
|
+
local mapKey = "123"
|
|
304
|
+
local mapValue = 456
|
|
305
|
+
local oldMap = __TS__New(Map)
|
|
306
|
+
oldMap:set(mapKey, mapValue)
|
|
307
|
+
local tempTable = deepCopy(nil, oldMap, SerializationType.SERIALIZE, "copiedSerializedMapHasStringKeyTypeSerialize")
|
|
308
|
+
local newTable = deepCopy(nil, tempTable, SerializationType.DESERIALIZE, "copiedSerializedMapHasStringKeyTypeDeserialize")
|
|
309
|
+
local newMap = newTable
|
|
310
|
+
if not __TS__ArrayIncludes(
|
|
311
|
+
{__TS__Spread(newMap:keys())},
|
|
312
|
+
mapKey
|
|
313
|
+
) then
|
|
314
|
+
error((("The copied Map did not have a key of: " .. mapKey) .. " with type ") .. type(mapKey))
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
function copiedSerializedMapHasNumberKeyType(self)
|
|
318
|
+
local mapKey = 123
|
|
319
|
+
local mapValue = 456
|
|
320
|
+
local oldMap = __TS__New(Map)
|
|
321
|
+
oldMap:set(mapKey, mapValue)
|
|
322
|
+
local tempTable = deepCopy(nil, oldMap, SerializationType.SERIALIZE, "copiedSerializedMapHasNumberKeyTypeSerialize")
|
|
323
|
+
local newTable = deepCopy(nil, tempTable, SerializationType.DESERIALIZE, "copiedSerializedMapHasNumberKeyTypeDeserialize")
|
|
324
|
+
local newMap = newTable
|
|
325
|
+
if not __TS__ArrayIncludes(
|
|
326
|
+
{__TS__Spread(newMap:keys())},
|
|
327
|
+
mapKey
|
|
328
|
+
) then
|
|
329
|
+
error((("The copied Map did not have a key of: " .. tostring(mapKey)) .. " with type ") .. type(mapKey))
|
|
330
|
+
end
|
|
331
|
+
end
|
|
332
|
+
function copiedSerializedDefaultMapHasStringKeyType(self)
|
|
333
|
+
local mapKey = "123"
|
|
334
|
+
local oldMap = __TS__New(DefaultMap, 456)
|
|
335
|
+
oldMap:getAndSetDefault(mapKey)
|
|
336
|
+
local tempTable = deepCopy(nil, oldMap, SerializationType.SERIALIZE, "copiedSerializedDefaultMapHasStringKeyTypeSerialize")
|
|
337
|
+
local newTable = deepCopy(nil, tempTable, SerializationType.DESERIALIZE, "copiedSerializedDefaultMapHasStringKeyTypeDeserialize")
|
|
338
|
+
local newMap = newTable
|
|
339
|
+
if not __TS__ArrayIncludes(
|
|
340
|
+
{__TS__Spread(newMap:keys())},
|
|
341
|
+
mapKey
|
|
342
|
+
) then
|
|
343
|
+
error((("The copied DefaultMap did not have a key of: " .. mapKey) .. " with type ") .. type(mapKey))
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
function copiedSerializedDefaultMapHasNumberKeyType(self)
|
|
347
|
+
local mapKey = 123
|
|
348
|
+
local oldMap = __TS__New(DefaultMap, 456)
|
|
349
|
+
oldMap:getAndSetDefault(mapKey)
|
|
350
|
+
local tempTable = deepCopy(nil, oldMap, SerializationType.SERIALIZE, "copiedSerializedDefaultMapHasNumberKeyTypeSerialize")
|
|
351
|
+
local newTable = deepCopy(nil, tempTable, SerializationType.DESERIALIZE, "copiedSerializedDefaultMapHasNumberKeyTypeDeserialize")
|
|
352
|
+
local newMap = newTable
|
|
353
|
+
if not __TS__ArrayIncludes(
|
|
354
|
+
{__TS__Spread(newMap:keys())},
|
|
355
|
+
mapKey
|
|
356
|
+
) then
|
|
357
|
+
error((("The copied DefaultMap did not have a key of: " .. tostring(mapKey)) .. " with type ") .. type(mapKey))
|
|
358
|
+
end
|
|
359
|
+
end
|
|
297
360
|
--- Run the suite of tests that prove that the "deepCopy" helper function works properly.
|
|
298
361
|
--
|
|
299
362
|
-- This function is only useful if you are troubleshooting the "deepCopy" function.
|
|
@@ -313,6 +376,10 @@ function ____exports.runDeepCopyTests(self)
|
|
|
313
376
|
copiedMapHasChildMap(nil)
|
|
314
377
|
copiedDefaultMapHasChildDefaultMap(nil)
|
|
315
378
|
copiedDefaultMapHasBrand(nil)
|
|
379
|
+
copiedSerializedMapHasStringKeyType(nil)
|
|
380
|
+
copiedSerializedMapHasNumberKeyType(nil)
|
|
381
|
+
copiedSerializedDefaultMapHasStringKeyType(nil)
|
|
382
|
+
copiedSerializedDefaultMapHasNumberKeyType(nil)
|
|
316
383
|
log("All deep copy tests passed!")
|
|
317
384
|
end
|
|
318
385
|
return ____exports
|
|
@@ -70,7 +70,7 @@ export declare function getEntities(entityType?: EntityType, variant?: number, s
|
|
|
70
70
|
* This function will only get fields that are equal to booleans, numbers, or strings, as comparing
|
|
71
71
|
* other types is non-trivial.
|
|
72
72
|
*/
|
|
73
|
-
export declare function getEntityFields(entity: Entity):
|
|
73
|
+
export declare function getEntityFields(entity: Entity): LuaMap<string, boolean | number | string>;
|
|
74
74
|
/** Helper function to return a string containing the entity's type, variant, and sub-type. */
|
|
75
75
|
export declare function getEntityID(entity: Entity): string;
|
|
76
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,GAAG,CAcL;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,OAAO,CAGT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EACpD,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,CAAC,EAAE,GACZ,CAAC,GAAG,SAAS,CAaf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,MAAM,EAAE,CAMV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb,
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,GAAG,CAcL;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,OAAO,CAGT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EACpD,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,CAAC,EAAE,GACZ,CAAC,GAAG,SAAS,CAaf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,MAAM,EAAE,CAMV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CA8B3C;AAwBD,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,GACX,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EACxD,WAAW,EAAE,CAAC,EAAE,EAChB,WAAW,EAAE,CAAC,EAAE,GACf,CAAC,EAAE,CAWL;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAExE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAwBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,uBAAuB,EAAE,MAAM,GAC9B,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAmBpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,aAAa,SAAK,EAClB,aAAa,SAAK,EAClB,GAAG,GAAE,GAAG,GAAG,SAAqB,GAC/B,MAAM,EAAE,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,QAAQ,EAAE,CAAC,EAAE,EACb,GAAG,CAAC,EAAE,GAAG,GACR,CAAC,EAAE,CAgBL;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASzD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,GAC5C,MAAM,CAsCR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,MAAM,CAUR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/functions/input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,UAAU,EAEV,QAAQ,EACT,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/functions/input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,UAAU,EAEV,QAAQ,EACT,MAAM,8BAA8B,CAAC;AAsCtC,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAOjE;AAED,wBAAgB,cAAc,IAAI,GAAG,CAAC,YAAY,CAAC,CAElD;AAED,wBAAgB,eAAe,IAAI,GAAG,CAAC,YAAY,CAAC,CAEnD;AAED,gGAAgG;AAChG,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAK7E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,GACzB,OAAO,CAKT;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,6BAA6B,IAAI,OAAO,CAIvD;AAED,wBAAgB,+BAA+B,IAAI,OAAO,CAIzD;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEjE;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAIxD;AAED,wBAAgB,gCAAgC,IAAI,OAAO,CAI1D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE3D"}
|