World indices check
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "ChunksStorage.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <iostream>
|
||||
|
||||
#include "VoxelsVolume.h"
|
||||
#include "Chunk.h"
|
||||
@@ -53,6 +54,18 @@ std::shared_ptr<Chunk> ChunksStorage::create(int x, int z) {
|
||||
chunk->setLoaded(true);
|
||||
}
|
||||
|
||||
// Verifying and converting data
|
||||
ContentIndices* indices = level->content->indices;
|
||||
for (size_t i = 0; i < CHUNK_VOL; i++) {
|
||||
blockid_t id = chunk->voxels[i].id;
|
||||
if (indices->getBlockDef(id) == nullptr) {
|
||||
std::cout << "corruped block detected at " << i << " of chunk ";
|
||||
std::cout << chunk->x << "x" << chunk->z;
|
||||
std::cout << " -> " << (int)id << std::endl;
|
||||
chunk->voxels[i].id = 11;
|
||||
}
|
||||
}
|
||||
|
||||
light_t* lights = world->wfile->getLights(chunk->x, chunk->z);
|
||||
if (lights) {
|
||||
chunk->lightmap->set(lights);
|
||||
|
||||
@@ -97,16 +97,16 @@ float calc_height(fnl_state *noise, int real_x, int real_z){
|
||||
}
|
||||
|
||||
WorldGenerator::WorldGenerator(const Content* content)
|
||||
: idStone(content->require("base:stone")->rt.id),
|
||||
idDirt(content->require("base:dirt")->rt.id),
|
||||
idGrassBlock(content->require("base:grass_block")->rt.id),
|
||||
idSand(content->require("base:sand")->rt.id),
|
||||
idWater(content->require("base:water")->rt.id),
|
||||
idWood(content->require("base:wood")->rt.id),
|
||||
idLeaves(content->require("base:leaves")->rt.id),
|
||||
idGrass(content->require("base:grass")->rt.id),
|
||||
idFlower(content->require("base:flower")->rt.id),
|
||||
idBazalt(content->require("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,
|
||||
|
||||
Reference in New Issue
Block a user