5#include <unordered_map>
6#include <unordered_set>
27#if PROTOCOL_VERSION < 757
28 Chunk(
const size_t dim_index,
const bool has_sky_light_);
30 Chunk(
const int min_y_,
const unsigned int height_,
const size_t dim_index,
const bool has_sky_light_);
44#if PROTOCOL_VERSION < 552
45 void LoadChunkData(
const std::vector<unsigned char>& data,
const int primary_bit_mask,
const bool ground_up_continuous);
46#elif PROTOCOL_VERSION < 755
47 void LoadChunkData(
const std::vector<unsigned char>& data,
const int primary_bit_mask);
48#elif PROTOCOL_VERSION < 757
49 void LoadChunkData(
const std::vector<unsigned char>& data,
const std::vector<unsigned long long int>& primary_bit_mask);
53#if PROTOCOL_VERSION < 757
79#if PROTOCOL_VERSION < 552
81 void SetBiome(
const int x,
const int z,
const int b);
83 const Biome*
GetBiome(
const int x,
const int y,
const int z)
const;
85 void SetBiomes(
const std::vector<int>& new_biomes);
86 void SetBiome(
const int x,
const int y,
const int z,
const int new_biome);
87 void SetBiome(
const int i,
const int new_biome);
89#if PROTOCOL_VERSION > 761
96 void AddLoader(
const std::thread::id& thread_id);
104#if PROTOCOL_VERSION > 756
116#if PROTOCOL_VERSION < 757
117 static constexpr int min_y = 0;
118 static constexpr int height = 256;
void AddSection(const int y)
unsigned char GetSkyLight(const Position &pos) const
void SetBiomes(const std::vector< int > &new_biomes)
void AddLoader(const std::thread::id &thread_id)
Add a thread to the loaders list.
const Biome * GetBiome(const int x, const int y, const int z) const
std::vector< unsigned char > biomes
std::unordered_set< std::thread::id > loaded_from
bool IsInsideChunk(const Position &pos, const bool ignore_gui_borders) const
void RemoveBlockEntityData(const Position &pos)
bool modified_since_last_rendered
bool GetHasSkyLight() const
bool HasSection(const int y) const
ProtocolCraft::NBT::Value GetBlockEntityData(const Position &pos) const
size_t RemoveLoader(const std::thread::id &thread_id)
Remove a thread from the loaders list.
void LoadBiomesData(const std::vector< unsigned char > &data)
void LoadSectionBiomeData(const int section_y, ProtocolCraft::ReadIterator &iter, size_t &length)
bool GetModifiedSinceLastRender() const
void UpdateNeighbour(Chunk *const neighbour, const Orientation direction)
std::vector< std::shared_ptr< Section > > sections
size_t GetDimensionIndex() const
void LoadChunkData(const std::vector< unsigned char > &data)
std::unordered_map< Position, ProtocolCraft::NBT::Value > block_entities_data
const Blockstate * GetBlock(const Position &pos) const
void SetBlockEntityData(const Position &pos, const ProtocolCraft::NBT::Value &block_entity)
void SetBlockLight(const Position &pos, const unsigned char v)
void SetModifiedSinceLastRender(const bool b)
void SetBiome(const int x, const int y, const int z, const int new_biome)
void LoadChunkBlockEntitiesData(const std::vector< ProtocolCraft::BlockEntityInfo > &block_entities)
void SetSkyLight(const Position &pos, const unsigned char v)
unsigned char GetBlockLight(const Position &pos) const
static Position BlockCoordsToChunkCoords(const Position &pos)
void SetBlock(const Position &pos, const Blockstate *block)
static constexpr int SECTION_HEIGHT
static constexpr int CHUNK_WIDTH
unsigned int BlockstateId
std::vector< unsigned char >::const_iterator ReadIterator