@ecsframework/core 0.1.5 → 0.1.7

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, prevData: T]>;
239
+ Changed<T>(key?: ComponentKey<T>): Signal<[entity: Entity<T>, data: 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,7 +1,7 @@
1
1
  import { Constructor } from "@flamework/core/out/utility";
2
2
  import { World } from "@rbxts/jecs";
3
3
  import { DependenciesContainer } from "../dependencies-container";
4
- export interface TaggedInstance<T = {}> {
4
+ export interface TaggedInstance<T> {
5
5
  Tag: string;
6
6
  OnCreateData: (instance: Instance, world: World, container: DependenciesContainer) => Partial<T>;
7
7
  }
@@ -3,10 +3,9 @@ local TS = _G[script]
3
3
  local _utilities = TS.import(script, script.Parent.Parent, "utilities")
4
4
  local DefineClassComponentMeta = _utilities.DefineClassComponentMeta
5
5
  local GetIdentifier = _utilities.GetIdentifier
6
- local id = "$ecsframework:core:framework/decorators/tagged@TaggedInstance"
7
6
  local function Tagged(options)
8
7
  return function(target)
9
- DefineClassComponentMeta(GetIdentifier(target), options, id)
8
+ DefineClassComponentMeta(GetIdentifier(target), options, "$ecsframework:core:framework/decorators/tagged@TaggedInstance")
10
9
  end
11
10
  end
12
11
  return {
@@ -1,20 +1,18 @@
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?;
5
4
  private factories;
6
5
  private instances;
7
- constructor(parentContainer?: DependenciesContainer | undefined);
8
6
  private wrapConstructorInFactory;
9
7
  /** @metadata macro */
10
8
  Register<T extends object>(ctor: Constructor<T>, spec?: Modding.Intrinsic<"symbol-id", [T], string>): void;
11
9
  /** @metadata macro */
12
- Register<T>(factory: (context: unknown) => T, spec?: Modding.Intrinsic<"symbol-id", [T], string>): void;
10
+ Register<T>(factory: () => T, spec?: Modding.Intrinsic<"symbol-id", [T], string>): void;
13
11
  /** @metadata macro */
14
12
  Unregister<T>(spec?: Modding.Generic<T, "id">): void;
15
13
  private resolve;
16
14
  /** @metadata macro */
17
- Resolve<T>(context?: unknown, spec?: Modding.Generic<T, "id">): {};
15
+ Resolve<T>(spec?: Modding.Generic<T, "id">): {};
18
16
  Inject(instance: object, handle?: (injecting: unknown) => void): void;
19
17
  Instantiate<T extends object>(ctor: Constructor<T>, ...args: ConstructorParameters<Constructor<T>>): T;
20
18
  InstantiateGroup(ctors: Constructor[], isRegister?: boolean): object[];
@@ -17,8 +17,7 @@ do
17
17
  local self = setmetatable({}, DependenciesContainer)
18
18
  return self:constructor(...) or self
19
19
  end
20
- function DependenciesContainer:constructor(parentContainer)
21
- self.parentContainer = parentContainer
20
+ function DependenciesContainer:constructor()
22
21
  self.factories = {}
23
22
  self.instances = {}
24
23
  end
@@ -39,6 +38,8 @@ do
39
38
  end
40
39
  end
41
40
  function DependenciesContainer:Register(factoryOrCtor, spec)
41
+ local _spec = spec
42
+ assert(_spec ~= "" and _spec)
42
43
  local _factoryOrCtor = factoryOrCtor
43
44
  local factory = if type(_factoryOrCtor) == "function" then factoryOrCtor else self:wrapConstructorInFactory(factoryOrCtor)
44
45
  local _factories = self.factories
@@ -46,33 +47,27 @@ do
46
47
  _factories[_arg0] = factory
47
48
  end
48
49
  function DependenciesContainer:Unregister(spec)
49
- local _factories = self.factories
50
50
  local _spec = spec
51
- _factories[_spec] = nil
51
+ assert(_spec ~= "" and _spec)
52
+ local _factories = self.factories
53
+ local _spec_1 = spec
54
+ _factories[_spec_1] = nil
52
55
  end
53
- function DependenciesContainer:resolve(spec, context)
56
+ function DependenciesContainer:resolve(spec, ctor)
54
57
  local _factories = self.factories
55
58
  local _spec = spec
56
59
  local _result = _factories[_spec]
57
60
  if _result ~= nil then
58
- _result = _result(context)
59
- end
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}`)
61
+ _result = _result()
71
62
  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)
72
67
  return result
73
68
  end
74
- function DependenciesContainer:Resolve(context, spec)
75
- return self:resolve(spec, context)
69
+ function DependenciesContainer:Resolve(spec)
70
+ return self:resolve(spec)
76
71
  end
77
72
  function DependenciesContainer:Inject(instance, handle)
78
73
  local injectedTypes = GetInjectTypes(instance)
@@ -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: Entity, data: unknown]>>;
37
- changed: Map<Entity, Signal<[entity: Entity, newData: unknown, prevData: unknown]>>;
38
- removed: Map<Entity, Signal<[entity: Entity]>>;
36
+ added: Map<Entity, Signal<[Entity, unknown]>>;
37
+ changed: Map<Entity, Signal<[Entity, unknown]>>;
38
+ removed: Map<Entity, Signal<[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: Entity<T>, T]>;
48
+ export declare function added<T>(registery: ecs.World, key?: ComponentKey<T>): Signal<[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: Entity<T>, data: T, prevData: T]>;
67
+ export declare function changed<T>(registery: ecs.World, key?: ComponentKey<T>): Signal<[Entity<T>, 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,7 +67,6 @@ local function hookListeners(registry, id)
67
67
  }
68
68
  end
69
69
  local signals = _condition
70
- local prevDatas = {}
71
70
  local _registry_1 = registry
72
71
  worldSignals[_registry_1] = signals
73
72
  local _added = signals.added
@@ -80,28 +79,13 @@ local function hookListeners(registry, id)
80
79
  local _id_2 = id
81
80
  _changed[_id_2] = changedSignal
82
81
  registry:set(id, ecs.OnAdd, function(entity, _, data)
83
- local _entity = entity
84
- local _data = data
85
- prevDatas[_entity] = _data
86
82
  addedSignal:fire(entity, data)
87
83
  end)
88
84
  registry:set(id, ecs.OnRemove, function(entity)
89
- local _entity = entity
90
- prevDatas[_entity] = nil
91
85
  removedSignal:fire(entity)
92
86
  end)
93
87
  registry:set(id, ecs.OnChange, function(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
88
+ changedSignal:fire(entity, data)
105
89
  end)
106
90
  end
107
91
  --[[
@@ -2,6 +2,7 @@ import { Constructor } from "@flamework/core/out/utility";
2
2
  import { Entity } from "@rbxts/jecs";
3
3
  import { DependenciesContainer } from "./dependencies-container";
4
4
  import { Signal } from "./flamecs/signal";
5
+ import { Scheduler } from "@rbxts/planck";
5
6
  export declare class ECSFramework {
6
7
  readonly Container: DependenciesContainer;
7
8
  private systems;
@@ -12,6 +13,8 @@ export declare class ECSFramework {
12
13
  readonly ComponentsByName: ReadonlyMap<string, string>;
13
14
  private components;
14
15
  private world;
16
+ private onEffectPhase;
17
+ readonly Scheduler: Scheduler<[]>;
15
18
  readonly signals: {
16
19
  added: ReadonlyMap<Entity, Signal<[Entity, unknown]>>;
17
20
  changed: ReadonlyMap<Entity, Signal<[Entity, unknown]>>;
@@ -20,7 +23,6 @@ export declare class ECSFramework {
20
23
  constructor(Container?: DependenciesContainer);
21
24
  GetAllComponents(): Constructor[];
22
25
  GetComponentKeyByName(name: string): string | undefined;
23
- private getSystemLifecycleMethod;
24
26
  private initSystems;
25
27
  private invokeStartup;
26
28
  private initUpdate;
@@ -5,7 +5,6 @@ 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
9
8
  local DependenciesContainer = TS.import(script, script, "dependencies-container").DependenciesContainer
10
9
  local start = TS.import(script, script, "flamecs").start
11
10
  local _registry = TS.import(script, script, "flamecs", "registry")
@@ -16,7 +15,13 @@ local scheduleComponent = _registry.scheduleComponent
16
15
  local _utilities = TS.import(script, script, "utilities")
17
16
  local ApplyClassComponentMeta = _utilities.ApplyClassComponentMeta
18
17
  local GetIdentifier = _utilities.GetIdentifier
19
- local function getMethodCallback(instance, methodName)
18
+ local _planck = TS.import(script, TS.getModule(script, "@rbxts", "planck").out)
19
+ local Phase = _planck.Phase
20
+ local Scheduler = _planck.Scheduler
21
+ local _planck_runservice = TS.import(script, TS.getModule(script, "@rbxts", "planck-runservice").out)
22
+ local planckRunService = _planck_runservice
23
+ local Phases = _planck_runservice.Phases
24
+ local function getCachedMethod(instance, methodName)
20
25
  return instance[methodName]
21
26
  end
22
27
  local ECSFramework
@@ -42,6 +47,8 @@ do
42
47
  self.componentsMap = {}
43
48
  self.ComponentsByName = {}
44
49
  self.components = {}
50
+ self.onEffectPhase = Phase.new("OnEffect")
51
+ self.Scheduler = Scheduler.new()
45
52
  self.signals = {
46
53
  added = {},
47
54
  changed = {},
@@ -129,14 +136,6 @@ do
129
136
  local _name = name
130
137
  return _componentsByName[_name]
131
138
  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
140
139
  function ECSFramework:initSystems()
141
140
  local systems = Reflect.getMetadata(self.baseSystemCtor, "ECSFramework:Systems") or {}
142
141
  local _exp = self.Container:InstantiateGroup(systems, true)
@@ -149,9 +148,9 @@ do
149
148
  end
150
149
  return {
151
150
  Instance = instance,
152
- OnStartup = self:getSystemLifecycleMethod(instance, "OnStartup"),
153
- OnEffect = self:getSystemLifecycleMethod(instance, "OnEffect"),
154
- OnUpdate = self:getSystemLifecycleMethod(instance, "OnUpdate"),
151
+ OnStartup = getCachedMethod(instance, "OnStartup"),
152
+ OnEffect = getCachedMethod(instance, "OnEffect"),
153
+ OnUpdate = getCachedMethod(instance, "OnUpdate"),
155
154
  Options = options,
156
155
  }
157
156
  end
@@ -190,44 +189,30 @@ do
190
189
  self.systems = _result
191
190
  end
192
191
  function ECSFramework:invokeStartup()
193
- local _exp = self.systems
194
- -- ▼ ReadonlyArray.forEach ▼
195
- local _callback = function(system)
196
- if system.OnStartup == nil then
197
- return nil
198
- end
199
- start(system.Instance.__hookStates, system.Instance, self.world, function()
200
- return system.OnStartup(system.Instance)
201
- end)
192
+ for _, system in self.systems do
193
+ self.Scheduler:addSystem({
194
+ name = `{getmetatable(system.Instance)}-Startup`,
195
+ phase = Phase.Startup,
196
+ system = function()
197
+ start(system.Instance.__hookStates, system.Instance, self.world, function()
198
+ return system.OnStartup(system.Instance)
199
+ end)
200
+ end,
201
+ })
202
202
  end
203
- for _k, _v in _exp do
204
- _callback(_v, _k - 1, _exp)
205
- end
206
- -- ▲ ReadonlyArray.forEach ▲
207
203
  end
208
204
  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
205
+ for _, system in self.systems do
206
+ self.Scheduler:addSystem({
207
+ name = `{getmetatable(system.Instance)}-Update`,
208
+ phase = Phases.Update,
209
+ system = function()
210
+ start(system.Instance.__hookStates, system.Instance, self.world, function()
211
+ return system.OnUpdate(system.Instance, self.Scheduler:getDeltaTime())
212
+ end)
213
+ end,
214
+ })
221
215
  end
222
- -- ▲ ReadonlyArray.filter ▲
223
- local systems = _newValue
224
- RunService.Heartbeat:Connect(function(dt)
225
- for _, system in systems do
226
- start(system.Instance.__hookStates, system.Instance, self.world, function()
227
- return system.OnUpdate(system.Instance, dt)
228
- end)
229
- end
230
- end)
231
216
  end
232
217
  function ECSFramework:initComponents()
233
218
  local _exp = self:GetAllComponents()
@@ -237,8 +222,9 @@ do
237
222
  if runtimeId == nil then
238
223
  error(`Component {component} does not have a runtime id.`)
239
224
  end
225
+ local identifier = GetIdentifier(component)
240
226
  reserve(self.world, runtimeId, GetIdentifier(component))
241
- ApplyClassComponentMeta(runtimeId, GetIdentifier(component))
227
+ ApplyClassComponentMeta(runtimeId, identifier)
242
228
  end
243
229
  for _k, _v in _exp do
244
230
  _callback(_v, _k - 1, _exp)
@@ -256,36 +242,17 @@ do
256
242
  -- ▲ ReadonlySet.forEach ▲
257
243
  end
258
244
  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
274
245
  RunService.Heartbeat:Connect(function()
275
246
  if not self.canCallEffect then
276
247
  return nil
277
248
  end
278
249
  self.canCallEffect = false
279
- for _, system in systems do
280
- start(system.Instance.__hookStates, system.Instance, self.world, function()
281
- return system.OnEffect(system.Instance)
282
- end)
283
- end
250
+ self.Scheduler:run(self.onEffectPhase)
284
251
  end)
285
- local _exp_1 = self:GetAllComponents()
252
+ local _exp = self:GetAllComponents()
286
253
  -- ▼ ReadonlyArray.map ▼
287
- local _newValue_1 = table.create(#_exp_1)
288
- local _callback_1 = function(obj)
254
+ local _newValue = table.create(#_exp)
255
+ local _callback = function(obj)
289
256
  local _condition = Reflect.getOwnMetadata(obj, "ECSFramework:Unaffectable")
290
257
  if _condition == nil then
291
258
  _condition = false
@@ -294,21 +261,21 @@ do
294
261
  local id = Reflect.getOwnMetadata(obj, "ECSFramework:Id")
295
262
  return if not unaffectable then id else nil
296
263
  end
297
- for _k, _v in _exp_1 do
298
- _newValue_1[_k] = _callback_1(_v, _k - 1, _exp_1)
264
+ for _k, _v in _exp do
265
+ _newValue[_k] = _callback(_v, _k - 1, _exp)
299
266
  end
300
267
  -- ▲ ReadonlyArray.map ▲
301
268
  -- ▼ ReadonlyArray.filterUndefined ▼
302
- local _length_1 = 0
303
- for _i in _newValue_1 do
304
- if _i > _length_1 then
305
- _length_1 = _i
269
+ local _length = 0
270
+ for _i in _newValue do
271
+ if _i > _length then
272
+ _length = _i
306
273
  end
307
274
  end
308
275
  local _result = {}
309
276
  local _resultLength = 0
310
- for _i = 1, _length_1 do
311
- local _v = _newValue_1[_i]
277
+ for _i = 1, _length do
278
+ local _v = _newValue[_i]
312
279
  if _v ~= nil then
313
280
  _resultLength += 1
314
281
  _result[_resultLength] = _v
@@ -316,6 +283,17 @@ do
316
283
  end
317
284
  -- ▲ ReadonlyArray.filterUndefined ▲
318
285
  local reactives = _result
286
+ for _, system in self.systems do
287
+ self.Scheduler:addSystem({
288
+ name = `{getmetatable(system.Instance)}-OnEffect`,
289
+ phase = self.onEffectPhase,
290
+ system = function()
291
+ start(system.Instance.__hookStates, system.Instance, self.world, function()
292
+ return system.OnEffect(system.Instance)
293
+ end)
294
+ end,
295
+ }, self.onEffectPhase)
296
+ end
319
297
  for _, ct in reactives do
320
298
  self.world:added(ct, function()
321
299
  self.canCallEffect = true
@@ -333,6 +311,8 @@ do
333
311
  return nil
334
312
  end
335
313
  self.isStarted = true
314
+ self.Scheduler:insert(self.onEffectPhase)
315
+ self.Scheduler:addPlugin(planckRunService.Plugin.new())
336
316
  -- Init
337
317
  initWorld(self.world)
338
318
  self:initSystems()
@@ -1,6 +1,6 @@
1
1
  import { Constructor } from "@flamework/core/out/utility";
2
2
  import { Entity } from "./flamecs";
3
- import { ComponentKey, ResolveKey } from "./flamecs/registry";
3
+ import { ComponentKey } 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];
@@ -12,7 +12,8 @@ export declare const enum RunContext {
12
12
  }
13
13
  export declare const INSTANCE_ATTRIBUTE_ENTITY_ID: string;
14
14
  export declare const SERVER_ATTRIBUTE_ENTITY_ID = "__Server_EntityId";
15
- /** @metadata macro */
16
- export declare function DefineClassComponentMeta<KeyId>(targetId: string, value?: unknown, key?: ResolveKey<KeyId> | string): void;
17
- /** @metadata macro */
18
- export declare function ApplyClassComponentMeta<ComponentId>(componentRuntimeId: Entity, componentId?: ComponentKey<ComponentId>): void;
15
+ /**
16
+ * @metadata macro
17
+ */
18
+ export declare function DefineClassComponentMeta<T>(targetId: string, value: unknown, key?: ComponentKey<T>): void;
19
+ export declare function ApplyClassComponentMeta(componentRuntimeId: Entity, componentId: string): void;
@@ -30,44 +30,29 @@ local function getDeferredConstructor(ctor)
30
30
  end
31
31
  local INSTANCE_ATTRIBUTE_ENTITY_ID = `__{if RunService:IsServer() then "Server" else "Client"}_EntityId`
32
32
  local SERVER_ATTRIBUTE_ENTITY_ID = `__Server_EntityId`
33
- --* @metadata macro
33
+ --[[
34
+ *
35
+ * @metadata macro
36
+
37
+ ]]
34
38
  local function DefineClassComponentMeta(targetId, value, key)
35
39
  local metadata = { key, value }
36
- local datas = Reflect.getOwnMetadata(BaseSystem, "ECSFramework:Meta") or {}
40
+ local datas = (Reflect.getOwnMetadata(BaseSystem, "ECSFramework:Meta")) or {}
37
41
  Reflect.defineMetadata(BaseSystem, "ECSFramework:Meta", datas)
38
- local _targetId = targetId
39
- local _condition = datas[_targetId]
40
- if _condition == nil then
41
- _condition = {}
42
- end
43
- local componentMetadata = _condition
42
+ local componentMetadata = datas[targetId] or {}
44
43
  table.insert(componentMetadata, metadata)
45
- local _targetId_1 = targetId
46
- datas[_targetId_1] = componentMetadata
44
+ datas[targetId] = componentMetadata
47
45
  end
48
- --* @metadata macro
49
46
  local function ApplyClassComponentMeta(componentRuntimeId, componentId)
50
47
  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
+ if not datas or not datas[componentId] then
57
49
  return nil
58
50
  end
59
- local _componentId = componentId
60
- local _exp = datas[_componentId]
61
- -- ReadonlyArray.forEach
62
- local _callback = function(_param)
63
- local key = _param[1]
64
- local value = _param[2]
51
+ for _, _binding in datas[componentId] do
52
+ local key = _binding[1]
53
+ local value = _binding[2]
65
54
  meta(componentRuntimeId, getId(nil, key), value)
66
55
  end
67
- for _k, _v in _exp do
68
- _callback(_v, _k - 1, _exp)
69
- end
70
- -- ▲ ReadonlyArray.forEach ▲
71
56
  end
72
57
  return {
73
58
  GetIdentifier = GetIdentifier,
@@ -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":"895b47131bf27301acc279c543166e88b291f39616f244639a21477a6f0e8875","signature":false},{"version":"cf75483180e62aa81e878d688cdd40b6d86b120cd84ea4acff735b13c9a81406","signature":false},{"version":"c2b615b7c60bf38930966af14e64cc1ef33ed23ba0a77bdd8ea09fdc4f5e2683","signature":false},{"version":"3800f61fdda8762cb1f766f6badbc560a94853c8c6a21b67d8e0f746eb15926c","signature":false},{"version":"a3adf1732167824c54869e10749d1d5529167a6dbe6fca946e572fb871d40779","signature":false},{"version":"63a553db9a215f18b3280e366638fe36b353226de8e9b3628d15259d3ee045a2","signature":false},{"version":"759002d2d37ece13d814c9c8fdddadc5baf1b7753d91842dd0b19eda8dfca786","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":"316a8879acff8a8505d6d95e7fc72de670e55eec793c66ee4eb78591fab30984","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"}
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","../node_modules/@rbxts/planck/out/utils.d.ts","../node_modules/@rbxts/planck/out/conditions.d.ts","../node_modules/@rbxts/planck/out/phase.d.ts","../node_modules/@rbxts/planck/out/pipeline.d.ts","../node_modules/@rbxts/planck/out/scheduler.d.ts","../node_modules/@rbxts/planck/out/index.d.ts","../node_modules/@rbxts/planck-runservice/out/index.d.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":"feb2c8f07ee9b742997c75e1378d9318c3ed6252a6674c8a3bf2b4256a98bfbb","signature":false},{"version":"cf75483180e62aa81e878d688cdd40b6d86b120cd84ea4acff735b13c9a81406","signature":false},{"version":"c2b615b7c60bf38930966af14e64cc1ef33ed23ba0a77bdd8ea09fdc4f5e2683","signature":false},{"version":"3800f61fdda8762cb1f766f6badbc560a94853c8c6a21b67d8e0f746eb15926c","signature":false},{"version":"a3adf1732167824c54869e10749d1d5529167a6dbe6fca946e572fb871d40779","signature":false},{"version":"d067a12923433fce55f6f0a6c1d9cb940845dc0f65b1bc9285e83caa622256d5","signature":false},{"version":"fb63125f399bb9b0e09e087e4f1817f8360c46e9580680feb7ec48d667b07fac","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":"8718b024a68cfde1aa3aa90d8260ceab45e1bf14819b8d130aeedb3cd60bb610","signature":false},{"version":"4d406ad246a632b296d15664e6dce343d733ae17ef88aadbb4d5b3a55adb9373","signature":false},{"version":"afa4bcb1c950e70212cc4ccf83a6096a25bc4280fb03bf94157f2eea853fad15","signature":false},{"version":"a33ede8b136b4eebe87227e5e66bf1cba9ca9adde420b5667fb2de6a640213c5","signature":false},{"version":"6012a8d5986c48029756e1c9ad5153f50af540e8aaa76ddf26ca860835857ce9","signature":false},{"version":"499ab101952e35989d138b092f00c4af72eeecbfc8e8f5cf66bedce4b6ad8d95","signature":false},{"version":"901e5e72e5541e609f179f0ac44db1a057a04c13b535504eb3ea9d59b44d7d1b","signature":false},{"version":"81e5cefd5ad881498e2a6ae98eabd1eae22432f569cf96e7d82dab79fd8399f5","signature":false},{"version":"008dae8f3575ffbef098e31624a1da2b0d5defe667df587db66401c3f8f686dc","signature":false},{"version":"c46bd205c2482e6063d0e411e9425b2a27954a700af9e40fc9b60d121951ad21","signature":false},{"version":"00c835dad309d5d7471f0e55193c146cf5fa5f03107c012e63b4d8f122acba34","signature":false},{"version":"6e06778d6e8ac0a8c8b2c1e48433422c68f09f668ec0f0bb376a8a361adf2c27","signature":false},{"version":"531c125862ac8e801bca17eaacc89b21e0d49ef80a76bf7dbd09b006f3e27a4a","signature":false},{"version":"ed49f0c1d426cfb3d9f7e4972c48ed79b09788f7aeae5828ef81f66fff560f8d","signature":false},{"version":"be4e6ec9fe788d72a70afbdc4c297ea31d842a9ea301559f5ca42cdf13db1383","signature":false},{"version":"ee38938a23ea98b25d086d346d41061bf2d25b4c266a32656138f7e45e4d463a","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,28],[36,46]],"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],[51],[51,52,53,54,55,56,57,58,59,60,61],[18,21,22,23],[19,20],[22],[34],[29],[30,31,32,33],[31],[29,30,31,32,34],[47,51],[48,62],[47,48,49,50,62],[3,6,7,9,10,13,14,15,17,23,24,36],[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,34,35],[7,8,10,15,16,25,27,28,38,39],[3,6,7,8,10,13,25],[13,14,15,16,17,25,26,27,28,36,37,38,39,40,41,42,43,44,45]],"referencedMap":[[5,1],[6,2],[2,3],[4,4],[3,5],[52,6],[53,6],[62,7],[61,6],[54,6],[55,6],[56,6],[57,6],[58,6],[59,6],[60,6],[24,8],[21,9],[23,10],[35,11],[30,12],[34,13],[32,14],[33,15],[47,6],[48,16],[49,17],[51,18],[25,19],[14,20],[39,21],[26,22],[15,23],[27,24],[38,25],[37,26],[28,27],[13,28],[11,29],[10,30],[12,31],[17,32],[41,33],[43,33],[44,34],[42,33],[45,34],[36,35],[40,36],[16,37],[46,38]],"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,59,60,61,62,63,64,65]},"version":"5.5.3"}
package/package.json CHANGED
@@ -1,45 +1,49 @@
1
- {
2
- "name": "@ecsframework/core",
3
- "version": "0.1.5",
4
- "description": "",
5
- "main": "out/init.lua",
6
- "scripts": {
7
- "build": "rbxtsc",
8
- "watch": "rbxtsc -w",
9
- "test:watch": "rbxtsc -w --type=game -p test -i test/include",
10
- "serve": "rojo serve test/default.project.json",
11
- "prepublishOnly": "npm run build"
12
- },
13
- "keywords": [],
14
- "author": "",
15
- "license": "ISC",
16
- "types": "out/index.d.ts",
17
- "files": [
18
- "out",
19
- "flamework.build"
20
- ],
21
- "publishConfig": {
22
- "access": "public"
23
- },
24
- "devDependencies": {
25
- "@rbxts/compiler-types": "^3.0.0-types.0",
26
- "@rbxts/types": "^1.0.876",
27
- "@typescript-eslint/eslint-plugin": "^8.39.1",
28
- "@typescript-eslint/parser": "^8.39.1",
29
- "eslint": "^8.57.1",
30
- "eslint-config-prettier": "^10.1.8",
31
- "eslint-plugin-prettier": "^5.5.4",
32
- "eslint-plugin-roblox-ts": "^1.1.0",
33
- "prettier": "^3.6.2",
34
- "roblox-ts": "^3.0.0",
35
- "typescript": "^5.5.3"
36
- },
37
- "peerDependencies": {
38
- "@flamework/core": "*",
39
- "@rbxts/immut": ">=0.4.4-ts.0",
40
- "@rbxts/jecs": ">=0.9.0-rc.10",
41
- "@rbxts/services": ">=1.5.5",
42
- "@rbxts/signal": ">=1.1.1",
43
- "rbxts-transformer-flamework": "*"
44
- }
45
- }
1
+ {
2
+ "name": "@ecsframework/core",
3
+ "version": "0.1.7",
4
+ "description": "",
5
+ "main": "out/init.lua",
6
+ "scripts": {
7
+ "build": "rbxtsc",
8
+ "watch": "rbxtsc -w",
9
+ "test:watch": "rbxtsc -w --type=game -p test -i test/include",
10
+ "serve": "rojo serve test/default.project.json",
11
+ "prepublishOnly": "npm run build"
12
+ },
13
+ "keywords": [],
14
+ "author": "",
15
+ "license": "ISC",
16
+ "types": "out/index.d.ts",
17
+ "files": [
18
+ "out",
19
+ "flamework.build"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "devDependencies": {
25
+ "@rbxts/compiler-types": "^3.0.0-types.0",
26
+ "@rbxts/types": "^1.0.876",
27
+ "@typescript-eslint/eslint-plugin": "^8.39.1",
28
+ "@typescript-eslint/parser": "^8.39.1",
29
+ "eslint": "^8.57.1",
30
+ "eslint-config-prettier": "^10.1.8",
31
+ "eslint-plugin-prettier": "^5.5.4",
32
+ "eslint-plugin-roblox-ts": "^1.1.0",
33
+ "prettier": "^3.6.2",
34
+ "roblox-ts": "^3.0.0",
35
+ "typescript": "^5.5.3"
36
+ },
37
+ "peerDependencies": {
38
+ "@flamework/core": "*",
39
+ "@rbxts/immut": ">=0.4.4-ts.0",
40
+ "@rbxts/jecs": ">=0.9.0-rc.10",
41
+ "@rbxts/services": ">=1.5.5",
42
+ "@rbxts/signal": ">=1.1.1",
43
+ "rbxts-transformer-flamework": "*"
44
+ },
45
+ "dependencies": {
46
+ "@rbxts/planck": "^1.0.0",
47
+ "@rbxts/planck-runservice": "^1.0.3"
48
+ }
49
+ }