Nebula
World partition

WorldContainerManifest

The baked container tree of a partitioned world: one container per cell plus every hand-authored Container found inside the cell scenes, with cell-local poses.

generated from the sources
[CreateAssetMenu(menuName = "Nebula/World Container Manifest", fileName = "WorldContainers")]
public sealed class WorldContainerManifest : ScriptableObject

The baked container tree of a partitioned world: one container per cell plus every hand-authored Container found inside the cell scenes, with cell-local poses. Every process instantiates the whole manifest at boot (thousands of empty transforms are cheap), so container indices are identical everywhere and never depend on which cell scenes happen to be loaded. Cell scenes stream content into those containers; the Container components authored in the scenes are stripped on load.

The entry order is the wire order: cells by Morton key, each followed by its nested containers, which is also the order the orchestrator deals contiguous runs of to workers. Rebake after moving or adding containers (Nebula > World).

Fields

World

public WorldDefinition World;

Entries

public List<Entry> Entries = new List<Entry>();

Methods

CellContainerId

public static string CellContainerId(Vector3Int coord);

Id of the container spanning cell coord.

Compare

public static int Compare(Entry a, Entry b);

Wire-order comparison: Morton key of the cell, cell container first, then larger boxes before smaller, then id.

Sort

public void Sort();

Nested types

Entry

[Serializable]
public sealed class Entry

Fields

Id
public string Id = "";
Cell
public Vector3Int Cell;
IsCell
public bool IsCell;

The container that spans the whole cell (one per cell).

LocalPosition
public Vector3 LocalPosition;

Pose relative to the cell centre (cell-local).

LocalRotation
public Quaternion LocalRotation = Quaternion.identity;
LocalScale
public Vector3 LocalScale = Vector3.one;
Size
public Vector3 Size;
Center
public Vector3 Center;

On this page