neon-sprawl/docs/decomposition/modules
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
..
CT_M1_ContentValidationPipeline.md chore: CI check for decomposition hybrid vocabulary (suggestion 4) 2026-04-03 21:29:28 -04:00
CT_M2_AuthoringStudioApplication.md chore: add CT content-tooling track and vision plan tooling epic 2026-03-30 23:18:40 -04:00
CT_M3_ContentReferenceAndBundleWorkflows.md chore: add CT content-tooling track and vision plan tooling epic 2026-03-30 23:18:40 -04:00
E1_M1_InputAndMovementRuntime.md NEON-15: apply code review doc suggestions (E1.M1 pointers, PR notes) 2026-04-08 21:59:53 -04:00
E1_M2_IsometricCameraController.md NEON-27: implement OcclusionPolicy — RayCast-based material fade 2026-04-08 23:34:00 -04:00
E1_M3_InteractionAndTargetingLayer.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E1_M4_AbilityInputScaffold.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E2_M1_SkillDefinitionRegistry.md docs: drop classless terminology; rename Epic 2 to skills and progression 2026-04-03 21:33:53 -04:00
E2_M2_XpAwardAndLevelEngine.md docs: drop classless terminology; rename Epic 2 to skills and progression 2026-04-03 21:33:53 -04:00
E2_M3_MasteryAndPerkUnlocks.md docs: drop classless terminology; rename Epic 2 to skills and progression 2026-04-03 21:33:53 -04:00
E2_M4_ProgressionPacingControls.md docs: drop classless terminology; rename Epic 2 to skills and progression 2026-04-03 21:33:53 -04:00
E3_M1_ResourceNodeAndGatherLoop.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E3_M2_RefinementAndRecipeExecution.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E3_M3_ItemizationAndInventorySchema.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E3_M4_SinkAndDurabilityLifecycle.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E3_M5_EconomyBalancePolicy.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E4_M1_ZoneGraphAndTravelRules.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E4_M2_SpawnEcologyController.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E4_M3_SeamlessHandoffAndRegionState.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E4_M4_SecurityTierZoneFlags.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E5_M1_CombatRulesEngine.md docs: PvP × combat engine integration (#4) 2026-03-30 18:55:46 -04:00
E5_M2_NpcAiAndBehaviorProfiles.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E5_M3_EncounterAndRewardTables.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E5_M4_GroupCombatScaling.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E6_M1_PvPEligibilityAndFlagState.md docs: PvP × combat engine integration (#4) 2026-03-30 18:55:46 -04:00
E6_M2_ConsentAndRiskUxSignals.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E6_M3_LossPenaltyAndAntiGriefRules.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E6_M4_RewardParityEnforcer.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E7_M1_QuestStateMachine.md docs: quest scope and party rules (#5) 2026-03-30 18:58:23 -04:00
E7_M2_RewardAndUnlockRouter.md docs: quest scope and party rules (#5) 2026-03-30 18:58:23 -04:00
E7_M3_FactionReputationLedger.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E7_M4_ContractMissionGenerator.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E8_M1_PartyAndMatchAssembly.md docs: quest scope and party rules (#5) 2026-03-30 18:58:23 -04:00
E8_M2_GuildCorpProgressionState.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E8_M3_PlayerTradeAndMarketplace.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E8_M4_ChatModerationAndReporting.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E9_M1_TelemetryEventSchema.md docs: data reload and telemetry operations policy (#6) 2026-03-30 19:00:59 -04:00
E9_M2_KpiDashboardsAndAlerting.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E9_M3_LiveBalanceControlPlane.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
E9_M4_IntegrityAndAbuseResponse.md docs: expand module register to full epic catalog (37 modules) 2026-03-30 18:48:07 -04:00
client_server_authority.md docs: PvP × combat engine integration (#4) 2026-03-30 18:55:46 -04:00
contracts.md docs: documentation vs implementation alignment (#7) 2026-03-30 19:03:03 -04:00
data_and_ops_policy.md docs: tidy data_and_ops_policy table and vision plan links 2026-03-30 19:05:49 -04:00
documentation_and_implementation_alignment.md NEON-15: apply code review doc suggestions (E1.M1 pointers, PR notes) 2026-04-08 21:59:53 -04:00
module_dependency_register.md NEON-26: ZoomBandConfig, discrete zoom input, CameraState sync 2026-04-08 22:32:45 -04:00
pvp_combat_integration.md docs: drop conversation-only (#4)/(#5) from module doc titles 2026-03-30 19:00:06 -04:00
quest_scope_and_party.md docs: drop classless terminology; rename Epic 2 to skills and progression 2026-04-03 21:33:53 -04:00