@multitapio/multitap 0.0.8 → 0.0.9

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.
@@ -13,6 +13,8 @@ import type { CompiledStateSchema, CompiledInputSchema } from '../schema';
13
13
  export interface GeneratorOptions {
14
14
  /** Optional plugin name for prefixing (e.g., "physics") */
15
15
  pluginName?: string;
16
+ /** Maximum number of participants (default: 8) */
17
+ maxParticipants?: number;
16
18
  }
17
19
  /**
18
20
  * Code generator interface.
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/codegen/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC;IAEzC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC;CAC9E;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB9C;AAmBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASpE;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnD"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/codegen/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC;IAEzC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC;CAC9E;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB9C;AAmBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASpE;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnD"}
@@ -14,6 +14,7 @@ import type { Generator, GeneratorOptions } from './generator';
14
14
  export declare class RustGenerator implements Generator {
15
15
  readonly language: "rust";
16
16
  private opts;
17
+ private maxParticipants;
17
18
  constructor(opts?: GeneratorOptions);
18
19
  generateState(schema: CompiledStateSchema): string;
19
20
  generateInput(schema: CompiledInputSchema): string;
@@ -1 +1 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/codegen/rust.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAKpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAy5C/D;;;GAGG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IACpC,OAAO,CAAC,IAAI,CAAmB;gBAEnB,IAAI,GAAE,gBAAqB;IAIvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2BlD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAe7E"}
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/codegen/rust.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAKpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA05C/D;;;GAGG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IACpC,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,eAAe,CAAS;gBAEpB,IAAI,GAAE,gBAAqB;IAKvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2BlD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAe7E"}
@@ -14,6 +14,7 @@ import type { Generator, GeneratorOptions } from './generator';
14
14
  export declare class TypeScriptGenerator implements Generator {
15
15
  readonly language: "typescript";
16
16
  private opts;
17
+ private maxParticipants;
17
18
  constructor(opts?: GeneratorOptions);
18
19
  generateState(schema: CompiledStateSchema): string;
19
20
  generateInput(schema: CompiledInputSchema): string;
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/codegen/typescript.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAMpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAklD/D;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,OAAO,CAAC,IAAI,CAAmB;gBAEnB,IAAI,GAAE,gBAAqB;IAIvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA0ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAyClD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAG7E"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/codegen/typescript.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAMpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmlD/D;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,eAAe,CAAS;gBAEpB,IAAI,GAAE,gBAAqB;IAKvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA0ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAyClD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAG7E"}
package/dist/lib.js CHANGED
@@ -9523,7 +9523,7 @@ var MobaView = {
9523
9523
  // src/react/views/AsteroidsView.ts
9524
9524
  import { Quaternion as Quaternion14, Vector3 as Vector314 } from "three";
9525
9525
  var DEFAULT_DISTANCE8 = 50;
9526
- var DEFAULT_ANGLE3 = Math.PI / 2;
9526
+ var DEFAULT_ANGLE3 = 0;
9527
9527
  var DEFAULT_ROTATION_SENSITIVITY = 4;
9528
9528
  var DEFAULT_FOLLOW_SPEED5 = 10;
9529
9529
  var UP = new Vector314(0, 1, 0);
@@ -13,6 +13,8 @@ import type { CompiledStateSchema, CompiledInputSchema } from '../schema';
13
13
  export interface GeneratorOptions {
14
14
  /** Optional plugin name for prefixing (e.g., "physics") */
15
15
  pluginName?: string;
16
+ /** Maximum number of participants (default: 8) */
17
+ maxParticipants?: number;
16
18
  }
