ContentPackRuntime + refactor

This commit is contained in:
MihailRis
2024-02-08 20:53:12 +03:00
parent 54e6d49847
commit 241d15e349
22 changed files with 224 additions and 169 deletions
+1
View File
@@ -110,6 +110,7 @@ public:
Block(std::string name);
Block(std::string name, std::string texture);
Block(const Block&) = delete;
};
#endif /* VOXELS_BLOCK_H_ */
+1 -1
View File
@@ -93,7 +93,7 @@ ubyte* Chunk::encode() const {
return buffer;
}
bool Chunk::decode(ubyte* data) {
bool Chunk::decode(const ubyte* data) {
for (uint i = 0; i < CHUNK_VOL; i++) {
voxel& vox = voxels[i];
+2 -2
View File
@@ -17,7 +17,7 @@ struct ChunkFlag {
static const int UNSAVED = 0x10;
static const int LOADED_LIGHTS = 0x20;
};
#define CHUNK_DATA_LEN (CHUNK_VOL*4)
constexpr int CHUNK_DATA_LEN = CHUNK_VOL*4;
class Lightmap;
class ContentLUT;
@@ -88,7 +88,7 @@ public:
/**
* @return true if all is fine
**/
bool decode(ubyte* data);
bool decode(const ubyte* data);
static void convert(ubyte* data, const ContentLUT* lut);
};
+1 -2
View File
@@ -21,8 +21,7 @@ Chunks::Chunks(int w, int d,
WorldFiles* wfile,
LevelEvents* events,
const Content* content)
: content(content),
contentIds(content->getIndices()),
: contentIds(content->getIndices()),
chunks(w*d),
chunksSecond(w*d),
w(w), d(d), ox(ox), oz(oz),
-1
View File
@@ -19,7 +19,6 @@ class LevelEvents;
/* Player-centred chunks matrix */
class Chunks {
const Content* const content;
const ContentIndices* const contentIds;
public:
std::vector<std::shared_ptr<Chunk>> chunks;
+10 -10
View File
@@ -110,16 +110,16 @@ float calc_height(fnl_state *noise, int cur_x, int cur_z){
}
WorldGenerator::WorldGenerator(const Content* content)
: idStone(content->requireBlock("base:stone")->rt.id),
idDirt(content->requireBlock("base:dirt")->rt.id),
idGrassBlock(content->requireBlock("base:grass_block")->rt.id),
idSand(content->requireBlock("base:sand")->rt.id),
idWater(content->requireBlock("base:water")->rt.id),
idWood(content->requireBlock("base:wood")->rt.id),
idLeaves(content->requireBlock("base:leaves")->rt.id),
idGrass(content->requireBlock("base:grass")->rt.id),
idFlower(content->requireBlock("base:flower")->rt.id),
idBazalt(content->requireBlock("base:bazalt")->rt.id) {}
: idStone(content->requireBlock("base:stone").rt.id),
idDirt(content->requireBlock("base:dirt").rt.id),
idGrassBlock(content->requireBlock("base:grass_block").rt.id),
idSand(content->requireBlock("base:sand").rt.id),
idWater(content->requireBlock("base:water").rt.id),
idWood(content->requireBlock("base:wood").rt.id),
idLeaves(content->requireBlock("base:leaves").rt.id),
idGrass(content->requireBlock("base:grass").rt.id),
idFlower(content->requireBlock("base:flower").rt.id),
idBazalt(content->requireBlock("base:bazalt").rt.id) {}
int generate_tree(fnl_state *noise,
PseudoRandom* random,