@hypersoniclabs/helix-cli 0.1.25-helix3.532 → 0.1.25-helix3.533
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/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_stock_events.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fmod_studio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fsb5.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_ac.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_beamng.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_fixtures.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_sim_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/vendor/vehicle-package-v2.mjs +21 -5
- package/vendor/vehicle-package-v2.mjs +21 -5
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Generated dependency-free bundle of the HELIX engine Vehicle Package validator.
|
|
2
2
|
// Bridge JSON/schema preflight is deliberately separate below.
|
|
3
|
-
// Source commit:
|
|
3
|
+
// Source commit: 54b283a7a1af9f5d6aefdcffc7e07922545f5223
|
|
4
4
|
// Regenerate with scripts/vendor-vehicle-package-v2.mjs; do not edit by hand.
|
|
5
5
|
|
|
6
6
|
export const VEHICLE_PACKAGE_V2_SOURCE = Object.freeze({
|
|
7
|
-
"commit": "
|
|
7
|
+
"commit": "54b283a7a1af9f5d6aefdcffc7e07922545f5223",
|
|
8
8
|
"path": "systems/humanoid-character/src/core/vehicle/package/format.ts",
|
|
9
9
|
"entries": [
|
|
10
10
|
"systems/humanoid-character/src/core/vehicle/package/format.ts",
|
|
@@ -14,7 +14,7 @@ export const VEHICLE_PACKAGE_V2_SOURCE = Object.freeze({
|
|
|
14
14
|
"systems/humanoid-character/src/core/vehicle/seats.ts",
|
|
15
15
|
"systems/humanoid-character/src/core/components/protocol.ts"
|
|
16
16
|
],
|
|
17
|
-
"closureSha256": "
|
|
17
|
+
"closureSha256": "8864a0ba523b1a4710345d48cc6ddd989032967b487aad218bdc495ca0dc4fc8",
|
|
18
18
|
"files": {
|
|
19
19
|
"systems/humanoid-character/src/core/components/chain.ts": "b3e8c8783428321b41b17ac10785b0eb3028e4da754dc917456c2b8cc23b5212",
|
|
20
20
|
"systems/humanoid-character/src/core/components/protocol.ts": "8fd2fd613a813e6e6febe5518a7b8ef409aab4f4a1bc415d75546cd7547d64a7",
|
|
@@ -28,7 +28,7 @@ export const VEHICLE_PACKAGE_V2_SOURCE = Object.freeze({
|
|
|
28
28
|
"systems/humanoid-character/src/core/vehicle/defaultControls.ts": "a9629da5f7dd35f534bb8a21af700f14d8dfa9b5d90ea39e3d5bb94e6c04afd3",
|
|
29
29
|
"systems/humanoid-character/src/core/vehicle/descriptor.ts": "f54988628f984ac73b8a7fa594d03e1f8f2c808904991267a48124d7a015f279",
|
|
30
30
|
"systems/humanoid-character/src/core/vehicle/lights.ts": "66e8d9ae34d014920c753e8bba6fe779856e128154561c470a7ff354f79e54ca",
|
|
31
|
-
"systems/humanoid-character/src/core/vehicle/package/format.ts": "
|
|
31
|
+
"systems/humanoid-character/src/core/vehicle/package/format.ts": "724aa7a5c331e0f92bdd61ae9be644a1c9d14466ae38886ccbf2bb47f0b11077",
|
|
32
32
|
"systems/humanoid-character/src/core/vehicle/package/seatDeclaration.ts": "51bd1a87314bb1504a75091389e47552e2460813a1d2f68a75c578dc04118621",
|
|
33
33
|
"systems/humanoid-character/src/core/vehicle/package/sourceValidation.ts": "65ec857e3509af062937a58bb2f9a11d0ed20721148efc6840ab818e6a835a9a",
|
|
34
34
|
"systems/humanoid-character/src/core/vehicle/package/suspensionSource.ts": "ab3a48b3555782b5f44379d5c3822c66c4b40b5cb662f0d25c96e1d042aa05db",
|
|
@@ -2322,6 +2322,7 @@ const __defs = {
|
|
|
2322
2322
|
"use strict";
|
|
2323
2323
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2324
2324
|
exports.TWO_WHEELER_REQUIRED_SOCKETS = exports.PACKAGE_LEAN_KEYS = exports.VEHICLE_QUALITY_TIERS = exports.VEHICLE_ARTICULATION_FORMAT = exports.VEHICLE_VISUAL_FORMAT = exports.VEHICLE_SIMULATION_FORMAT = exports.VEHICLE_PACKAGE_COMPATIBLE_VERSIONS = exports.VEHICLE_PACKAGE_VERSION = void 0;
|
|
2325
|
+
exports.twoWheelerGroundToBodyOrigin = twoWheelerGroundToBodyOrigin;
|
|
2325
2326
|
exports.validateVehiclePackage = validateVehiclePackage;
|
|
2326
2327
|
exports.assertPackagePublishable = assertPackagePublishable;
|
|
2327
2328
|
exports.citedIds = citedIds;
|
|
@@ -2344,6 +2345,10 @@ const __defs = {
|
|
|
2344
2345
|
];
|
|
2345
2346
|
exports.TWO_WHEELER_REQUIRED_SOCKETS = ['wheel_f', 'wheel_r'];
|
|
2346
2347
|
const CAR_WHEEL_SOCKETS = ['wheel_lf', 'wheel_rf', 'wheel_lr', 'wheel_rr'];
|
|
2348
|
+
const TWO_WHEELER_REST_K = { motorcycle: 0.8133, bicycle: 0.7724 };
|
|
2349
|
+
function twoWheelerGroundToBodyOrigin(cls, wheelRadius) {
|
|
2350
|
+
return Math.round((TWO_WHEELER_REST_K[cls] - wheelRadius) * 1000) / 1000;
|
|
2351
|
+
}
|
|
2347
2352
|
function validateTwoWheelerPackage(pkg, err, issues) {
|
|
2348
2353
|
const classId = pkg.mesh?.classId;
|
|
2349
2354
|
if (classId !== 'motorcycle' && classId !== 'bicycle') {
|
|
@@ -2364,6 +2369,17 @@ const __defs = {
|
|
|
2364
2369
|
err(`mesh.sockets.${id}`, `a ${classId} must state its \`${id}\` socket (the wheel centre, model frame)`);
|
|
2365
2370
|
}
|
|
2366
2371
|
}
|
|
2372
|
+
const rest = pkg.physics?.chassis?.groundToBodyOrigin?.value;
|
|
2373
|
+
const wheelRadius = pkg.physics?.chassis?.wheelRadius?.value;
|
|
2374
|
+
if (typeof wheelRadius === 'number' && wheelRadius > 0) {
|
|
2375
|
+
const expected = twoWheelerGroundToBodyOrigin(classId, wheelRadius);
|
|
2376
|
+
if (typeof rest !== 'number') {
|
|
2377
|
+
err('physics.chassis.groundToBodyOrigin', `a ${classId} must state where its body origin stands on its springs (metres above the road; \`${expected}\` for a ${wheelRadius} m wheel): the room spawns the vehicle at placement + this value, and without it the ${classId} is spawned buried in the road`);
|
|
2378
|
+
}
|
|
2379
|
+
else if (Math.abs(rest - expected) > 0.05) {
|
|
2380
|
+
issues.push({ level: 'warn', path: 'physics.chassis.groundToBodyOrigin', message: `${rest} m is ${Math.abs(rest - expected).toFixed(3)} m from the ${expected} m a ${classId} with a ${wheelRadius} m wheel settles at; the spawn will drop or rise by the difference` });
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2367
2383
|
if (pkg.simulation?.land !== undefined) {
|
|
2368
2384
|
err('simulation.land', `the land solver v2 has no lean or camber model yet: a ${classId} runs the v1 solver, so it cannot declare \`simulation.land\``);
|
|
2369
2385
|
}
|
|
@@ -2442,7 +2458,7 @@ const __defs = {
|
|
|
2442
2458
|
if (pkg.packageVersion !== exports.VEHICLE_PACKAGE_VERSION) {
|
|
2443
2459
|
err('physics.chassis.groundToBodyOrigin', `requires packageVersion ${exports.VEHICLE_PACKAGE_VERSION}`);
|
|
2444
2460
|
}
|
|
2445
|
-
if (pkg.simulation?.land === undefined) {
|
|
2461
|
+
if (pkg.simulation?.land === undefined && pkg.mesh?.classId !== 'motorcycle' && pkg.mesh?.classId !== 'bicycle') {
|
|
2446
2462
|
err('physics.chassis.groundToBodyOrigin', 'requires a land simulation contract');
|
|
2447
2463
|
}
|
|
2448
2464
|
if (groundToBodyOrigin.unit !== 'm') {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Generated dependency-free bundle of the HELIX engine Vehicle Package validator.
|
|
2
2
|
// Bridge JSON/schema preflight is deliberately separate below.
|
|
3
|
-
// Source commit:
|
|
3
|
+
// Source commit: 54b283a7a1af9f5d6aefdcffc7e07922545f5223
|
|
4
4
|
// Regenerate with scripts/vendor-vehicle-package-v2.mjs; do not edit by hand.
|
|
5
5
|
|
|
6
6
|
export const VEHICLE_PACKAGE_V2_SOURCE = Object.freeze({
|
|
7
|
-
"commit": "
|
|
7
|
+
"commit": "54b283a7a1af9f5d6aefdcffc7e07922545f5223",
|
|
8
8
|
"path": "systems/humanoid-character/src/core/vehicle/package/format.ts",
|
|
9
9
|
"entries": [
|
|
10
10
|
"systems/humanoid-character/src/core/vehicle/package/format.ts",
|
|
@@ -14,7 +14,7 @@ export const VEHICLE_PACKAGE_V2_SOURCE = Object.freeze({
|
|
|
14
14
|
"systems/humanoid-character/src/core/vehicle/seats.ts",
|
|
15
15
|
"systems/humanoid-character/src/core/components/protocol.ts"
|
|
16
16
|
],
|
|
17
|
-
"closureSha256": "
|
|
17
|
+
"closureSha256": "8864a0ba523b1a4710345d48cc6ddd989032967b487aad218bdc495ca0dc4fc8",
|
|
18
18
|
"files": {
|
|
19
19
|
"systems/humanoid-character/src/core/components/chain.ts": "b3e8c8783428321b41b17ac10785b0eb3028e4da754dc917456c2b8cc23b5212",
|
|
20
20
|
"systems/humanoid-character/src/core/components/protocol.ts": "8fd2fd613a813e6e6febe5518a7b8ef409aab4f4a1bc415d75546cd7547d64a7",
|
|
@@ -28,7 +28,7 @@ export const VEHICLE_PACKAGE_V2_SOURCE = Object.freeze({
|
|
|
28
28
|
"systems/humanoid-character/src/core/vehicle/defaultControls.ts": "a9629da5f7dd35f534bb8a21af700f14d8dfa9b5d90ea39e3d5bb94e6c04afd3",
|
|
29
29
|
"systems/humanoid-character/src/core/vehicle/descriptor.ts": "f54988628f984ac73b8a7fa594d03e1f8f2c808904991267a48124d7a015f279",
|
|
30
30
|
"systems/humanoid-character/src/core/vehicle/lights.ts": "66e8d9ae34d014920c753e8bba6fe779856e128154561c470a7ff354f79e54ca",
|
|
31
|
-
"systems/humanoid-character/src/core/vehicle/package/format.ts": "
|
|
31
|
+
"systems/humanoid-character/src/core/vehicle/package/format.ts": "724aa7a5c331e0f92bdd61ae9be644a1c9d14466ae38886ccbf2bb47f0b11077",
|
|
32
32
|
"systems/humanoid-character/src/core/vehicle/package/seatDeclaration.ts": "51bd1a87314bb1504a75091389e47552e2460813a1d2f68a75c578dc04118621",
|
|
33
33
|
"systems/humanoid-character/src/core/vehicle/package/sourceValidation.ts": "65ec857e3509af062937a58bb2f9a11d0ed20721148efc6840ab818e6a835a9a",
|
|
34
34
|
"systems/humanoid-character/src/core/vehicle/package/suspensionSource.ts": "ab3a48b3555782b5f44379d5c3822c66c4b40b5cb662f0d25c96e1d042aa05db",
|
|
@@ -2322,6 +2322,7 @@ const __defs = {
|
|
|
2322
2322
|
"use strict";
|
|
2323
2323
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2324
2324
|
exports.TWO_WHEELER_REQUIRED_SOCKETS = exports.PACKAGE_LEAN_KEYS = exports.VEHICLE_QUALITY_TIERS = exports.VEHICLE_ARTICULATION_FORMAT = exports.VEHICLE_VISUAL_FORMAT = exports.VEHICLE_SIMULATION_FORMAT = exports.VEHICLE_PACKAGE_COMPATIBLE_VERSIONS = exports.VEHICLE_PACKAGE_VERSION = void 0;
|
|
2325
|
+
exports.twoWheelerGroundToBodyOrigin = twoWheelerGroundToBodyOrigin;
|
|
2325
2326
|
exports.validateVehiclePackage = validateVehiclePackage;
|
|
2326
2327
|
exports.assertPackagePublishable = assertPackagePublishable;
|
|
2327
2328
|
exports.citedIds = citedIds;
|
|
@@ -2344,6 +2345,10 @@ const __defs = {
|
|
|
2344
2345
|
];
|
|
2345
2346
|
exports.TWO_WHEELER_REQUIRED_SOCKETS = ['wheel_f', 'wheel_r'];
|
|
2346
2347
|
const CAR_WHEEL_SOCKETS = ['wheel_lf', 'wheel_rf', 'wheel_lr', 'wheel_rr'];
|
|
2348
|
+
const TWO_WHEELER_REST_K = { motorcycle: 0.8133, bicycle: 0.7724 };
|
|
2349
|
+
function twoWheelerGroundToBodyOrigin(cls, wheelRadius) {
|
|
2350
|
+
return Math.round((TWO_WHEELER_REST_K[cls] - wheelRadius) * 1000) / 1000;
|
|
2351
|
+
}
|
|
2347
2352
|
function validateTwoWheelerPackage(pkg, err, issues) {
|
|
2348
2353
|
const classId = pkg.mesh?.classId;
|
|
2349
2354
|
if (classId !== 'motorcycle' && classId !== 'bicycle') {
|
|
@@ -2364,6 +2369,17 @@ const __defs = {
|
|
|
2364
2369
|
err(`mesh.sockets.${id}`, `a ${classId} must state its \`${id}\` socket (the wheel centre, model frame)`);
|
|
2365
2370
|
}
|
|
2366
2371
|
}
|
|
2372
|
+
const rest = pkg.physics?.chassis?.groundToBodyOrigin?.value;
|
|
2373
|
+
const wheelRadius = pkg.physics?.chassis?.wheelRadius?.value;
|
|
2374
|
+
if (typeof wheelRadius === 'number' && wheelRadius > 0) {
|
|
2375
|
+
const expected = twoWheelerGroundToBodyOrigin(classId, wheelRadius);
|
|
2376
|
+
if (typeof rest !== 'number') {
|
|
2377
|
+
err('physics.chassis.groundToBodyOrigin', `a ${classId} must state where its body origin stands on its springs (metres above the road; \`${expected}\` for a ${wheelRadius} m wheel): the room spawns the vehicle at placement + this value, and without it the ${classId} is spawned buried in the road`);
|
|
2378
|
+
}
|
|
2379
|
+
else if (Math.abs(rest - expected) > 0.05) {
|
|
2380
|
+
issues.push({ level: 'warn', path: 'physics.chassis.groundToBodyOrigin', message: `${rest} m is ${Math.abs(rest - expected).toFixed(3)} m from the ${expected} m a ${classId} with a ${wheelRadius} m wheel settles at; the spawn will drop or rise by the difference` });
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2367
2383
|
if (pkg.simulation?.land !== undefined) {
|
|
2368
2384
|
err('simulation.land', `the land solver v2 has no lean or camber model yet: a ${classId} runs the v1 solver, so it cannot declare \`simulation.land\``);
|
|
2369
2385
|
}
|
|
@@ -2442,7 +2458,7 @@ const __defs = {
|
|
|
2442
2458
|
if (pkg.packageVersion !== exports.VEHICLE_PACKAGE_VERSION) {
|
|
2443
2459
|
err('physics.chassis.groundToBodyOrigin', `requires packageVersion ${exports.VEHICLE_PACKAGE_VERSION}`);
|
|
2444
2460
|
}
|
|
2445
|
-
if (pkg.simulation?.land === undefined) {
|
|
2461
|
+
if (pkg.simulation?.land === undefined && pkg.mesh?.classId !== 'motorcycle' && pkg.mesh?.classId !== 'bicycle') {
|
|
2446
2462
|
err('physics.chassis.groundToBodyOrigin', 'requires a land simulation contract');
|
|
2447
2463
|
}
|
|
2448
2464
|
if (groundToBodyOrigin.unit !== 'm') {
|