@ecsframework/core 0.1.5 → 0.1.6
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 +5 -2
- package/out/framework/decorators/tagged.luau +2 -5
- 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 +58 -79
- package/out/framework/utilities.d.ts +3 -4
- package/out/framework/utilities.luau +15 -26
- 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,8 +1,11 @@
|
|
|
1
1
|
import { Constructor } from "@flamework/core/out/utility";
|
|
2
2
|
import { World } from "@rbxts/jecs";
|
|
3
3
|
import { DependenciesContainer } from "../dependencies-container";
|
|
4
|
-
|
|
4
|
+
import { Tag } from "../flamecs";
|
|
5
|
+
export interface TaggedOptions<T> {
|
|
5
6
|
Tag: string;
|
|
6
7
|
OnCreateData: (instance: Instance, world: World, container: DependenciesContainer) => Partial<T>;
|
|
7
8
|
}
|
|
8
|
-
export
|
|
9
|
+
export interface TaggedInstance extends Tag {
|
|
10
|
+
}
|
|
11
|
+
export declare function Tagged<T>(options: TaggedOptions<T>): (target: Constructor<T>) => void;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
-- Compiled with roblox-ts v3.0.0
|
|
2
2
|
local TS = _G[script]
|
|
3
|
-
local
|
|
4
|
-
local DefineClassComponentMeta = _utilities.DefineClassComponentMeta
|
|
5
|
-
local GetIdentifier = _utilities.GetIdentifier
|
|
6
|
-
local id = "$ecsframework:core:framework/decorators/tagged@TaggedInstance"
|
|
3
|
+
local DefineClassComponentMeta = TS.import(script, script.Parent.Parent, "utilities").DefineClassComponentMeta
|
|
7
4
|
local function Tagged(options)
|
|
8
5
|
return function(target)
|
|
9
|
-
DefineClassComponentMeta(
|
|
6
|
+
DefineClassComponentMeta(target, options, "$ecsframework:core:framework/decorators/tagged@TaggedInstance")
|
|
10
7
|
end
|
|
11
8
|
end
|
|
12
9
|
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()
|
|
@@ -238,7 +223,7 @@ do
|
|
|
238
223
|
error(`Component {component} does not have a runtime id.`)
|
|
239
224
|
end
|
|
240
225
|
reserve(self.world, runtimeId, GetIdentifier(component))
|
|
241
|
-
ApplyClassComponentMeta(
|
|
226
|
+
ApplyClassComponentMeta(component, runtimeId)
|
|
242
227
|
end
|
|
243
228
|
for _k, _v in _exp do
|
|
244
229
|
_callback(_v, _k - 1, _exp)
|
|
@@ -256,36 +241,17 @@ do
|
|
|
256
241
|
-- ▲ ReadonlySet.forEach ▲
|
|
257
242
|
end
|
|
258
243
|
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
244
|
RunService.Heartbeat:Connect(function()
|
|
275
245
|
if not self.canCallEffect then
|
|
276
246
|
return nil
|
|
277
247
|
end
|
|
278
248
|
self.canCallEffect = false
|
|
279
|
-
|
|
280
|
-
start(system.Instance.__hookStates, system.Instance, self.world, function()
|
|
281
|
-
return system.OnEffect(system.Instance)
|
|
282
|
-
end)
|
|
283
|
-
end
|
|
249
|
+
self.Scheduler:run(self.onEffectPhase)
|
|
284
250
|
end)
|
|
285
|
-
local
|
|
251
|
+
local _exp = self:GetAllComponents()
|
|
286
252
|
-- ▼ ReadonlyArray.map ▼
|
|
287
|
-
local
|
|
288
|
-
local
|
|
253
|
+
local _newValue = table.create(#_exp)
|
|
254
|
+
local _callback = function(obj)
|
|
289
255
|
local _condition = Reflect.getOwnMetadata(obj, "ECSFramework:Unaffectable")
|
|
290
256
|
if _condition == nil then
|
|
291
257
|
_condition = false
|
|
@@ -294,21 +260,21 @@ do
|
|
|
294
260
|
local id = Reflect.getOwnMetadata(obj, "ECSFramework:Id")
|
|
295
261
|
return if not unaffectable then id else nil
|
|
296
262
|
end
|
|
297
|
-
for _k, _v in
|
|
298
|
-
|
|
263
|
+
for _k, _v in _exp do
|
|
264
|
+
_newValue[_k] = _callback(_v, _k - 1, _exp)
|
|
299
265
|
end
|
|
300
266
|
-- ▲ ReadonlyArray.map ▲
|
|
301
267
|
-- ▼ ReadonlyArray.filterUndefined ▼
|
|
302
|
-
local
|
|
303
|
-
for _i in
|
|
304
|
-
if _i >
|
|
305
|
-
|
|
268
|
+
local _length = 0
|
|
269
|
+
for _i in _newValue do
|
|
270
|
+
if _i > _length then
|
|
271
|
+
_length = _i
|
|
306
272
|
end
|
|
307
273
|
end
|
|
308
274
|
local _result = {}
|
|
309
275
|
local _resultLength = 0
|
|
310
|
-
for _i = 1,
|
|
311
|
-
local _v =
|
|
276
|
+
for _i = 1, _length do
|
|
277
|
+
local _v = _newValue[_i]
|
|
312
278
|
if _v ~= nil then
|
|
313
279
|
_resultLength += 1
|
|
314
280
|
_result[_resultLength] = _v
|
|
@@ -316,6 +282,17 @@ do
|
|
|
316
282
|
end
|
|
317
283
|
-- ▲ ReadonlyArray.filterUndefined ▲
|
|
318
284
|
local reactives = _result
|
|
285
|
+
for _, system in self.systems do
|
|
286
|
+
self.Scheduler:addSystem({
|
|
287
|
+
name = `{getmetatable(system.Instance)}-OnEffect`,
|
|
288
|
+
phase = self.onEffectPhase,
|
|
289
|
+
system = function()
|
|
290
|
+
start(system.Instance.__hookStates, system.Instance, self.world, function()
|
|
291
|
+
return system.OnEffect(system.Instance)
|
|
292
|
+
end)
|
|
293
|
+
end,
|
|
294
|
+
}, self.onEffectPhase)
|
|
295
|
+
end
|
|
319
296
|
for _, ct in reactives do
|
|
320
297
|
self.world:added(ct, function()
|
|
321
298
|
self.canCallEffect = true
|
|
@@ -333,6 +310,8 @@ do
|
|
|
333
310
|
return nil
|
|
334
311
|
end
|
|
335
312
|
self.isStarted = true
|
|
313
|
+
self.Scheduler:insert(self.onEffectPhase)
|
|
314
|
+
self.Scheduler:addPlugin(planckRunService.Plugin.new())
|
|
336
315
|
-- Init
|
|
337
316
|
initWorld(self.world)
|
|
338
317
|
self:initSystems()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Constructor } from "@flamework/core/out/utility";
|
|
2
2
|
import { Entity } from "./flamecs";
|
|
3
|
-
import {
|
|
3
|
+
import { ResolveKey } from "./flamecs/registry";
|
|
4
4
|
export declare function GetIdentifier(obj: object, suffix?: string): string;
|
|
5
5
|
export declare const GetClassName: (object: object) => string;
|
|
6
6
|
export declare function getDeferredConstructor<T extends object>(ctor: Constructor<T>): readonly [InstanceType<T>, (...args: ConstructorParameters<Constructor<T>>) => void];
|
|
@@ -13,6 +13,5 @@ export declare const enum RunContext {
|
|
|
13
13
|
export declare const INSTANCE_ATTRIBUTE_ENTITY_ID: string;
|
|
14
14
|
export declare const SERVER_ATTRIBUTE_ENTITY_ID = "__Server_EntityId";
|
|
15
15
|
/** @metadata macro */
|
|
16
|
-
export declare function DefineClassComponentMeta<
|
|
17
|
-
|
|
18
|
-
export declare function ApplyClassComponentMeta<ComponentId>(componentRuntimeId: Entity, componentId?: ComponentKey<ComponentId>): void;
|
|
16
|
+
export declare function DefineClassComponentMeta<T>(ctor: Constructor, value?: unknown, key?: ResolveKey<T>): void;
|
|
17
|
+
export declare function ApplyClassComponentMeta(ctor: Constructor, componentRuntimeId: Entity): void;
|
|
@@ -4,7 +4,6 @@ local Reflect = TS.import(script, TS.getModule(script, "@flamework", "core").out
|
|
|
4
4
|
local meta = TS.import(script, TS.getModule(script, "@rbxts", "jecs").jecs).meta
|
|
5
5
|
local getId = TS.import(script, script.Parent, "flamecs", "registry").getId
|
|
6
6
|
local RunService = TS.import(script, TS.getModule(script, "@rbxts", "services")).RunService
|
|
7
|
-
local BaseSystem = TS.import(script, script.Parent, "base-system").BaseSystem
|
|
8
7
|
local function GetIdentifier(obj, suffix)
|
|
9
8
|
if suffix == nil then
|
|
10
9
|
suffix = ""
|
|
@@ -31,41 +30,31 @@ end
|
|
|
31
30
|
local INSTANCE_ATTRIBUTE_ENTITY_ID = `__{if RunService:IsServer() then "Server" else "Client"}_EntityId`
|
|
32
31
|
local SERVER_ATTRIBUTE_ENTITY_ID = `__Server_EntityId`
|
|
33
32
|
--* @metadata macro
|
|
34
|
-
local function DefineClassComponentMeta(
|
|
33
|
+
local function DefineClassComponentMeta(ctor, value, key)
|
|
35
34
|
local metadata = { key, value }
|
|
36
|
-
local datas = Reflect.getOwnMetadata(
|
|
37
|
-
|
|
38
|
-
local
|
|
39
|
-
local
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
local _targetId_1 = targetId
|
|
46
|
-
datas[_targetId_1] = componentMetadata
|
|
35
|
+
local datas = Reflect.getOwnMetadata(ctor, "ECSFramework:Meta") or {}
|
|
36
|
+
local _exp = ctor
|
|
37
|
+
local _array = {}
|
|
38
|
+
local _length = #_array
|
|
39
|
+
local _datasLength = #datas
|
|
40
|
+
table.move(datas, 1, _datasLength, _length + 1, _array)
|
|
41
|
+
_length += _datasLength
|
|
42
|
+
_array[_length + 1] = metadata
|
|
43
|
+
Reflect.defineMetadata(_exp, "ECSFramework:Meta", _array)
|
|
47
44
|
end
|
|
48
|
-
|
|
49
|
-
local
|
|
50
|
-
|
|
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
|
|
45
|
+
local function ApplyClassComponentMeta(ctor, componentRuntimeId)
|
|
46
|
+
local datas = Reflect.getOwnMetadata(ctor, "ECSFramework:Meta")
|
|
47
|
+
if datas == nil then
|
|
57
48
|
return nil
|
|
58
49
|
end
|
|
59
|
-
local _componentId = componentId
|
|
60
|
-
local _exp = datas[_componentId]
|
|
61
50
|
-- ▼ ReadonlyArray.forEach ▼
|
|
62
51
|
local _callback = function(_param)
|
|
63
52
|
local key = _param[1]
|
|
64
53
|
local value = _param[2]
|
|
65
54
|
meta(componentRuntimeId, getId(nil, key), value)
|
|
66
55
|
end
|
|
67
|
-
for _k, _v in
|
|
68
|
-
_callback(_v, _k - 1,
|
|
56
|
+
for _k, _v in datas do
|
|
57
|
+
_callback(_v, _k - 1, datas)
|
|
69
58
|
end
|
|
70
59
|
-- ▲ ReadonlyArray.forEach ▲
|
|
71
60
|
end
|
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":"474d1e2b04aa20949db0906e4276c1ef878bd4dfa5213d671a8fc57581b5d48f","signature":false},{"version":"1ae822425fa98664f23f33105477e35c16056a289464227dd246f7bc15aa9717","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":"85b9c55328e4a1ef530e3914fceeca605e615408aadd84fe29e1b83b97f74399","signature":false},{"version":"531c125862ac8e801bca17eaacc89b21e0d49ef80a76bf7dbd09b006f3e27a4a","signature":false},{"version":"38f64fd419f35022241871580ad13977e63da2943f9d6ced56e683f36988a76a","signature":false},{"version":"be4e6ec9fe788d72a70afbdc4c297ea31d842a9ea301559f5ca42cdf13db1383","signature":false},{"version":"fd6d64cc6086887eed05f071b84d7ae2dedd16d8f944f01fb8351578aac9d4d6","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],[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.6",
|
|
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
|
+
}
|