diff options
Diffstat (limited to 'include/world')
-rw-r--r-- | include/world/Block.hpp | 15 | ||||
-rw-r--r-- | include/world/Collision.hpp | 8 | ||||
-rw-r--r-- | include/world/Section.hpp | 51 | ||||
-rw-r--r-- | include/world/World.hpp | 38 |
4 files changed, 0 insertions, 112 deletions
diff --git a/include/world/Block.hpp b/include/world/Block.hpp deleted file mode 100644 index 2f823fe..0000000 --- a/include/world/Block.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -struct Block { - Block(); - - Block(unsigned short id, unsigned char state); - - ~Block(); - - unsigned short id : 13; - unsigned char state : 4; - //unsigned char light:4; -}; - -bool operator<(const Block &lhs, const Block &rhs);
\ No newline at end of file diff --git a/include/world/Collision.hpp b/include/world/Collision.hpp deleted file mode 100644 index b88fbf7..0000000 --- a/include/world/Collision.hpp +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -struct AABB { - double x,y,z; - double w,l,h; -}; - -bool TestCollision(AABB first, AABB second);
\ No newline at end of file diff --git a/include/world/Section.hpp b/include/world/Section.hpp deleted file mode 100644 index 2df0cfe..0000000 --- a/include/world/Section.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once - -#include <vector> -#include <map> -#include <condition_variable> -#include <functional> - -#include <easylogging++.h> - -#include <world/Block.hpp> -#include <Vector.hpp> -#include <Utility.hpp> - -const int SECTION_WIDTH = 16; -const int SECTION_LENGTH = 16; -const int SECTION_HEIGHT = 16; - -class Section { - std::vector<unsigned short> m_palette; - byte *m_dataBlocks = nullptr; - size_t m_dataBlocksLen; - byte *m_dataLight = nullptr; - byte *m_dataSkyLight = nullptr; - byte m_bitsPerBlock = 0; - std::vector<Block> m_blocks; - std::condition_variable parseWaiter; - - Section(); - - Vector worldPosition; - -public: - void Parse(); - - Section(Vector position, byte *dataBlocks, size_t dataBlocksLength, byte *dataLight, byte *dataSky, byte bitsPerBlock, - std::vector<unsigned short> palette); - - ~Section(); - - Block &GetBlock(Vector pos); - - Section &operator=(Section other); - - friend void swap(Section &a, Section &b); - - Section(const Section &other); - - Vector GetPosition(); - - size_t GetHash(); -};
\ No newline at end of file diff --git a/include/world/World.hpp b/include/world/World.hpp deleted file mode 100644 index 6b09f1f..0000000 --- a/include/world/World.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -#include <map> -#include <bitset> - -#include <easylogging++.h> - -#include <world/Block.hpp> -#include <world/Section.hpp> -#include <network/Packet.hpp> -#include <world/Collision.hpp> - -class World { - std::map<Vector, Section> sections; - std::map<Vector, std::mutex> sectionMutexes; - int dimension = 0; - - Section ParseSection(StreamInput *data, Vector position); - - World(const World &other); - World &operator=(const World &other); -public: - World(); - - ~World(); - - void ParseChunkData(std::shared_ptr<PacketChunkData> packet); - - bool isPlayerCollides(double X, double Y, double Z); - - Block &GetBlock(Vector pos); - - std::vector<Vector> GetSectionsList(); - - Section &GetSection(Vector sectionPos); - - glm::vec3 Raycast(glm::vec3 position, glm::vec3 direction, float maxLength = 1000.0f, float minPrecision = 0.01f); -};
\ No newline at end of file |