@directivegames/genesys.sdk 3.2.2 → 3.2.4

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.
Files changed (82) hide show
  1. package/README.md +60 -60
  2. package/dist/src/core/cli.js +22 -22
  3. package/dist/src/templates/scripts/genesys/genesys-mcp.js +25 -25
  4. package/dist/src/templates/scripts/genesys/mcp/editor-functions.js +4 -4
  5. package/dist/src/templates/src/templates/vehicle/src/ui-hints.js +30 -30
  6. package/package.json +176 -176
  7. package/scripts/post-install.ts +143 -143
  8. package/src/asset-pack/.gitattributes +88 -88
  9. package/src/asset-pack/eslint.config.js +45 -45
  10. package/src/asset-pack/gitignore +11 -11
  11. package/src/asset-pack/scripts/postinstall.ts +81 -81
  12. package/src/asset-pack/tsconfig.json +33 -33
  13. package/src/templates/.cursor/mcp.json +20 -20
  14. package/src/templates/.cursorignore +2 -2
  15. package/src/templates/.gitattributes +88 -88
  16. package/src/templates/.vscode/settings.json +6 -6
  17. package/src/templates/AGENTS.md +86 -86
  18. package/src/templates/README.md +24 -24
  19. package/src/templates/eslint.config.js +45 -45
  20. package/src/templates/gitignore +11 -11
  21. package/src/templates/index.html +34 -34
  22. package/src/templates/pnpm-lock.yaml +3676 -3676
  23. package/src/templates/scripts/genesys/build-project.ts +51 -51
  24. package/src/templates/scripts/genesys/calc-bounding-box.ts +272 -272
  25. package/src/templates/scripts/genesys/common.ts +46 -46
  26. package/src/templates/scripts/genesys/const.ts +9 -9
  27. package/src/templates/scripts/genesys/dev/dump-default-scene.ts +11 -11
  28. package/src/templates/scripts/genesys/dev/generate-manifest.ts +146 -146
  29. package/src/templates/scripts/genesys/dev/launcher.ts +46 -46
  30. package/src/templates/scripts/genesys/dev/storage-provider.ts +229 -229
  31. package/src/templates/scripts/genesys/dev/update-template-scenes.ts +84 -84
  32. package/src/templates/scripts/genesys/doc-server.ts +16 -16
  33. package/src/templates/scripts/genesys/genesys-mcp.ts +526 -526
  34. package/src/templates/scripts/genesys/mcp/doc-tools.ts +86 -86
  35. package/src/templates/scripts/genesys/mcp/editor-functions.ts +151 -151
  36. package/src/templates/scripts/genesys/mcp/editor-tools.ts +73 -73
  37. package/src/templates/scripts/genesys/mcp/get-scene-state.ts +35 -35
  38. package/src/templates/scripts/genesys/mcp/run-subprocess.ts +30 -30
  39. package/src/templates/scripts/genesys/mcp/search-actors.ts +858 -858
  40. package/src/templates/scripts/genesys/mcp/search-assets.ts +380 -380
  41. package/src/templates/scripts/genesys/mcp/utils.ts +281 -281
  42. package/src/templates/scripts/genesys/misc.ts +42 -42
  43. package/src/templates/scripts/genesys/mock.ts +6 -6
  44. package/src/templates/scripts/genesys/place-actors.ts +179 -179
  45. package/src/templates/scripts/genesys/post-install.ts +30 -30
  46. package/src/templates/scripts/genesys/prefab.schema.json +84 -84
  47. package/src/templates/scripts/genesys/remove-engine-comments.ts +134 -134
  48. package/src/templates/scripts/genesys/run-mcp-inspector.bat +4 -4
  49. package/src/templates/scripts/genesys/storageProvider.ts +182 -182
  50. package/src/templates/scripts/genesys/validate-prefabs.ts +138 -138
  51. package/src/templates/src/index.ts +22 -22
  52. package/src/templates/src/templates/firstPerson/assets/default.genesys-scene +165 -165
  53. package/src/templates/src/templates/firstPerson/src/game.ts +39 -39
  54. package/src/templates/src/templates/firstPerson/src/player.ts +63 -63
  55. package/src/templates/src/templates/fps/assets/default.genesys-scene +9459 -9459
  56. package/src/templates/src/templates/fps/src/game.ts +39 -39
  57. package/src/templates/src/templates/fps/src/player.ts +69 -69
  58. package/src/templates/src/templates/fps/src/weapon.ts +54 -54
  59. package/src/templates/src/templates/freeCamera/assets/default.genesys-scene +165 -165
  60. package/src/templates/src/templates/freeCamera/src/game.ts +39 -39
  61. package/src/templates/src/templates/freeCamera/src/player.ts +45 -45
  62. package/src/templates/src/templates/sideScroller/assets/default.genesys-scene +121 -121
  63. package/src/templates/src/templates/sideScroller/src/const.ts +45 -45
  64. package/src/templates/src/templates/sideScroller/src/game.ts +122 -122
  65. package/src/templates/src/templates/sideScroller/src/level-generator.ts +361 -361
  66. package/src/templates/src/templates/sideScroller/src/player.ts +125 -125
  67. package/src/templates/src/templates/thirdPerson/assets/default.genesys-scene +165 -165
  68. package/src/templates/src/templates/thirdPerson/src/game.ts +39 -39
  69. package/src/templates/src/templates/thirdPerson/src/player.ts +61 -61
  70. package/src/templates/src/templates/vehicle/assets/default.genesys-scene +225 -225
  71. package/src/templates/src/templates/vehicle/src/base-vehicle.ts +145 -145
  72. package/src/templates/src/templates/vehicle/src/game.ts +43 -43
  73. package/src/templates/src/templates/vehicle/src/mesh-vehicle.ts +191 -191
  74. package/src/templates/src/templates/vehicle/src/player.ts +109 -109
  75. package/src/templates/src/templates/vehicle/src/primitive-vehicle.ts +266 -266
  76. package/src/templates/src/templates/vehicle/src/ui-hints.ts +101 -101
  77. package/src/templates/src/templates/vr-game/assets/default.genesys-scene +246 -246
  78. package/src/templates/src/templates/vr-game/src/auto-imports.ts +1 -1
  79. package/src/templates/src/templates/vr-game/src/game.ts +66 -66
  80. package/src/templates/src/templates/vr-game/src/sample-vr-actor.ts +26 -26
  81. package/src/templates/tsconfig.json +34 -34
  82. package/src/templates/vite.config.ts +52 -52
