show-chunk-borders is a setting now
This commit is contained in:
parent
f54283cab1
commit
48b6c92472
@ -32,6 +32,7 @@ toml::Wrapper create_wrapper(EngineSettings& settings) {
|
||||
|
||||
toml::Section& debug = wrapper.add("debug");
|
||||
debug.add("generator-test-mode", &settings.debug.generatorTestMode);
|
||||
debug.add("show-chunk-borders", &settings.debug.showChunkBorders);
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +51,10 @@ inline Label* create_label(gui::wstringsupplier supplier) {
|
||||
return label;
|
||||
}
|
||||
|
||||
HudRenderer::HudRenderer(Engine* engine, Level* level, const ContentGfxCache* cache, WorldRenderer* renderer)
|
||||
HudRenderer::HudRenderer(Engine* engine,
|
||||
Level* level,
|
||||
const ContentGfxCache* cache,
|
||||
WorldRenderer* renderer)
|
||||
: level(level),
|
||||
assets(engine->getAssets()),
|
||||
gui(engine->getGUI()),
|
||||
@ -143,10 +146,10 @@ HudRenderer::HudRenderer(Engine* engine, Level* level, const ContentGfxCache* ca
|
||||
CheckBox* checkbox = new CheckBox();
|
||||
checkbox->margin(vec4(0.0f, 0.0f, 5.0f, 0.0f));
|
||||
checkbox->supplier([=]() {
|
||||
return renderer->isChunkBordersOn();
|
||||
return engine->getSettings().debug.showChunkBorders;
|
||||
});
|
||||
checkbox->consumer([=](bool checked) {
|
||||
renderer->setChunkBorders(checked);
|
||||
engine->getSettings().debug.showChunkBorders = checked;
|
||||
});
|
||||
checkpanel->add(checkbox);
|
||||
checkpanel->add(new Label(L"Show Chunk Borders"));
|
||||
|
||||
@ -40,7 +40,10 @@ class HudRenderer {
|
||||
const ContentGfxCache* const cache;
|
||||
WorldRenderer* renderer;
|
||||
public:
|
||||
HudRenderer(Engine* engine, Level* level, const ContentGfxCache* cache, WorldRenderer* renderer);
|
||||
HudRenderer(Engine* engine,
|
||||
Level* level,
|
||||
const ContentGfxCache* cache,
|
||||
WorldRenderer* renderer);
|
||||
~HudRenderer();
|
||||
|
||||
void update();
|
||||
|
||||
@ -174,23 +174,23 @@ void WorldRenderer::draw(const GfxContext& pctx, Camera* camera, bool occlusion)
|
||||
float length = 40.f;
|
||||
|
||||
linesShader->use();
|
||||
if (chunkBorders){
|
||||
if (engine->getSettings().debug.showChunkBorders){
|
||||
linesShader->uniformMatrix("u_projview", camera->getProjView());
|
||||
GfxContext ctx = pctx.sub();
|
||||
ctx.depthTest(true);
|
||||
vec3 coord = level->player->camera->position;
|
||||
int cx = floordiv((int)coord.x, CHUNK_W);
|
||||
int cz = floordiv((int)coord.z, CHUNK_D);
|
||||
for (int xx = 0; xx < CHUNK_W; xx++) {
|
||||
lineBatch->line(cx * CHUNK_W + xx, 0, cz * CHUNK_D,
|
||||
cx * CHUNK_W + xx, CHUNK_H, cz * CHUNK_D, 0,0,1,0.5f);
|
||||
lineBatch->line(cx * CHUNK_W + xx, 0, (cz+1) * CHUNK_D,
|
||||
cx * CHUNK_W + xx, CHUNK_H, (cz+1) * CHUNK_D, 0,0,1,0.5f);
|
||||
for (int i = 0; i < CHUNK_W; i++) {
|
||||
lineBatch->line(cx * CHUNK_W + i, 0, cz * CHUNK_D,
|
||||
cx * CHUNK_W + i, CHUNK_H, cz * CHUNK_D, 0,0,1,0.5f);
|
||||
lineBatch->line(cx * CHUNK_W + i, 0, (cz+1) * CHUNK_D,
|
||||
cx * CHUNK_W + i, CHUNK_H, (cz+1) * CHUNK_D, 0,0,1,0.5f);
|
||||
|
||||
lineBatch->line(cx * CHUNK_W, 0, cz * CHUNK_D+xx,
|
||||
cx * CHUNK_W, CHUNK_H, cz * CHUNK_D+xx, 1,0,0,0.5f);
|
||||
lineBatch->line((cx+1) * CHUNK_W, 0, cz * CHUNK_D+xx,
|
||||
(cx+1) * CHUNK_W, CHUNK_H, cz * CHUNK_D+xx, 1,0,0,0.5f);
|
||||
lineBatch->line(cx * CHUNK_W, 0, cz * CHUNK_D+i,
|
||||
cx * CHUNK_W, CHUNK_H, cz * CHUNK_D+i, 1,0,0,0.5f);
|
||||
lineBatch->line((cx+1) * CHUNK_W, 0, cz * CHUNK_D+i,
|
||||
(cx+1) * CHUNK_W, CHUNK_H, cz * CHUNK_D+i, 1,0,0,0.5f);
|
||||
}
|
||||
lineBatch->render();
|
||||
}
|
||||
|
||||
@ -29,20 +29,16 @@ class WorldRenderer {
|
||||
Frustum* frustumCulling;
|
||||
LineBatch* lineBatch;
|
||||
ChunksRenderer* renderer;
|
||||
bool chunkBorders = false;
|
||||
bool drawChunk(size_t index, Camera* camera, Shader* shader, bool occlusion);
|
||||
void drawChunks(Chunks* chunks, Camera* camera, Shader* shader, bool occlusion);
|
||||
public:
|
||||
float skyLightMutliplier = 1.0f; // will be replaced with day-night cycle
|
||||
|
||||
|
||||
WorldRenderer(Engine* engine, Level* level, const ContentGfxCache* cache);
|
||||
~WorldRenderer();
|
||||
|
||||
void draw(const GfxContext& context, Camera* camera, bool occlusion);
|
||||
void drawDebug(const GfxContext& context, Camera* camera);
|
||||
|
||||
inline bool isChunkBordersOn() {return chunkBorders;}
|
||||
inline void setChunkBorders(bool flag) {chunkBorders = flag;}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -45,6 +45,7 @@ struct GraphicsSettings {
|
||||
struct DebugSettings {
|
||||
/* Turns off chunks saving/loading */
|
||||
bool generatorTestMode = false;
|
||||
bool showChunkBorders = false;
|
||||
};
|
||||
|
||||
struct EngineSettings {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user