Skip to content

Commit 59a6697

Browse files
authored
feat(ecs): allow component params to be enum (#291)
* feat(ecs): allow component params to be enum # Conflicts: # packages/ecs-server/src/index.ts * fix(lib-ecs): not builded type required * fix(lib-ecs): review * fix(lib-ecs): review
1 parent 7c659db commit 59a6697

4 files changed

Lines changed: 8 additions & 9 deletions

File tree

packages/ecs-lib/lib/libecs.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export interface ClassHandle {
1616
[Symbol.dispose](): void;
1717
clone(): this;
1818
}
19-
export interface container extends ClassHandle {
19+
export interface container extends ClassHandle, Iterable<any | undefined> {
2020
size(): number;
2121
get(_0: number): any | undefined | undefined;
2222
push_back(_0?: any): void;

packages/ecs-lib/src/editor-manifest.type.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type ECSStringElement = {
4646
/**
4747
* Values allowed for the element
4848
*/
49-
enum?: string[];
49+
enum?: string[] | Record<string, any>;
5050
} & ECSElementDefaults<"string", string>;
5151

5252
/**

packages/ecs-lib/test/Registry.spec.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ class Position {
1818
) {}
1919
}
2020

21-
const getRunSystemsParams = (registry: any) => ({
22-
libs: { getComponentSystem: () => ({ registry }) },
23-
});
24-
2521
describe("Registry", () => {
2622
describe("entity management", () => {
2723
it("should spawn an entity with id 0", async () => {
@@ -116,7 +112,7 @@ describe("Registry", () => {
116112

117113
for (let i = 0; i <= 15; i++) {
118114
expect(counter).toBe(i);
119-
r.runSystems(getRunSystemsParams(r));
115+
r.runSystems({});
120116
}
121117
expect(counter).toBe(16);
122118
});
@@ -148,12 +144,12 @@ describe("Registry", () => {
148144

149145
expect(r.getComponents(Position).size()).toEqual(3);
150146

151-
r.runSystems(getRunSystemsParams(r));
147+
r.runSystems({});
152148
expect(r.getComponents(Position).get(e.getId())).toStrictEqual(new Position(-1, -1));
153149
expect(r.getComponents(Position).get(e2.getId())).toStrictEqual(new Position(1, 1));
154150
expect(r.getComponents(Position).get(e3.getId())).toStrictEqual(new Position(0, 0));
155151

156-
r.runSystems(getRunSystemsParams(r));
152+
r.runSystems({});
157153
expect(r.getComponents(Position).get(e.getId())).toStrictEqual(new Position(0, 0));
158154
expect(r.getComponents(Position).get(e2.getId())).toStrictEqual(new Position(0, 0));
159155
expect(r.getComponents(Position).get(e3.getId())).toStrictEqual(new Position(0, 0));

packages/ecs-server/src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import ECSModule from "../lib/libecs";
12
// @ts-ignore
23
import "../lib/libecs.wasm";
34

@@ -12,3 +13,5 @@ export type {
1213
} from "@nanoforge-dev/ecs-lib";
1314

1415
export { ECSServerLibrary } from "./ecs-server-library";
16+
17+
export const Module = ECSModule;

0 commit comments

Comments
 (0)