@@ -1,101 +1,101 @@
1
- import * as ENGINE from 'genesys.js';
2
-
3
- /**
4
- * Dismissable UI component that displays control hints when the game starts
5
- */
6
- @ENGINE.GameClass()
7
- export class UIHints extends ENGINE.Actor {
8
- private uiElement: ENGINE.UIElement | null = null;
9
-
10
- constructor(options: ENGINE.ActorOptions = {}) {
11
- super(options);
12
- this.setTransient(true); // Don't save this UI element to the level
13
- }
14
-
15
- protected override async doBeginPlay(): Promise<void> {
16
- await super.doBeginPlay();
17
- this.createHUD();
18
- }
19
-
20
- protected override doEndPlay(): void {
21
- this.removeHUD();
22
- super.doEndPlay();
23
- }
24
-
25
- private createHUD(): void {
26
- const uiManager = this.world!.uiManager;
27
-
28
- // Create the UI element using the engine's UI system
29
- this.uiElement = uiManager.createElement('game-hints', {
30
- style: {
31
- position: 'absolute',
32
- top: '50px',
33
- right: '50px',
34
- background: 'rgba(0, 0, 0, 0.9)',
35
- color: 'white',
36
- padding: '25px',
37
- borderRadius: '12px',
38
- fontFamily: 'Arial, sans-serif',
39
- fontSize: '16px',
40
- lineHeight: '1.5',
41
- maxWidth: '400px',
42
- border: '2px solid rgba(76, 175, 80, 0.6)',
43
- boxShadow: '0 8px 32px rgba(0, 0, 0, 0.8)',
44
- zIndex: '1001'
45
- }
46
- });
47
-
48
- // Set the HTML content
49
- this.uiElement.setHTML(`
50
- <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
51
- <div style="font-weight: bold; color: #4CAF50; font-size: 18px;">
52
- 🎮 Vehicle Game Controls
53
- </div>
54
- <button id="closeHints" style="
55
- background: #f44336;
56
- color: white;
57
- border: none;
58
- border-radius: 50%;
59
- width: 30px;
60
- height: 30px;
61
- cursor: pointer;
62
- font-size: 16px;
63
- font-weight: bold;
64
- ">×</button>
65
- </div>
66
- <div style="margin-bottom: 12px;">
67
- <span style="color: #FFA726; font-weight: bold;">Movement:</span>
68
- <br>• WASD or Arrow Keys - Move/Drive
69
- <br>• Mouse - Camera control
70
- </div>
71
- <div style="margin-bottom: 12px;">
72
- <span style="color: #FFA726; font-weight: bold;">Vehicle Interaction:</span>
73
- <br>• E - Enter/Exit vehicle (when nearby)
74
- <br>• F - Flip vehicle (when inside)
75
- </div>
76
- <div style="font-size: 14px; color: #CCCCCC; margin-top: 15px; text-align: center; font-style: italic;">
77
- 💡 Walk near a vehicle and press E to enter
78
- </div>
79
- `);
80
-
81
- // Add close button functionality
82
- const closeButton = this.uiElement.querySelector('#closeHints') as HTMLButtonElement;
83
- if (closeButton) {
84
- closeButton.addEventListener('click', () => {
85
- this.removeHUD();
86
- });
87
- }
88
-
89
- // Auto-close after 10 seconds
90
- setTimeout(() => {
91
- this.removeHUD();
92
- }, 10000);
93
- }
94
-
95
- private removeHUD(): void {
96
- if (this.uiElement) {
97
- this.uiElement.remove();
98
- this.uiElement = null;
99
- }
100
- }
101
- }
1
+ import * as ENGINE from 'genesys.js';
2
+
3
+ /**
4
+ * Dismissable UI component that displays control hints when the game starts
5
+ */
6
+ @ENGINE.GameClass()
7
+ export class UIHints extends ENGINE.Actor {
8
+ private uiElement: ENGINE.UIElement | null = null;
9
+
10
+ constructor(options: ENGINE.ActorOptions = {}) {
11
+ super(options);
12
+ this.setTransient(true); // Don't save this UI element to the level
13
+ }
14
+
15
+ protected override async doBeginPlay(): Promise<void> {
16
+ await super.doBeginPlay();
17
+ this.createHUD();
18
+ }
19
+
20
+ protected override doEndPlay(): void {
21
+ this.removeHUD();
22
+ super.doEndPlay();
23
+ }
24
+
25
+ private createHUD(): void {
26
+ const uiManager = this.world!.uiManager;
27
+
28
+ // Create the UI element using the engine's UI system
29
+ this.uiElement = uiManager.createElement('game-hints', {
30
+ style: {
31
+ position: 'absolute',
32
+ top: '50px',
33
+ right: '50px',
34
+ background: 'rgba(0, 0, 0, 0.9)',
35
+ color: 'white',
36
+ padding: '25px',
37
+ borderRadius: '12px',
38
+ fontFamily: 'Arial, sans-serif',
39
+ fontSize: '16px',
40
+ lineHeight: '1.5',
41
+ maxWidth: '400px',
42
+ border: '2px solid rgba(76, 175, 80, 0.6)',
43
+ boxShadow: '0 8px 32px rgba(0, 0, 0, 0.8)',
44
+ zIndex: '1001'
45
+ }
46
+ });
47
+
48
+ // Set the HTML content
49
+ this.uiElement.setHTML(`
50
+ <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
51
+ <div style="font-weight: bold; color: #4CAF50; font-size: 18px;">
52
+ 🎮 Vehicle Game Controls
53
+ </div>
54
+ <button id="closeHints" style="
55
+ background: #f44336;
56
+ color: white;
57
+ border: none;
58
+ border-radius: 50%;
59
+ width: 30px;
60
+ height: 30px;
61
+ cursor: pointer;
62
+ font-size: 16px;
63
+ font-weight: bold;
64
+ ">×</button>
65
+ </div>
66
+ <div style="margin-bottom: 12px;">
67
+ <span style="color: #FFA726; font-weight: bold;">Movement:</span>
68
+ <br>• WASD or Arrow Keys - Move/Drive
69
+ <br>• Mouse - Camera control
70
+ </div>
71
+ <div style="margin-bottom: 12px;">
72
+ <span style="color: #FFA726; font-weight: bold;">Vehicle Interaction:</span>
73
+ <br>• E - Enter/Exit vehicle (when nearby)
74
+ <br>• F - Flip vehicle (when inside)
75
+ </div>
76
+ <div style="font-size: 14px; color: #CCCCCC; margin-top: 15px; text-align: center; font-style: italic;">
77
+ 💡 Walk near a vehicle and press E to enter
78
+ </div>
79
+ `);
80
+
81
+ // Add close button functionality
82
+ const closeButton = this.uiElement.querySelector('#closeHints') as HTMLButtonElement;
83
+ if (closeButton) {
84
+ closeButton.addEventListener('click', () => {
85
+ this.removeHUD();
86
+ });
87
+ }
88
+
89
+ // Auto-close after 10 seconds
90
+ setTimeout(() => {
91
+ this.removeHUD();
92
+ }, 10000);
93
+ }
94
+
95
+ private removeHUD(): void {
96
+ if (this.uiElement) {
97
+ this.uiElement.remove();
98
+ this.uiElement = null;
99
+ }
100
+ }
101
+ }