17
19
  /**
18
20
  * Code generator interface.
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/codegen/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC;IAEzC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC;CAC9E;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB9C;AAmBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASpE;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnD"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/codegen/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC;IAEzC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAEnD;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC;CAC9E;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB9C;AAmBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASpE;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnD"}
@@ -14,6 +14,7 @@ import type { Generator, GeneratorOptions } from './generator';
14
14
  export declare class RustGenerator implements Generator {
15
15
  readonly language: "rust";
16
16
  private opts;
17
+ private maxParticipants;
17
18
  constructor(opts?: GeneratorOptions);
18
19
  generateState(schema: CompiledStateSchema): string;
19
20
  generateInput(schema: CompiledInputSchema): string;
@@ -1 +1 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/codegen/rust.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAKpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAy5C/D;;;GAGG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IACpC,OAAO,CAAC,IAAI,CAAmB;gBAEnB,IAAI,GAAE,gBAAqB;IAIvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2BlD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAe7E"}
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/codegen/rust.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAKpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA05C/D;;;GAGG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IACpC,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,eAAe,CAAS;gBAEpB,IAAI,GAAE,gBAAqB;IAKvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA2BlD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAe7E"}
@@ -14,6 +14,7 @@ import type { Generator, GeneratorOptions } from './generator';
14
14
  export declare class TypeScriptGenerator implements Generator {
15
15
  readonly language: "typescript";
16
16
  private opts;
17
+ private maxParticipants;
17
18
  constructor(opts?: GeneratorOptions);
18
19
  generateState(schema: CompiledStateSchema): string;
19
20
  generateInput(schema: CompiledInputSchema): string;
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/codegen/typescript.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAMpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAklD/D;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,OAAO,CAAC,IAAI,CAAmB;gBAEnB,IAAI,GAAE,gBAAqB;IAIvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA0ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAyClD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAG7E"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/codegen/typescript.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAMpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmlD/D;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,eAAe,CAAS;gBAEpB,IAAI,GAAE,gBAAqB;IAKvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA0ClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAyClD,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAG7E"}
@@ -566,7 +566,7 @@ function fieldElemSize(field) {
566
566
  }
567
567
  return getElementSize(field.type);
568
568
  }
569
- function generateStateHeader(schema) {
569
+ function generateStateHeader(schema, maxParticipants) {
570
570
  return `// TypeScript State Bindings
571
571
  // Auto-generated - do not edit
572
572
  // MaxEntities: ${schema.maxEntities}
@@ -586,6 +586,7 @@ export function stateView(state: Uint8Array): DataView {
586
586
  // =============================================================================
587
587
 
588
588
  export const MAX_ENTITIES = ${schema.maxEntities};
589
+ export const MAX_PARTICIPANTS = ${maxParticipants};
589
590
  export const HEADER_SIZE = ${schema.headerSize};
590
591
  export const ENTITY_TABLE_OFFSET = ${schema.entityTableOffset};
591
592
  export const ENTITY_RECORD_SIZE = ${schema.entityRecordSize};
@@ -1937,11 +1938,13 @@ export function get${pascal}${argPascal}FromPayload(payload: Uint8Array): ${tsIn
1937
1938
  var TypeScriptGenerator = class {
1938
1939
  language = "typescript";
1939
1940
  opts;
1941
+ maxParticipants;
1940
1942
  constructor(opts = {}) {
1941
1943
  this.opts = opts;
1944
+ this.maxParticipants = opts.maxParticipants ?? 8;
1942
1945
  }
1943
1946
  generateState(schema) {
1944
- let out = generateStateHeader(schema);
1947
+ let out = generateStateHeader(schema, this.maxParticipants);
1945
1948
  out += generateComponentOffsets(schema);
1946
1949
  out += generateEntityHelpers();
1947
1950
  out += generateIterationHelpers(schema);
@@ -2159,7 +2162,7 @@ function fieldElemSize2(field) {
2159
2162
  }
2160
2163
  return getElementSize(field.type);
2161
2164
  }
2162
- function generateStateHeader2(schema) {
2165
+ function generateStateHeader2(schema, maxParticipants) {
2163
2166
  return `// Language: Rust
2164
2167
  // MaxEntities: ${schema.maxEntities}
2165
2168
  // TotalSize: ${schema.totalSize} bytes
@@ -2171,6 +2174,7 @@ use core::ptr;
2171
2174
  // =============================================================================
2172
2175
 
2173
2176
  pub const MAX_ENTITIES: u32 = ${schema.maxEntities};
2177
+ pub const MAX_PARTICIPANTS: u8 = ${maxParticipants};
2174
2178
  pub const HEADER_SIZE: u32 = ${schema.headerSize};
2175
2179
  pub const ENTITY_TABLE_OFFSET: u32 = ${schema.entityTableOffset};
2176
2180
  pub const ENTITY_RECORD_SIZE: u32 = ${schema.entityRecordSize};
@@ -3358,11 +3362,13 @@ static ALLOC: HostAlloc = HostAlloc;
3358
3362
  var RustGenerator = class {
3359
3363
  language = "rust";
3360
3364
  opts;
3365
+ maxParticipants;
3361
3366
  constructor(opts = {}) {
3362
3367
  this.opts = opts;
3368
+ this.maxParticipants = opts.maxParticipants ?? 8;
3363
3369
  }
3364
3370
  generateState(schema) {
3365
- let out = generateStateHeader2(schema);
3371
+ let out = generateStateHeader2(schema, this.maxParticipants);
3366
3372
  out += generateComponentOffsets2(schema);
3367
3373
  out += generateMemoryHelpers();
3368
3374
  out += generateInternalHelpers();
@@ -3953,7 +3959,7 @@ async function runCodegen(configPath, options) {
3953
3959
  if (verbose) {
3954
3960
  console.log(`[multitap] State buffer size: ${compiledState.totalSize} bytes`);
3955
3961
  }
3956
- const tsGen = new TypeScriptGenerator();
3962
+ const tsGen = new TypeScriptGenerator({ maxParticipants: merged.config.maxParticipants });
3957
3963
  const tsCode = tsGen.generateGame(compiledState, compiledInput);
3958
3964
  await mkdir(generatedDir, { recursive: true });
3959
3965
  const tsPath = join2(generatedDir, "state.ts");
@@ -3961,7 +3967,7 @@ async function runCodegen(configPath, options) {
3961
3967
  if (verbose) {
3962
3968
  console.log(`[multitap] Generated ${tsPath}`);
3963
3969
  }
3964
- const rustGen = new RustGenerator();
3970
+ const rustGen = new RustGenerator({ maxParticipants: merged.config.maxParticipants });
3965
3971
  const rustCode = rustGen.generateGame(compiledState, compiledInput);
3966
3972
  for (const pluginPath of merged.pluginOrder) {
3967
3973
  const rustDir = join2(pluginPath, "src");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@multitapio/multitap",
3
3
  "type": "module",
4
- "version": "0.0.8",
4
+ "version": "0.0.9",
5
5
  "description": "Rollback networking SDK for fast-paced multiplayer games",
6
6
  "main": "./dist/lib.js",
7
7
  "types": "./dist/lib.d.ts",
package/dist/.stamp DELETED
File without changes