Commit Graph

297 Commits (15d405261f5a15178aa697415d7e499eb1ac138f)

Author SHA1 Message Date
VinPropane 15d405261f NEON-27: implement OcclusionPolicy — RayCast-based material fade
Adds OcclusionPolicy resource and wires it into IsometricFollowCamera.
Each _process frame, iterative rays from the camera eye to the player
focus detect bodies tagged "occluder"; their MeshInstance3D surfaces are
overridden with a transparent StandardMaterial3D (fade_alpha=0.25, instant).
Materials restore when the body clears the ray. Null-material surfaces
(e.g. the prototype Obstacle with no material assigned) receive a plain
transparent StandardMaterial3D so they fade correctly.

- client/scripts/occlusion_policy.gd — new Resource (enabled, fade_alpha,
  occluder_group, occluder_collision_mask, max_occluder_cast_depth,
  occluder_count_log_threshold, is_valid)
- client/resources/isometric_occlusion_policy.tres — default instance
- client/scripts/isometric_follow_camera.gd — occlusion_policy export,
  _update_occlusion pipeline, _apply_occluder_fade/_restore_occluder helpers,
  static occlusion_policy_is_valid guard, _exit_tree cleanup
- client/scenes/main.tscn — Obstacle tagged "occluder", policy assigned
- client/test/occlusion_policy_test.gd — new GdUnit4 unit tests
- client/test/isometric_follow_camera_test.gd — policy guard static tests
- docs/decomposition/modules/E1_M2_IsometricCameraController.md — NEON-27
  snapshot + readability demo gate note
