@ecsframework/core 0.1.0 → 0.1.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.
@@ -236,7 +236,7 @@ export declare abstract class BaseSystem {
236
236
  * entity.
237
237
  * @metadata macro
238
238
  */
239
- Changed<T>(key?: ComponentKey<T>): Signal<[entity: Entity<T>, data: T]>;
239
+ Changed<T>(key?: ComponentKey<T>): Signal<[entity: Entity<T>, data: T, prevData: T]>;
240
240
  GetComponentKey<T>(runtimeId: Entity): T | undefined;
241
241
  private createComponentData;
242
242
  /**
@@ -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)
@@ -33,9 +33,9 @@ export type ResolveKeys<T> = Modding.Many<{
33
33
  type TrailingUndefined<T extends Array<unknown>> = T extends [...infer Rest, undefined] ? [...TrailingUndefined<Rest>, undefined?] : T;
34
34
  export declare const scheduleComponent: Set<ecs.Entity<unknown>>;
35
35
  export declare const worldSignals: Map<ecs.World, {
36
- added: Map<Entity, Signal<[Entity, unknown]>>;
37
- changed: Map<Entity, Signal<[Entity, unknown]>>;
38
- removed: Map<Entity, Signal<[Entity]>>;
36
+ added: Map<Entity, Signal<[entity: Entity, data: unknown]>>;
37
+ changed: Map<Entity, Signal<[entity: Entity, newData: unknown, prevData: unknown]>>;
38
+ removed: Map<Entity, Signal<[entity: Entity]>>;
39
39
  }>;
40
40
  /**
41
41
  * Returns a signal that fires when a component is added to an entity.
@@ -45,7 +45,7 @@ export declare const worldSignals: Map<ecs.World, {
45
45
  * @returns A signal that fires when the component is added to any entity.
46
46
  * @metadata macro
47
47
  */
48
- export declare function added<T>(registery: ecs.World, key?: ComponentKey<T>): Signal<[Entity<T>, T]>;
48
+ export declare function added<T>(registery: ecs.World, key?: ComponentKey<T>): Signal<[entity: Entity<T>, T]>;
49
49
  /**
50
50
  * Returns a signal that fires when a component is removed from an entity.
51
51
  *
@@ -64,7 +64,7 @@ export declare function removed<T>(registery: ecs.World, key?: ComponentKey<T>):
64
64
  * entity.
65
65
  * @metadata macro
66
66
  */
67
- export declare function changed<T>(registery: ecs.World, key?: ComponentKey<T>): Signal<[Entity<T>, T]>;
67
+ export declare function changed<T>(registery: ecs.World, key?: ComponentKey<T>): Signal<[entity: Entity<T>, data: T, prevData: T]>;
68
68
  export declare function hookListeners(registry: ecs.World, id: Entity): void;
69
69
  /**
70
70
  * Registers an existing entity to the component registry.
@@ -67,6 +67,7 @@ local function hookListeners(registry, id)
67
67
  }
68
68
  end
69
69
  local signals = _condition
70
+ local prevDatas = {}
70
71
  local _registry_1 = registry
71
72
  worldSignals[_registry_1] = signals
72
73
  local _added = signals.added
@@ -79,13 +80,28 @@ local function hookListeners(registry, id)
79
80
  local _id_2 = id
80
81
  _changed[_id_2] = changedSignal
81
82
  registry:set(id, ecs.OnAdd, function(entity, _, data)
83
+ local _entity = entity
84
+ local _data = data
85
+ prevDatas[_entity] = _data
82
86
  addedSignal:fire(entity, data)
83
87
  end)
84
88
  registry:set(id, ecs.OnRemove, function(entity)
89
+ local _entity = entity
90
+ prevDatas[_entity] = nil
85
91
  removedSignal:fire(entity)
86
92
  end)
87
93
  registry:set(id, ecs.OnChange, function(entity, _, data)
88
- changedSignal:fire(entity, data)
94
+ local _exp = entity
95
+ local _exp_1 = data
96
+ local _entity = entity
97
+ local _condition_1 = prevDatas[_entity]
98
+ if _condition_1 == nil then
99
+ _condition_1 = data
100
+ end
101
+ changedSignal:fire(_exp, _exp_1, _condition_1)
102
+ local _entity_1 = entity
103
+ local _data = data
104
+ prevDatas[_entity_1] = _data
89
105
  end)
90
106
  end
91
107
  --[[
@@ -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":"895b47131bf27301acc279c543166e88b291f39616f244639a21477a6f0e8875","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":"1bef42ef6fac8551081b5f73354d46dd3939a5e3040ea177ac4fa0b151ba976e","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.2",
4
4
  "description": "",
5
5
  "main": "out/init.lua",
6
6
  "scripts": {