@directivegames/genesys.sdk 3.2.2 → 3.2.5

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 (125) hide show
  1. package/README.md +60 -60
  2. package/dist/src/asset-pack/eslint.config.js +4 -4
  3. package/dist/src/core/cli.js +22 -22
  4. package/dist/src/core/common.js +2 -2
  5. package/dist/src/core/tools/build-project.js +1 -1
  6. package/dist/src/core/tools/new-asset-pack.js +1 -1
  7. package/dist/src/core/tools/new-project.js +1 -1
  8. package/dist/src/dependencies.js +1 -1
  9. package/dist/src/electron/backend/tools/const.js +1 -1
  10. package/dist/src/electron/backend/tools/open-project.js +1 -1
  11. package/dist/src/templates/eslint.config.js +4 -4
  12. package/dist/src/templates/scripts/genesys/calc-bounding-box.js +2 -2
  13. package/dist/src/templates/scripts/genesys/dev/dump-default-scene.js +1 -1
  14. package/dist/src/templates/scripts/genesys/dev/generate-manifest.js +1 -1
  15. package/dist/src/templates/scripts/genesys/dev/launcher.js +1 -1
  16. package/dist/src/templates/scripts/genesys/dev/storage-provider.js +4 -4
  17. package/dist/src/templates/scripts/genesys/genesys-mcp.js +26 -26
  18. package/dist/src/templates/scripts/genesys/mcp/doc-tools.js +2 -2
  19. package/dist/src/templates/scripts/genesys/mcp/editor-functions.js +5 -5
  20. package/dist/src/templates/scripts/genesys/mcp/search-actors.js +1 -1
  21. package/dist/src/templates/scripts/genesys/mcp/search-assets.js +1 -1
  22. package/dist/src/templates/scripts/genesys/mcp/utils.js +1 -1
  23. package/dist/src/templates/scripts/genesys/misc.js +1 -1
  24. package/dist/src/templates/scripts/genesys/mock.js +1 -1
  25. package/dist/src/templates/scripts/genesys/place-actors.js +1 -1
  26. package/dist/src/templates/scripts/genesys/post-install.js +1 -1
  27. package/dist/src/templates/scripts/genesys/storageProvider.js +2 -2
  28. package/dist/src/templates/src/index.js +1 -1
  29. package/dist/src/templates/src/templates/firstPerson/src/game.js +1 -1
  30. package/dist/src/templates/src/templates/firstPerson/src/player.js +1 -1
  31. package/dist/src/templates/src/templates/fps/src/game.js +1 -1
  32. package/dist/src/templates/src/templates/fps/src/player.js +1 -1
  33. package/dist/src/templates/src/templates/fps/src/weapon.js +1 -1
  34. package/dist/src/templates/src/templates/freeCamera/src/game.js +1 -1
  35. package/dist/src/templates/src/templates/freeCamera/src/player.js +1 -1
  36. package/dist/src/templates/src/templates/sideScroller/src/game.js +1 -1
  37. package/dist/src/templates/src/templates/sideScroller/src/level-generator.js +1 -1
  38. package/dist/src/templates/src/templates/sideScroller/src/player.js +1 -1
  39. package/dist/src/templates/src/templates/thirdPerson/src/game.js +1 -1
  40. package/dist/src/templates/src/templates/thirdPerson/src/player.js +1 -1
  41. package/dist/src/templates/src/templates/vehicle/src/base-vehicle.js +1 -1
  42. package/dist/src/templates/src/templates/vehicle/src/game.js +1 -1
  43. package/dist/src/templates/src/templates/vehicle/src/mesh-vehicle.js +1 -1
  44. package/dist/src/templates/src/templates/vehicle/src/player.js +1 -1
  45. package/dist/src/templates/src/templates/vehicle/src/primitive-vehicle.js +1 -1
  46. package/dist/src/templates/src/templates/vehicle/src/ui-hints.js +31 -31
  47. package/dist/src/templates/src/templates/vr-game/src/game.js +1 -1
  48. package/dist/src/templates/src/templates/vr-game/src/sample-vr-actor.js +1 -1
  49. package/package.json +176 -176
  50. package/scripts/post-install.ts +143 -143
  51. package/src/asset-pack/.gitattributes +88 -88
  52. package/src/asset-pack/eslint.config.js +45 -45
  53. package/src/asset-pack/gitignore +11 -11
  54. package/src/asset-pack/scripts/postinstall.ts +81 -81
  55. package/src/asset-pack/tsconfig.json +33 -33
  56. package/src/templates/.cursor/mcp.json +20 -20
  57. package/src/templates/.cursorignore +2 -2
  58. package/src/templates/.gitattributes +88 -88
  59. package/src/templates/.vscode/settings.json +6 -6
  60. package/src/templates/AGENTS.md +86 -86
  61. package/src/templates/README.md +24 -24
  62. package/src/templates/eslint.config.js +45 -45
  63. package/src/templates/gitignore +11 -11
  64. package/src/templates/index.html +34 -34
  65. package/src/templates/pnpm-lock.yaml +3676 -3676
  66. package/src/templates/scripts/genesys/build-project.ts +51 -51
  67. package/src/templates/scripts/genesys/calc-bounding-box.ts +272 -272
  68. package/src/templates/scripts/genesys/common.ts +46 -46
  69. package/src/templates/scripts/genesys/const.ts +9 -9
  70. package/src/templates/scripts/genesys/dev/dump-default-scene.ts +11 -11
  71. package/src/templates/scripts/genesys/dev/generate-manifest.ts +146 -146
  72. package/src/templates/scripts/genesys/dev/launcher.ts +46 -46
  73. package/src/templates/scripts/genesys/dev/storage-provider.ts +229 -229
  74. package/src/templates/scripts/genesys/dev/update-template-scenes.ts +84 -84
  75. package/src/templates/scripts/genesys/doc-server.ts +16 -16
  76. package/src/templates/scripts/genesys/genesys-mcp.ts +526 -526
  77. package/src/templates/scripts/genesys/mcp/doc-tools.ts +86 -86
  78. package/src/templates/scripts/genesys/mcp/editor-functions.ts +151 -151
  79. package/src/templates/scripts/genesys/mcp/editor-tools.ts +73 -73
  80. package/src/templates/scripts/genesys/mcp/get-scene-state.ts +35 -35
  81. package/src/templates/scripts/genesys/mcp/run-subprocess.ts +30 -30
  82. package/src/templates/scripts/genesys/mcp/search-actors.ts +858 -858
  83. package/src/templates/scripts/genesys/mcp/search-assets.ts +380 -380
  84. package/src/templates/scripts/genesys/mcp/utils.ts +281 -281
  85. package/src/templates/scripts/genesys/misc.ts +42 -42
  86. package/src/templates/scripts/genesys/mock.ts +6 -6
  87. package/src/templates/scripts/genesys/place-actors.ts +179 -179
  88. package/src/templates/scripts/genesys/post-install.ts +30 -30
  89. package/src/templates/scripts/genesys/prefab.schema.json +84 -84
  90. package/src/templates/scripts/genesys/remove-engine-comments.ts +134 -134
  91. package/src/templates/scripts/genesys/run-mcp-inspector.bat +4 -4
  92. package/src/templates/scripts/genesys/storageProvider.ts +182 -182
  93. package/src/templates/scripts/genesys/validate-prefabs.ts +138 -138
  94. package/src/templates/src/index.ts +22 -22
  95. package/src/templates/src/templates/firstPerson/assets/default.genesys-scene +165 -165
  96. package/src/templates/src/templates/firstPerson/src/game.ts +39 -39
  97. package/src/templates/src/templates/firstPerson/src/player.ts +63 -63
  98. package/src/templates/src/templates/fps/assets/default.genesys-scene +9459 -9459
  99. package/src/templates/src/templates/fps/src/game.ts +39 -39
  100. package/src/templates/src/templates/fps/src/player.ts +69 -69
  101. package/src/templates/src/templates/fps/src/weapon.ts +54 -54
  102. package/src/templates/src/templates/freeCamera/assets/default.genesys-scene +165 -165
  103. package/src/templates/src/templates/freeCamera/src/game.ts +39 -39
  104. package/src/templates/src/templates/freeCamera/src/player.ts +45 -45
  105. package/src/templates/src/templates/sideScroller/assets/default.genesys-scene +121 -121
  106. package/src/templates/src/templates/sideScroller/src/const.ts +45 -45
  107. package/src/templates/src/templates/sideScroller/src/game.ts +122 -122
  108. package/src/templates/src/templates/sideScroller/src/level-generator.ts +361 -361
  109. package/src/templates/src/templates/sideScroller/src/player.ts +125 -125
  110. package/src/templates/src/templates/thirdPerson/assets/default.genesys-scene +165 -165
  111. package/src/templates/src/templates/thirdPerson/src/game.ts +39 -39
  112. package/src/templates/src/templates/thirdPerson/src/player.ts +61 -61
  113. package/src/templates/src/templates/vehicle/assets/default.genesys-scene +225 -225
  114. package/src/templates/src/templates/vehicle/src/base-vehicle.ts +145 -145
  115. package/src/templates/src/templates/vehicle/src/game.ts +43 -43
  116. package/src/templates/src/templates/vehicle/src/mesh-vehicle.ts +191 -191
  117. package/src/templates/src/templates/vehicle/src/player.ts +109 -109
  118. package/src/templates/src/templates/vehicle/src/primitive-vehicle.ts +266 -266
  119. package/src/templates/src/templates/vehicle/src/ui-hints.ts +101 -101
  120. package/src/templates/src/templates/vr-game/assets/default.genesys-scene +246 -246
  121. package/src/templates/src/templates/vr-game/src/auto-imports.ts +1 -1
  122. package/src/templates/src/templates/vr-game/src/game.ts +66 -66
  123. package/src/templates/src/templates/vr-game/src/sample-vr-actor.ts +26 -26
  124. package/src/templates/tsconfig.json +34 -34
  125. package/src/templates/vite.config.ts +52 -52
