@ecsframework/core 0.1.0 → 0.1.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.
@@ -1,4 +1,4 @@
1
- export declare const INJECT_TYPE_KEY = "Inject-type";
1
+ export declare const INJECT_TYPE_KEY = "INJECT_TYPE";
2
2
  export declare const ObjectWithInjectTypes: Map<string, object[]>;
3
3
  /**
4
4
  * Inject dependency.
@@ -4,7 +4,7 @@ local _core = TS.import(script, TS.getModule(script, "@flamework", "core").out)
4
4
  local Modding = _core.Modding
5
5
  local Reflect = _core.Reflect
6
6
  local t = TS.import(script, TS.getModule(script, "@rbxts", "t").lib.ts).t
7
- local INJECT_TYPE_KEY = "Inject-type"
7
+ local INJECT_TYPE_KEY = "INJECT_TYPE"
8
8
  local ObjectWithInjectTypes = {}
9
9
  --[[
10
10
  *
@@ -1,11 +1,8 @@
1
1
  import { Constructor } from "@flamework/core/out/utility";
2
2
  import { World } from "@rbxts/jecs";
3
3
  import { DependenciesContainer } from "../dependencies-container";
4
- import { Tag } from "../flamecs";
5
- export interface TaggedOptions<T> {
4
+ export interface TaggedInstance<T = {}> {
6
5
  Tag: string;
7
6
  OnCreateData: (instance: Instance, world: World, container: DependenciesContainer) => Partial<T>;
8
7
  }
9
- export interface TaggedInstance extends Tag {
10
- }
11
- export declare function Tagged<T>(options: TaggedOptions<T>): (target: Constructor<T>) => void;
8
+ export declare function Tagged<T>(options: TaggedInstance<T>): (target: Constructor<T>) => void;
@@ -1,9 +1,12 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
- local DefineClassComponentMeta = TS.import(script, script.Parent.Parent, "utilities").DefineClassComponentMeta
3
+ local _utilities = TS.import(script, script.Parent.Parent, "utilities")
4
+ local DefineClassComponentMeta = _utilities.DefineClassComponentMeta
5
+ local GetIdentifier = _utilities.GetIdentifier
6
+ local Flamework = TS.import(script, TS.getModule(script, "@flamework", "core").out).Flamework
4
7
  local function Tagged(options)
5
8
  return function(target)
6
- DefineClassComponentMeta(target, options, "$ecsframework:core:framework/decorators/tagged@TaggedInstance")
9
+ DefineClassComponentMeta(options, Flamework.id(), GetIdentifier(target))
7
10
  end
8
11
  end
9
12
  return {
@@ -1,8 +1,10 @@
1
1
  import { Modding } from "@flamework/core";
2
2
  import { Constructor } from "@flamework/core/out/utility";
3
3
  export declare class DependenciesContainer {
4
+ private readonly parentContainer?;
4
5
  private factories;
5
6
  private instances;
7
+ constructor(parentContainer?: DependenciesContainer | undefined);
6
8
  private wrapConstructorInFactory;
7
9
  /** @metadata macro */
8
10
  Register<T extends object>(ctor: Constructor<T>, spec?: Modding.Intrinsic<"symbol-id", [T], string>): void;
@@ -17,7 +17,8 @@ do
17
17
  local self = setmetatable({}, DependenciesContainer)
18
18
  return self:constructor(...) or self
19
19
  end
20
- function DependenciesContainer:constructor()
20
+ function DependenciesContainer:constructor(parentContainer)
21
+ self.parentContainer = parentContainer
21
22
  self.factories = {}
22
23
  self.instances = {}
23
24
  end
@@ -38,8 +39,6 @@ do
38
39
  end
39
40
  end
40
41
  function DependenciesContainer:Register(factoryOrCtor, spec)
41
- local _spec = spec
42
- assert(_spec ~= "" and _spec)
43
42
  local _factoryOrCtor = factoryOrCtor
44
43
  local factory = if type(_factoryOrCtor) == "function" then factoryOrCtor else self:wrapConstructorInFactory(factoryOrCtor)
45
44
  local _factories = self.factories
@@ -47,11 +46,9 @@ do
47
46
  _factories[_arg0] = factory
48
47
  end
49
48
  function DependenciesContainer:Unregister(spec)
50
- local _spec = spec
51
- assert(_spec ~= "" and _spec)
52
49
  local _factories = self.factories
53
- local _spec_1 = spec
54
- _factories[_spec_1] = nil
50
+ local _spec = spec
51
+ _factories[_spec] = nil
55
52
  end
56
53
  function DependenciesContainer:resolve(spec, context)
57
54
  local _factories = self.factories
@@ -60,10 +57,18 @@ do
60
57
  if _result ~= nil then
61
58
  _result = _result(context)
62
59
  end
63
- local result = _result
64
- local _result_1 = result
65
- local _arg1 = `No factory for {spec}`
66
- assert(_result_1 ~= 0 and _result_1 == _result_1 and _result_1 ~= "" and _result_1, _arg1)
60
+ local _condition = _result
61
+ if _condition == nil then
62
+ local _result_1 = self.parentContainer
63
+ if _result_1 ~= nil then
64
+ _result_1 = _result_1:resolve(spec, context)
65
+ end
66
+ _condition = _result_1
67
+ end
68
+ local result = _condition
69
+ if result == nil then
70
+ error(`No factory for {spec}`)
71
+ end
67
72
  return result
68
73
  end
69
74
  function DependenciesContainer:Resolve(context, spec)
