isaacscript-common 1.2.19 → 1.2.20
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/callbacks/postGridEntity.lua +10 -10
- package/dist/callbacks/postGridEntityCollision.d.ts +1 -0
- package/dist/callbacks/postGridEntityCollision.lua +63 -0
- package/dist/callbacks/subscriptions/postGridEntityCollision.d.ts +2 -0
- package/dist/callbacks/subscriptions/postGridEntityCollision.lua +26 -0
- package/dist/functions/gridEntity.d.ts +1 -0
- package/dist/functions/gridEntity.lua +26 -2
- package/dist/functions/math.d.ts +9 -0
- package/dist/functions/math.lua +16 -0
- package/dist/types/CallbackParametersCustom.d.ts +5 -0
- package/dist/types/ModCallbacksCustom.d.ts +2 -1
- package/dist/types/ModCallbacksCustom.lua +2 -0
- package/dist/types/ModUpgraded.lua +8 -0
- package/dist/upgradeMod.lua +3 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ local Map = ____lualib.Map
|
|
|
4
4
|
local __TS__New = ____lualib.__TS__New
|
|
5
5
|
local __TS__Iterator = ____lualib.__TS__Iterator
|
|
6
6
|
local ____exports = {}
|
|
7
|
-
local hasSubscriptions, postUpdate, checkGridEntityRemoved, postNewRoom,
|
|
7
|
+
local hasSubscriptions, postUpdate, checkNewGridEntity, checkGridEntityRemoved, postNewRoom, v
|
|
8
8
|
local ____exports = require("features.saveDataManager.exports")
|
|
9
9
|
local saveDataManager = ____exports.saveDataManager
|
|
10
10
|
local ____gridEntity = require("functions.gridEntity")
|
|
@@ -31,6 +31,15 @@ function postUpdate(self)
|
|
|
31
31
|
end
|
|
32
32
|
checkGridEntityRemoved(nil)
|
|
33
33
|
end
|
|
34
|
+
function checkNewGridEntity(self, gridEntity)
|
|
35
|
+
local gridIndex = gridEntity:GetGridIndex()
|
|
36
|
+
local gridEntityType = gridEntity:GetType()
|
|
37
|
+
local storedGridEntityType = v.room.initializedGridEntities:get(gridIndex)
|
|
38
|
+
if storedGridEntityType ~= gridEntityType then
|
|
39
|
+
v.room.initializedGridEntities:set(gridIndex, gridEntityType)
|
|
40
|
+
postGridEntityInitFire(nil, gridEntity)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
34
43
|
function checkGridEntityRemoved(self)
|
|
35
44
|
local game = Game()
|
|
36
45
|
local room = game:GetRoom()
|
|
@@ -52,15 +61,6 @@ function postNewRoom(self)
|
|
|
52
61
|
checkNewGridEntity(nil, gridEntity)
|
|
53
62
|
end
|
|
54
63
|
end
|
|
55
|
-
function checkNewGridEntity(self, gridEntity)
|
|
56
|
-
local gridIndex = gridEntity:GetGridIndex()
|
|
57
|
-
local gridEntityType = gridEntity:GetType()
|
|
58
|
-
local storedGridEntityType = v.room.initializedGridEntities:get(gridIndex)
|
|
59
|
-
if storedGridEntityType ~= gridEntityType then
|
|
60
|
-
v.room.initializedGridEntities:set(gridIndex, gridEntityType)
|
|
61
|
-
postGridEntityInitFire(nil, gridEntity)
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
64
|
v = {room = {initializedGridEntities = __TS__New(Map)}}
|
|
65
65
|
function ____exports.postGridEntityCallbacksInit(self, mod)
|
|
66
66
|
saveDataManager(nil, "postGridEntity", v, hasSubscriptions)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
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 __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
7
|
+
local __TS__Iterator = ____lualib.__TS__Iterator
|
|
8
|
+
local ____exports = {}
|
|
9
|
+
local hasSubscriptions, postUpdate, v
|
|
10
|
+
local ____exports = require("features.saveDataManager.exports")
|
|
11
|
+
local saveDataManager = ____exports.saveDataManager
|
|
12
|
+
local ____gridEntity = require("functions.gridEntity")
|
|
13
|
+
local getCollidingEntitiesWithGridEntity = ____gridEntity.getCollidingEntitiesWithGridEntity
|
|
14
|
+
local getGridEntities = ____gridEntity.getGridEntities
|
|
15
|
+
local ____postGridEntityCollision = require("callbacks.subscriptions.postGridEntityCollision")
|
|
16
|
+
local postGridEntityCollisionFire = ____postGridEntityCollision.postGridEntityCollisionFire
|
|
17
|
+
local postGridEntityCollisionHasSubscriptions = ____postGridEntityCollision.postGridEntityCollisionHasSubscriptions
|
|
18
|
+
function hasSubscriptions(self)
|
|
19
|
+
return postGridEntityCollisionHasSubscriptions(nil)
|
|
20
|
+
end
|
|
21
|
+
function postUpdate(self)
|
|
22
|
+
if not hasSubscriptions(nil) then
|
|
23
|
+
return
|
|
24
|
+
end
|
|
25
|
+
for ____, gridEntity in ipairs(getGridEntities(nil)) do
|
|
26
|
+
do
|
|
27
|
+
if gridEntity.CollisionClass == GridCollisionClass.COLLISION_NONE then
|
|
28
|
+
goto __continue6
|
|
29
|
+
end
|
|
30
|
+
local gridEntityPtrHash = GetPtrHash(gridEntity)
|
|
31
|
+
local oldCollidingEntities = v.room.collidingEntitiesMap:get(gridEntityPtrHash)
|
|
32
|
+
if oldCollidingEntities == nil then
|
|
33
|
+
oldCollidingEntities = __TS__New(Set)
|
|
34
|
+
v.room.collidingEntitiesMap:set(gridEntityPtrHash, oldCollidingEntities)
|
|
35
|
+
end
|
|
36
|
+
local collidingEntities = getCollidingEntitiesWithGridEntity(nil, gridEntity)
|
|
37
|
+
for ____, entity in ipairs(collidingEntities) do
|
|
38
|
+
local entityPtrHash = GetPtrHash(entity)
|
|
39
|
+
if not oldCollidingEntities:has(entityPtrHash) then
|
|
40
|
+
oldCollidingEntities:add(entityPtrHash)
|
|
41
|
+
postGridEntityCollisionFire(nil, gridEntity, entity)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
local collidingEntitiesPtrHashes = __TS__ArrayMap(
|
|
45
|
+
collidingEntities,
|
|
46
|
+
function(____, entity) return GetPtrHash(entity) end
|
|
47
|
+
)
|
|
48
|
+
local collidingEntitiesPtrHashSet = __TS__New(Set, collidingEntitiesPtrHashes)
|
|
49
|
+
for ____, oldCollidingEntityPtrHash in __TS__Iterator(oldCollidingEntities:values()) do
|
|
50
|
+
if not collidingEntitiesPtrHashSet:has(oldCollidingEntityPtrHash) then
|
|
51
|
+
oldCollidingEntities:delete(oldCollidingEntityPtrHash)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
::__continue6::
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
v = {room = {collidingEntitiesMap = __TS__New(Map)}}
|
|
59
|
+
function ____exports.postGridEntityCollisionInit(self, mod)
|
|
60
|
+
saveDataManager(nil, "postGridEntity", v, hasSubscriptions)
|
|
61
|
+
mod:AddCallback(ModCallbacks.MC_POST_UPDATE, postUpdate)
|
|
62
|
+
end
|
|
63
|
+
return ____exports
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
|
+
local ____lualib = require("lualib_bundle")
|
|
3
|
+
local __TS__ArrayPush = ____lualib.__TS__ArrayPush
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local subscriptions = {}
|
|
6
|
+
function ____exports.postGridEntityCollisionHasSubscriptions(self)
|
|
7
|
+
return #subscriptions > 0
|
|
8
|
+
end
|
|
9
|
+
function ____exports.postGridEntityCollisionRegister(self, callback, gridEntityType)
|
|
10
|
+
__TS__ArrayPush(subscriptions, {callback, gridEntityType})
|
|
11
|
+
end
|
|
12
|
+
function ____exports.postGridEntityCollisionFire(self, gridEntity, entity)
|
|
13
|
+
local gridEntityType = gridEntity:GetType()
|
|
14
|
+
for ____, ____value in ipairs(subscriptions) do
|
|
15
|
+
local callback = ____value[1]
|
|
16
|
+
local callbackGridEntityType = ____value[2]
|
|
17
|
+
do
|
|
18
|
+
if callbackGridEntityType ~= nil and callbackGridEntityType ~= gridEntityType then
|
|
19
|
+
goto __continue5
|
|
20
|
+
end
|
|
21
|
+
callback(nil, gridEntity, entity)
|
|
22
|
+
end
|
|
23
|
+
::__continue5::
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
return ____exports
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* 1000.0 in a room XML file, but `GridEntityType.GRID_ROCK` is equal to 2.
|
|
6
6
|
*/
|
|
7
7
|
export declare function convertXMLGridEntityType(gridEntityXMLType: int, gridEntityXMLVariant: int): [int, int] | undefined;
|
|
8
|
+
export declare function getCollidingEntitiesWithGridEntity(gridEntity: GridEntity): Entity[];
|
|
8
9
|
/**
|
|
9
10
|
* Helper function to get every grid entity in the current room. Use it with no arguments to get
|
|
10
11
|
* every grid entity, or specify a variadic amount of arguments to match specific grid entity types.
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
|
2
2
|
local ____lualib = require("lualib_bundle")
|
|
3
3
|
local Map = ____lualib.Map
|
|
4
|
+
local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
|
|
4
5
|
local Set = ____lualib.Set
|
|
5
6
|
local __TS__New = ____lualib.__TS__New
|
|
6
7
|
local __TS__ArrayPush = ____lualib.__TS__ArrayPush
|
|
7
8
|
local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
|
|
8
9
|
local ____exports = {}
|
|
10
|
+
local ____constants = require("constants")
|
|
11
|
+
local DISTANCE_OF_GRID_TILE = ____constants.DISTANCE_OF_GRID_TILE
|
|
9
12
|
local ____gridEntityXMLMap = require("maps.gridEntityXMLMap")
|
|
10
13
|
local GRID_ENTITY_XML_MAP = ____gridEntityXMLMap.GRID_ENTITY_XML_MAP
|
|
11
14
|
local ____roomShapeToTopLeftWallGridIndexMap = require("maps.roomShapeToTopLeftWallGridIndexMap")
|
|
12
15
|
local DEFAULT_TOP_LEFT_WALL_GRID_INDEX = ____roomShapeToTopLeftWallGridIndexMap.DEFAULT_TOP_LEFT_WALL_GRID_INDEX
|
|
13
16
|
local ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP = ____roomShapeToTopLeftWallGridIndexMap.ROOM_SHAPE_TO_TOP_LEFT_WALL_GRID_INDEX_MAP
|
|
17
|
+
local ____math = require("functions.math")
|
|
18
|
+
local isCircleIntersectingRectangle = ____math.isCircleIntersectingRectangle
|
|
14
19
|
local ____rooms = require("functions.rooms")
|
|
15
20
|
local roomUpdateSafe = ____rooms.roomUpdateSafe
|
|
16
21
|
local ____sprite = require("functions.sprite")
|
|
@@ -68,6 +73,25 @@ function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntit
|
|
|
68
73
|
end
|
|
69
74
|
return {gridEntityType, gridEntityVariant}
|
|
70
75
|
end
|
|
76
|
+
function ____exports.getCollidingEntitiesWithGridEntity(self, gridEntity)
|
|
77
|
+
local gridEntityCollisionTopLeft = Vector(gridEntity.Position.X - DISTANCE_OF_GRID_TILE / 2, gridEntity.Position.Y - DISTANCE_OF_GRID_TILE / 2)
|
|
78
|
+
local gridEntityCollisionBottomRight = Vector(gridEntity.Position.X + DISTANCE_OF_GRID_TILE / 2, gridEntity.Position.Y + DISTANCE_OF_GRID_TILE / 2)
|
|
79
|
+
local closeEntities = Isaac.FindInRadius(gridEntity.Position, DISTANCE_OF_GRID_TILE * 2)
|
|
80
|
+
local closeEntitiesThatCollideWithGrid = __TS__ArrayFilter(
|
|
81
|
+
closeEntities,
|
|
82
|
+
function(____, entity) return entity:CollidesWithGrid() end
|
|
83
|
+
)
|
|
84
|
+
return __TS__ArrayFilter(
|
|
85
|
+
closeEntitiesThatCollideWithGrid,
|
|
86
|
+
function(____, entity) return isCircleIntersectingRectangle(
|
|
87
|
+
nil,
|
|
88
|
+
entity.Position,
|
|
89
|
+
entity.Size,
|
|
90
|
+
gridEntityCollisionTopLeft,
|
|
91
|
+
gridEntityCollisionBottomRight
|
|
92
|
+
) end
|
|
93
|
+
)
|
|
94
|
+
end
|
|
71
95
|
function ____exports.getGridEntities(self, ...)
|
|
72
96
|
local gridEntityTypes = {...}
|
|
73
97
|
local game = Game()
|
|
@@ -81,7 +105,7 @@ function ____exports.getGridEntities(self, ...)
|
|
|
81
105
|
do
|
|
82
106
|
local gridEntity = room:GetGridEntity(gridIndex)
|
|
83
107
|
if gridEntity == nil then
|
|
84
|
-
goto
|
|
108
|
+
goto __continue10
|
|
85
109
|
end
|
|
86
110
|
if #gridEntityTypes == 0 then
|
|
87
111
|
__TS__ArrayPush(gridEntities, gridEntity)
|
|
@@ -92,7 +116,7 @@ function ____exports.getGridEntities(self, ...)
|
|
|
92
116
|
end
|
|
93
117
|
end
|
|
94
118
|
end
|
|
95
|
-
::
|
|
119
|
+
::__continue10::
|
|
96
120
|
gridIndex = gridIndex + 1
|
|
97
121
|
end
|
|
98
122
|
end
|
package/dist/functions/math.d.ts
CHANGED
|
@@ -13,6 +13,15 @@ export declare function getAngleDifference(angle1: float, angle2: float): float;
|
|
|
13
13
|
* this can be optionally changed by specifying this argument.
|
|
14
14
|
*/
|
|
15
15
|
export declare function getCircleDiscretizedPoints(centerPos: Vector, radius: float, numPoints: int, xMultiplier?: number, yMultiplier?: number, initialDirection?: Direction): Vector[];
|
|
16
|
+
/**
|
|
17
|
+
* Helper function to check if a given position is within a given rectangle. This is an inclusive
|
|
18
|
+
* check, meaning that it will return true if the position is on the border of the rectangle.
|
|
19
|
+
*/
|
|
20
|
+
export declare function inRectangle(position: Vector, topLeft: Vector, bottomRight: Vector): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* From: https://www.geeksforgeeks.org/check-if-any-point-overlaps-the-given-circle-and-rectangle/
|
|
23
|
+
*/
|
|
24
|
+
export declare function isCircleIntersectingRectangle(circleCenter: Vector, circleRadius: float, rectangleTopLeft: Vector, rectangleBottomRight: Vector): boolean;
|
|
16
25
|
export declare function isEven(num: int): boolean;
|
|
17
26
|
export declare function isOdd(num: int): boolean;
|
|
18
27
|
export declare function lerp(a: number, b: number, pos: float): number;
|
package/dist/functions/math.lua
CHANGED
|
@@ -75,6 +75,22 @@ function ____exports.getCircleDiscretizedPoints(self, centerPos, radius, numPoin
|
|
|
75
75
|
end
|
|
76
76
|
return positions
|
|
77
77
|
end
|
|
78
|
+
function ____exports.inRectangle(self, position, topLeft, bottomRight)
|
|
79
|
+
return position.X >= topLeft.X and position.X <= bottomRight.X and position.Y <= topLeft.Y and position.Y >= bottomRight.Y
|
|
80
|
+
end
|
|
81
|
+
function ____exports.isCircleIntersectingRectangle(self, circleCenter, circleRadius, rectangleTopLeft, rectangleBottomRight)
|
|
82
|
+
local nearestX = math.max(
|
|
83
|
+
rectangleTopLeft.X,
|
|
84
|
+
math.min(circleCenter.X, rectangleBottomRight.X)
|
|
85
|
+
)
|
|
86
|
+
local nearestY = math.max(
|
|
87
|
+
rectangleTopLeft.Y,
|
|
88
|
+
math.min(circleCenter.Y, rectangleBottomRight.Y)
|
|
89
|
+
)
|
|
90
|
+
local nearestPointToCircleOnRectangle = Vector(nearestX, nearestY)
|
|
91
|
+
local distanceToCenterOfCircle = nearestPointToCircleOnRectangle:Distance(circleCenter)
|
|
92
|
+
return distanceToCenterOfCircle <= circleRadius
|
|
93
|
+
end
|
|
78
94
|
function ____exports.isEven(self, num)
|
|
79
95
|
return num & 1 == 0
|
|
80
96
|
end
|
|
@@ -9,6 +9,7 @@ import { PostFirstEsauJrCallbackType } from "../callbacks/subscriptions/postFirs
|
|
|
9
9
|
import { PostFirstFlipCallbackType } from "../callbacks/subscriptions/postFirstFlip";
|
|
10
10
|
import { PostFlipCallbackType } from "../callbacks/subscriptions/postFlip";
|
|
11
11
|
import { PostGameStartedReorderedCallbackType } from "../callbacks/subscriptions/postGameStartedReordered";
|
|
12
|
+
import { PostGridEntityCollisionCallbackType } from "../callbacks/subscriptions/postGridEntityCollision";
|
|
12
13
|
import { PostGridEntityInitCallbackType } from "../callbacks/subscriptions/postGridEntityInit";
|
|
13
14
|
import { PostGridEntityRemoveCallbackType } from "../callbacks/subscriptions/postGridEntityRemove";
|
|
14
15
|
import { PostGridEntityUpdateCallbackType } from "../callbacks/subscriptions/postGridEntityUpdate";
|
|
@@ -207,4 +208,8 @@ export interface CallbackParametersCustom {
|
|
|
207
208
|
callback: PostGridEntityRemoveCallbackType,
|
|
208
209
|
gridEntityType?: GridEntityType
|
|
209
210
|
];
|
|
211
|
+
[ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION]: [
|
|
212
|
+
callback: PostGridEntityCollisionCallbackType,
|
|
213
|
+
gridEntityType?: GridEntityType
|
|
214
|
+
];
|
|
210
215
|
}
|
|
@@ -91,4 +91,6 @@ ____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_UPDATE = 43
|
|
|
91
91
|
____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_UPDATE] = "MC_POST_GRID_ENTITY_UPDATE"
|
|
92
92
|
____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_REMOVE = 44
|
|
93
93
|
____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_REMOVE] = "MC_POST_GRID_ENTITY_REMOVE"
|
|
94
|
+
____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION = 45
|
|
95
|
+
____exports.ModCallbacksCustom[____exports.ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION] = "MC_POST_GRID_ENTITY_COLLISION"
|
|
94
96
|
return ____exports
|
|
@@ -25,6 +25,8 @@ local ____postFlip = require("callbacks.subscriptions.postFlip")
|
|
|
25
25
|
local postFlipRegister = ____postFlip.postFlipRegister
|
|
26
26
|
local ____postGameStartedReordered = require("callbacks.subscriptions.postGameStartedReordered")
|
|
27
27
|
local postGameStartedReorderedRegister = ____postGameStartedReordered.postGameStartedReorderedRegister
|
|
28
|
+
local ____postGridEntityCollision = require("callbacks.subscriptions.postGridEntityCollision")
|
|
29
|
+
local postGridEntityCollisionRegister = ____postGridEntityCollision.postGridEntityCollisionRegister
|
|
28
30
|
local ____postGridEntityInit = require("callbacks.subscriptions.postGridEntityInit")
|
|
29
31
|
local postGridEntityInitRegister = ____postGridEntityInit.postGridEntityInitRegister
|
|
30
32
|
local ____postGridEntityRemove = require("callbacks.subscriptions.postGridEntityRemove")
|
|
@@ -384,6 +386,12 @@ function getCallbackRegisterFunction(self, callbackID)
|
|
|
384
386
|
return postGridEntityRemoveRegister
|
|
385
387
|
end
|
|
386
388
|
end
|
|
389
|
+
____cond19 = ____cond19 or ____switch19 == ModCallbacksCustom.MC_POST_GRID_ENTITY_COLLISION
|
|
390
|
+
if ____cond19 then
|
|
391
|
+
do
|
|
392
|
+
return postGridEntityCollisionRegister
|
|
393
|
+
end
|
|
394
|
+
end
|
|
387
395
|
do
|
|
388
396
|
do
|
|
389
397
|
ensureAllCases(nil, callbackID)
|
package/dist/upgradeMod.lua
CHANGED
|
@@ -21,6 +21,8 @@ local ____postFlip = require("callbacks.postFlip")
|
|
|
21
21
|
local postFlipCallbacksInit = ____postFlip.postFlipCallbacksInit
|
|
22
22
|
local ____postGridEntity = require("callbacks.postGridEntity")
|
|
23
23
|
local postGridEntityCallbacksInit = ____postGridEntity.postGridEntityCallbacksInit
|
|
24
|
+
local ____postGridEntityCollision = require("callbacks.postGridEntityCollision")
|
|
25
|
+
local postGridEntityCollisionInit = ____postGridEntityCollision.postGridEntityCollisionInit
|
|
24
26
|
local ____postKnifeInitLate = require("callbacks.postKnifeInitLate")
|
|
25
27
|
local postKnifeInitLateCallbackInit = ____postKnifeInitLate.postKnifeInitLateCallbackInit
|
|
26
28
|
local ____postLaserInitLate = require("callbacks.postLaserInitLate")
|
|
@@ -122,6 +124,7 @@ function initCustomCallbacks(self, mod)
|
|
|
122
124
|
postSlotInitUpdateCallbacksInit(nil, mod)
|
|
123
125
|
postSlotRenderBrokenCallbacksInit(nil, mod)
|
|
124
126
|
postGridEntityCallbacksInit(nil, mod)
|
|
127
|
+
postGridEntityCollisionInit(nil, mod)
|
|
125
128
|
end
|
|
126
129
|
function initFeatures(self, mod)
|
|
127
130
|
deployJSONRoomInit(nil, mod)
|