- docs/plans/NEON-27-implementation-plan.md — null-material decision recorded
2026-04-08 23:34:00 -04:00
VinPropane b2d2500e6a NEON-27: record planning decisions in implementation plan
Occluder ID: explicit group tag. Fade: instant (no Tween). Non-StandardMaterial3D
surfaces: skip + push_warning. Rationale documented in Decisions table.
2026-04-08 23:28:02 -04:00
VinPropane 185af5a7f6 NEON-27: add implementation plan for OcclusionPolicy
Documents RayCast-based material-fade approach, files to add/modify,
GdUnit4 test coverage, and readability risk gate note.
2026-04-08 23:21:51 -04:00
VinPropane 1d891eb8bb
Merge pull request #34 from ViPro-Technologies/chore/story-end-jira-transition
chore: require Jira transition choice in story-end rule
2026-04-08 23:17:06 -04:00
VinPropane 8c23feb7cf chore: require Jira transition choice in story-end rule 2026-04-08 23:15:58 -04:00
VinPropane 491c75eca4
Merge pull request #33 from ViPro-Technologies/NEON-26-zoom-band-config-discrete-input
Neon 26 zoom band config discrete input
2026-04-08 23:12:02 -04:00
VinPropane cdf9d59bd9 NEON-26: add pre-push GDScript lint hook
Document the repo's enforced GDScript lint rules and add a local pre-push hook so gdlint/gdformat failures are caught before CI.
2026-04-08 23:10:40 -04:00
VinPropane ae643bc81c NEON-26: refresh review after follow-up fixes 2026-04-08 23:00:10 -04:00
VinPropane ff830813c7 NEON-26: address code review follow-ups (zoom validation, docs) 2026-04-08 22:58:28 -04:00
VinPropane b9ec6ccb0f NEON-26: add code review notes for zoom bands 2026-04-08 22:55:37 -04:00
VinPropane 0d71b873af NEON-26: add finer zoom band ladder (11 steps) 2026-04-08 22:37:33 -04:00
VinPropane 806777b6d5 NEON-26: widen default zoom bands, stronger zoom-out 2026-04-08 22:35:54 -04:00
VinPropane 753ce84861 NEON-26: ZoomBandConfig, discrete zoom input, CameraState sync 2026-04-08 22:32:45 -04:00
VinPropane f4a30b1b9d NEON-26: add implementation plan for zoom bands 2026-04-08 22:17:36 -04:00
VinPropane 8865329210
Merge pull request #32 from ViPro-Technologies/NEON-15-dispose-npgsql-datasource
Neon 15 dispose npgsql datasource
2026-04-08 22:13:39 -04:00
VinPropane b52862f6ee chore: gitignore VS Code machine-local settings.json 2026-04-08 22:11:31 -04:00
VinPropane e000da20ee NEON-15: address review nits (shutdown token, plan verification note) 2026-04-08 22:09:12 -04:00
VinPropane adde98e4a8 chore: review follow-up uses strikethrough on suggestions, not extra section 2026-04-08 22:06:17 -04:00
VinPropane 6bc8014adf chore: require updating docs/reviews when review suggestions resolve 2026-04-08 22:03:44 -04:00
VinPropane 8c3e8c0a03 NEON-15: apply code review doc suggestions (E1.M1 pointers, PR notes) 2026-04-08 21:59:53 -04:00
VinPropane 2617b65f79 NEON-15: add code review (2026-04-08) 2026-04-08 21:58:18 -04:00
VinPropane 62ff210830 NEON-15: log plan decisions; require docs sync for planning/implementation 2026-04-08 21:49:56 -04:00
VinPropane 90fcd1b717 NEON-15: dispose shared NpgsqlDataSource on host shutdown 2026-04-08 21:42:33 -04:00
VinPropane abffd29299 NEON-15: add implementation plan for NpgsqlDataSource shutdown 2026-04-08 21:16:50 -04:00
VinPropane d77462012c
Merge pull request #31 from ViPro-Technologies/NEON-25-isometric-follow-camera
Neon 25 isometric follow camera
2026-04-08 00:08:53 -04:00
VinPropane 9f6297c46d NEON-25: gdformat isometric_follow_camera.gd 2026-04-08 00:08:00 -04:00
VinPropane 387b61b577 NEON-25: fix gdlint (line length, class-definitions-order) 2026-04-08 00:05:55 -04:00
VinPropane 0a86215bc0 NEON-25: sync project.godot (GdUnit inspector pref; editor section order) 2026-04-07 23:58:47 -04:00
VinPropane e96f70d889 NEON-25: follow-up from code review (missing target warn, docs, E1.M2 status) 2026-04-07 23:54:27 -04:00
VinPropane f4b34316a6 NEON-25: add code review for isometric follow camera 2026-04-07 23:51:46 -04:00
VinPropane 4930fd89a6 NEON-25: isometric follow camera, CameraState, tests, and docs 2026-04-07 23:46:04 -04:00
VinPropane 262abb5f2e NEON-29: register prototype district story in E1.M2 backlog 2026-04-07 23:38:55 -04:00
VinPropane 644bfc8c3d NEON-25: lock low-controversy camera defaults in implementation plan 2026-04-07 23:34:20 -04:00
VinPropane 00c2c4520e NEON-25: add implementation plan for isometric follow camera 2026-04-07 23:27:44 -04:00
VinPropane b07f6980c6
Merge pull request #30 from ViPro-Technologies/chore/e1-m2-neon25-jira-table
chore: align E1.M2 Jira table with NEON-25 summary
2026-04-07 23:25:14 -04:00
VinPropane 09257b4cc3 chore: align E1.M2 Jira table with NEON-25 summary 2026-04-07 23:21:45 -04:00
VinPropane d06e34b452
Merge pull request #29 from ViPro-Technologies/docs/e1-m2-camera-module
chore: expand E1.M2 module doc (Jira backlog, rotation policy)
2026-04-07 23:13:21 -04:00
VinPropane 2b00de309b chore: expand E1.M2 module doc (Jira backlog, rotation policy)
- Link NEON-10/NEON-25–28 under parent NEON-1 in Summary and Jira backlog table
- Document mid-project-only yaw orbit compromise; post-release camera model settled
- Extend CameraState contract and slice/risk notes accordingly
2026-04-07 23:12:48 -04:00
VinPropane 2a5d9fa900
Merge pull request #28 from ViPro-Technologies/chore/jira-reorganization
chore: document Jira epic→story + labels (no Feature issues)
2026-04-07 00:21:17 -04:00
VinPropane 99b1025c8b
Merge branch 'main' into chore/jira-reorganization 2026-04-07 00:20:54 -04:00
VinPropane 175c6e0500 chore: document Jira epic→story + labels (no Feature issues)
Module/slice grouping below epics is labels on stories only; Feature
work items are not used. Cross-link from jira-git-naming, story kickoff,
and documentation alignment table.
2026-04-07 00:20:01 -04:00
VinPropane 839b8a7c31
Merge pull request #27 from ViPro-Technologies/chore/jira-reorganization
chore: migrate Jira references from NS-* to NEON-* in docs and rules
2026-04-07 00:17:18 -04:00
VinPropane fa19ab7337 chore: migrate Jira references from NS-* to NEON-* in docs and rules
Rename implementation plans and dated reviews to NEON issue numbers per
Atlassian project re-key. Update browse URLs, cross-links, module docs,
client/server READMEs, and Cursor rules (project key NEON).
2026-04-07 00:15:06 -04:00
VinPropane f3b4eb1c2c
Merge pull request #26 from ViPro-Technologies/NS-21-gdscript-unit-testing
NS-21 gdscript unit testing
2026-04-06 22:47:49 -04:00
VinPropane da72ea8264 NS-21: fail CI if Godot logs SCRIPT ERROR during GdUnit discovery
GdUnit exits 0 when broken suites are skipped; grep log for parse/load errors.
2026-04-06 22:34:43 -04:00
VinPropane 4f46fa580b NS-21: fix ground_pick_test const — preload not load (Godot 4.6)
load() is not a constant expression; suite failed parse and was skipped in CI
while gdlint passed. Restores 11 tests across 3 suites.
2026-04-06 22:32:05 -04:00
VinPropane 1f70bfb80a NS-21: track GdUnit4 bin/ scripts (unignore vs root bin/ rule)
Root .gitignore bin/ matched client/addons/gdUnit4/bin/, so CI never had
GdUnitCmdTool.gd. Negate that path; add the four bin files.
2026-04-06 22:29:08 -04:00
VinPropane 7b2c35f57c NS-21: fix GdUnit CI path casing; preflight and README note
Linux res:// paths are case-sensitive; gdunit4 breaks, gdUnit4 is correct.
2026-04-06 22:27:36 -04:00
VinPropane f09517af6a NS-21: fix gdlint in test suites (load-once, line length, const name) 2026-04-06 22:25:23 -04:00
VinPropane 791c7dad1b
Merge branch 'main' into NS-21-gdscript-unit-testing 2026-04-06 22:22:16 -04:00