13 public const int Size = 16;
111 throw new InvalidOperationException();
139 if (y is >= 0 and <
Height) {
142 int absY = Math.Abs(y);
144 if (yUpperBits > 0x7FFF) {
145 throw new ArgumentOutOfRangeException(nameof(y),
"Height is too large.");
147 int yLower8Bits = absY & 0xFF;
148 yUpperBits = yUpperBits & 0x7FFF;
149 return ((y < 0 ? 1 : 0) << 31) | (yUpperBits << 16) | (z << 12) | (x <<
HeightBits) | yLower8Bits;
180 Cells[index] = value;
void PaintFast(TerrainChunk chunk, int x, int y, int z)
virtual void SetSunlightHeightFast(int x, int z, int sunlightHeight)
virtual void SetTemperatureFast(Point2 p, int temperature)
static int CalculateCellIndex(int x, int y, int z)
static ArrayCache< int > m_shaftsCache
TerrainChunkState? DowngradedState
virtual void SetShaftValueFast(int x, int z, int value)
virtual void CopySliceContentsHashes()
virtual int GetShaftValueFast(Point2 p)
virtual int GetTopHeightFast(Point2 p)
int[] GeneratedSliceContentsHashes
virtual int GetCellLightFast(Point3 p)
virtual void SetShaftValueFast(Point2 p, int value)
virtual void SetSunlightHeightFast(Point2 p, int sunlightHeight)
int[] SliceContentsHashes
virtual int GetSunlightHeightFast(int x, int z)
virtual int GetSunlightHeightFast(Point2 p)
volatile bool NewGeometryData
virtual void DisposeVertexIndexBuffers()
virtual void AddBrushPaint(int x, int y, int z, TerrainBrush brush)
virtual int GetCellValueFast(int index)
virtual void SetHumidityFast(Point2 p, int humidity)
virtual void SetTopHeightFast(Point2 p, int topHeight)
virtual void SetCellValueFast(int x, int y, int z, int value)
virtual int GetCellValueFast(int x, int y, int z)
virtual int GetTemperatureFast(int x, int z)
virtual void SetHumidityFast(int x, int z, int humidity)
virtual int GetCellValueFast(Point3 p)
TerrainChunkState ThreadState
static bool IsCellValid(int x, int y, int z)
virtual void ApplyBrushPaints(TerrainChunk chunk)
virtual int GetTemperatureFast(Point2 p)
virtual int GetBottomHeightFast(int x, int z)
virtual int GetTopHeightFast(int x, int z)
TerrainGeometry[] ChunkSliceGeometries
virtual void SetTemperatureFast(int x, int z, int temperature)
virtual int GetHumidityFast(Point2 p)
virtual int GetCellContentsFast(int x, int y, int z)
TerrainChunkState? UpgradedState
static ArrayCache< int > m_cellsCache
virtual void SetCellValueFast(Point3 p, int value)
virtual int GetCellContentsFast(Point3 p)
virtual void SetTopHeightFast(int x, int z, int topHeight)
virtual int GetCellLightFast(int x, int y, int z)
virtual void AddBrushPaint(Point3 p, TerrainBrush brush)
virtual int GetShaftValueFast(int x, int z)
static bool IsShaftValid(int x, int z)
virtual int GetHumidityFast(int x, int z)
DynamicArray< TerrainChunkGeometry.Buffer > Buffers
virtual int CalculateTopmostCellHeight(int x, int z)
virtual void InvalidateSliceContentsHashes()
TerrainChunkGeometry Geometry
DynamicArray< BrushPaint > m_brushPaints
virtual void SetBottomHeightFast(Point2 p, int bottomHeight)
virtual int GetBottomHeightFast(Point2 p)
TerrainChunk(Terrain terrain, int x, int z)
bool AreBehaviorsNotified
virtual void SetCellValueFast(int index, int value)
virtual void SetBottomHeightFast(int x, int z, int bottomHeight)