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);
}