Commit Graph

16 Commits (f4a30b1b9dbd4c5f4ab4ebfd9f4e7507e577ce4f)

Author SHA1 Message Date
VinPropane 387b61b577 NEON-25: fix gdlint (line length, class-definitions-order) 2026-04-08 00:05:55 -04:00
VinPropane 4930fd89a6 NEON-25: isometric follow camera, CameraState, tests, and docs 2026-04-07 23:46:04 -04:00
VinPropane 72897a4924 NS-24: Fix GDScript lint (line length, gdlint, gdformat)
- Shorten file-header and doc comments to satisfy max-line-length.
- Rename bump collision preload const to BUMP_COLLISION_CONSTS_SCRIPT.
- Refactor idle floor-angle and walk-step logic for return/format rules.
2026-04-06 00:41:32 -04:00
VinPropane 7b11d4e238 NS-24: Eliminate idle jitter and movement QA bumps (Godot client)
Physics: Jolt 3D; physics_interpolation off; 120 TPS. CharacterBody3D idle
path uses dual floor_max_angle, rim/straddle and ridged-contact handling,
rim settle and random-floor-bump lip/wall escape, floor_block_on_wall,
NavigationAgent3D avoidance off, per-node interp off. No global_transform in
_process (avoid render/physics ghosting).

QA geometry: random_floor_bumps.gd (load from main.gd); each bump on its own
StaticBody3D under NavigationRegion3D; random_floor_bump_collision_constants.gd
for collider fudge and RANDOM_FLOOR_BUMP_MESH_GROUP.

Scene: player safe_margin and mesh Y lift; MoveRejectPedestal / MoveRejectFarPad
renamed from NS19*; Mat_player_capsule without polygon_offset (per follow-up).

Docs: NS-24 plan + resolution, client/README manual steps, code review
2026-04-05-NS-24.md; server/README bump height note. Code/scene identifiers
avoid ticket-based ns19_* naming.
2026-04-06 00:32:41 -04:00
VinPropane a5ec8df4a7 NS-23: terminal collision, nav around obstacle, agent under region
- Add BoxShape3D to PrototypeTerminal (layer 1, walkable) so the player
  cannot pass through; matches terminal mesh size.
- Bake navigation from collision layer 1 only so the player (layer 2) is
  not merged into the mesh; reparent Player under NavigationRegion3D so
  NavigationAgent3D resolves a valid map.
- Restore nav waypoint following for long horizontal legs; keep horizontal
  steering toward next/goal so bump departure behavior stays sane.
2026-04-05 01:10:16 -04:00
VinPropane f49c8b88d2 NS-23: Fix nav movement (sync bake, map guard, path/fallback steering) 2026-04-05 00:29:58 -04:00
VinPropane 0ac059fa3b NS-23: NavigationAgent3D path-follow with server move authority 2026-04-05 00:23:03 -04:00
VinPropane 1f9260e8ba chore(client): order const/var before @onready for gdlint 2026-04-05 00:02:59 -04:00
VinPropane 7fffc3137a NS-19: auto-clear move reject label after 4s 2026-04-04 23:49:14 -04:00
VinPropane 32d2153acb NS-19: server move validation, client rejection UX, scene QA props 2026-04-04 23:39:40 -04:00
VinPropane b043e8ac45 NS-18: InteractionRequest, client prototype, Postgres test UX
Server: POST /game/players/{id}/interact, HorizontalReach, prototype registry, DTOs, tests; default spawn (-5,0.9,-5); dev HttpLogging.

Client: terminal, radius glow preview, interaction_request_client (interact/E), main wiring; obstacle moved off center.

Tests: postgres.runsettings, launchSettings, Docker compose auto-start/teardown harness, async-safe init.

Docs: plan AC, E1.M1 snapshot, alignment table, server/client README, code review 2026-04-04.
2026-04-04 20:19:33 -04:00
VinPropane 15b0ee0921 ci: gate .NET workflow on server paths; add GDScript lint/format CI
- Run .NET build/test only when the solution, server/, or the workflow changes.
- Add gdlint and gdformat --check for client/ on relevant path changes.
- Align client GDScript with gdtoolkit (formatting, enum order, line length).
2026-03-30 21:16:16 -04:00
VinPropane 3882b0e2c6 NS-16: MoveCommand → server PositionState, Godot sync, tests
Implement E1.M1 intent → authority: POST /game/players/{id}/move with v1 JSON
MoveCommandRequest (snap + sequence), extend in-memory store and
PositionStateApi. Godot client splits ground_pick and position_authority_client
with thin main.gd; snap_to_server on player.

Tests live under NeonSprawl.Server.Tests/Game/PositionState/ with AAA layout
and MethodName_ShouldExpectedOutcome_WhenScenario naming. Debug builds use
UseAppHost=false so Linux IDEs resolve .NET 10 from a user-local SDK.

Add NS-16 implementation plan, code review doc, godot-client-script-organization
rule, csharp test layout/naming rules, and refresh E1.M1 / alignment docs.
Server and client README updates include move API, prerequisites, and Rider
notes.

Made-with: Cursor
2026-03-30 19:54:17 -04:00
don 64092566a4 fix(client): reliable NS-14 click-to-move without NavigationMesh
- Drive movement with horizontal steering + move_and_slide toward click goal
- Remove NavigationRegion3D / NavigationAgent3D; obstacle interaction is slide
- main.gd: raycast to walkable, Player.set_move_goal; viewport camera + mouse
- Scene: explicit physics layers/mask on floor, obstacle, player
- Docs: Godot 4.6 baseline, README + NS-14 plan + tech_stack; Godot .import/.uid

Made-with: Cursor
2026-03-29 22:08:25 -04:00
don 343592541a feat(client): NS-14 click-to-move with NavigationAgent3D
- Main scene: floor, obstacle, nav mesh, camera, CharacterBody3D + agent
- Click-to-move on walkable group; pick mask avoids avatar self-hit
- player.gd drives path following; README and plan AC updated

Made-with: Cursor
2026-03-29 21:19:52 -04:00
don 09a4106543 Update README and documentation to reflect project rebranding to "Neon Sprawl". Revise links to vision plan and adjust references in tech stack and decomposition documents. Enhance README with repository layout and instructions for running the server and client. 2026-03-29 17:23:00 -04:00