feat(client): admin terrain-z HUD probe #263

Merged
panda merged 1 commit from feat/admin-terrain-z-probe into main 2026-08-02 22:35:05 +02:00
Collaborator

Summary

A DEBUG/admin HUD readout of terrain elevation, built to diagnose the "invisible cliff" problem (#262): an admin-gated second HUD line showing the ground-Z of the player's tile and the tile under the cursor, the step delta, and (step BLOCKED) when an ADJACENT step exceeds MaxWalkStepZ. Client-only — the client already has the map, so GroundZAt is computed locally; no server/protocol change. Off the normal player HUD (admin-gated). The height-aware cursor pick resolves the tile a raised one is drawn over. This is the measuring instrument for the cliff-face legibility work (#262).

Screenshots / recording

terrain-z readout
Captured via the debug harness (login test, on asterra). Earlier single-line layout shown (readout reads z <hereZ>); the committed version draws it on its OWN line so it's never truncated behind the minimap.

How it was tested

Client-only presentation (a HUD DrawText line) — no unit test (the client renderer is untested engine glue; the underlying GroundZAt / ChebyshevDistanceTo are already covered in Shared). Drove the live client via the harness and read the values against known tiles. dotnet build IsoMmo.slnx — 0 warnings.

Checklist

  • just lint passes (CSharpier + analyzers, zero warnings)
  • The whole solution builds (client and tools included)
  • Multi-platform preserved (pure .NET / MonoGame, no OS-specific deps)
  • Tests added — N/A (debug HUD presentation; logic already covered in Shared)
  • Linked #262
## Summary A **DEBUG/admin HUD readout of terrain elevation**, built to diagnose the "invisible cliff" problem (#262): an admin-gated second HUD line showing the ground-Z of the player's tile and the tile under the cursor, the step delta, and `(step BLOCKED)` when an ADJACENT step exceeds `MaxWalkStepZ`. Client-only — the client already has the map, so `GroundZAt` is computed locally; no server/protocol change. Off the normal player HUD (admin-gated). The height-aware cursor pick resolves the tile a raised one is drawn over. This is the **measuring instrument** for the cliff-face legibility work (#262). ## Screenshots / recording ![terrain-z readout](https://git.homelab.devncode.it/attachments/ebfdc321-6575-4ca9-8dfc-a768a5fbc996) Captured via the debug harness (`login test`, on asterra). Earlier single-line layout shown (readout reads `z <hereZ>`); the committed version draws it on its OWN line so it's never truncated behind the minimap. ## How it was tested Client-only presentation (a HUD `DrawText` line) — no unit test (the client renderer is untested engine glue; the underlying `GroundZAt` / `ChebyshevDistanceTo` are already covered in Shared). Drove the live client via the harness and read the values against known tiles. `dotnet build IsoMmo.slnx` — **0 warnings**. ## Checklist - [x] `just lint` passes (CSharpier + analyzers, zero warnings) - [x] The whole solution builds (client and tools included) - [x] Multi-platform preserved (pure .NET / MonoGame, no OS-specific deps) - [ ] Tests added — N/A (debug HUD presentation; logic already covered in Shared) - [x] Linked #262
feat(client): admin terrain-z HUD probe (ground-Z + step delta under cursor)
All checks were successful
ci / Lua content lint (pull_request) Successful in 13s
ci / Lint & Test (pull_request) Successful in 6m25s
39c9e518dd
panda merged commit 006af924ee into main 2026-08-02 22:35:05 +02:00
panda deleted branch feat/admin-terrain-z-probe 2026-08-02 22:35:06 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo!263
No description provided.