Namespace Eco.Shared.Voxel
Classes
BlockID
Standard block IDs. These shared between client and server and should be read-only to be compatible with Burst. Client uses these block IDs as default for fully enclosed chunks or for missing chunks.
Chunk
Chunk.Encasement
ChunkGrid<TChunk>
ChunkGridExtensions
HashChunkContainer<T>
This is an alternative class to the OctreeChunkContainer, rather than storing chunks in a tree we store them in a hash table. This will use slightly more memory, but gives a faster speed lookup for single chunks, and similar speed for ranges.
Note: In order to get chunk level locking, rather than lock the whole container during each update, the Count may not always be correct and should only be treaded as a guide. e.g. Don't use Count to create a new array, create a List instead, that way if count is wrong it wont matter as the list will auto expand itself.
Octree<T>
Implements a cubic Octree.
OctreeChunkContainer<T>
OctreeNode<T>
PlotPos
PlotUtil
Functions for translating to/from property plot coordinates.
World
Wrapper class around the static voxel grid that represents the world. Essentially this class exists so its easier to do WorldCache.SomeMethod() instead of WorldCache.Obj.SomeMethod(). Gets ChunkViews from the ChunkGrid. Gets Blocks from Chunks from the ChunkGrid.
Interfaces
IChunk
IChunkContainer<T>
IChunkGrid
Interface for all Chunk Grid implementations (both on server side and client-side). Chunk Grid is 3D grid of IChunk objects.