@perplexdotgg/mecs 0.3.1 → 0.3.2
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/build/index.d.ts +8 -8
- package/package.json +3 -3
package/build/index.d.ts
CHANGED
|
@@ -47,13 +47,13 @@ export declare type ComponentMapInput<CM extends ComponentMap> = Partial<{
|
|
|
47
47
|
[K in keyof CM as LowercaseFirstLetter<K>]: ComponentInput<ExtractMonomorphClass<CM[K]>>;
|
|
48
48
|
}>;
|
|
49
49
|
|
|
50
|
-
export declare function createEntityClass<C>(options?: EntityCodeGenerationOptions): <CM extends ComponentMap, QM extends QueryMap<C, CM>, I extends
|
|
50
|
+
export declare function createEntityClass<C>(options?: EntityCodeGenerationOptions): <CM extends ComponentMap, QM extends QueryMap<C, CM>, I extends ComponentMapInput<CM> = ComponentMapInput<CM>>(componentMap: CM, queries?: QM) => EntityClassWithStatics<C, CM, QM, I>;
|
|
51
51
|
|
|
52
|
-
export declare type CreateEntityFunction<C, CM extends ComponentMap, I extends
|
|
52
|
+
export declare type CreateEntityFunction<C, CM extends ComponentMap, I extends ComponentMapInput<CM>> = (data?: I, pool?: EntityPoolClass<C>) => EntityInstanceWithPool<CM, I, C>;
|
|
53
53
|
|
|
54
54
|
declare type ElementOfArray<T> = T extends (infer E)[] ? E : never;
|
|
55
55
|
|
|
56
|
-
declare interface EntityBaseProperties<CM extends ComponentMap, I extends any =
|
|
56
|
+
declare interface EntityBaseProperties<CM extends ComponentMap, I extends any = ComponentMapInput<CM>> {
|
|
57
57
|
componentMap: CM;
|
|
58
58
|
__typescriptOnlyInputType: I;
|
|
59
59
|
addComponent: <CCK extends LowercaseFirstLetter<keyof CM>, CC extends CM[OriginalComponentKey<CCK, CM>] = CM[OriginalComponentKey<CCK, CM>]>(...a: (undefined extends ComponentInput<ExtractMonomorphClass<CC>> ? [key: CCK, data?: ComponentInput<ExtractMonomorphClass<CC>>] : [key: CCK, data: ComponentInput<ExtractMonomorphClass<CC>>])) => void;
|
|
@@ -64,9 +64,9 @@ declare interface EntityBaseProperties<CM extends ComponentMap, I extends any =
|
|
|
64
64
|
isDestroyed(): boolean;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
export declare type EntityClass<CM extends ComponentMap, I extends
|
|
67
|
+
export declare type EntityClass<CM extends ComponentMap, I extends ComponentMapInput<CM> = ComponentMapInput<CM>, QM extends QueryMap<any, CM> = QueryMap<any, CM>, E extends EntityInstance<CM, I> = EntityInstance<CM, I>> = EntityConstructor<QM, E, I, CM>;
|
|
68
68
|
|
|
69
|
-
export declare type EntityClassWithStatics<C, CM extends ComponentMap, QM extends QueryMap<C, CM>, I extends
|
|
69
|
+
export declare type EntityClassWithStatics<C, CM extends ComponentMap, QM extends QueryMap<C, CM>, I extends ComponentMapInput<CM> = ComponentMapInput<CM>> = EntityClass<CM, I, QM> & {
|
|
70
70
|
create: CreateEntityFunction<C, CM, I>;
|
|
71
71
|
Pool: NoInfer<EntityPoolClass<C>>;
|
|
72
72
|
};
|
|
@@ -124,9 +124,9 @@ export declare interface EntityConstructor<QM extends QueryMap<any, CM>, E exten
|
|
|
124
124
|
|
|
125
125
|
export declare type EntityInput<X extends ComponentMap | EntityClass<any, any, any, any> | EntityInstanceWithPool<any, any, any> | EntityInstance<any, any>> = X extends ComponentMap ? ComponentMapInput<X> : X extends EntityConstructor<infer QM, infer E, infer I, infer CM> ? I : X extends EntityInstanceWithPool<infer CM, infer I, infer E> ? I : X extends EntityInstance<infer CM, infer I> ? I : never;
|
|
126
126
|
|
|
127
|
-
export declare type EntityInstance<CM extends ComponentMap, I extends any =
|
|
127
|
+
export declare type EntityInstance<CM extends ComponentMap, I extends any = ComponentMapInput<CM>> = ComponentMapClassProperties<CM> & EntityBaseProperties<CM, I>;
|
|
128
128
|
|
|
129
|
-
export declare type EntityInstanceWithPool<CM extends ComponentMap, I extends
|
|
129
|
+
export declare type EntityInstanceWithPool<CM extends ComponentMap, I extends ComponentMapInput<CM>, E> = NoInfer<E & {
|
|
130
130
|
pool: EntityPoolClass<E> | null;
|
|
131
131
|
createInPool(data?: I): EntityInstanceWithPool<CM, I, E>;
|
|
132
132
|
}>;
|
|
@@ -150,7 +150,7 @@ export declare interface EntityPoolClass<M> {
|
|
|
150
150
|
/** how many non-destroyed objects are in this pool, i.e. how many would be iterated on */
|
|
151
151
|
length: number;
|
|
152
152
|
[Symbol.iterator](): IterableIterator<WithPool<M>>;
|
|
153
|
-
create(data?: M extends EntityInstance<infer CM, infer I> ?
|
|
153
|
+
create(data?: M extends EntityInstance<infer CM, infer I> ? ComponentMapInput<CM> : undefined): M extends EntityInstanceWithPool<infer CM, infer I, any> ? EntityInstanceWithPool<CM, I, M> : never;
|
|
154
154
|
toArray(array: NumberArray, startOffset?: number): number;
|
|
155
155
|
fromArray(array: NumberArray, startOffset?: number, classConstructor?: new (...args: any[]) => M): number;
|
|
156
156
|
fromArrayNoReferences(array: NumberArray, startOffset?: number, classConstructor?: new (...args: any[]) => M): number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perplexdotgg/mecs",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "MECS - Monomorph ECS - A high-performance Entity Component System for TypeScript and JavaScript projects, designed for games and simulations.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"bench": "vitest bench"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"monomorph": "^1.5.
|
|
31
|
+
"monomorph": "^1.5.6"
|
|
32
32
|
},
|
|
33
33
|
"peerDependenciesMeta": {
|
|
34
34
|
"monomorph": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^25.0.1",
|
|
40
|
-
"monomorph": "^1.5.
|
|
40
|
+
"monomorph": "^1.5.6",
|
|
41
41
|
"ts-node": "^10.9.2",
|
|
42
42
|
"tslib": "^2.8.1",
|
|
43
43
|
"typescript": "^5.9.3",
|