VinPropane
f1b4e50729
NEON-27: finalise review (Approved) + Godot uid files
...
Review verdict updated to Approved; all blocking issues and suggestions
resolved and documented. Add auto-generated Godot .uid sidecar files for
occlusion_policy.gd and occlusion_policy_test.gd.
2026-04-08 23:55:29 -04:00
VinPropane
71232c36ef
NEON-27: address review suggestions — doc alignment pass
...
- Plan: reconcile null-material prose in "Material override strategy"
to match implementation (null → new StandardMaterial3D, not skipped)
- module_dependency_register.md: E1.M2 note updated — occlusion shipped,
only integration hardening (NEON-28) remains
- documentation_and_implementation_alignment.md: add E1.M2 tracking row
(NEON-25–27 shipped, NEON-28 open)
- Review: strike through both suggestions as Done
2026-04-08 23:52:46 -04:00
VinPropane
5e16fdccc8
NEON-27: restore occluders on all _process early-return paths
...
Fixes review blocking issue: when the follow target is null (freed,
renamed, or path unresolved) or the Camera3D child is missing,
_restore_all_occluders() is now called before returning so geometry
cannot be left stuck semi-transparent.
2026-04-08 23:50:48 -04:00
VinPropane
8bc2efb854
NEON-27: check off all acceptance criteria; record PR screenshots
...
Before/after evidence: obstacle fades to ~25% alpha when occluding the
player; restores on clear. All three ACs satisfied.
2026-04-08 23:42:31 -04:00
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