@@ -1,61 +1,61 @@
1
- import * as ENGINE from 'genesys.js';
2
- import * as THREE from 'three';
3
-
4
-
5
- /**
6
- * A third person player class.
7
- *
8
- * Key points:
9
- * - No need to provide movementComponent and camera, they are created internally
10
- * - The pawn is set to be transient so it's never saved in the level
11
- * - The directional light follows the player for consistent shadows
12
- *
13
- */
14
- @ENGINE.GameClass()
15
- export class ThirdPersonPlayer extends ENGINE.ThirdPersonCharacterPawn {
16
- // Omit all the options that are created internally
17
- constructor(options: Omit<ENGINE.ThirdPersonCharacterPawnOptions,
18
- 'rootComponent' | 'movementComponent' | 'camera' | 'modelUrl' | 'configUrl' | 'meshPosition' | 'meshRotation' | 'meshScale'>) {
19
- // simple camera component - contains a perspective camera by default
20
- const camera = new THREE.PerspectiveCamera(ENGINE.CAMERA_FOV, 1, 0.1, 1000);
21
- // set camera position for third person view
22
- camera.position.set(0, ENGINE.CHARACTER_HEIGHT * 1.3, ENGINE.CHARACTER_HEIGHT * 2);
23
- camera.lookAt(0, 0, 0);
24
-
25
- // use capsule root component for collision
26
- const rootComponent = new ENGINE.MeshComponent({
27
- geometry: ENGINE.GameBuilder.createDefaultPawnCapsuleGeometry(),
28
- material: new THREE.MeshStandardMaterial({ color: ENGINE.Color.YELLOW, visible: false, transparent: true, opacity: 0.5 }),
29
- physicsOptions: {
30
- enabled: true,
31
- // KinematicVelocityBased is required to use the physics character controller
32
- motionType: ENGINE.PhysicsMotionType.KinematicVelocityBased,
33
- collisionProfile: ENGINE.DefaultCollisionProfile.Character,
34
- },
35
- });
36
-
37
- // use third person movement mechanics
38
- const movementComponent = new ENGINE.CharacterMovementComponent({
39
- ...ENGINE.CharacterMovementComponent.DEFAULT_OPTIONS,
40
- movementType: ENGINE.CharacterMovementType.ThirdPerson,
41
- });
42
-
43
- // construct the pawn
44
- super({
45
- ...options,
46
- rootComponent,
47
- movementComponent,
48
- camera,
49
- // make sure the directional light follows the player for consistent shadows
50
- enableDirectionalLightFollowing: true,
51
- modelUrl: '@engine/assets/character/mannequinG.glb',
52
- configUrl: '@engine/assets/character/config/mannequin-anim.json',
53
- meshPosition: new THREE.Vector3(0, -ENGINE.CHARACTER_HEIGHT / 2, 0),
54
- meshRotation: new THREE.Euler(0, Math.PI, 0),
55
- meshScale: new THREE.Vector3(1, 1, 1),
56
- });
57
-
58
- // set the pawn to be transient so it's never saved in the level
59
- this.setTransient(true);
60
- }
61
- }
1
+ import * as ENGINE from '@directivegames/genesys.js';
2
+ import * as THREE from 'three';
3
+
4
+
5
+ /**
6
+ * A third person player class.
7
+ *
8
+ * Key points:
9
+ * - No need to provide movementComponent and camera, they are created internally
10
+ * - The pawn is set to be transient so it's never saved in the level
11
+ * - The directional light follows the player for consistent shadows
12
+ *
13
+ */
14
+ @ENGINE.GameClass()
15
+ export class ThirdPersonPlayer extends ENGINE.ThirdPersonCharacterPawn {
16
+ // Omit all the options that are created internally
17
+ constructor(options: Omit<ENGINE.ThirdPersonCharacterPawnOptions,
18
+ 'rootComponent' | 'movementComponent' | 'camera' | 'modelUrl' | 'configUrl' | 'meshPosition' | 'meshRotation' | 'meshScale'>) {
19
+ // simple camera component - contains a perspective camera by default
20
+ const camera = new THREE.PerspectiveCamera(ENGINE.CAMERA_FOV, 1, 0.1, 1000);
21
+ // set camera position for third person view
22
+ camera.position.set(0, ENGINE.CHARACTER_HEIGHT * 1.3, ENGINE.CHARACTER_HEIGHT * 2);
23
+ camera.lookAt(0, 0, 0);
24
+
25
+ // use capsule root component for collision
26
+ const rootComponent = new ENGINE.MeshComponent({
27
+ geometry: ENGINE.GameBuilder.createDefaultPawnCapsuleGeometry(),
28
+ material: new THREE.MeshStandardMaterial({ color: ENGINE.Color.YELLOW, visible: false, transparent: true, opacity: 0.5 }),
29
+ physicsOptions: {
30
+ enabled: true,
31
+ // KinematicVelocityBased is required to use the physics character controller
32
+ motionType: ENGINE.PhysicsMotionType.KinematicVelocityBased,
33
+ collisionProfile: ENGINE.DefaultCollisionProfile.Character,
34
+ },
35
+ });
36
+
37
+ // use third person movement mechanics
38
+ const movementComponent = new ENGINE.CharacterMovementComponent({
39
+ ...ENGINE.CharacterMovementComponent.DEFAULT_OPTIONS,
40
+ movementType: ENGINE.CharacterMovementType.ThirdPerson,
41
+ });
42
+
43
+ // construct the pawn
44
+ super({
45
+ ...options,
46
+ rootComponent,
47
+ movementComponent,
48
+ camera,
49
+ // make sure the directional light follows the player for consistent shadows
50
+ enableDirectionalLightFollowing: true,
51
+ modelUrl: '@engine/assets/character/mannequinG.glb',
52
+ configUrl: '@engine/assets/character/config/mannequin-anim.json',
53
+ meshPosition: new THREE.Vector3(0, -ENGINE.CHARACTER_HEIGHT / 2, 0),
54
+ meshRotation: new THREE.Euler(0, Math.PI, 0),
55
+ meshScale: new THREE.Vector3(1, 1, 1),
56
+ });
57
+
58
+ // set the pawn to be transient so it's never saved in the level
59
+ this.setTransient(true);
60
+ }
61
+ }
@@ -1,226 +1,226 @@
1
- {
2
- "$version": 0,
3
- "class": "ENGINE.World",
4
- "uuid": "c0ae85792bc3b946",
5
- "ctor": {
6
- "backgroundColor": 3026478,
7
- "navigationOptions": {
8
- "engine": "recast-navigation",
9
- "debug": false,
10
- "generateOnStartUp": false
11
- },
12
- "physicsOptions": {
13
- "gravity": [
14
- 0,
15
- -9.81,
16
- 0,
17
- "v"
18
- ],
19
- "engine": "rapier"
20
- },
21
- "useManifold": true
22
- },
23
- "actors": [
24
- {
25
- "uuid": "9a86d389088b361c",
26
- "class": "ENGINE.Actor",
27
- "properties": {
28
- "editorData": {
29
- "displayName": "Directional Light",
30
- "hidden": false
31
- }
32
- },
33
- "ctor": {
34
- "rootComponent": {
35
- "class": "ENGINE.DirectionalLightComponent",
36
- "uuid": "cfe05433-9edc-4dfe-a535-c71f33e92d78",
37
- "ctor": {
38
- "color": 16777215,
39
- "intensity": 1,
40
- "castShadow": true,
41
- "shadowMapSize": 2048,
42
- "shadowBias": 0,
43
- "shadowNormalBias": 0,
44
- "shadowNear": 0.1,
45
- "shadowFar": 100
46
- },
47
- "properties": {
48
- "position": [
49
- 10,
50
- 50,
51
- -10,
52
- "v"
53
- ],
54
- "castShadow": true
55
- }
56
- }
57
- }
58
- },
59
- {
60
- "uuid": "9d428f2a16e5374a",
61
- "class": "ENGINE.Actor",
62
- "properties": {
63
- "editorData": {
64
- "displayName": "Ground",
65
- "hidden": false
66
- }
67
- },
68
- "ctor": {
69
- "rootComponent": {
70
- "class": "ENGINE.MeshComponent",
71
- "uuid": "71caea24-62d7-4e45-a76e-4c7519de2c3c",
72
- "ctor": {
73
- "geometry": {
74
- "class": "THREE.BoxGeometry",
75
- "ctor": [
76
- 500,
77
- 0.1,
78
- 500
79
- ]
80
- },
81
- "material": {
82
- "@external": "DefaultMaterial"
83
- },
84
- "uvScaleTilesPerUnit": 0.2,
85
- "physicsOptions": {
86
- "enabled": true,
87
- "motionType": "static",
88
- "collisionProfile": "BlockAll"
89
- }
90
- },
91
- "properties": {
92
- "position": [
93
- 0,
94
- -0.9,
95
- 0,
96
- "v"
97
- ],
98
- "receiveShadow": true
99
- }
100
- }
101
- }
102
- },
103
- {
104
- "uuid": "b87cbc5e60a2e54c",
105
- "class": "ENGINE.PlayerStart",
106
- "properties": {
107
- "editorData": {
108
- "displayName": "Player Start",
109
- "hidden": false
110
- }
111
- },
112
- "ctor": {
113
- "rootComponent": {
114
- "class": "ENGINE.SceneComponent",
115
- "uuid": "b4d5f8f7-2512-45e1-9157-c7ff6772402d",
116
- "ctor": {},
117
- "properties": {
118
- "position": [
119
- 0,
120
- 0.9,
121
- 0,
122
- "v"
123
- ]
124
- }
125
- }
126
- }
127
- },
128
- {
129
- "uuid": "0ba1f4677e8370d1",
130
- "class": "ENGINE.Actor",
131
- "properties": {
132
- "editorData": {
133
- "displayName": "Skybox",
134
- "hidden": false
135
- }
136
- },
137
- "ctor": {
138
- "rootComponent": {
139
- "class": "ENGINE.SceneComponent",
140
- "uuid": "195e88df-73ff-4f4b-82ae-7fb58671463d",
141
- "ctor": {},
142
- "properties": {},
143
- "children": [
144
- {
145
- "class": "ENGINE.SkyboxComponent",
146
- "uuid": "15d8d439-a7dd-49a1-800e-f1f893812293",
147
- "ctor": {
148
- "textureUrl": "@engine/assets/textures/skybox/citrus_orchard_road_puresky_2k.hdr",
149
- "width": 2048,
150
- "height": 1024,
151
- "bottomColor": "#E6F3FF",
152
- "middleColor": "#4A90E2",
153
- "topColor": "#0F1B3C",
154
- "envMapIntensity": 1
155
- },
156
- "properties": {}
157
- }
158
- ]
159
- }
160
- }
161
- },
162
- {
163
- "uuid": "f527684a997f6384",
164
- "class": "GAME.MeshVehicle",
165
- "properties": {
166
- "editorData": {
167
- "hidden": false
168
- }
169
- },
170
- "ctor": {
171
- "enableDirectionalLightFollowing": true,
172
- "position": [
173
- -4.2,
174
- 2.5,
175
- -8.2,
176
- "v"
177
- ],
178
- "rotation": [
179
- 0,
180
- 0,
181
- 0,
182
- "e"
183
- ],
184
- "scale": [
185
- 1,
186
- 1,
187
- 1,
188
- "v"
189
- ]
190
- }
191
- },
192
- {
193
- "uuid": "2aa7b313363fa7b2",
194
- "class": "GAME.PrimitiveVehicle",
195
- "properties": {
196
- "editorData": {
197
- "hidden": false
198
- }
199
- },
200
- "ctor": {
201
- "enableDirectionalLightFollowing": true,
202
- "position": [
203
- 3.1,
204
- 2.3,
205
- -7.7,
206
- "v"
207
- ],
208
- "rotation": [
209
- 0,
210
- 0,
211
- 0,
212
- "e"
213
- ],
214
- "scale": [
215
- 1,
216
- 1,
217
- 1,
218
- "v"
219
- ]
220
- }
221
- }
222
- ],
223
- "properties": {
224
- "editorData": {}
225
- }
1
+ {
2
+ "$version": 0,
3
+ "class": "ENGINE.World",
4
+ "uuid": "c0ae85792bc3b946",
5
+ "ctor": {
6
+ "backgroundColor": 3026478,
7
+ "navigationOptions": {
8
+ "engine": "recast-navigation",
9
+ "debug": false,
10
+ "generateOnStartUp": false
11
+ },
12
+ "physicsOptions": {
13
+ "gravity": [
14
+ 0,
15
+ -9.81,
16
+ 0,
17
+ "v"
18
+ ],
19
+ "engine": "rapier"
20
+ },
21
+ "useManifold": true
22
+ },
23
+ "actors": [
24
+ {
25
+ "uuid": "9a86d389088b361c",
26
+ "class": "ENGINE.Actor",
27
+ "properties": {
28
+ "editorData": {
29
+ "displayName": "Directional Light",
30
+ "hidden": false
31
+ }
32
+ },
33
+ "ctor": {
34
+ "rootComponent": {
35
+ "class": "ENGINE.DirectionalLightComponent",
36
+ "uuid": "cfe05433-9edc-4dfe-a535-c71f33e92d78",
37
+ "ctor": {
38
+ "color": 16777215,
39
+ "intensity": 1,
40
+ "castShadow": true,
41
+ "shadowMapSize": 2048,
42
+ "shadowBias": 0,
43
+ "shadowNormalBias": 0,
44
+ "shadowNear": 0.1,
45
+ "shadowFar": 100
46
+ },
47
+ "properties": {
48
+ "position": [
49
+ 10,
50
+ 50,
51
+ -10,
52
+ "v"
53
+ ],
54
+ "castShadow": true
55
+ }
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "uuid": "9d428f2a16e5374a",
61
+ "class": "ENGINE.Actor",
62
+ "properties": {
63
+ "editorData": {
64
+ "displayName": "Ground",
65
+ "hidden": false
66
+ }
67
+ },
68
+ "ctor": {
69
+ "rootComponent": {
70
+ "class": "ENGINE.MeshComponent",
71
+ "uuid": "71caea24-62d7-4e45-a76e-4c7519de2c3c",
72
+ "ctor": {
73
+ "geometry": {
74
+ "class": "THREE.BoxGeometry",
75
+ "ctor": [
76
+ 500,
77
+ 0.1,
78
+ 500
79
+ ]
80
+ },
81
+ "material": {
82
+ "@external": "DefaultMaterial"
83
+ },
84
+ "uvScaleTilesPerUnit": 0.2,
85
+ "physicsOptions": {
86
+ "enabled": true,
87
+ "motionType": "static",
88
+ "collisionProfile": "BlockAll"
89
+ }
90
+ },
91
+ "properties": {
92
+ "position": [
93
+ 0,
94
+ -0.9,
95
+ 0,
96
+ "v"
97
+ ],
98
+ "receiveShadow": true
99
+ }
100
+ }
101
+ }
102
+ },
103
+ {
104
+ "uuid": "b87cbc5e60a2e54c",
105
+ "class": "ENGINE.PlayerStart",
106
+ "properties": {
107
+ "editorData": {
108
+ "displayName": "Player Start",
109
+ "hidden": false
110
+ }
111
+ },
112
+ "ctor": {
113
+ "rootComponent": {
114
+ "class": "ENGINE.SceneComponent",
115
+ "uuid": "b4d5f8f7-2512-45e1-9157-c7ff6772402d",
116
+ "ctor": {},
117
+ "properties": {
118
+ "position": [
119
+ 0,
120
+ 0.9,
121
+ 0,
122
+ "v"
123
+ ]
124
+ }
125
+ }
126
+ }
127
+ },
128
+ {
129
+ "uuid": "0ba1f4677e8370d1",
130
+ "class": "ENGINE.Actor",
131
+ "properties": {
132
+ "editorData": {
133
+ "displayName": "Skybox",
134
+ "hidden": false
135
+ }
136
+ },
137
+ "ctor": {
138
+ "rootComponent": {
139
+ "class": "ENGINE.SceneComponent",
140
+ "uuid": "195e88df-73ff-4f4b-82ae-7fb58671463d",
141
+ "ctor": {},
142
+ "properties": {},
143
+ "children": [
144
+ {
145
+ "class": "ENGINE.SkyboxComponent",
146
+ "uuid": "15d8d439-a7dd-49a1-800e-f1f893812293",
147
+ "ctor": {
148
+ "textureUrl": "@engine/assets/textures/skybox/citrus_orchard_road_puresky_2k.hdr",
149
+ "width": 2048,
150
+ "height": 1024,
151
+ "bottomColor": "#E6F3FF",
152
+ "middleColor": "#4A90E2",
153
+ "topColor": "#0F1B3C",
154
+ "envMapIntensity": 1
155
+ },
156
+ "properties": {}
157
+ }
158
+ ]
159
+ }
160
+ }
161
+ },
162
+ {
163
+ "uuid": "f527684a997f6384",
164
+ "class": "GAME.MeshVehicle",
165
+ "properties": {
166
+ "editorData": {
167
+ "hidden": false
168
+ }
169
+ },
170
+ "ctor": {
171
+ "enableDirectionalLightFollowing": true,
172
+ "position": [
173
+ -4.2,
174
+ 2.5,
175
+ -8.2,
176
+ "v"
177
+ ],
178
+ "rotation": [
179
+ 0,
180
+ 0,
181
+ 0,
182
+ "e"
183
+ ],
184
+ "scale": [
185
+ 1,
186
+ 1,
187
+ 1,
188
+ "v"
189
+ ]
190
+ }
191
+ },
192
+ {
193
+ "uuid": "2aa7b313363fa7b2",
194
+ "class": "GAME.PrimitiveVehicle",
195
+ "properties": {
196
+ "editorData": {
197
+ "hidden": false
198
+ }
199
+ },
200
+ "ctor": {
201
+ "enableDirectionalLightFollowing": true,
202
+ "position": [
203
+ 3.1,
204
+ 2.3,
205
+ -7.7,
206
+ "v"
207
+ ],
208
+ "rotation": [
209
+ 0,
210
+ 0,
211
+ 0,
212
+ "e"
213
+ ],
214
+ "scale": [
215
+ 1,
216
+ 1,
217
+ 1,
218
+ "v"
219
+ ]
220
+ }
221
+ }
222
+ ],
223
+ "properties": {
224
+ "editorData": {}
225
+ }
226
226
  }