@fps-games/engine 0.0.1-beta.12 → 0.0.1-beta.14

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.
@@ -1,7 +1,7 @@
1
1
  import type { FpsAssetResourceResolver } from '../asset-resource.js';
2
2
  import type { FpsGeneratedAssetCatalog, FpsRuntimeData } from '../runtime-data-types.js';
3
3
  import type { FpsBabylonRendererContext, FpsBabylonRendererHostController } from './renderer-controller.js';
4
- export declare const FPS_BABYLON_RENDERER_PLUGIN_ID: "fps.renderer.babylon";
4
+ export { FPS_BABYLON_RENDERER_PLUGIN_ID } from '../config.js';
5
5
  export type FpsBabylonRendererPluginConfig = Readonly<Record<string, never>>;
6
6
  export interface FpsAssetCatalogSource {
7
7
  readonly catalog: FpsGeneratedAssetCatalog;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-contract.d.ts","sourceRoot":"","sources":["../../src/babylon/plugin-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EACV,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,8BAA8B,EAAG,sBAA+B,CAAC;AAC9E,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,6KAA4D,CAAC;AAC1F,eAAO,MAAM,wBAAwB,wEAEpC,CAAC;AACF,eAAO,MAAM,2BAA2B,2EAEvC,CAAC;AACF,eAAO,MAAM,4BAA4B,4EAExC,CAAC;AACF,eAAO,MAAM,yBAAyB,6KAErC,CAAC;AACF,eAAO,MAAM,4BAA4B,mFAExC,CAAC"}
1
+ {"version":3,"file":"plugin-contract.d.ts","sourceRoot":"","sources":["../../src/babylon/plugin-contract.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EACV,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,6KAA4D,CAAC;AAC1F,eAAO,MAAM,wBAAwB,wEAEpC,CAAC;AACF,eAAO,MAAM,2BAA2B,2EAEvC,CAAC;AACF,eAAO,MAAM,4BAA4B,4EAExC,CAAC;AACF,eAAO,MAAM,yBAAyB,6KAErC,CAAC;AACF,eAAO,MAAM,4BAA4B,mFAExC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { defineFpsServiceToken } from '@fps-games/plugin-sdk';
2
- export const FPS_BABYLON_RENDERER_PLUGIN_ID = 'fps.renderer.babylon';
2
+ import { FPS_BABYLON_RENDERER_PLUGIN_ID } from '../config.js';
3
+ export { FPS_BABYLON_RENDERER_PLUGIN_ID } from '../config.js';
3
4
  export const FPS_RUNTIME_DATA = defineFpsServiceToken('fps.runtime.data');
4
5
  export const FPS_ASSET_CATALOG_SOURCE = defineFpsServiceToken('fps.asset.catalog.source');
5
6
  export const FPS_ASSET_RESOURCE_RESOLVER = defineFpsServiceToken('fps.asset.resource.resolver');
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-contract.js","sourceRoot":"","sources":["../../src/babylon/plugin-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAQ9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAA+B,CAAC;AAO9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAiB,kBAAkB,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAC3D,0BAA0B,CAC3B,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAC9D,6BAA6B,CAC9B,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAC/D,8BAA8B,CAC/B,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAC5D,mCAAmC,CACpC,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAC/D,8BAA8B,CAC/B,CAAC"}
1
+ {"version":3,"file":"plugin-contract.js","sourceRoot":"","sources":["../../src/babylon/plugin-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAQ9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAO9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAiB,kBAAkB,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAC3D,0BAA0B,CAC3B,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAC9D,6BAA6B,CAC9B,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAC/D,8BAA8B,CAC/B,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAC5D,mCAAmC,CACpC,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAC/D,8BAA8B,CAC/B,CAAC"}
@@ -20,10 +20,12 @@ export interface DynamicShadowOptions {
20
20
  camera?: Camera | null;
21
21
  params: DynamicShadowParams;
22
22
  useCsm?: boolean;
23
+ fitStrategy?: DynamicShadowFitStrategy;
23
24
  boundsPadding?: number;
24
25
  stableSnapping?: boolean;
25
26
  debug?: boolean;
26
27
  }
28
+ export type DynamicShadowFitStrategy = 'light-space' | 'receiver-projected';
27
29
  export interface DynamicShadowLightOrthoBounds {
28
30
  left: number;
29
31
  right: number;
@@ -81,4 +83,5 @@ export interface DynamicShadowSystem {
81
83
  dispose(): void;
82
84
  }
83
85
  export declare function createDynamicShadowSystem(scene: Scene, directionalLight: DirectionalLight, options?: Partial<DynamicShadowOptions>): DynamicShadowSystem;
86
+ export declare function resolveDynamicShadowParams(params: Partial<DynamicShadowParams> | undefined, fallback?: DynamicShadowParams): DynamicShadowParams;
84
87
  //# sourceMappingURL=dynamic-shadow-system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-shadow-system.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/dynamic-shadow-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-shadow-system.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/dynamic-shadow-system.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ class BabylonDynamicShadowSystem {
31
31
  previousSceneShadowsEnabled = null;
32
32
  previousLightShadowEnabled = null;
33
33
  previousLightAutoUpdateExtends = null;
34
+ previousLightPosition = null;
34
35
  previousLightFrustum = null;
35
36
  useCsmExplicit = false;
36
37
  constructor(scene, directionalLight, options) {
@@ -43,24 +44,33 @@ class BabylonDynamicShadowSystem {
43
44
  initialize() {
44
45
  if (this.initialized || !this.options.enabled)
45
46
  return;
46
- this.previousSceneShadowsEnabled = this.scene.shadowsEnabled;
47
- this.previousLightShadowEnabled = this.directionalLight.shadowEnabled;
48
- this.previousLightAutoUpdateExtends = this.directionalLight.autoUpdateExtends;
49
- this.previousLightFrustum = {
50
- left: this.directionalLight.orthoLeft,
51
- right: this.directionalLight.orthoRight,
52
- top: this.directionalLight.orthoTop,
53
- bottom: this.directionalLight.orthoBottom,
54
- minZ: this.directionalLight.shadowMinZ,
55
- maxZ: this.directionalLight.shadowMaxZ,
56
- };
57
- this.scene.shadowsEnabled = true;
58
- this.directionalLight.shadowEnabled = true;
59
- this.directionalLight.autoUpdateExtends = false;
60
- this.ensureShadowGenerator();
61
- this.renderObserver = this.scene.onBeforeRenderObservable.add(() => this.refresh());
62
- this.initialized = true;
63
- this.refresh();
47
+ try {
48
+ this.previousSceneShadowsEnabled = this.scene.shadowsEnabled;
49
+ this.previousLightShadowEnabled = this.directionalLight.shadowEnabled;
50
+ this.previousLightAutoUpdateExtends = this.directionalLight.autoUpdateExtends;
51
+ this.previousLightPosition = this.options.fitStrategy === 'receiver-projected'
52
+ ? this.directionalLight.position.clone()
53
+ : null;
54
+ this.previousLightFrustum = {
55
+ left: this.directionalLight.orthoLeft,
56
+ right: this.directionalLight.orthoRight,
57
+ top: this.directionalLight.orthoTop,
58
+ bottom: this.directionalLight.orthoBottom,
59
+ minZ: this.directionalLight.shadowMinZ,
60
+ maxZ: this.directionalLight.shadowMaxZ,
61
+ };
62
+ this.scene.shadowsEnabled = true;
63
+ this.directionalLight.shadowEnabled = true;
64
+ this.directionalLight.autoUpdateExtends = false;
65
+ this.ensureShadowGenerator();
66
+ this.renderObserver = this.scene.onBeforeRenderObservable.add(() => this.refresh());
67
+ this.initialized = true;
68
+ this.refresh();
69
+ }
70
+ catch (error) {
71
+ this.dispose();
72
+ throw error;
73
+ }
64
74
  }
65
75
  addCaster(mesh) {
66
76
  if (isDisposed(mesh))
@@ -109,6 +119,15 @@ class BabylonDynamicShadowSystem {
109
119
  if (hasExplicitUseCsm(options))
110
120
  this.useCsmExplicit = true;
111
121
  this.options = resolveDynamicShadowOptions(options, this.options, this.useCsmExplicit);
122
+ if (this.initialized && previous.fitStrategy !== this.options.fitStrategy) {
123
+ if (this.options.fitStrategy === 'receiver-projected') {
124
+ this.previousLightPosition = this.directionalLight.position.clone();
125
+ }
126
+ else if (this.previousLightPosition) {
127
+ this.directionalLight.position.copyFrom(this.previousLightPosition);
128
+ this.previousLightPosition = null;
129
+ }
130
+ }
112
131
  if (previous.enabled && !this.options.enabled) {
113
132
  this.dispose();
114
133
  return;
@@ -171,6 +190,10 @@ class BabylonDynamicShadowSystem {
171
190
  this.directionalLight.autoUpdateExtends = this.previousLightAutoUpdateExtends;
172
191
  this.previousLightAutoUpdateExtends = null;
173
192
  }
193
+ if (this.previousLightPosition) {
194
+ this.directionalLight.position.copyFrom(this.previousLightPosition);
195
+ this.previousLightPosition = null;
196
+ }
174
197
  if (this.previousLightFrustum) {
175
198
  this.directionalLight.orthoLeft = this.previousLightFrustum.left;
176
199
  this.directionalLight.orthoRight = this.previousLightFrustum.right;
@@ -236,6 +259,9 @@ class BabylonDynamicShadowSystem {
236
259
  }
237
260
  }
238
261
  fitDirectionalLightBounds() {
262
+ if (this.options.fitStrategy === 'receiver-projected') {
263
+ return this.fitReceiverProjectedDirectionalLightBounds();
264
+ }
239
265
  const params = this.options.params;
240
266
  const points = this.collectCoveragePoints(params);
241
267
  if (points.length === 0)
@@ -292,6 +318,56 @@ class BabylonDynamicShadowSystem {
292
318
  cameraProjection: readCameraProjection(this.options.camera),
293
319
  };
294
320
  }
321
+ fitReceiverProjectedDirectionalLightBounds() {
322
+ const params = this.options.params;
323
+ const direction = readLightDirection(this.directionalLight.getShadowDirection(0));
324
+ const casterBounds = [...this.casters]
325
+ .filter(caster => !isDisposed(caster))
326
+ .map(readMeshWorldBounds);
327
+ const receiverBounds = [...this.receivers.keys()]
328
+ .filter(receiver => !isDisposed(receiver))
329
+ .map(readMeshWorldBounds);
330
+ const points = [];
331
+ for (const bounds of casterBounds) {
332
+ points.push(...createBoundsCorners(bounds.min, bounds.max));
333
+ for (const receiver of receiverBounds) {
334
+ points.push(...projectBoundsOntoReceiver(bounds, receiver, direction));
335
+ }
336
+ }
337
+ if (points.length === 0)
338
+ return null;
339
+ const worldBounds = boundsFromPoints(points);
340
+ const center = worldBounds.min.add(worldBounds.max).scale(0.5);
341
+ const size = worldBounds.max.subtract(worldBounds.min);
342
+ const maxExtent = Math.max(size.x, size.y, size.z);
343
+ const padding = readPositiveNumber(this.options.boundsPadding, Math.max(2, maxExtent * 0.25));
344
+ const halfSize = Math.max(4, maxExtent * 0.5 + padding);
345
+ const distance = Math.max(16, maxExtent + padding * 3);
346
+ this.directionalLight.position.copyFrom(center.subtract(direction.scale(distance)));
347
+ const bounds = {
348
+ left: -halfSize,
349
+ right: halfSize,
350
+ bottom: -halfSize,
351
+ top: halfSize,
352
+ minZ: 0.1,
353
+ maxZ: Math.max(32, distance + maxExtent + padding),
354
+ };
355
+ this.directionalLight.orthoLeft = bounds.left;
356
+ this.directionalLight.orthoRight = bounds.right;
357
+ this.directionalLight.orthoBottom = bounds.bottom;
358
+ this.directionalLight.orthoTop = bounds.top;
359
+ this.directionalLight.shadowMinZ = bounds.minZ;
360
+ this.directionalLight.shadowMaxZ = bounds.maxZ;
361
+ return {
362
+ world: {
363
+ min: serializeVec3(worldBounds.min),
364
+ max: serializeVec3(worldBounds.max),
365
+ },
366
+ lightOrtho: bounds,
367
+ texelSize: (halfSize * 2) / params.resolution,
368
+ cameraProjection: 'none',
369
+ };
370
+ }
295
371
  collectCoveragePoints(params) {
296
372
  const points = [];
297
373
  const lightDirection = readLightDirection(this.directionalLight.getShadowDirection(0));
@@ -350,7 +426,8 @@ function resolveDynamicShadowOptions(options, fallback, preserveFallbackUseCsm =
350
426
  camera: options.camera ?? fallback?.camera ?? null,
351
427
  params,
352
428
  useCsm: options.useCsm ?? (preserveFallbackUseCsm ? fallback?.useCsm : undefined) ?? params.cascadeCount > 1,
353
- boundsPadding: readPositiveNumber(options.boundsPadding, fallback?.boundsPadding ?? Math.max(0.5, params.maxDistance * 0.025)),
429
+ fitStrategy: options.fitStrategy ?? fallback?.fitStrategy ?? 'light-space',
430
+ boundsPadding: options.boundsPadding ?? fallback?.boundsPadding,
354
431
  stableSnapping: options.stableSnapping ?? fallback?.stableSnapping ?? true,
355
432
  debug: options.debug ?? fallback?.debug ?? false,
356
433
  };
@@ -358,7 +435,7 @@ function resolveDynamicShadowOptions(options, fallback, preserveFallbackUseCsm =
358
435
  function hasExplicitUseCsm(options) {
359
436
  return Object.prototype.hasOwnProperty.call(options, 'useCsm') && typeof options.useCsm === 'boolean';
360
437
  }
361
- function resolveDynamicShadowParams(params, fallback = DEFAULT_DYNAMIC_SHADOW_PARAMS) {
438
+ export function resolveDynamicShadowParams(params, fallback = DEFAULT_DYNAMIC_SHADOW_PARAMS) {
362
439
  return {
363
440
  opacity: clamp01(readFiniteNumber(params?.opacity, fallback.opacity)),
364
441
  softness: clamp01(readFiniteNumber(params?.softness, fallback.softness)),
@@ -488,6 +565,22 @@ function createBoundsCorners(min, max) {
488
565
  new Vector3(min.x, max.y, max.z),
489
566
  ];
490
567
  }
568
+ function readMeshWorldBounds(mesh) {
569
+ mesh.computeWorldMatrix(true);
570
+ const bounds = mesh.getBoundingInfo().boundingBox;
571
+ return { min: bounds.minimumWorld.clone(), max: bounds.maximumWorld.clone() };
572
+ }
573
+ function projectBoundsOntoReceiver(caster, receiver, direction) {
574
+ const receiverY = receiver.max.y;
575
+ if (Math.abs(direction.y) < 1e-6)
576
+ return [];
577
+ return createBoundsCorners(caster.min, caster.max).flatMap(point => {
578
+ const distance = (receiverY - point.y) / direction.y;
579
+ if (!Number.isFinite(distance))
580
+ return [];
581
+ return [point.add(direction.scale(Math.max(0, distance)))];
582
+ });
583
+ }
491
584
  function safeCameraDirection(camera, localAxis, fallback) {
492
585
  try {
493
586
  const direction = camera.getDirection(localAxis);
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-shadow-system.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/dynamic-shadow-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-shadow-system.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/dynamic-shadow-system.ts"],"names":[],"mappings":"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"}
@@ -83,7 +83,7 @@ export interface FpsBabylonRendererPluginOptions {
83
83
  readonly pluginVersion: string;
84
84
  }
85
85
  export declare const pluginEntry: Readonly<{
86
- pluginId: "fps.renderer.babylon";
86
+ pluginId: string;
87
87
  environment: "renderer";
88
88
  register(context: import("@fps-games/plugin-sdk").FpsPluginContext): void;
89
89
  start(context: import("@fps-games/plugin-sdk").FpsPluginContext): Promise<void>;
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "packageName": "@fps-games/engine",
4
- "version": "0.0.1-beta.12",
5
- "gitSha": "7a00b54613fc74c3c8b07808ceabd438a643b215",
6
- "distHash": "a114c6143b997c18d70b9cb4d0974e5cc447ac5be3a39d676d64c4351dc413a1",
7
- "cacheKey": "0.0.1-beta.12-a114c6143b99"
4
+ "version": "0.0.1-beta.14",
5
+ "gitSha": "b40314e73f3facc00de7fd0463b6adb1169ff221",
6
+ "distHash": "c35b77371a1aa55d3c998668cebafbc833fa16723b4a8faabd787127c776d690",
7
+ "cacheKey": "0.0.1-beta.14-c35b77371a1a"
8
8
  }
package/dist/config.d.ts CHANGED
@@ -1,5 +1,11 @@
1
+ import { type FpsPluginReference } from '@fps-games/plugin-sdk';
1
2
  export declare const ENGINE_CONFIG_SUBPATH = "@fps-games/engine/config";
2
- export interface FpsEnginePluginReference {
3
- readonly id: string;
4
- }
3
+ export declare const FPS_BABYLON_RENDERER_PLUGIN_ID = "fps.renderer.babylon";
4
+ export declare const FPS_BABYLON_RENDERER_PACKAGE_NAME = "@fps-games/engine";
5
+ export type FpsBabylonRendererPluginConfig = Readonly<Record<string, never>>;
6
+ /**
7
+ * Declares the Engine-owned Babylon Renderer Plugin without loading Babylon.
8
+ * Tooling reads the matching static manifest from @fps-games/engine/package.json.
9
+ */
10
+ export declare function babylonRendererPlugin(config?: FpsBabylonRendererPluginConfig): Readonly<FpsPluginReference<FpsBabylonRendererPluginConfig>>;
5
11
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,8BAA8B,yBAAyB,CAAC;AACrE,eAAO,MAAM,iCAAiC,sBAAsB,CAAC;AAErE,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,8BAAmC,GAC1C,QAAQ,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAC,CAa9D"}
package/dist/config.js CHANGED
@@ -1,2 +1,23 @@
1
+ import { defineFpsPluginReference, } from '@fps-games/plugin-sdk';
1
2
  export const ENGINE_CONFIG_SUBPATH = '@fps-games/engine/config';
3
+ export const FPS_BABYLON_RENDERER_PLUGIN_ID = 'fps.renderer.babylon';
4
+ export const FPS_BABYLON_RENDERER_PACKAGE_NAME = '@fps-games/engine';
5
+ /**
6
+ * Declares the Engine-owned Babylon Renderer Plugin without loading Babylon.
7
+ * Tooling reads the matching static manifest from @fps-games/engine/package.json.
8
+ */
9
+ export function babylonRendererPlugin(config = {}) {
10
+ return defineFpsPluginReference({
11
+ packageName: FPS_BABYLON_RENDERER_PACKAGE_NAME,
12
+ pluginId: FPS_BABYLON_RENDERER_PLUGIN_ID,
13
+ config,
14
+ hostServices: {
15
+ renderer: [
16
+ 'fps.renderer.babylon.context',
17
+ 'fps.renderer.babylon.runtime-data',
18
+ 'fps.asset.catalog.source',
19
+ ],
20
+ },
21
+ });
22
+ }
2
23
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAChE,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,mBAAmB,CAAC;AAIrE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAyC,EAAE;IAE3C,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,8BAA8B;QACxC,MAAM;QACN,YAAY,EAAE;YACZ,QAAQ,EAAE;gBACR,8BAA8B;gBAC9B,mCAAmC;gBACnC,0BAA0B;aAC3B;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/engine",
3
- "version": "0.0.1-beta.12",
3
+ "version": "0.0.1-beta.14",
4
4
  "description": "Forge Play game engine Runtime Data and renderer backend product.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -26,6 +26,48 @@
26
26
  "files": [
27
27
  "dist"
28
28
  ],
29
+ "fpsGamePlugin": {
30
+ "id": "fps.renderer.babylon",
31
+ "version": "0.0.1-beta.14",
32
+ "apiVersion": 1,
33
+ "requires": {},
34
+ "provides": {
35
+ "features": [
36
+ "fps.renderer.babylon"
37
+ ]
38
+ },
39
+ "entries": {
40
+ "renderer": "./babylon"
41
+ },
42
+ "environmentContracts": {
43
+ "renderer": {
44
+ "requires": {
45
+ "services": [
46
+ "fps.renderer.babylon.context",
47
+ "fps.renderer.babylon.runtime-data",
48
+ "fps.asset.catalog.source"
49
+ ]
50
+ },
51
+ "provides": {
52
+ "services": [
53
+ "fps.asset.resource.resolver",
54
+ "fps.renderer.babylon.service"
55
+ ]
56
+ },
57
+ "scopes": [
58
+ "application"
59
+ ]
60
+ }
61
+ },
62
+ "deploymentConstraints": {
63
+ "allowedTargets": [
64
+ "editor",
65
+ "game-development",
66
+ "game-test",
67
+ "game-production"
68
+ ]
69
+ }
70
+ },
29
71
  "sideEffects": false,
30
72
  "scripts": {
31
73
  "build": "tsc -b",