using System.Collections.Immutable; using AcDream.Core.Physics; namespace AcDream.Core.World; /// /// Immutable prepared-collision closure carried by one near-tier landblock /// build. Keys remain the original DAT source IDs. Cell-structure geometry and /// per-EnvCell topology stay separate so package aliases retain one reusable /// geometry identity without conflating cell placement or portal state. /// public sealed record LandblockCollisionBuild( ImmutableDictionary GfxObjs, ImmutableDictionary Setups, ImmutableDictionary CellStructures, ImmutableDictionary EnvCells, ImmutableArray GfxObjIds, ImmutableArray SetupIds, ImmutableArray EnvCellIds) { public static readonly LandblockCollisionBuild Empty = new( ImmutableDictionary.Empty, ImmutableDictionary.Empty, ImmutableDictionary.Empty, ImmutableDictionary.Empty, ImmutableArray.Empty, ImmutableArray.Empty, ImmutableArray.Empty); }