diff options
Diffstat (limited to 'src/world')
-rw-r--r-- | src/world/Block.cpp | 17 | ||||
-rw-r--r-- | src/world/Block.hpp | 10 | ||||
-rw-r--r-- | src/world/Section.cpp | 1 | ||||
-rw-r--r-- | src/world/World.cpp | 17 |
4 files changed, 24 insertions, 21 deletions
diff --git a/src/world/Block.cpp b/src/world/Block.cpp index 64e5330..3cf09db 100644 --- a/src/world/Block.cpp +++ b/src/world/Block.cpp @@ -2,9 +2,18 @@ Block::~Block() {} -Block::Block(unsigned short idAndState, unsigned char light) : id(idAndState >> 4), state(idAndState & 0x0F), - light(light) {} +Block::Block(unsigned short idAndState, unsigned char light) : id(idAndState >> 4), state(idAndState & 0x0F) {} -Block::Block(unsigned short id, unsigned char state, unsigned char light) : id(id), state(state), light(light) {} +Block::Block(unsigned short id, unsigned char state, unsigned char light) : id(id), state(state) {} -Block::Block() : id(0), state(0), light(0) {} +Block::Block() : id(0), state(0) {} + +bool operator<(const Block &lhs, const Block &rhs) { + if (lhs.id < rhs.id) + return true; + if (lhs.id == rhs.id) { + if (lhs.state != rhs.state) + return lhs.state < rhs.state; + } + return false; +} diff --git a/src/world/Block.hpp b/src/world/Block.hpp index 7c780c1..ae952c9 100644 --- a/src/world/Block.hpp +++ b/src/world/Block.hpp @@ -1,15 +1,17 @@ #pragma once struct Block { + Block(); + Block(unsigned short idAndState, unsigned char light); Block(unsigned short id, unsigned char state, unsigned char light); - Block(); - ~Block(); unsigned short id:13; unsigned char state:4; - unsigned char light:4; -};
\ No newline at end of file + //unsigned char light:4; +}; + +bool operator<(const Block &lhs, const Block &rhs);
\ No newline at end of file diff --git a/src/world/Section.cpp b/src/world/Section.cpp index f53c987..ac34fba 100644 --- a/src/world/Section.cpp +++ b/src/world/Section.cpp @@ -1,4 +1,3 @@ -#include <iostream> #include "Section.hpp" Section::Section(byte *dataBlocks, size_t dataBlocksLength, byte *dataLight, byte *dataSky, byte bitsPerBlock, diff --git a/src/world/World.cpp b/src/world/World.cpp index adbb3e1..af76fd5 100644 --- a/src/world/World.cpp +++ b/src/world/World.cpp @@ -1,5 +1,5 @@ -#include <iostream> #include <bitset> +#include <easylogging++.h> #include "World.hpp" void World::ParseChunkData(Packet packet) { @@ -22,22 +22,17 @@ void World::ParseChunkData(Packet packet) { if (bitmask[i]) { size_t len = 0; Vector chunkPosition = Vector(chunkX, i, chunkZ); - if (!m_sections.insert(std::make_pair(chunkPosition,ParseSection(content,len))).second) - std::cout<<"Chunk not created: "<<chunkPosition<<std::endl; + if (!m_sections.insert(std::make_pair(chunkPosition, ParseSection(content, len))).second) + LOG(ERROR) << "Chunk not created: " << chunkPosition; auto sectionIter = m_sections.find(chunkPosition); - if (sectionIter==m_sections.end()) - std::cout<<"Created chunk not found: "<<chunkPosition<<std::endl; + if (sectionIter == m_sections.end()) + LOG(ERROR)<< "Created chunk not found: " << chunkPosition; else sectionIter->second.Parse(); - /*m_sections[chunkPosition] = ParseSection(content, len); - m_sections[chunkPosition].Parse();*/ - /*m_sectionToParse.push(m_sections.find(Vector(chunkX, i, chunkZ))); - m_parseSectionWaiter.notify_one();*/ content += len; } } delete[] contentOrigPtr; - //std::cout<<m_sections.size()<<std::endl; } Section World::ParseSection(byte *data, size_t &dataLen) { @@ -105,8 +100,6 @@ void World::SectionParsingThread() { auto it = m_sectionToParse.front(); m_sectionToParse.pop(); it->second.Parse(); - /*std::cout << "Parsed chunk" << it->first.GetX() << "x" << it->first.GetY() << "x" << it->first.GetZ() - << std::endl;*/ } } } |