@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.
- package/out/framework/base-system.d.ts +1 -1
- package/out/framework/decorators/inject-type.d.ts +1 -1
- package/out/framework/decorators/inject-type.luau +1 -1
- package/out/framework/decorators/tagged.d.ts +1 -1
- package/out/framework/decorators/tagged.luau +1 -2
- package/out/framework/dependencies-container.d.ts +2 -4
- package/out/framework/dependencies-container.luau +15 -20
- package/out/framework/flamecs/registry.d.ts +5 -5
- package/out/framework/flamecs/registry.luau +1 -17
- package/out/framework/index.d.ts +3 -1
- package/out/framework/init.luau +59 -79
- package/out/framework/utilities.d.ts +6 -5
- package/out/framework/utilities.luau +12 -27
- package/out/tsconfig.tsbuildinfo +1 -1
- package/package.json +49 -45
|
@@ -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]>;
|
|
240
240
|
GetComponentKey<T>(runtimeId: Entity): T | undefined;
|
|
241
241
|
private createComponentData;
|
|
242
242
|
/**
|
|
@@ -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 = "
|
|
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,
|
|
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: (
|
|
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>(
|
|
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(
|
|
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
|
-
|
|
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,
|
|
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(
|
|
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(
|
|
75
|
-
return self:resolve(spec
|
|
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<[
|
|
37
|
-
changed: Map<Entity, Signal<[
|
|
38
|
-
removed: Map<Entity, Signal<[
|
|
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<[
|
|
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<[
|
|
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
|
-
|
|
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
|
--[[
|
package/out/framework/index.d.ts
CHANGED
|
@@ -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;
|
package/out/framework/init.luau
CHANGED
|
@@ -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
|
|
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 =
|
|
153
|
-
OnEffect =
|
|
154
|
-
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
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
252
|
+
local _exp = self:GetAllComponents()
|
|
286
253
|
-- ▼ ReadonlyArray.map ▼
|
|
287
|
-
local
|
|
288
|
-
local
|
|
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
|
|
298
|
-
|
|
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
|
|
303
|
-
for _i in
|
|
304
|
-
if _i >
|
|
305
|
-
|
|
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,
|
|
311
|
-
local _v =
|
|
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
|
|
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
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export declare function
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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,
|
package/out/tsconfig.tsbuildinfo
CHANGED
|
@@ -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.
|
|
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
|
+
}
|