From 7460ab9d1c1e7d7b309851d9f6b5268d6e24b19a Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Tue, 7 Jul 2026 23:54:44 -0700 Subject: [PATCH] =?UTF-8?q?Docs:=20hygiene=20sweep=20=E2=80=94=20stale/mis?= =?UTF-8?q?attributed=20doc-comments=20+=20CLAUDE.md=20example?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Repoint CLAUDE.md testing example from the deleted HeartbeatSystemTests to HealthApplyDamageSystemTests. - Stale deleted-system refs: ResourceFieldSpawner/ClutterFieldSpawner(+Authoring) now cite RoomFieldSystem (was ExpeditionFieldSystem); BuildPlaceRequest drops the deleted RegionTransitRequest from its 'mirrors' list. - Stale package version: 'Netcode 1.13.2' -> 'Netcode 1.x' in ProjectileClassificationSystem + BuildPlaceRequest. - WorldCollisionComponents: remove the duplicated EnvironmentMask summary line; FeelConfig: fix the mangled 'is hitmap)' sentence. Comment/doc only; compiles clean. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../Authoring/Economy/ClutterFieldSpawnerAuthoring.cs | 2 +- .../Authoring/Economy/ResourceFieldSpawnerAuthoring.cs | 2 +- .../Scripts/Client/Combat/ProjectileClassificationSystem.cs | 2 +- Assets/_Project/Scripts/Client/Presentation/FeelConfig.cs | 2 +- .../Scripts/Simulation/Building/BuildPlaceRequest.cs | 6 +++--- .../Scripts/Simulation/Economy/ClutterFieldSpawner.cs | 4 ++-- .../Scripts/Simulation/Economy/ResourceFieldSpawner.cs | 2 +- .../Scripts/Simulation/World/WorldCollisionComponents.cs | 1 - CLAUDE.md | 2 +- 9 files changed, 11 insertions(+), 12 deletions(-) diff --git a/Assets/_Project/Scripts/Authoring/Economy/ClutterFieldSpawnerAuthoring.cs b/Assets/_Project/Scripts/Authoring/Economy/ClutterFieldSpawnerAuthoring.cs index ce4ecdf70..f97570fce 100644 --- a/Assets/_Project/Scripts/Authoring/Economy/ClutterFieldSpawnerAuthoring.cs +++ b/Assets/_Project/Scripts/Authoring/Economy/ClutterFieldSpawnerAuthoring.cs @@ -6,7 +6,7 @@ namespace ProjectM.Authoring { /// /// Authoring for the baked singleton (mirrors ResourceFieldSpawnerAuthoring). - /// Place once in the gameplay subscene and assign the Blight-clutter ghost prefab; ExpeditionFieldSystem + /// Place once in the gameplay subscene and assign the Blight-clutter ghost prefab; RoomFieldSystem /// scatters the clutter each expedition alongside the resource field. Carries no transform. /// public class ClutterFieldSpawnerAuthoring : MonoBehaviour diff --git a/Assets/_Project/Scripts/Authoring/Economy/ResourceFieldSpawnerAuthoring.cs b/Assets/_Project/Scripts/Authoring/Economy/ResourceFieldSpawnerAuthoring.cs index 7e01deb7c..2a9cc12ed 100644 --- a/Assets/_Project/Scripts/Authoring/Economy/ResourceFieldSpawnerAuthoring.cs +++ b/Assets/_Project/Scripts/Authoring/Economy/ResourceFieldSpawnerAuthoring.cs @@ -6,7 +6,7 @@ namespace ProjectM.Authoring { /// /// Authoring for the baked singleton (mirrors StorageSpawnerAuthoring). - /// Place once in the gameplay subscene and assign the resource-node ghost prefab; ExpeditionFieldSystem + /// Place once in the gameplay subscene and assign the resource-node ghost prefab; RoomFieldSystem /// scatters the field each Expedition. Carries no transform. /// public class ResourceFieldSpawnerAuthoring : MonoBehaviour diff --git a/Assets/_Project/Scripts/Client/Combat/ProjectileClassificationSystem.cs b/Assets/_Project/Scripts/Client/Combat/ProjectileClassificationSystem.cs index 001847ea8..2babf771a 100644 --- a/Assets/_Project/Scripts/Client/Combat/ProjectileClassificationSystem.cs +++ b/Assets/_Project/Scripts/Client/Combat/ProjectileClassificationSystem.cs @@ -28,7 +28,7 @@ namespace ProjectM.Client [CreateAfter(typeof(GhostReceiveSystem))] // NOTE: intentionally NOT [BurstCompile]d. The cross-assembly generic // SnapshotDataBufferComponentLookup.TryGetComponentDataFromSnapshotHistory<T>() trips a Burst - // internal compiler error (type-hash resolution) on Netcode 1.13.2. Classification only runs when + // internal compiler error (type-hash resolution) on Netcode 1.x (installed: 6.5.0). Classification only runs when // ghost spawns are received (a cold path, not the prediction loop), so a managed job is fine here. public partial struct ProjectileClassificationSystem : ISystem { diff --git a/Assets/_Project/Scripts/Client/Presentation/FeelConfig.cs b/Assets/_Project/Scripts/Client/Presentation/FeelConfig.cs index d132e2bf3..801727fe1 100644 --- a/Assets/_Project/Scripts/Client/Presentation/FeelConfig.cs +++ b/Assets/_Project/Scripts/Client/Presentation/FeelConfig.cs @@ -239,7 +239,7 @@ namespace ProjectM.Client // Deferred-items pass (2026-06) BodyFlashEnabled = true; BodyFlashColor = new Color(3.2f, 2.8f, 2.2f, 1f); // hot near-white overdrive (multiplies the Synty atlas base map) - PlayerHurtFlashColor = new Color(2.6f, 0.55f, 0.4f, 1f); // C2: hot red-orange body flash when the player is hitmap) + PlayerHurtFlashColor = new Color(2.6f, 0.55f, 0.4f, 1f); // C2: hot red-orange body flash when the player is hit BodyFlashDurationSec = 0.16f; RemoteSwingEnabled = true; RemoteSlashColor = new Color(1.4f, 2.2f, 2.8f, 1f); // cool teammate arc diff --git a/Assets/_Project/Scripts/Simulation/Building/BuildPlaceRequest.cs b/Assets/_Project/Scripts/Simulation/Building/BuildPlaceRequest.cs index 86749a5e4..b8227afd7 100644 --- a/Assets/_Project/Scripts/Simulation/Building/BuildPlaceRequest.cs +++ b/Assets/_Project/Scripts/Simulation/Building/BuildPlaceRequest.cs @@ -4,10 +4,10 @@ namespace ProjectM.Simulation { /// /// Client -> server request to build a structure of at grid cell - /// (, ). A one-off action, so an RPC (mirrors StorageOpRequest / - /// RegionTransitRequest). StructureType is a byte; the cell is two int scalars (NOT an int2) to stay + /// (, ). A one-off action, so an RPC (mirrors StorageOpRequest). + /// StructureType is a byte; the cell is two int scalars (NOT an int2) to stay /// within the project's scalar-only RPC payload precedent (avoids first-of-its-kind composite-math-in-RPC - /// codegen risk on Netcode 1.13.2). The server re-validates legality + cost authoritatively. + /// codegen risk on Netcode 1.x). The server re-validates legality + cost authoritatively. /// public struct BuildPlaceRequest : IRpcCommand { diff --git a/Assets/_Project/Scripts/Simulation/Economy/ClutterFieldSpawner.cs b/Assets/_Project/Scripts/Simulation/Economy/ClutterFieldSpawner.cs index 5f7b4ab2a..56a83f34c 100644 --- a/Assets/_Project/Scripts/Simulation/Economy/ClutterFieldSpawner.cs +++ b/Assets/_Project/Scripts/Simulation/Economy/ClutterFieldSpawner.cs @@ -3,11 +3,11 @@ using Unity.Entities; namespace ProjectM.Simulation { /// - /// Baked singleton holding the Blight-clutter ghost prefab + field shape. ExpeditionFieldSystem reads it + /// Baked singleton holding the Blight-clutter ghost prefab + field shape. RoomFieldSystem reads it /// (alongside ) to scatter clutter ghosts within /// of the expedition origin on the SAME empty->occupied epoch edge as the resource /// field (seeded distinctly so clutter and nodes don't co-locate), and clears them on occupied->empty. - /// OPTIONAL — if the singleton is absent, ExpeditionFieldSystem simply skips clutter. Mirrors + /// OPTIONAL — if the singleton is absent, RoomFieldSystem simply skips clutter. Mirrors /// ; carries no transform. /// public struct ClutterFieldSpawner : IComponentData diff --git a/Assets/_Project/Scripts/Simulation/Economy/ResourceFieldSpawner.cs b/Assets/_Project/Scripts/Simulation/Economy/ResourceFieldSpawner.cs index 43933f576..e4ac06a81 100644 --- a/Assets/_Project/Scripts/Simulation/Economy/ResourceFieldSpawner.cs +++ b/Assets/_Project/Scripts/Simulation/Economy/ResourceFieldSpawner.cs @@ -3,7 +3,7 @@ using Unity.Entities; namespace ProjectM.Simulation { /// - /// Baked singleton holding the resource-node ghost prefab + field shape. ExpeditionFieldSystem reads it to + /// Baked singleton holding the resource-node ghost prefab + field shape. RoomFieldSystem reads it to /// scatter nodes within of the expedition region origin on each /// Expedition phase entry (seeded by the cycle number). Mirrors . /// diff --git a/Assets/_Project/Scripts/Simulation/World/WorldCollisionComponents.cs b/Assets/_Project/Scripts/Simulation/World/WorldCollisionComponents.cs index 8e5fefd46..0ac9f3216 100644 --- a/Assets/_Project/Scripts/Simulation/World/WorldCollisionComponents.cs +++ b/Assets/_Project/Scripts/Simulation/World/WorldCollisionComponents.cs @@ -11,7 +11,6 @@ namespace ProjectM.Simulation /// public struct WorldCollisionConfig : IComponentData { - /// BelongsTo bitmask of the Environment physics layer (1u << layerIndex). /// BelongsTo bitmask of the Environment physics layer (1u << layerIndex). public uint EnvironmentMask; diff --git a/CLAUDE.md b/CLAUDE.md index 9077baf2c..a1065e253 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -153,7 +153,7 @@ Full rules: `.claude/skills/dots-dev/references/dots-conventions.md` (in-repo; t ## Testing -- **Default = plain-Entities EditMode test:** create a `World`, register the system in `SimulationSystemGroup`, tick, assert. Public API, version-independent. Example: `Assets/_Project/Tests/EditMode/HeartbeatSystemTests.cs`. Run via `run_tests(mode="EditMode", assembly_names=["ProjectM.Tests.EditMode"])`. +- **Default = plain-Entities EditMode test:** create a `World`, register the system in `SimulationSystemGroup`, tick, assert. Public API, version-independent. Example: `Assets/_Project/Tests/EditMode/HealthApplyDamageSystemTests.cs`. Run via `run_tests(mode="EditMode", assembly_names=["ProjectM.Tests.EditMode"])`. - **`NetCodeTestWorld` is `internal`** (6.5.0 re-check: not even loaded outside test asmdefs), exposed only to a fixed `[InternalsVisibleTo]` allow-list — to use it, name a test asmdef to match an entry (e.g. `Unity.NetcodeSamples.EditModeTests`) or vendor the test utils. Netcode world boot is covered by the Play Mode check, not a NetCodeTestWorld test. See [[DR-001_Netcode_Test_Harness]]. - Burst/source-gen errors surface at editor compile, not a plain build — always `read_console` after script changes, and run a play/tick test, not just a compile. **Cover swept hit-detection with a tunnelling regression test** (the point-check tunnel bug doesn't surface in a point-based unit test).