From e52e3c500b679ab7bae9cfdda3fb0d630a2584ad Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Sun, 22 Mar 2015 16:52:19 +0100 Subject: [PATCH] add chunk inspect button (C) --- running | 2 +- src/interface.cpp | 37 +++++++++++++++++++++++++++++++++++++ src/interface.hpp | 1 + 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/running b/running index be21009..7bc9a0e 100644 --- a/running +++ b/running @@ -60,4 +60,4 @@ front, and back) and E changes the turn (none, left, around, and right). Pressing B prints details about the block you're pointing at and P prints info about the active block. L spits out the player position and light -level there. +level there. C dumps info about the chunk of the pointed at block. diff --git a/src/interface.cpp b/src/interface.cpp index c0bfc02..dddb732 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -73,6 +73,11 @@ void Interface::Handle(const SDL_KeyboardEvent &event) { PrintBlockInfo(); } break; + case SDLK_c: + if (event.state == SDL_PRESSED) { + PrintChunkInfo(); + } + break; case SDLK_l: if (event.state == SDL_PRESSED) { PrintLightInfo(); @@ -109,6 +114,38 @@ void Interface::PrintBlockInfo() { Print(aim_chunk->BlockAt(aim_block)); } +void Interface::PrintChunkInfo() { + std::cout << std::endl; + if (!aim_chunk) { + std::cout << "not looking at any block" << std::endl; + return; + } + std::cout << "looking at chunk " + << aim_chunk->Position() + << std::endl; + + std::cout << " neighbors:"; + if (aim_chunk->HasNeighbor(Block::FACE_LEFT)) { + std::cout << " left"; + } + if (aim_chunk->HasNeighbor(Block::FACE_RIGHT)) { + std::cout << " right"; + } + if (aim_chunk->HasNeighbor(Block::FACE_UP)) { + std::cout << " up"; + } + if (aim_chunk->HasNeighbor(Block::FACE_DOWN)) { + std::cout << " down"; + } + if (aim_chunk->HasNeighbor(Block::FACE_FRONT)) { + std::cout << " front"; + } + if (aim_chunk->HasNeighbor(Block::FACE_BACK)) { + std::cout << " back"; + } + std::cout << std::endl; +} + void Interface::PrintLightInfo() { std::cout << "light level " << world.PlayerChunk().GetLight(world.Player().Position()) diff --git a/src/interface.hpp b/src/interface.hpp index 7bfd715..8bdb8fb 100644 --- a/src/interface.hpp +++ b/src/interface.hpp @@ -44,6 +44,7 @@ public: void RemoveBlock(); void PrintBlockInfo(); + void PrintChunkInfo(); void PrintLightInfo(); void PrintSelectionInfo(); void Print(const Block &); -- 2.39.2