@helix3/helix-cli 0.1.7-helix3.45 → 0.1.8-helix3.47
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/dist/browser/launch.d.ts +22 -0
- package/dist/browser/launch.js +46 -0
- package/dist/browser/launch.js.map +1 -0
- package/dist/gesture/worldRuntime.d.ts +2 -0
- package/dist/gesture/worldRuntime.js +5 -2
- package/dist/gesture/worldRuntime.js.map +1 -1
- package/dist/index.js +127 -0
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +19 -0
- package/dist/lib.js +36 -1
- package/dist/lib.js.map +1 -1
- package/dist/screenshot/captureScreenshots.d.ts +4 -16
- package/dist/screenshot/captureScreenshots.js +16 -43
- package/dist/screenshot/captureScreenshots.js.map +1 -1
- package/dist/screenshot/staticServe.d.ts +1 -1
- package/dist/screenshot/staticServe.js +34 -16
- package/dist/screenshot/staticServe.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/world/analyze.d.ts +40 -0
- package/dist/world/analyze.js +573 -0
- package/dist/world/analyze.js.map +1 -0
- package/dist/world/diff.d.ts +18 -0
- package/dist/world/diff.js +58 -0
- package/dist/world/diff.js.map +1 -0
- package/dist/world/focus.d.ts +11 -0
- package/dist/world/focus.js +99 -0
- package/dist/world/focus.js.map +1 -0
- package/dist/world/format.d.ts +6 -0
- package/dist/world/format.js +123 -0
- package/dist/world/format.js.map +1 -0
- package/dist/world/readWorldMetrics.d.ts +10 -0
- package/dist/world/readWorldMetrics.js +31 -0
- package/dist/world/readWorldMetrics.js.map +1 -0
- package/dist/world/snapshotTypes.d.ts +59 -0
- package/dist/world/snapshotTypes.js +8 -0
- package/dist/world/snapshotTypes.js.map +1 -0
- package/dist/world/snapshotWorld.d.ts +16 -0
- package/dist/world/snapshotWorld.js +120 -0
- package/dist/world/snapshotWorld.js.map +1 -0
- package/dist/world/zones.d.ts +23 -0
- package/dist/world/zones.js +134 -0
- package/dist/world/zones.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyzeZones = analyzeZones;
|
|
4
|
+
const analyze_1 = require("./analyze");
|
|
5
|
+
// Mirror of WORLD_METRICS.capsule.height (humanoid-character src/core/worldMetrics.ts) — a
|
|
6
|
+
// standing player occupies [surfaceTop, surfaceTop + this] above whatever they rest on.
|
|
7
|
+
const CAPSULE_HEIGHT_M = 1.8;
|
|
8
|
+
const OUT_OF_BOUNDS_FACTOR = 5;
|
|
9
|
+
const OUT_OF_BOUNDS_MIN_M = 50;
|
|
10
|
+
function zoneAabb(zone) {
|
|
11
|
+
const [cx, cy, cz] = zone.center;
|
|
12
|
+
if (zone.shape === 'box' && zone.size) {
|
|
13
|
+
const [sx, sy, sz] = zone.size;
|
|
14
|
+
return { min: { x: cx - sx / 2, y: cy - sy / 2, z: cz - sz / 2 }, max: { x: cx + sx / 2, y: cy + sy / 2, z: cz + sz / 2 } };
|
|
15
|
+
}
|
|
16
|
+
if (zone.shape === 'sphere' && typeof zone.radius === 'number') {
|
|
17
|
+
const r = zone.radius;
|
|
18
|
+
return { min: { x: cx - r, y: cy - r, z: cz - r }, max: { x: cx + r, y: cy + r, z: cz + r } };
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const intersects3d = (a, b) => a.min.x < b.max.x && a.max.x > b.min.x && a.min.y < b.max.y && a.max.y > b.min.y && a.min.z < b.max.z && a.max.z > b.min.z;
|
|
23
|
+
const xzOverlaps = (a, b) => a.min.x < b.max.x && a.max.x > b.min.x && a.min.z < b.max.z && a.max.z > b.min.z;
|
|
24
|
+
const containsPoint = (a, p) => p.x >= a.min.x && p.x <= a.max.x && p.y >= a.min.y && p.y <= a.max.y && p.z >= a.min.z && p.z <= a.max.z;
|
|
25
|
+
function analyzeZones(zones, snapshot) {
|
|
26
|
+
const findings = [];
|
|
27
|
+
const report = [];
|
|
28
|
+
const layoutObjects = snapshot.objects.filter((o) => o.aabb !== null && !o.nonFinite && !(0, analyze_1.isCharacterSubtree)(o.path) && !(0, analyze_1.isHelperType)(o.type));
|
|
29
|
+
const surfaces = [
|
|
30
|
+
...layoutObjects.filter((o) => o.visible).map((o) => ({ label: o.path, aabb: o.aabb, top: o.aabb.max.y })),
|
|
31
|
+
...snapshot.colliders
|
|
32
|
+
.map((c, index) => ({ index, aabb: (0, analyze_1.colliderAabb)(c) }))
|
|
33
|
+
.filter((x) => x.aabb !== null)
|
|
34
|
+
.map(({ index, aabb }) => ({ label: `collider[${index}]`, aabb, top: aabb.max.y })),
|
|
35
|
+
];
|
|
36
|
+
// Robust scene bulk, same recipe as the out-of-bounds rule (median center, 90th-percentile radius).
|
|
37
|
+
const centers = layoutObjects.map((o) => ({
|
|
38
|
+
x: (o.aabb.min.x + o.aabb.max.x) / 2,
|
|
39
|
+
y: (o.aabb.min.y + o.aabb.max.y) / 2,
|
|
40
|
+
z: (o.aabb.min.z + o.aabb.max.z) / 2,
|
|
41
|
+
}));
|
|
42
|
+
const median = (values) => {
|
|
43
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
44
|
+
return sorted[Math.floor(sorted.length / 2)] ?? 0;
|
|
45
|
+
};
|
|
46
|
+
const mid = { x: median(centers.map((c) => c.x)), y: median(centers.map((c) => c.y)), z: median(centers.map((c) => c.z)) };
|
|
47
|
+
const dists = centers.map((c) => Math.hypot(c.x - mid.x, c.y - mid.y, c.z - mid.z)).sort((a, b) => a - b);
|
|
48
|
+
const bulkRadius = centers.length >= 3 ? dists[Math.floor((dists.length - 1) * 0.9)] : null;
|
|
49
|
+
for (const zone of zones) {
|
|
50
|
+
const aabb = zoneAabb(zone);
|
|
51
|
+
if (!aabb) {
|
|
52
|
+
findings.push({
|
|
53
|
+
rule: 'zone-invalid',
|
|
54
|
+
severity: 'error',
|
|
55
|
+
path: `zone:${zone.id}`,
|
|
56
|
+
detail: `zone "${zone.id}" has shape "${zone.shape}" but no matching ${zone.shape === 'box' ? 'size' : 'radius'}`,
|
|
57
|
+
method: 'multiplayer.json zone geometry read',
|
|
58
|
+
confidence: 'high',
|
|
59
|
+
});
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const touches = layoutObjects.filter((o) => intersects3d(o.aabb, aabb)).map((o) => o.path);
|
|
63
|
+
const touchesColliders = surfaces.filter((s) => s.label.startsWith('collider[') && intersects3d(s.aabb, aabb));
|
|
64
|
+
// A standing player occupies [top, top + capsule] over a surface — the zone must reach into
|
|
65
|
+
// that band somewhere over its footprint for a grounded player ever to be "inside".
|
|
66
|
+
const restSurfaces = surfaces
|
|
67
|
+
.filter((s) => xzOverlaps(s.aabb, aabb) && s.top < aabb.max.y && s.top + CAPSULE_HEIGHT_M > aabb.min.y)
|
|
68
|
+
.map((s) => s.label);
|
|
69
|
+
const size = { x: aabb.max.x - aabb.min.x, y: aabb.max.y - aabb.min.y, z: aabb.max.z - aabb.min.z };
|
|
70
|
+
report.push({
|
|
71
|
+
id: zone.id,
|
|
72
|
+
extent: `${zone.shape} ${Math.round(size.x * 10) / 10}×${Math.round(size.y * 10) / 10}×${Math.round(size.z * 10) / 10} @ (${zone.center.join(', ')})`,
|
|
73
|
+
touches,
|
|
74
|
+
restSurfaces,
|
|
75
|
+
});
|
|
76
|
+
const isEntityZone = zone.tracks !== undefined && zone.tracks.startsWith('entity:');
|
|
77
|
+
if (bulkRadius !== null) {
|
|
78
|
+
const d = Math.hypot(zone.center[0] - mid.x, zone.center[1] - mid.y, zone.center[2] - mid.z);
|
|
79
|
+
const threshold = Math.max(OUT_OF_BOUNDS_FACTOR * bulkRadius, OUT_OF_BOUNDS_MIN_M);
|
|
80
|
+
if (d > threshold) {
|
|
81
|
+
findings.push({
|
|
82
|
+
rule: 'zone-out-of-bounds',
|
|
83
|
+
severity: 'warn',
|
|
84
|
+
path: `zone:${zone.id}`,
|
|
85
|
+
detail: `zone center is ${Math.round(d)} m from the bulk of the scene — no player will ever be here`,
|
|
86
|
+
measured: { distanceM: Math.round(d * 100) / 100 },
|
|
87
|
+
method: `zone center vs the scene's median-center bulk (radius ${Math.round((bulkRadius ?? 0) * 100) / 100} m)`,
|
|
88
|
+
confidence: 'high',
|
|
89
|
+
});
|
|
90
|
+
continue; // the other checks are meaningless for a mislocated zone
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (touches.length === 0 && touchesColliders.length === 0 && restSurfaces.length === 0) {
|
|
94
|
+
// A TALL empty band is the abyss-catch pattern (a floorless world respawning fallers): a
|
|
95
|
+
// terminal-velocity fall spends many ticks inside, so mid-air detection is reliable by
|
|
96
|
+
// construction. A THIN empty band is the tunneling bug this check exists for.
|
|
97
|
+
const tallAbyssBand = size.y >= 5;
|
|
98
|
+
findings.push({
|
|
99
|
+
rule: 'zone-empty',
|
|
100
|
+
severity: tallAbyssBand ? 'info' : 'warn',
|
|
101
|
+
path: `zone:${zone.id}`,
|
|
102
|
+
detail: tallAbyssBand
|
|
103
|
+
? `zone "${zone.id}" is a tall band in empty space — reads as an abyss catch volume for falling players (fine if that is the design)`
|
|
104
|
+
: `zone "${zone.id}" intersects no geometry and no standing band — only a mid-air pass can enter it, and a fast fall can tunnel past a thin band between ticks (a kill band should contain the REST position on the surface below, or be tall enough to catch the fall)`,
|
|
105
|
+
measured: { bandHeightM: Math.round(size.y * 100) / 100 },
|
|
106
|
+
method: 'zone AABB vs every visual/collider AABB and every rest band',
|
|
107
|
+
confidence: 'medium',
|
|
108
|
+
});
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (restSurfaces.length === 0 && !isEntityZone) {
|
|
112
|
+
findings.push({
|
|
113
|
+
rule: 'zone-fly-through',
|
|
114
|
+
severity: 'info',
|
|
115
|
+
path: `zone:${zone.id}`,
|
|
116
|
+
detail: `no standing player can be inside "${zone.id}" — it is enterable only mid-air (fine for a jump ring; a bug for a checkpoint or kill band that should catch a resting player)`,
|
|
117
|
+
method: `no surface's standing band [top, top+${CAPSULE_HEIGHT_M}] reaches the zone over its footprint`,
|
|
118
|
+
confidence: 'medium',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if (snapshot.spawn && !isEntityZone && containsPoint(aabb, snapshot.spawn)) {
|
|
122
|
+
findings.push({
|
|
123
|
+
rule: 'zone-contains-spawn',
|
|
124
|
+
severity: 'info',
|
|
125
|
+
path: `zone:${zone.id}`,
|
|
126
|
+
detail: `the spawn point is inside "${zone.id}" — its zoneEnter rules fire the moment a player appears`,
|
|
127
|
+
method: 'spawn point vs zone volume',
|
|
128
|
+
confidence: 'high',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return { findings, report };
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=zones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zones.js","sourceRoot":"","sources":["../../src/world/zones.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED