Class Reference
The classes and components a developer meets first, grouped by layer (as of 2026-11-10).
This is a selection, not a complete API listing: the pages cover the types that carry the design.
Each page gives the header and source location, the purpose, the collaborators, the public members
that matter and the tests that cover it. A few entries (HubDoors,
DemoReplay, CustomWorldStorage) are components made of free functions and
records rather than one class. The headers, with their long comments, are the full reference.
World data model (engine-independent)
Namespaces GalaxyEggbert::Worlds and GalaxyEggbert; no CNA dependency.
| Class | Header | Purpose |
|---|---|---|
| World | include/GalaxyEggbert/Worlds/World.hpp | The 100×100×100 voxel world: chunks, sparse metadata, the block change journal, .vwr load and save. |
| Chunk | include/GalaxyEggbert/Worlds/Chunk.hpp | A 10×10×10 block cell with a local palette, adaptive bit packing and per-block extra metadata. |
| Block | include/GalaxyEggbert/Worlds/Block.hpp | One voxel: a 16-bit value of 12 bits of type (the block icon number) and 4 bits of metadata. |
| BlockMetadata | include/GalaxyEggbert/Worlds/BlockMetadata.hpp | A helper for the 4-bit metadata part of a block. The bits' meaning is left to the game. |
| VoxelConfig | include/GalaxyEggbert/Worlds/VoxelConfig.hpp | Compile-time limits and default dimensions of the voxel world format, and its format version. |
| BlockDefinitionRegistry | include/GalaxyEggbert/BlockDefinitionRegistry.hpp | The single source of truth for every block icon: render mode, collision, animation and role flags. |
| MoveObjectRecord | include/GalaxyEggbert/MoveObjectRecord.hpp | The stored form of a moving or interactive object (the original's MoveObject), and its sibling record codecs. |
| HubDoors | include/GalaxyEggbert/HubDoors.hpp | Hub logic: mission doors, gold doors, world signs and where Blupi arrives. |
Game
Namespace GalaxyEggbert::Game (src/GalaxyEggbert/Game/), except the host.
| Class | Header | Purpose |
|---|---|---|
| GalaxyEggbertGame | src/GalaxyEggbertCNA/GalaxyEggbertGame.hpp | The XNA Game subclass: phases, input capture, the per-tick update, loading missions, drawing. |
| WorldRuntime | WorldRuntime.hpp | The loaded world at run time: the voxel world, the objects as MobileObjSpecs, the animation clock. |
| BlupiController | BlupiController.hpp | Blupi's movement, collision and animation state, engine-independent. |
| InteractionSystem | InteractionSystem.hpp | Objects, enemies, hazards, pickups, lifts and projectiles. It reports events and has no controller, camera or graphics dependency. |
| ObjectDefinitionRegistry | ObjectDefinitionRegistry.hpp | The single source of truth for every object type: kind, visuals and capability flags. |
| Hud | Hud.hpp | The heads-up display in the original's 640×480 layout. |
| InputPad | InputPad.hpp | Menus and their hit-testing, the on-screen touch pad, typed cheats and the help overlay. |
| Sound | Sound.hpp | The 93 sound channels with the original's volume and pitch table, positioned relative to Blupi. |
| SaveData | SaveData.hpp | Settings and per-player progress in savedata.txt. |
| ResumeLog | ResumeLog.hpp | Resuming an interrupted mission by replaying its recorded input. |
| DemoReplay | DemoReplay.hpp | The .gdemo recordings behind the main menu's demos and the player's recordings. |
| Autoplay | Autoplay.hpp | The scripted-playthrough harness used for QA. |
Rendering
| Class | Header | Purpose |
|---|---|---|
| TerrainRenderer | TerrainRenderer.hpp | Builds and patches the terrain meshes from the world. |
| TileAtlas | TileAtlas.hpp | Maps block icons to UV rectangles in the original's tile sheet. |
| WorldRenderer | WorldRenderer.hpp | Draws a frame's SceneFrame draw list with the effects the game loaded. |
Editor
Namespace GalaxyEggbert::Editor (src/GalaxyEggbert/Editor/).
| Class | Header | Purpose |
|---|---|---|
| WorldEditor | WorldEditor.hpp | One editing session: camera, ray-cast placement, palette, undo/redo, box fill, copy/paste, save and play-test. |
| CustomWorldStorage | CustomWorldStorage.hpp | The players' world slots, backups, export and import, and their galaxies on disk. |
Renamed and removed classes
Older versions of this site documented classes under names that no longer exist:
| Former name | Now |
|---|---|
GalaxyEggbertCnaGame | GalaxyEggbertGame |
GEWorldRuntime | WorldRuntime |
GEBlupiController | BlupiController |
GETerrainRenderer | TerrainRenderer |
GETileAtlas | TileAtlas |
Easy3D::CubeMesh, Easy3D::CubeMeshRenderer | Removed with easy-3d on 2026-10-20. Terrain meshes are built with cna-engine's MeshBuilder and drawn as GpuMeshes (TerrainRenderer). |