Selection ring clips into terrace risers at a step #156

Open
opened 2026-10-11 19:50:11 +01:00 by liamjd · 0 comments
Owner

Follows #143.

The pawn's selection ring (SelectionHighlight.make_ring(), a flattened TorusMesh with an outer radius of 0.7) is wider than the space the pawn occupies. When a selected pawn stands near a terrace edge, part of the ring can push into the riser of the higher neighbouring tile, or hang in the air over the lower one. This is purely cosmetic: selection, picking and the highlight state are unaffected. It was found while verifying #143 and is not yet confirmed in a screenshot.

Options

  • Draw the ring with no_depth_test (and a raised render_priority) so it always draws on top. This is simple, but the ring would then also show through buildings and cliffs that should hide it.
  • Shrink the ring so it fits inside one tile with a margin (a tile is 2.0 across). This reduces clipping but doesn't remove it, because the pawn walks off-centre between tiles.
  • Replace the torus with a Decal projected down onto the terrain. It follows the ground exactly, but check first whether GL Compatibility in 4.7 supports Decal at all, since that renderer drops several 3D features.
  • Leave it until real pawn models arrive, and revisit the ring's size then.

Acceptance criteria

  • A selected pawn standing next to a terrace step shows a ring that does not visibly cut into, or float off, the step. Checked headed, with a screenshot (tools/screenshot_pawn_selection.gd is a starting point).
  • The ring still reads at the default zoom, as #143 required.
Follows #143. The pawn's selection ring (`SelectionHighlight.make_ring()`, a flattened `TorusMesh` with an outer radius of 0.7) is wider than the space the pawn occupies. When a selected pawn stands near a terrace edge, part of the ring can push into the riser of the higher neighbouring tile, or hang in the air over the lower one. This is purely cosmetic: selection, picking and the highlight state are unaffected. It was found while verifying #143 and is not yet confirmed in a screenshot. ## Options - Draw the ring with `no_depth_test` (and a raised `render_priority`) so it always draws on top. This is simple, but the ring would then also show through buildings and cliffs that should hide it. - Shrink the ring so it fits inside one tile with a margin (a tile is 2.0 across). This reduces clipping but doesn't remove it, because the pawn walks off-centre between tiles. - Replace the torus with a `Decal` projected down onto the terrain. It follows the ground exactly, but check first whether GL Compatibility in 4.7 supports `Decal` at all, since that renderer drops several 3D features. - Leave it until real pawn models arrive, and revisit the ring's size then. ## Acceptance criteria - [ ] A selected pawn standing next to a terrace step shows a ring that does not visibly cut into, or float off, the step. Checked headed, with a screenshot (`tools/screenshot_pawn_selection.gd` is a starting point). - [ ] The ring still reads at the default zoom, as #143 required.
Sign in to join this conversation.
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
liamjd/UntitledColonyBuilder#156
No description provided.