using Unity.Entities; namespace ProjectM.Simulation { /// /// Singleton holding the physics-filter mask of the static world-collision layer ("Environment"): the baked /// boundary ring + landmark colliders the player CC sweeps. Baked from the GameObject layer at edit-time (see /// WorldCollisionAuthoring) so server systems can build a CollisionFilter in Burst WITHOUT a managed /// LayerMask.NameToLayer call or a hardcoded layer index. Read by 's /// EnemyAISystem to sweep-test Husk movement against the environment only (never the player / other Husks). /// 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; /// DR-042 C5: BelongsTo bitmask of the "Structure" physics layer (player-built Wall/Turret/Pylon /// colliders). OR'd into the enemy-movement sweep filter so husks collide-and-slide against walls. 0 if the /// layer is absent (feature inert). The layer matrix excludes Structure×the player layer so the player CC /// passes through its own walls. public uint StructureMask; } }