mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Introduce an EntryPreparationState carried on PathNode + A* context so sidewall parkour can explicitly request one or more runway traverses before takeoff instead of silently dropping the move. ParkourFeasibility gains TryGetRequiredStaticEntryRunupSteps + HasPreparedRunup helpers so long descends (major=5, dy=-1) only remain feasible when the preceding node proved the runup. Widen HasDominantAxisRunUp to accept cold-start sprint-jumps within ~3.1-3.5 blocks horizontally so lone overhang / staircase takeoffs stay feasible without a 2-block runway (matches Baritone's MomentumBehavior .ALLOWED contract). Add a runtime SidewallParkourController that implements the corner commitment + wall-hug chain during execution. Extend pathing test fixtures with InitialMomentumTicks, add sidewall accepted/rejected scenarios, and refresh timing + contract baselines to reflect the new planner shapes. Document the design in docs/superpowers/specs and plans. Made-with: Cursor
29 lines
885 B
C#
29 lines
885 B
C#
namespace MinecraftClient.Pathing.Core
|
|
{
|
|
public readonly record struct EntryPreparationState(
|
|
EntryPreparationKind Kind,
|
|
int OriginX,
|
|
int OriginY,
|
|
int OriginZ,
|
|
int ForwardX,
|
|
int ForwardZ,
|
|
byte RequiredSteps,
|
|
byte BackwardSteps,
|
|
byte ReturnSteps)
|
|
{
|
|
public static EntryPreparationState None => default;
|
|
|
|
public bool IsNone => Kind == EntryPreparationKind.None;
|
|
|
|
public bool IsPrepared =>
|
|
Kind != EntryPreparationKind.None &&
|
|
BackwardSteps == RequiredSteps &&
|
|
ReturnSteps == RequiredSteps;
|
|
|
|
public EntryPreparationState AdvanceBackward() =>
|
|
this with { BackwardSteps = (byte)(BackwardSteps + 1) };
|
|
|
|
public EntryPreparationState AdvanceReturn() =>
|
|
this with { ReturnSteps = (byte)(ReturnSteps + 1) };
|
|
}
|
|
}
|