diff --git a/packages/ecs-lib/lib/libecs.d.ts b/packages/ecs-lib/lib/libecs.d.ts index 6ff945f1..d4d8cf0b 100644 --- a/packages/ecs-lib/lib/libecs.d.ts +++ b/packages/ecs-lib/lib/libecs.d.ts @@ -16,7 +16,7 @@ export interface ClassHandle { [Symbol.dispose](): void; clone(): this; } -export interface container extends ClassHandle { +export interface container extends ClassHandle, Iterable { size(): number; get(_0: number): any | undefined | undefined; push_back(_0?: any): void; diff --git a/packages/ecs-lib/src/editor-manifest.type.ts b/packages/ecs-lib/src/editor-manifest.type.ts index d97a5e05..d28cc5e6 100644 --- a/packages/ecs-lib/src/editor-manifest.type.ts +++ b/packages/ecs-lib/src/editor-manifest.type.ts @@ -46,7 +46,7 @@ type ECSStringElement = { /** * Values allowed for the element */ - enum?: string[]; + enum?: string[] | Record; } & ECSElementDefaults<"string", string>; /** diff --git a/packages/ecs-lib/test/Registry.spec.ts b/packages/ecs-lib/test/Registry.spec.ts index 78cde9d4..d85da0e5 100644 --- a/packages/ecs-lib/test/Registry.spec.ts +++ b/packages/ecs-lib/test/Registry.spec.ts @@ -18,10 +18,6 @@ class Position { ) {} } -const getRunSystemsParams = (registry: any) => ({ - libs: { getComponentSystem: () => ({ registry }) }, -}); - describe("Registry", () => { describe("entity management", () => { it("should spawn an entity with id 0", async () => { @@ -116,7 +112,7 @@ describe("Registry", () => { for (let i = 0; i <= 15; i++) { expect(counter).toBe(i); - r.runSystems(getRunSystemsParams(r)); + r.runSystems({}); } expect(counter).toBe(16); }); @@ -148,12 +144,12 @@ describe("Registry", () => { expect(r.getComponents(Position).size()).toEqual(3); - r.runSystems(getRunSystemsParams(r)); + r.runSystems({}); expect(r.getComponents(Position).get(e.getId())).toStrictEqual(new Position(-1, -1)); expect(r.getComponents(Position).get(e2.getId())).toStrictEqual(new Position(1, 1)); expect(r.getComponents(Position).get(e3.getId())).toStrictEqual(new Position(0, 0)); - r.runSystems(getRunSystemsParams(r)); + r.runSystems({}); expect(r.getComponents(Position).get(e.getId())).toStrictEqual(new Position(0, 0)); expect(r.getComponents(Position).get(e2.getId())).toStrictEqual(new Position(0, 0)); expect(r.getComponents(Position).get(e3.getId())).toStrictEqual(new Position(0, 0)); diff --git a/packages/ecs-server/src/index.ts b/packages/ecs-server/src/index.ts index 107b951b..201a78ca 100644 --- a/packages/ecs-server/src/index.ts +++ b/packages/ecs-server/src/index.ts @@ -1,3 +1,4 @@ +import ECSModule from "../lib/libecs"; // @ts-ignore import "../lib/libecs.wasm"; @@ -12,3 +13,5 @@ export type { } from "@nanoforge-dev/ecs-lib"; export { ECSServerLibrary } from "./ecs-server-library"; + +export const Module = ECSModule;