@@ -20,6 +20,7 @@ export declare class ECSFramework {
20
20
  constructor(Container?: DependenciesContainer);
21
21
  GetAllComponents(): Constructor[];
22
22
  GetComponentKeyByName(name: string): string | undefined;
23
+ private getSystemLifecycleMethod;
23
24
  private initSystems;
24
25
  private invokeStartup;
25
26
  private initUpdate;
@@ -5,6 +5,7 @@ local Modding = _core.Modding
5
5
  local Reflect = _core.Reflect
6
6
  local world = TS.import(script, TS.getModule(script, "@rbxts", "jecs").jecs).world
7
7
  local RunService = TS.import(script, TS.getModule(script, "@rbxts", "services")).RunService
8
+ local BaseSystem = TS.import(script, script, "base-system").BaseSystem
8
9
  local DependenciesContainer = TS.import(script, script, "dependencies-container").DependenciesContainer
9
10
  local start = TS.import(script, script, "flamecs").start
10
11
  local _registry = TS.import(script, script, "flamecs", "registry")
@@ -15,7 +16,7 @@ local scheduleComponent = _registry.scheduleComponent
15
16
  local _utilities = TS.import(script, script, "utilities")
16
17
  local ApplyClassComponentMeta = _utilities.ApplyClassComponentMeta
17
18
  local GetIdentifier = _utilities.GetIdentifier
18
- local function getCachedMethod(instance, methodName)
19
+ local function getMethodCallback(instance, methodName)
19
20
  return instance[methodName]
20
21
  end
21
22
  local ECSFramework
@@ -128,6 +129,14 @@ do
128
129
  local _name = name
129
130
  return _componentsByName[_name]
130
131
  end
132
+ function ECSFramework:getSystemLifecycleMethod(system, name)
133
+ local method = getMethodCallback(system, name)
134
+ local originalMethod = getMethodCallback(BaseSystem, name)
135
+ if originalMethod == method then
136
+ return nil
137
+ end
138
+ return method
139
+ end
131
140
  function ECSFramework:initSystems()
132
141
  local systems = Reflect.getMetadata(self.baseSystemCtor, "ECSFramework:Systems") or {}
133
142
  local _exp = self.Container:InstantiateGroup(systems, true)
@@ -140,9 +149,9 @@ do
140
149
  end
141
150
  return {
142
151
  Instance = instance,
143
- OnStartup = getCachedMethod(instance, "OnStartup"),
144
- OnEffect = getCachedMethod(instance, "OnEffect"),
145
- OnUpdate = getCachedMethod(instance, "OnUpdate"),
152
+ OnStartup = self:getSystemLifecycleMethod(instance, "OnStartup"),
153
+ OnEffect = self:getSystemLifecycleMethod(instance, "OnEffect"),
154
+ OnUpdate = self:getSystemLifecycleMethod(instance, "OnUpdate"),
146
155
  Options = options,
147
156
  }
148
157
  end
@@ -184,6 +193,9 @@ do
184
193
  local _exp = self.systems
185
194
  -- ▼ ReadonlyArray.forEach ▼
186
195
  local _callback = function(system)
196
+ if system.OnStartup == nil then
197
+ return nil
198
+ end
187
199
  start(system.Instance.__hookStates, system.Instance, self.world, function()
188
200
  return system.OnStartup(system.Instance)
189
201
  end)
@@ -194,8 +206,23 @@ do
194
206
  -- ▲ ReadonlyArray.forEach ▲
195
207
  end
196
208
  function ECSFramework:initUpdate()
209
+ local _exp = self.systems
210
+ -- ▼ ReadonlyArray.filter ▼
211
+ local _newValue = {}
212
+ local _callback = function(system)
213
+ return system.OnUpdate ~= nil
214
+ end
215
+ local _length = 0
216
+ for _k, _v in _exp do
217
+ if _callback(_v, _k - 1, _exp) == true then
218
+ _length += 1
219
+ _newValue[_length] = _v
220
+ end
221
+ end
222
+ -- ▲ ReadonlyArray.filter ▲
223
+ local systems = _newValue
197
224
  RunService.Heartbeat:Connect(function(dt)
198
- for _, system in self.systems do
225
+ for _, system in systems do
199
226
  start(system.Instance.__hookStates, system.Instance, self.world, function()
200
227
  return system.OnUpdate(system.Instance, dt)
201
228
  end)
@@ -211,7 +238,7 @@ do
211
238
  error(`Component {component} does not have a runtime id.`)
212
239
  end
213
240
  reserve(self.world, runtimeId, GetIdentifier(component))
214
- ApplyClassComponentMeta(component, runtimeId)
241
+ ApplyClassComponentMeta(runtimeId, GetIdentifier(component))
215
242
  end
216
243
  for _k, _v in _exp do
217
244
  _callback(_v, _k - 1, _exp)
@@ -229,21 +256,36 @@ do
229
256
  -- ▲ ReadonlySet.forEach ▲
230
257
  end
231
258
  function ECSFramework:initEvents()
259
+ local _exp = self.systems
260
+ -- ▼ ReadonlyArray.filter ▼
261
+ local _newValue = {}
262
+ local _callback = function(system)
263
+ return system.OnEffect ~= nil
264
+ end
265
+ local _length = 0
266
+ for _k, _v in _exp do
267
+ if _callback(_v, _k - 1, _exp) == true then
268
+ _length += 1
269
+ _newValue[_length] = _v
270
+ end
271
+ end
272
+ -- ▲ ReadonlyArray.filter ▲
273
+ local systems = _newValue
232
274
  RunService.Heartbeat:Connect(function()
233
275
  if not self.canCallEffect then
234
276
  return nil
235
277
  end
236
278
  self.canCallEffect = false
237
- for _, system in self.systems do
279
+ for _, system in systems do
238
280
  start(system.Instance.__hookStates, system.Instance, self.world, function()
239
281
  return system.OnEffect(system.Instance)
240
282
  end)
241
283
  end
242
284
  end)
243
- local _exp = self:GetAllComponents()
285
+ local _exp_1 = self:GetAllComponents()
244
286
  -- ▼ ReadonlyArray.map ▼
245
- local _newValue = table.create(#_exp)
246
- local _callback = function(obj)
287
+ local _newValue_1 = table.create(#_exp_1)
288
+ local _callback_1 = function(obj)
247
289
  local _condition = Reflect.getOwnMetadata(obj, "ECSFramework:Unaffectable")
248
290
  if _condition == nil then
249
291
  _condition = false
@@ -252,21 +294,21 @@ do
252
294
  local id = Reflect.getOwnMetadata(obj, "ECSFramework:Id")
253
295
  return if not unaffectable then id else nil
254
296
  end
255
- for _k, _v in _exp do
256
- _newValue[_k] = _callback(_v, _k - 1, _exp)
297
+ for _k, _v in _exp_1 do
298
+ _newValue_1[_k] = _callback_1(_v, _k - 1, _exp_1)
257
299
  end
258
300
  -- ▲ ReadonlyArray.map ▲
259
301
  -- ▼ ReadonlyArray.filterUndefined ▼
260
- local _length = 0
261
- for _i in _newValue do
262
- if _i > _length then
263
- _length = _i
302
+ local _length_1 = 0
303
+ for _i in _newValue_1 do
304
+ if _i > _length_1 then
305
+ _length_1 = _i
264
306
  end
265
307
  end
266
308
  local _result = {}
267
309
  local _resultLength = 0
268
- for _i = 1, _length do
269
- local _v = _newValue[_i]
310
+ for _i = 1, _length_1 do
311
+ local _v = _newValue_1[_i]
270
312
  if _v ~= nil then
271
313
  _resultLength += 1
272
314
  _result[_resultLength] = _v
@@ -1,6 +1,6 @@
1
1
  import { Constructor } from "@flamework/core/out/utility";
2
2
  import { Entity } from "./flamecs";
3
- import { ResolveKey } from "./flamecs/registry";
3
+ import { ComponentKey, ResolveKey } from "./flamecs/registry";
4
4
  export declare function GetIdentifier(obj: object, suffix?: string): string;
5
5
  export declare const GetClassName: (object: object) => string;
6
6
  export declare function getDeferredConstructor<T extends object>(ctor: Constructor<T>): readonly [InstanceType<T>, (...args: ConstructorParameters<Constructor<T>>) => void];
@@ -13,5 +13,6 @@ export declare const enum RunContext {
13
13
  export declare const INSTANCE_ATTRIBUTE_ENTITY_ID: string;
14
14
  export declare const SERVER_ATTRIBUTE_ENTITY_ID = "__Server_EntityId";
15
15
  /** @metadata macro */
16
- export declare function DefineClassComponentMeta<T>(ctor: Constructor, value?: unknown, key?: ResolveKey<T>): void;
17
- export declare function ApplyClassComponentMeta(ctor: Constructor, componentRuntimeId: Entity): void;
16
+ export declare function DefineClassComponentMeta<T, ComponentId>(value?: unknown, key?: ResolveKey<T>, componentId?: ComponentKey<ComponentId>): void;
17
+ /** @metadata macro */
18
+ export declare function ApplyClassComponentMeta<ComponentId>(componentRuntimeId: Entity, componentId?: ComponentKey<ComponentId>): void;
@@ -4,6 +4,7 @@ local Reflect = TS.import(script, TS.getModule(script, "@flamework", "core").out
4
4
  local meta = TS.import(script, TS.getModule(script, "@rbxts", "jecs").jecs).meta
5
5
  local getId = TS.import(script, script.Parent, "flamecs", "registry").getId
6
6
  local RunService = TS.import(script, TS.getModule(script, "@rbxts", "services")).RunService
7
+ local BaseSystem = TS.import(script, script.Parent, "base-system").BaseSystem
7
8
  local function GetIdentifier(obj, suffix)
8
9
  if suffix == nil then
9
10
  suffix = ""
@@ -30,31 +31,41 @@ end
30
31
  local INSTANCE_ATTRIBUTE_ENTITY_ID = `__{if RunService:IsServer() then "Server" else "Client"}_EntityId`
31
32
  local SERVER_ATTRIBUTE_ENTITY_ID = `__Server_EntityId`
32
33
  --* @metadata macro
33
- local function DefineClassComponentMeta(ctor, value, key)
34
+ local function DefineClassComponentMeta(value, key, componentId)
34
35
  local metadata = { key, value }
35
- local datas = Reflect.getOwnMetadata(ctor, "ECSFramework:Meta") or {}
36
- local _exp = ctor
37
- local _array = {}
38
- local _length = #_array
39
- local _datasLength = #datas
40
- table.move(datas, 1, _datasLength, _length + 1, _array)
41
- _length += _datasLength
42
- _array[_length + 1] = metadata
43
- Reflect.defineMetadata(_exp, "ECSFramework:Meta", _array)
36
+ local datas = Reflect.getOwnMetadata(BaseSystem, "ECSFramework:Meta") or {}
37
+ Reflect.defineMetadata(BaseSystem, "ECSFramework:Meta", datas)
38
+ local _componentId = componentId
39
+ local _condition = datas[_componentId]
40
+ if _condition == nil then
41
+ _condition = {}
42
+ end
43
+ local componentMetadata = _condition
44
+ table.insert(componentMetadata, metadata)
45
+ local _componentId_1 = componentId
46
+ datas[_componentId_1] = componentMetadata
44
47
  end
45
- local function ApplyClassComponentMeta(ctor, componentRuntimeId)
46
- local datas = Reflect.getOwnMetadata(ctor, "ECSFramework:Meta")
47
- if datas == nil then
48
+ --* @metadata macro
49
+ local function ApplyClassComponentMeta(componentRuntimeId, componentId)
50
+ local datas = Reflect.getOwnMetadata(BaseSystem, "ECSFramework:Meta")
51
+ local _condition = datas == nil
52
+ if not _condition then
53
+ local _componentId = componentId
54
+ _condition = not (datas[_componentId] ~= nil)
55
+ end
56
+ if _condition then
48
57
  return nil
49
58
  end
59
+ local _componentId = componentId
60
+ local _exp = datas[_componentId]
50
61
  -- ▼ ReadonlyArray.forEach ▼
51
62
  local _callback = function(_param)
52
63
  local key = _param[1]
53
64
  local value = _param[2]
54
65
  meta(componentRuntimeId, getId(nil, key), value)
55
66
  end
56
- for _k, _v in datas do
57
- _callback(_v, _k - 1, datas)
67
+ for _k, _v in _exp do
68
+ _callback(_v, _k - 1, _exp)
58
69
  end
59
70
  -- ▲ ReadonlyArray.forEach ▲
60
71
  end
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/@rbxts/t/lib/t.d.ts","../node_modules/@flamework/core/out/modding.d.ts","../node_modules/@flamework/core/out/utility.d.ts","../node_modules/@flamework/core/out/reflect.d.ts","../node_modules/@flamework/core/out/flamework.d.ts","../node_modules/@flamework/core/out/index.d.ts","../node_modules/@rbxts/jecs/jecs.d.ts","../node_modules/@rbxts/services/index.d.ts","../src/framework/flamecs/signal.ts","../src/framework/flamecs/registry.ts","../src/framework/flamecs/query.ts","../src/framework/flamecs/topo.ts","../src/framework/flamecs/index.ts","../src/framework/components/destroyed-component.ts","../src/framework/decorators/inject-type.ts","../src/framework/utilities.ts","../src/framework/hooks/query-change.ts","../node_modules/@rbxts/immut/src/none.d.ts","../node_modules/@rbxts/immut/src/makedraftsafe.d.ts","../node_modules/@rbxts/immut/src/makedraftsafereadonly.d.ts","../node_modules/@rbxts/immut/src/table.d.ts","../node_modules/@rbxts/immut/src/types-internal.d.ts","../node_modules/@rbxts/immut/src/types-external.d.ts","../node_modules/@rbxts/immut/src/index.d.ts","../src/framework/base-system.ts","../src/framework/decorators/component.ts","../src/framework/decorators/system.ts","../src/framework/dependencies-container.ts","../src/framework/index.ts","../src/framework/decorators/unaffectable.ts","../src/framework/decorators/tagged.ts","../src/framework/components/roblox-instance-component.ts","../src/framework/systems/roblox-instance-system.ts","../src/framework/hooks/use-added.ts","../src/framework/hooks/use-removed.ts","../src/framework/hooks/use-changed.ts","../src/framework/hooks/use-event.ts","../src/framework/hooks/use-throttle.ts","../src/index.ts","../node_modules/@rbxts/types/include/generated/enums.d.ts","../node_modules/@rbxts/types/include/generated/none.d.ts","../node_modules/@rbxts/types/include/lua.d.ts","../node_modules/@rbxts/types/include/macro_math.d.ts","../node_modules/@rbxts/types/include/roblox.d.ts","../node_modules/@rbxts/compiler-types/types/array.d.ts","../node_modules/@rbxts/compiler-types/types/callmacros.d.ts","../node_modules/@rbxts/compiler-types/types/iterable.d.ts","../node_modules/@rbxts/compiler-types/types/map.d.ts","../node_modules/@rbxts/compiler-types/types/promise.d.ts","../node_modules/@rbxts/compiler-types/types/set.d.ts","../node_modules/@rbxts/compiler-types/types/string.d.ts","../node_modules/@rbxts/compiler-types/types/symbol.d.ts","../node_modules/@rbxts/compiler-types/types/typeutils.d.ts","../node_modules/@rbxts/compiler-types/types/eslintignore.d.ts","../node_modules/@rbxts/compiler-types/types/core.d.ts","../node_modules/@rbxts/maid/maid.d.ts","../node_modules/@rbxts/object-utils/index.d.ts","../node_modules/@rbxts/signal/index.d.ts"],"fileInfos":[{"version":"429178068cb844a452dad87eb0a7a02466f3509fff9e7f1187fdb0595e66b8df","signature":false},{"version":"f984bb5cbefabad3e6279516673ca0cb2098304225cfe61987f2af81daf3f99a","signature":false},{"version":"5ed7aeb5909b9e1607087690870addc6df2d3d7e6e3e16f389fe21da53915526","signature":false},{"version":"1fe834c2d906a0d49917ce932bb495bfbb58912d49ad6b03f66ae0be14ad9def","signature":false},{"version":"99709374cb8bf64c65dad5350c88a805af91e107545e18af91e4839d4336a441","signature":false},{"version":"a1a226a8d6b1039d7d0613381c2f4dec614c30305cf96ee973cc49973d9745e4","signature":false},{"version":"1f0f6e103444aad5f544988f7a8390e351b30481ce6eac8ad7765911c56dda6e","signature":false},{"version":"9e6c13e0c00f23d1e9a40e4652ef4e604bdf6747feab7d7b7ca66b5d6bcfa330","signature":false},{"version":"cff894ef201eb519e33e59b861ceb3766076e4f371734218d331157a3b307a11","signature":false},{"version":"c152661849a9798330ff9bec808ae42dad0f72126748a0bee62d5fd0cef233b4","signature":false},{"version":"cf75483180e62aa81e878d688cdd40b6d86b120cd84ea4acff735b13c9a81406","signature":false},{"version":"c2b615b7c60bf38930966af14e64cc1ef33ed23ba0a77bdd8ea09fdc4f5e2683","signature":false},{"version":"3800f61fdda8762cb1f766f6badbc560a94853c8c6a21b67d8e0f746eb15926c","signature":false},{"version":"a3adf1732167824c54869e10749d1d5529167a6dbe6fca946e572fb871d40779","signature":false},{"version":"d067a12923433fce55f6f0a6c1d9cb940845dc0f65b1bc9285e83caa622256d5","signature":false},{"version":"21c94b01e64ef3b58e18d8e2d6abc3386d6e1b2e472371d055fa867ab377957f","signature":false},{"version":"f63d7cdd778a7ea18b0d61359ab48023b001d45096dfb759dc09a101c0c41a72","signature":false},{"version":"d9d14150234c32bc0bf772d69182b166d8de600e0e5207924867da19351aca53","signature":false},{"version":"1a73eb921b7aa92d4c2d86ec95a39f5f73cf170b939314394d1b87bd06ae707b","signature":false},{"version":"5e5db3fb2f4f1a4d5276b9ba8f78df1f5f73754eeae5e2c23028f7830a2b66f9","signature":false},{"version":"3a36f6c843d1b4e91f80d6ff3ef8b5e25e1948fae24b8c62631c5df1faf82e41","signature":false},{"version":"dba94b73dbbe23c5066eeafc9f4f8dbf4430a4ab73d2d0d251fe4c1cd029d90b","signature":false},{"version":"564a52d0f974d976d982a2385ac5b353329f2dadab4f7616ee303678a7f64134","signature":false},{"version":"ff329383f830b2ba7578f67a374e2b8077f0b3d7036bf4d1a24edcc95de45c5d","signature":false},{"version":"5f1de0704116b11bd64213287e3378893f4cf542b8ad3c265bae66911d568546","signature":false},{"version":"4d406ad246a632b296d15664e6dce343d733ae17ef88aadbb4d5b3a55adb9373","signature":false},{"version":"afa4bcb1c950e70212cc4ccf83a6096a25bc4280fb03bf94157f2eea853fad15","signature":false},{"version":"046ff693c567404c95951118030bcf6550e7e5f6a6ad202ed38e60b27e62ddd4","signature":false},{"version":"623c6f711678e04a5788dbd00215ab655f61d63ae35c348ddda201282016481e","signature":false},{"version":"531c125862ac8e801bca17eaacc89b21e0d49ef80a76bf7dbd09b006f3e27a4a","signature":false},{"version":"a338d29a41283825142277b6a19d02abaeb3a7e854ebdb9d139d98edaab35cf7","signature":false},{"version":"be4e6ec9fe788d72a70afbdc4c297ea31d842a9ea301559f5ca42cdf13db1383","signature":false},{"version":"d352768126f75caef8abf39fb9880a1f9c991ebcda9cec72bfd9442a6b9dcaac","signature":false},{"version":"8d1395d7fa6381cf71368706cf815130a32895fddd44acb047751072801f90bb","signature":false},{"version":"cdeedec78d8c66fc7522d13e9a2150edda98b18fd3bb95d0f556b6678d0c3739","signature":false},{"version":"7e8bf6cb0c7e13b34a8b40c4b36e633d639b8c4a3b5dec3a55a08bf26caf9a6b","signature":false},{"version":"27b0c41f2f485e59eaaab0d65c192ca022d7fcea87b2c24c9405a91e8b7a4a79","signature":false},{"version":"20d034b52037a7e5b0268fde45a111ffa9f0ae2e04819549d677262711d9dcf2","signature":false},{"version":"96f86d69285464e402bcc634bed6b3b059ff40f1d8ab801cdbdffeddc65212b4","signature":false},{"version":"6eb7fae75c4a1a6bdee1d48700000f43f9d5cff7987f08bd49f21ed1ac0b7c4b","signature":false,"affectsGlobalScope":true},{"version":"3a5626be0c9a1aae6f75d0d38bcea4d070e5d1381a843a9b4eafd3eab6ed7ef7","signature":false,"affectsGlobalScope":true},{"version":"f6c97e5b3403d6f8683372fff53430b8d93728a60f04623bd3de9e470fe71259","signature":false,"affectsGlobalScope":true},{"version":"bfb3f3bd1d89a54d975a7554c8d12209188d7b849d00b9345fd0d41d79858e38","signature":false,"affectsGlobalScope":true},{"version":"22f424c221d557a69d83386550a272558bfef6f81b1dbacd3d35b4651b128d2b","signature":false,"affectsGlobalScope":true},{"version":"d1461f750f98ba938cf3b43f1095774f6007b92a4550bbfde87451dccc32b3bd","signature":false,"affectsGlobalScope":true},{"version":"c30a7a2198451431d80de5f9ba7197a0c8a56d52b29373e7270115776a28f3f3","signature":false,"affectsGlobalScope":true},{"version":"d4d6595aca02f63e2107a842fdd8f79e147fd802acd0e60900f16bee4f861173","signature":false,"affectsGlobalScope":true},{"version":"2070e277f4e874747a7706f000f19f2f512f9829f65f4caf634a908c07f45117","signature":false,"affectsGlobalScope":true},{"version":"7f53343307db666fa6a82bf5165f961d4b70e268ffb7e4e108f06d953c10c679","signature":false,"affectsGlobalScope":true},{"version":"8d10b5097dc2692979a984b4c56deaa0ad77c3a7b036a066ea0a72ec8c514830","signature":false,"affectsGlobalScope":true},{"version":"a252fd9c3a3e55eab45c1c78d376e7a8d82e736d55a5d95a1b285290881d5f88","signature":false,"affectsGlobalScope":true},{"version":"dde6ecc6409a17b372382192ca43c78c52015f34f49547ead38194c63127793a","signature":false,"affectsGlobalScope":true},{"version":"ed7b23f234388de62c9f86bcecd4608a854067fc20f2b4698b9f14ce0d92f4f2","signature":false,"affectsGlobalScope":true},{"version":"85ce7d3110c6652c276ea4d027bc1887176d97a5b7494f288cbbdfb2b48a11ee","signature":false,"affectsGlobalScope":true},{"version":"52535c5f6ea63e76c537e39df77b0720827e3f8d0fac9e2386352f0b6110a211","signature":false,"affectsGlobalScope":true},{"version":"abfe7c34c18ff9a242d5b7e4aba61dfb14b2db55ce5edce1798aaae365fa9cfe","signature":false},{"version":"7b9707d4934d0b63c71920058db2bd6f815b90c4ace1100ea24915c14c9af895","signature":false},{"version":"f73b1d7270a91ed30c71075ee5e0472465931a37ecdb5834c9d8ebe828847b45","signature":false}],"root":[[9,17],[25,39]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"experimentalDecorators":true,"jsx":2,"module":1,"outDir":"./","rootDir":"../src","strict":true,"target":99,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[1,2,3],[2,4,5],[1,3],[3],[2],[44],[44,45,46,47,48,49,50,51,52,53,54],[18,21,22,23],[19,20],[22],[40,44],[41,55],[40,41,42,43,55],[3,6,7,9,10,13,14,15,17,23,24,29],[13],[26],[1,3,6,7,16,25],[1,6],[3,6,16,25],[3,7,13,16,28],[6],[3,6,15,16],[10,11,12],[7,10],[6,7,9],[7,25],[6,7,10,13,14,16],[6,10,13,16],[6,13],[3,6,7,8,9,10,13,16,25,26,27,28],[7,8,10,15,16,25,27,28,31,32],[3,6,7,8,10,13],[13,14,15,16,17,25,26,27,28,29,30,31,32,33,34,35,36,37,38]],"referencedMap":[[5,1],[6,2],[2,3],[4,4],[3,5],[45,6],[46,6],[55,7],[54,6],[47,6],[48,6],[49,6],[50,6],[51,6],[52,6],[53,6],[24,8],[21,9],[23,10],[40,6],[41,11],[42,12],[44,13],[25,14],[14,15],[32,16],[26,17],[15,18],[27,19],[31,20],[30,21],[28,22],[13,23],[11,24],[10,25],[12,26],[17,27],[34,28],[36,28],[37,29],[35,28],[38,29],[29,30],[33,31],[16,32],[39,33]],"semanticDiagnosticsPerFile":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58]},"version":"5.5.3"}
1
+ {"program":{"fileNames":["../node_modules/@rbxts/t/lib/t.d.ts","../node_modules/@flamework/core/out/modding.d.ts","../node_modules/@flamework/core/out/utility.d.ts","../node_modules/@flamework/core/out/reflect.d.ts","../node_modules/@flamework/core/out/flamework.d.ts","../node_modules/@flamework/core/out/index.d.ts","../node_modules/@rbxts/jecs/jecs.d.ts","../node_modules/@rbxts/services/index.d.ts","../src/framework/flamecs/signal.ts","../src/framework/flamecs/registry.ts","../src/framework/flamecs/query.ts","../src/framework/flamecs/topo.ts","../src/framework/flamecs/index.ts","../src/framework/components/destroyed-component.ts","../src/framework/decorators/inject-type.ts","../src/framework/utilities.ts","../src/framework/hooks/query-change.ts","../node_modules/@rbxts/immut/src/none.d.ts","../node_modules/@rbxts/immut/src/makedraftsafe.d.ts","../node_modules/@rbxts/immut/src/makedraftsafereadonly.d.ts","../node_modules/@rbxts/immut/src/table.d.ts","../node_modules/@rbxts/immut/src/types-internal.d.ts","../node_modules/@rbxts/immut/src/types-external.d.ts","../node_modules/@rbxts/immut/src/index.d.ts","../src/framework/base-system.ts","../src/framework/decorators/component.ts","../src/framework/decorators/system.ts","../src/framework/dependencies-container.ts","../src/framework/index.ts","../src/framework/decorators/unaffectable.ts","../src/framework/decorators/tagged.ts","../src/framework/components/roblox-instance-component.ts","../src/framework/systems/roblox-instance-system.ts","../src/framework/hooks/use-added.ts","../src/framework/hooks/use-removed.ts","../src/framework/hooks/use-changed.ts","../src/framework/hooks/use-event.ts","../src/framework/hooks/use-throttle.ts","../src/index.ts","../node_modules/@rbxts/types/include/generated/enums.d.ts","../node_modules/@rbxts/types/include/generated/none.d.ts","../node_modules/@rbxts/types/include/lua.d.ts","../node_modules/@rbxts/types/include/macro_math.d.ts","../node_modules/@rbxts/types/include/roblox.d.ts","../node_modules/@rbxts/compiler-types/types/array.d.ts","../node_modules/@rbxts/compiler-types/types/callmacros.d.ts","../node_modules/@rbxts/compiler-types/types/iterable.d.ts","../node_modules/@rbxts/compiler-types/types/map.d.ts","../node_modules/@rbxts/compiler-types/types/promise.d.ts","../node_modules/@rbxts/compiler-types/types/set.d.ts","../node_modules/@rbxts/compiler-types/types/string.d.ts","../node_modules/@rbxts/compiler-types/types/symbol.d.ts","../node_modules/@rbxts/compiler-types/types/typeutils.d.ts","../node_modules/@rbxts/compiler-types/types/eslintignore.d.ts","../node_modules/@rbxts/compiler-types/types/core.d.ts","../node_modules/@rbxts/maid/maid.d.ts","../node_modules/@rbxts/object-utils/index.d.ts","../node_modules/@rbxts/signal/index.d.ts"],"fileInfos":[{"version":"429178068cb844a452dad87eb0a7a02466f3509fff9e7f1187fdb0595e66b8df","signature":false},{"version":"f984bb5cbefabad3e6279516673ca0cb2098304225cfe61987f2af81daf3f99a","signature":false},{"version":"5ed7aeb5909b9e1607087690870addc6df2d3d7e6e3e16f389fe21da53915526","signature":false},{"version":"1fe834c2d906a0d49917ce932bb495bfbb58912d49ad6b03f66ae0be14ad9def","signature":false},{"version":"99709374cb8bf64c65dad5350c88a805af91e107545e18af91e4839d4336a441","signature":false},{"version":"a1a226a8d6b1039d7d0613381c2f4dec614c30305cf96ee973cc49973d9745e4","signature":false},{"version":"1f0f6e103444aad5f544988f7a8390e351b30481ce6eac8ad7765911c56dda6e","signature":false},{"version":"9e6c13e0c00f23d1e9a40e4652ef4e604bdf6747feab7d7b7ca66b5d6bcfa330","signature":false},{"version":"cff894ef201eb519e33e59b861ceb3766076e4f371734218d331157a3b307a11","signature":false},{"version":"c152661849a9798330ff9bec808ae42dad0f72126748a0bee62d5fd0cef233b4","signature":false},{"version":"cf75483180e62aa81e878d688cdd40b6d86b120cd84ea4acff735b13c9a81406","signature":false},{"version":"c2b615b7c60bf38930966af14e64cc1ef33ed23ba0a77bdd8ea09fdc4f5e2683","signature":false},{"version":"3800f61fdda8762cb1f766f6badbc560a94853c8c6a21b67d8e0f746eb15926c","signature":false},{"version":"a3adf1732167824c54869e10749d1d5529167a6dbe6fca946e572fb871d40779","signature":false},{"version":"63a553db9a215f18b3280e366638fe36b353226de8e9b3628d15259d3ee045a2","signature":false},{"version":"286255765308ed79150e45c687feef991803caeda511a051ad477c9cf4dddec6","signature":false},{"version":"f63d7cdd778a7ea18b0d61359ab48023b001d45096dfb759dc09a101c0c41a72","signature":false},{"version":"d9d14150234c32bc0bf772d69182b166d8de600e0e5207924867da19351aca53","signature":false},{"version":"1a73eb921b7aa92d4c2d86ec95a39f5f73cf170b939314394d1b87bd06ae707b","signature":false},{"version":"5e5db3fb2f4f1a4d5276b9ba8f78df1f5f73754eeae5e2c23028f7830a2b66f9","signature":false},{"version":"3a36f6c843d1b4e91f80d6ff3ef8b5e25e1948fae24b8c62631c5df1faf82e41","signature":false},{"version":"dba94b73dbbe23c5066eeafc9f4f8dbf4430a4ab73d2d0d251fe4c1cd029d90b","signature":false},{"version":"564a52d0f974d976d982a2385ac5b353329f2dadab4f7616ee303678a7f64134","signature":false},{"version":"ff329383f830b2ba7578f67a374e2b8077f0b3d7036bf4d1a24edcc95de45c5d","signature":false},{"version":"5f1de0704116b11bd64213287e3378893f4cf542b8ad3c265bae66911d568546","signature":false},{"version":"4d406ad246a632b296d15664e6dce343d733ae17ef88aadbb4d5b3a55adb9373","signature":false},{"version":"afa4bcb1c950e70212cc4ccf83a6096a25bc4280fb03bf94157f2eea853fad15","signature":false},{"version":"d224a3dd51cb73bd47023903bbc25bd2be67a4e4190d5423bdb29b7e1a4be5c3","signature":false},{"version":"d9e71f559f9a9f2a1662ffed1dc6fdbac798f92204ac054f330ed3145ef0f650","signature":false},{"version":"531c125862ac8e801bca17eaacc89b21e0d49ef80a76bf7dbd09b006f3e27a4a","signature":false},{"version":"ef878ea3432ce6ed2ff79d0dcea72aa033e9a3d8f57a9bd9f755748588e53e87","signature":false},{"version":"be4e6ec9fe788d72a70afbdc4c297ea31d842a9ea301559f5ca42cdf13db1383","signature":false},{"version":"bbea04f9dddf52d42a2b47e1be43bb6f5dbbff147e1126d50404481d6bbd265b","signature":false},{"version":"8d1395d7fa6381cf71368706cf815130a32895fddd44acb047751072801f90bb","signature":false},{"version":"cdeedec78d8c66fc7522d13e9a2150edda98b18fd3bb95d0f556b6678d0c3739","signature":false},{"version":"7e8bf6cb0c7e13b34a8b40c4b36e633d639b8c4a3b5dec3a55a08bf26caf9a6b","signature":false},{"version":"27b0c41f2f485e59eaaab0d65c192ca022d7fcea87b2c24c9405a91e8b7a4a79","signature":false},{"version":"20d034b52037a7e5b0268fde45a111ffa9f0ae2e04819549d677262711d9dcf2","signature":false},{"version":"96f86d69285464e402bcc634bed6b3b059ff40f1d8ab801cdbdffeddc65212b4","signature":false},{"version":"6eb7fae75c4a1a6bdee1d48700000f43f9d5cff7987f08bd49f21ed1ac0b7c4b","signature":false,"affectsGlobalScope":true},{"version":"3a5626be0c9a1aae6f75d0d38bcea4d070e5d1381a843a9b4eafd3eab6ed7ef7","signature":false,"affectsGlobalScope":true},{"version":"f6c97e5b3403d6f8683372fff53430b8d93728a60f04623bd3de9e470fe71259","signature":false,"affectsGlobalScope":true},{"version":"bfb3f3bd1d89a54d975a7554c8d12209188d7b849d00b9345fd0d41d79858e38","signature":false,"affectsGlobalScope":true},{"version":"22f424c221d557a69d83386550a272558bfef6f81b1dbacd3d35b4651b128d2b","signature":false,"affectsGlobalScope":true},{"version":"d1461f750f98ba938cf3b43f1095774f6007b92a4550bbfde87451dccc32b3bd","signature":false,"affectsGlobalScope":true},{"version":"c30a7a2198451431d80de5f9ba7197a0c8a56d52b29373e7270115776a28f3f3","signature":false,"affectsGlobalScope":true},{"version":"d4d6595aca02f63e2107a842fdd8f79e147fd802acd0e60900f16bee4f861173","signature":false,"affectsGlobalScope":true},{"version":"2070e277f4e874747a7706f000f19f2f512f9829f65f4caf634a908c07f45117","signature":false,"affectsGlobalScope":true},{"version":"7f53343307db666fa6a82bf5165f961d4b70e268ffb7e4e108f06d953c10c679","signature":false,"affectsGlobalScope":true},{"version":"8d10b5097dc2692979a984b4c56deaa0ad77c3a7b036a066ea0a72ec8c514830","signature":false,"affectsGlobalScope":true},{"version":"a252fd9c3a3e55eab45c1c78d376e7a8d82e736d55a5d95a1b285290881d5f88","signature":false,"affectsGlobalScope":true},{"version":"dde6ecc6409a17b372382192ca43c78c52015f34f49547ead38194c63127793a","signature":false,"affectsGlobalScope":true},{"version":"ed7b23f234388de62c9f86bcecd4608a854067fc20f2b4698b9f14ce0d92f4f2","signature":false,"affectsGlobalScope":true},{"version":"85ce7d3110c6652c276ea4d027bc1887176d97a5b7494f288cbbdfb2b48a11ee","signature":false,"affectsGlobalScope":true},{"version":"52535c5f6ea63e76c537e39df77b0720827e3f8d0fac9e2386352f0b6110a211","signature":false,"affectsGlobalScope":true},{"version":"abfe7c34c18ff9a242d5b7e4aba61dfb14b2db55ce5edce1798aaae365fa9cfe","signature":false},{"version":"7b9707d4934d0b63c71920058db2bd6f815b90c4ace1100ea24915c14c9af895","signature":false},{"version":"f73b1d7270a91ed30c71075ee5e0472465931a37ecdb5834c9d8ebe828847b45","signature":false}],"root":[[9,17],[25,39]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"experimentalDecorators":true,"jsx":2,"module":1,"outDir":"./","rootDir":"../src","strict":true,"target":99,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[1,2,3],[2,4,5],[1,3],[3],[2],[44],[44,45,46,47,48,49,50,51,52,53,54],[18,21,22,23],[19,20],[22],[40,44],[41,55],[40,41,42,43,55],[3,6,7,9,10,13,14,15,17,23,24,29],[13],[26],[1,3,6,7,16,25],[1,6],[3,6,16,25],[3,6,7,16,28],[6],[3,6,15,16],[10,11,12],[7,10],[6,7,9],[7,25],[6,7,10,13,14,16],[6,10,13,16],[6,13],[3,6,7,8,9,10,13,16,25,26,27,28],[7,8,10,15,16,25,27,28,31,32],[3,6,7,8,10,13,25],[13,14,15,16,17,25,26,27,28,29,30,31,32,33,34,35,36,37,38]],"referencedMap":[[5,1],[6,2],[2,3],[4,4],[3,5],[45,6],[46,6],[55,7],[54,6],[47,6],[48,6],[49,6],[50,6],[51,6],[52,6],[53,6],[24,8],[21,9],[23,10],[40,6],[41,11],[42,12],[44,13],[25,14],[14,15],[32,16],[26,17],[15,18],[27,19],[31,20],[30,21],[28,22],[13,23],[11,24],[10,25],[12,26],[17,27],[34,28],[36,28],[37,29],[35,28],[38,29],[29,30],[33,31],[16,32],[39,33]],"semanticDiagnosticsPerFile":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58]},"version":"5.5.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecsframework/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "",
5
5
  "main": "out/init.lua",
6
6
  "scripts": {