mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Theory simulator: - Add 2D side-wall jump physics with yaw sweep for worst-case margin - Generate sidewall theory cases (flat/ascend/descend, wall_offset 0/1) - Add momentum-capabilities.json with band compression and max_reach - Extend models, capabilities, canonical, and renderers for sidewall Full-coverage parkour test suite (tools/test-parkour.py): - Derive test matrix from momentum-capabilities.json - Build linear/neo/ceiling courses via RCON with 7-block clear margin - Use /goto for pathfinding, parse A* and PathMgr log output - Stop-at-first-failure per (family, subfamily, dy, ceil, wo) group - Hierarchical --filter (e.g. linear/flat, ceiling/headhitter/ceil2.5) - Exclude sidewall from default matrix (identical max_reach to linear) Pathing execution fixes: - Align parkour contracts and timing budgets with live test results - Fix jump-entry yaw snapping for grounded handoffs - Template helper and sprint jump template refinements Made-with: Cursor
55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class TheoryCase:
|
|
case_id: str
|
|
family: str
|
|
subfamily: str
|
|
movement_mode: str
|
|
momentum_ticks: int
|
|
gap_blocks: int | None
|
|
delta_y: float | None
|
|
ceiling_height: float | None
|
|
wall_width: int | None
|
|
wall_offset: int | None
|
|
expected_reachable: bool
|
|
landing_x: float | None
|
|
apex_y: float | None
|
|
margin: float | None
|
|
notes: str = ""
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MomentumCapabilityBand:
|
|
family: str
|
|
subfamily: str
|
|
movement_mode: str
|
|
capability_metric: str
|
|
min_mm: int
|
|
max_mm: int
|
|
max_reach: int | None
|
|
delta_y: float | None = None
|
|
ceiling_height: float | None = None
|
|
wall_offset: int | None = None
|
|
notes: str = ""
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class CanonicalLiveCase:
|
|
case_id: str
|
|
bucket_id: str
|
|
family: str
|
|
subfamily: str
|
|
movement_mode: str
|
|
momentum_ticks: int
|
|
difficulty_band: str
|
|
expected_result: str
|
|
world_recipe_id: str
|
|
gap_blocks: int | None
|
|
delta_y: float | None
|
|
ceiling_height: float | None
|
|
wall_width: int | None
|
|
wall_offset: int | None
|
|
start: dict[str, float]
|
|
goal: dict[str, float]
|