diff --git a/src/server/world/ServerWorld.cpp b/src/server/world/ServerWorld.cpp index 0018f42b..31981850 100644 --- a/src/server/world/ServerWorld.cpp +++ b/src/server/world/ServerWorld.cpp @@ -6,8 +6,8 @@ #include #include "ServerWorld.h" -const static int MB_GEN_H = 2; -const static int MB_GEN_V = 2; +const static int MB_GEN_H = 3; +const static int MB_GEN_V = 3; ServerWorld::ServerWorld(unsigned int seed, ServerDefs& defs, ServerClients& clients) : clientList(clients), @@ -33,8 +33,7 @@ ServerWorld::ServerWorld(unsigned int seed, ServerDefs& defs, ServerClients& cli } void ServerWorld::init() { - delete genStream; - genStream = new WorldGenStream(seed, defs); + genStream = std::make_unique(seed, defs); } void ServerWorld::update(double delta) { @@ -165,26 +164,6 @@ void ServerWorld::sendMapBlock(const glm::ivec3& pos, ServerClient &peer) { } } -//void ServerWorld::sendMapBlock(const glm::vec3& pos, ServerClient &peer) { -// unsigned long long mapBlockIntegrity = dimension.getMapBlockIntegrity(pos); -// if (peer.getPlayer().getMapBlockIntegrity(pos) < mapBlockIntegrity) { -// Packet r(PacketType::MAPBLOCK); -// -// auto mapBlock = dimension.getMapBlock(pos); -// assert(mapBlock != nullptr); -// -// for (unsigned short i = 0; i < 64; i++) { -// auto chunk = (*mapBlock)[i]; -// auto serialized = chunk->serialize(); -// -// OLDSerializer::encodeIntVec3(r.data, chunk->pos); -// OLDSerializer::encodeString(r.data, serialized); -// } -// -// r.sendTo(peer.getPeer(), PacketChannel::CHUNK); -// } -//} - unsigned int ServerWorld::getBlock(glm::ivec3 pos) { return dimension.getBlock(pos); } @@ -247,8 +226,4 @@ bool ServerWorld::isInBounds(glm::ivec3 cPos, std::pair return (cPos.x >= bounds.first.x && cPos.x <= bounds.second.x && cPos.y >= bounds.first.y && cPos.y <= bounds.second.y && cPos.z >= bounds.first.z && cPos.z <= bounds.second.z); -} - -ServerWorld::~ServerWorld() { - delete genStream; -} +} \ No newline at end of file diff --git a/src/server/world/ServerWorld.h b/src/server/world/ServerWorld.h index 5aac3a8b..f1d15c91 100644 --- a/src/server/world/ServerWorld.h +++ b/src/server/world/ServerWorld.h @@ -26,8 +26,6 @@ public: unsigned int getBlock(glm::ivec3 pos) override; void setBlock(glm::ivec3 pos, unsigned int block) override; - ~ServerWorld(); - ServerDimension dimension {}; private: void changedChunks(ServerClient& client); @@ -37,9 +35,9 @@ private: void sendChunk(const std::shared_ptr& chunk, ServerClient& client); void sendMapBlock(const glm::ivec3& pos, ServerClient& client); - bool isInBounds(glm::ivec3 pos, std::pair& bounds); + static bool isInBounds(glm::ivec3 pos, std::pair& bounds); - WorldGenStream* genStream = nullptr; + std::unique_ptr genStream = nullptr; std::unordered_set generateQueueMap; std::vector generateQueueList; diff --git a/subgames/minimal/menu/script/init.lua b/subgames/minimal/menu/script/init.lua index 655349fb..a31e636b 100644 --- a/subgames/minimal/menu/script/init.lua +++ b/subgames/minimal/menu/script/init.lua @@ -5,5 +5,6 @@ zepha.set_gui([[ text[name] position: 4px 4px content: "Minimal Subgame Base" + end end ]]) \ No newline at end of file diff --git a/subgames/parentheses/menu/script/init.lua b/subgames/parentheses/menu/script/init.lua index 2fda63db..5d7332fe 100644 --- a/subgames/parentheses/menu/script/init.lua +++ b/subgames/parentheses/menu/script/init.lua @@ -5,5 +5,6 @@ zepha.set_gui([[ text[name] position: 4px 4px content: "Parentheses" + end end ]]) diff --git a/subgames/zeus/menu/script/init.lua b/subgames/zeus/menu/script/init.lua index ee347726..bbcb5590 100644 --- a/subgames/zeus/menu/script/init.lua +++ b/subgames/zeus/menu/script/init.lua @@ -33,6 +33,7 @@ zepha.set_gui([[ end ]], { buttonPlay = { + -- TODO: Change left/right notation to primary/secondary. left = function() zepha.start_game_local() end diff --git a/subgames/zeus/mods/base/script/models/block.lua b/subgames/zeus/mods/base/script/models/block.lua index b5a8cae0..95cc64d9 100644 --- a/subgames/zeus/mods/base/script/models/block.lua +++ b/subgames/zeus/mods/base/script/models/block.lua @@ -18,10 +18,10 @@ zepha.register_blockmodel("base:block", { face = "right", tex = 4, points = { - 1, 1, 1, 1, 0, - 1, 0, 1, 1, 1, - 1, 0, 0, 0, 1, - 1, 1, 0, 0, 0 + 1, 1, 1, 0, 0, + 1, 0, 1, 0, 1, + 1, 0, 0, 1, 1, + 1, 1, 0, 1, 0 } }, { face = "top", @@ -54,10 +54,10 @@ zepha.register_blockmodel("base:block", { face = "back", tex = 6, points = { - 0, 0, 0, 0, 1, - 0, 1, 0, 0, 0, - 1, 1, 0, 1, 0, - 1, 0, 0, 1, 1 + 0, 0, 0, 1, 1, + 0, 1, 0, 1, 0, + 1, 1, 0, 0, 0, + 1, 0, 0, 0, 1 } } } diff --git a/subgames/zeus/mods/base/script/models/block_foliage.lua b/subgames/zeus/mods/base/script/models/block_foliage.lua index 8f6ff380..4a138e5b 100644 --- a/subgames/zeus/mods/base/script/models/block_foliage.lua +++ b/subgames/zeus/mods/base/script/models/block_foliage.lua @@ -21,10 +21,10 @@ zepha.register_blockmodel("base:block_foliage", { face = "right", tex = 3, points = { - 1, 1, 1, 1, 0, - 1, 0, 1, 1, 1, - 1, 0, 0, 0, 1, - 1, 1, 0, 0, 0 + 1, 1, 1, 0, 0, + 1, 0, 1, 0, 1, + 1, 0, 0, 1, 1, + 1, 1, 0, 1, 0 } }, { face = "top", @@ -57,10 +57,10 @@ zepha.register_blockmodel("base:block_foliage", { face = "back", tex = 3, points = { - 0, 0, 0, 0, 1, - 0, 1, 0, 0, 0, - 1, 1, 0, 1, 0, - 1, 0, 0, 1, 1 + 0, 0, 0, 1, 1, + 0, 1, 0, 1, 0, + 1, 1, 0, 0, 0, + 1, 0, 0, 0, 1 } }, { -- Hovered faces for biome tinting begin here @@ -76,10 +76,10 @@ zepha.register_blockmodel("base:block_foliage", { face = "right", tex = 4, points = { - 1.003, 1, 1, 1, 0, - 1.003, 0, 1, 1, 1, - 1.003, 0, 0, 0, 1, - 1.003, 1, 0, 0, 0 + 1.003, 1, 1, 0, 0, + 1.003, 0, 1, 0, 1, + 1.003, 0, 0, 1, 1, + 1.003, 1, 0, 1, 0 } }, { face = "front", @@ -94,10 +94,10 @@ zepha.register_blockmodel("base:block_foliage", { face = "back", tex = 4, points = { - 0, 0, -0.003, 0, 1, - 0, 1, -0.003, 0, 0, - 1, 1, -0.003, 1, 0, - 1, 0, -0.003, 1, 1 + 0, 0, -0.003, 1, 1, + 0, 1, -0.003, 1, 0, + 1, 1, -0.003, 0, 0, + 1, 0, -0.003, 0, 1 } }, { --Floats begin here @@ -117,10 +117,10 @@ zepha.register_blockmodel("base:block_foliage", { face = "back", tex = 5, points = { - 1.005, 0.2, -0.2, 1, 1, - 0.005, 0.2, -0.2, 0, 1, - 0, 1, 0, 0, 0, - 1, 1, 0, 1, 0 + 1.005, 0.2, -0.2, 0, 1, + 0.005, 0.2, -0.2, 1, 1, + 0, 1, 0, 1, 0, + 1, 1, 0, 0, 0 }, shader_mod = { type = "sway_attached", @@ -130,10 +130,10 @@ zepha.register_blockmodel("base:block_foliage", { face = "right", tex = 5, points = { - 1.2, 0.2, 1.005, 1, 1, - 1.2, 0.2, 0.005, 0, 1, - 1, 1, 0, 0, 0, - 1, 1, 1, 1, 0 + 1.2, 0.2, 1.005, 0, 1, + 1.2, 0.2, 0.005, 1, 1, + 1, 1, 0, 1, 0, + 1, 1, 1, 0, 0 }, shader_mod = { type = "sway_attached", diff --git a/subgames/zeus/mods/base/script/models/block_slab.lua b/subgames/zeus/mods/base/script/models/block_slab.lua index 60e1d1d2..b270382c 100644 --- a/subgames/zeus/mods/base/script/models/block_slab.lua +++ b/subgames/zeus/mods/base/script/models/block_slab.lua @@ -18,10 +18,10 @@ zepha.register_blockmodel("base:block_slab", { face = "right", tex = 4, points = { - 1, 0.5, 1, 1, 0, - 1, 0, 1, 1, 0.5, - 1, 0, 0, 0, 0.5, - 1, 0.5, 0, 0, 0 + 1, 0.5, 1, 0, 0, + 1, 0, 1, 0, 0.5, + 1, 0, 0, 1, 0.5, + 1, 0.5, 1, 0, 0 } }, { face = "nocull", @@ -54,10 +54,10 @@ zepha.register_blockmodel("base:block_slab", { face = "back", tex = 6, points = { - 0, 0, 0, 0, 0.5, - 0, 0.5, 0, 0, 0, - 1, 0.5, 0, 1, 0, - 1, 0, 0, 1, 0.5 + 0, 0, 0, 1, 0.5, + 0, 0.5, 0, 1, 0, + 1, 0.5, 0, 0, 0, + 1, 0, 0, 0, 0.5 } } } diff --git a/subgames/zeus/mods/base/script/models/block_slab_foliage.lua b/subgames/zeus/mods/base/script/models/block_slab_foliage.lua index e3b286cc..b28527ce 100644 --- a/subgames/zeus/mods/base/script/models/block_slab_foliage.lua +++ b/subgames/zeus/mods/base/script/models/block_slab_foliage.lua @@ -18,10 +18,10 @@ zepha.register_blockmodel("base:block_slab_foliage", { face = "right", tex = 4, points = { - 1, 0.5, 1, 1, 0, - 1, 0, 1, 1, 0.5, - 1, 0, 0, 0, 0.5, - 1, 0.5, 0, 0, 0 + 1, 0.5, 1, 0, 0, + 1, 0, 1, 0, 0.5, + 1, 0, 0, 1, 0.5, + 1, 0.5, 0, 1, 0 } }, { face = "nocull", @@ -54,10 +54,10 @@ zepha.register_blockmodel("base:block_slab_foliage", { face = "back", tex = 6, points = { - 0, 0, 0, 0, 0.5, - 0, 0.5, 0, 0, 0, - 1, 0.5, 0, 1, 0, - 1, 0, 0, 1, 0.5 + 0, 0, 0, 1, 0.5, + 0, 0.5, 0, 1, 0, + 1, 0.5, 0, 0, 0, + 1, 0, 0, 0, 0.5 } }, { --Floats begin here @@ -73,19 +73,19 @@ zepha.register_blockmodel("base:block_slab_foliage", { face = "back", tex = 7, points = { - 1, -0.3, -0.2, 1, 1, - 0, -0.3, -0.2, 0, 1, - 0, 0.5, 0, 0, 0, - 1, 0.5, 0, 1, 0 + 1, -0.3, -0.2, 0, 1, + 0, -0.3, -0.2, 1, 1, + 0, 0.5, 0, 1, 0, + 1, 0.5, 0, 0, 0 } }, { face = "right", tex = 7, points = { - 1.2, -0.3, 1, 1, 1, - 1.2, -0.3, 0, 0, 1, - 1, 0.5, 0, 0, 0, - 1, 0.5, 1, 1, 0 + 1.2, -0.3, 1, 0, 1, + 1.2, -0.3, 0, 1, 1, + 1, 0.5, 0, 1, 0, + 1, 0.5, 1, 0, 0 } }, { face = "left", diff --git a/subgames/zeus/mods/base/script/models/leaf_like.lua b/subgames/zeus/mods/base/script/models/leaf_like.lua index 33b0b4cd..905744bb 100644 --- a/subgames/zeus/mods/base/script/models/leaf_like.lua +++ b/subgames/zeus/mods/base/script/models/leaf_like.lua @@ -25,10 +25,10 @@ zepha.register_blockmodel("base:leaf_like", { face = "right", tex = 1, points = { - 1, 1, 1, 1, 0, - 1, 0, 1, 1, 1, - 1, 0, 0, 0, 1, - 1, 1, 0, 0, 0 + 1, 1, 1, 0, 0, + 1, 0, 1, 0, 1, + 1, 0, 0, 1, 1, + 1, 1, 0, 1, 0 }, shader_mod = { type = "sway_full_block", @@ -77,10 +77,10 @@ zepha.register_blockmodel("base:leaf_like", { face = "back", tex = 1, points = { - 0, 0, 0, 0, 1, - 0, 1, 0, 0, 0, - 1, 1, 0, 1, 0, - 1, 0, 0, 1, 1 + 0, 0, 0, 1, 1, + 0, 1, 0, 1, 0, + 1, 1, 0, 0, 0, + 1, 0, 0, 0, 1 }, shader_mod = { type = "sway_full_block", diff --git a/test/tests/TestSerializer.cpp b/test/tests/TestSerializer.cpp index db054146..118c0669 100644 --- a/test/tests/TestSerializer.cpp +++ b/test/tests/TestSerializer.cpp @@ -25,7 +25,11 @@ TEST_CASE("Serialization", "[net]") { glm::vec3 v3; std::string str; - d.read(i).read(s).read(f).read(v3).read(str); + d.read(i) + .read(s) + .read(f) + .read(v3) + .read(str); REQUIRE(i == 32); REQUIRE(s == 16); @@ -181,7 +185,7 @@ TEST_CASE("Serialization", "[net]") { REQUIRE(vec[2] == 5.7f); } - SECTION("Vector") { s.append>({ "hi", "hello", diff --git a/test/tests/TestSpace.cpp b/test/tests/TestSpace.cpp index 63f25a12..5dca96ca 100644 --- a/test/tests/TestSpace.cpp +++ b/test/tests/TestSpace.cpp @@ -13,39 +13,39 @@ TEST_CASE("Space", "[math]") { SECTION("Region") { SECTION("World") { SECTION("From Map Block") { - REQUIRE(Region::world::fromMapBlock({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromMapBlock({1, 1, 1}) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromMapBlock({3, 1, 1}) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromMapBlock({1, 5, 1}) == vec3 {0, 1, 0}); - REQUIRE(Region::world::fromMapBlock({1, 1, 10}) == vec3 {0, 0, 2}); - REQUIRE(Region::world::fromMapBlock({0, -1, 0}) == vec3 {0, -1, 0}); - REQUIRE(Region::world::fromMapBlock({-3, -5, -4}) == vec3 {-1, -2, -1}); - REQUIRE(Region::world::fromMapBlock({-8, -9, -15}) == vec3 {-2, -3, -4}); - REQUIRE(Region::world::fromMapBlock({13, 60, -4}) == vec3 {3, 15, -1}); + REQUIRE(Region::world::fromMapBlock({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromMapBlock({1, 1, 1}) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromMapBlock({3, 1, 1}) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromMapBlock({1, 5, 1}) == ivec3 {0, 1, 0}); + REQUIRE(Region::world::fromMapBlock({1, 1, 10}) == ivec3 {0, 0, 2}); + REQUIRE(Region::world::fromMapBlock({0, -1, 0}) == ivec3 {0, -1, 0}); + REQUIRE(Region::world::fromMapBlock({-3, -5, -4}) == ivec3 {-1, -2, -1}); + REQUIRE(Region::world::fromMapBlock({-8, -9, -15}) == ivec3 {-2, -3, -4}); + REQUIRE(Region::world::fromMapBlock({13, 60, -4}) == ivec3 {3, 15, -1}); } SECTION("From Chunk") { - REQUIRE(Region::world::fromChunk(vec3 {0, 0, 0} * static_cast(MAPBLOCK_SIZE)) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromChunk(vec3 {1, 1, 1} * static_cast(MAPBLOCK_SIZE)) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromChunk(vec3 {3, 1, 1} * static_cast(MAPBLOCK_SIZE)) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromChunk(vec3 {1, 5, 1} * static_cast(MAPBLOCK_SIZE)) == vec3 {0, 1, 0}); - REQUIRE(Region::world::fromChunk(vec3 {1, 1, 10} * static_cast(MAPBLOCK_SIZE)) == vec3 {0, 0, 2}); - REQUIRE(Region::world::fromChunk(vec3 {0, -1, 0} * static_cast(MAPBLOCK_SIZE)) == vec3 {0, -1, 0}); - REQUIRE(Region::world::fromChunk(vec3 {-3, -5, -4} * static_cast(MAPBLOCK_SIZE)) == vec3 {-1, -2, -1}); - REQUIRE(Region::world::fromChunk(vec3 {-8, -9, -15} * static_cast(MAPBLOCK_SIZE)) == vec3 {-2, -3, -4}); - REQUIRE(Region::world::fromChunk(vec3 {13, 60, -4} * static_cast(MAPBLOCK_SIZE)) == vec3 {3, 15, -1}); + REQUIRE(Region::world::fromChunk(vec3 {0, 0, 0} * static_cast(MAPBLOCK_SIZE)) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromChunk(vec3 {1, 1, 1} * static_cast(MAPBLOCK_SIZE)) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromChunk(vec3 {3, 1, 1} * static_cast(MAPBLOCK_SIZE)) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromChunk(vec3 {1, 5, 1} * static_cast(MAPBLOCK_SIZE)) == ivec3 {0, 1, 0}); + REQUIRE(Region::world::fromChunk(vec3 {1, 1, 10} * static_cast(MAPBLOCK_SIZE)) == ivec3 {0, 0, 2}); + REQUIRE(Region::world::fromChunk(vec3 {0, -1, 0} * static_cast(MAPBLOCK_SIZE)) == ivec3 {0, -1, 0}); + REQUIRE(Region::world::fromChunk(vec3 {-3, -5, -4} * static_cast(MAPBLOCK_SIZE)) == ivec3 {-1, -2, -1}); + REQUIRE(Region::world::fromChunk(vec3 {-8, -9, -15} * static_cast(MAPBLOCK_SIZE)) == ivec3 {-2, -3, -4}); + REQUIRE(Region::world::fromChunk(vec3 {13, 60, -4} * static_cast(MAPBLOCK_SIZE)) == ivec3 {3, 15, -1}); } SECTION("From Block") { - REQUIRE(Region::world::fromChunk(vec3 {0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromChunk(vec3 {4, 4, 4}) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromChunk(vec3 {12, 4, 4}) == vec3 {0, 0, 0}); - REQUIRE(Region::world::fromChunk(vec3 {4, 20, 4}) == vec3 {0, 1, 0}); - REQUIRE(Region::world::fromChunk(vec3 {4, 4, 40}) == vec3 {0, 0, 2}); - REQUIRE(Region::world::fromChunk(vec3 {0, -4, 0}) == vec3 {0, -1, 0}); - REQUIRE(Region::world::fromChunk(vec3 {-12, -20, -16}) == vec3 {-1, -2, -1}); - REQUIRE(Region::world::fromChunk(vec3 {-32, -36, -60}) == vec3 {-2, -3, -4}); - REQUIRE(Region::world::fromChunk(vec3 {52, 240, -16}) == vec3 {3, 15, -1}); + REQUIRE(Region::world::fromChunk(vec3 {0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromChunk(vec3 {4, 4, 4}) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromChunk(vec3 {12, 4, 4}) == ivec3 {0, 0, 0}); + REQUIRE(Region::world::fromChunk(vec3 {4, 20, 4}) == ivec3 {0, 1, 0}); + REQUIRE(Region::world::fromChunk(vec3 {4, 4, 40}) == ivec3 {0, 0, 2}); + REQUIRE(Region::world::fromChunk(vec3 {0, -4, 0}) == ivec3 {0, -1, 0}); + REQUIRE(Region::world::fromChunk(vec3 {-12, -20, -16}) == ivec3 {-1, -2, -1}); + REQUIRE(Region::world::fromChunk(vec3 {-32, -36, -60}) == ivec3 {-2, -3, -4}); + REQUIRE(Region::world::fromChunk(vec3 {52, 240, -16}) == ivec3 {3, 15, -1}); } } } @@ -53,40 +53,40 @@ TEST_CASE("Space", "[math]") { SECTION("MapBlock") { SECTION("Relative") { SECTION("To Region") { - REQUIRE(MapBlock::relative::toRegion({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::relative::toRegion({0, 5, 0}) == vec3 {0, 1, 0}); - REQUIRE(MapBlock::relative::toRegion({5, 20, 0}) == vec3 {1, 0, 0}); - REQUIRE(MapBlock::relative::toRegion({40, 20, 30}) == vec3 {0, 0, 2}); - REQUIRE(MapBlock::relative::toRegion({0, -5, 0}) == vec3 {0, 3, 0}); - REQUIRE(MapBlock::relative::toRegion({-10, -7, -3}) == vec3 {2, 1, 1}); - REQUIRE(MapBlock::relative::toRegion({-16, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::relative::toRegion({-17, -18, -19}) == vec3 {3, 2, 1}); + REQUIRE(MapBlock::relative::toRegion({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::relative::toRegion({0, 5, 0}) == ivec3 {0, 1, 0}); + REQUIRE(MapBlock::relative::toRegion({5, 20, 0}) == ivec3 {1, 0, 0}); + REQUIRE(MapBlock::relative::toRegion({40, 20, 30}) == ivec3 {0, 0, 2}); + REQUIRE(MapBlock::relative::toRegion({0, -5, 0}) == ivec3 {0, 3, 0}); + REQUIRE(MapBlock::relative::toRegion({-10, -7, -3}) == ivec3 {2, 1, 1}); + REQUIRE(MapBlock::relative::toRegion({-16, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::relative::toRegion({-17, -18, -19}) == ivec3 {3, 2, 1}); } } SECTION("World") { SECTION("From Chunk") { - REQUIRE(MapBlock::world::fromChunk({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::world::fromChunk({1, 1, 1}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::world::fromChunk({3, 1, 1}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::world::fromChunk({1, 5, 1}) == vec3 {0, 1, 0}); - REQUIRE(MapBlock::world::fromChunk({1, 1, 10}) == vec3 {0, 0, 2}); - REQUIRE(MapBlock::world::fromChunk({0, -1, 0}) == vec3 {0, -1, 0}); - REQUIRE(MapBlock::world::fromChunk({-3, -5, -4}) == vec3 {-1, -2, -1}); - REQUIRE(MapBlock::world::fromChunk({-8, -9, -15}) == vec3 {-2, -3, -4}); - REQUIRE(MapBlock::world::fromChunk({13, 60, -4}) == vec3 {3, 15, -1}); + REQUIRE(MapBlock::world::fromChunk({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::world::fromChunk({1, 1, 1}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::world::fromChunk({3, 1, 1}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::world::fromChunk({1, 5, 1}) == ivec3 {0, 1, 0}); + REQUIRE(MapBlock::world::fromChunk({1, 1, 10}) == ivec3 {0, 0, 2}); + REQUIRE(MapBlock::world::fromChunk({0, -1, 0}) == ivec3 {0, -1, 0}); + REQUIRE(MapBlock::world::fromChunk({-3, -5, -4}) == ivec3 {-1, -2, -1}); + REQUIRE(MapBlock::world::fromChunk({-8, -9, -15}) == ivec3 {-2, -3, -4}); + REQUIRE(MapBlock::world::fromChunk({13, 60, -4}) == ivec3 {3, 15, -1}); } SECTION("From Block") { - REQUIRE(MapBlock::world::fromBlock({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::world::fromBlock({16, 16, 16}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::world::fromBlock({48, 16, 16}) == vec3 {0, 0, 0}); - REQUIRE(MapBlock::world::fromBlock({16, 80, 16}) == vec3 {0, 1, 0}); - REQUIRE(MapBlock::world::fromBlock({16, 16, 160}) == vec3 {0, 0, 2}); - REQUIRE(MapBlock::world::fromBlock({0, -16, 0}) == vec3 {0, -1, 0}); - REQUIRE(MapBlock::world::fromBlock({-48, -80, -64}) == vec3 {-1, -2, -1}); - REQUIRE(MapBlock::world::fromBlock({-128, -144, -240}) == vec3 {-2, -3, -4}); - REQUIRE(MapBlock::world::fromBlock({208, 960, -64}) == vec3 {3, 15, -1}); + REQUIRE(MapBlock::world::fromBlock({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::world::fromBlock({16, 16, 16}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::world::fromBlock({48, 16, 16}) == ivec3 {0, 0, 0}); + REQUIRE(MapBlock::world::fromBlock({16, 80, 16}) == ivec3 {0, 1, 0}); + REQUIRE(MapBlock::world::fromBlock({16, 16, 160}) == ivec3 {0, 0, 2}); + REQUIRE(MapBlock::world::fromBlock({0, -16, 0}) == ivec3 {0, -1, 0}); + REQUIRE(MapBlock::world::fromBlock({-48, -80, -64}) == ivec3 {-1, -2, -1}); + REQUIRE(MapBlock::world::fromBlock({-128, -144, -240}) == ivec3 {-2, -3, -4}); + REQUIRE(MapBlock::world::fromBlock({208, 960, -64}) == ivec3 {3, 15, -1}); } } @@ -114,38 +114,38 @@ TEST_CASE("Space", "[math]") { SECTION("Chunk") { SECTION("Relative") { SECTION("To Map Block") { - REQUIRE(Chunk::relative::toMapBlock({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Chunk::relative::toMapBlock({0, 5, 0}) == vec3 {0, 1, 0}); - REQUIRE(Chunk::relative::toMapBlock({5, 20, 0}) == vec3 {1, 0, 0}); - REQUIRE(Chunk::relative::toMapBlock({40, 20, 30}) == vec3 {0, 0, 2}); - REQUIRE(Chunk::relative::toMapBlock({0, -5, 0}) == vec3 {0, 3, 0}); - REQUIRE(Chunk::relative::toMapBlock({-10, -7, -3}) == vec3 {2, 1, 1}); - REQUIRE(Chunk::relative::toMapBlock({-16, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Chunk::relative::toMapBlock({-17, -18, -19}) == vec3 {3, 2, 1}); + REQUIRE(Chunk::relative::toMapBlock({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Chunk::relative::toMapBlock({0, 5, 0}) == ivec3 {0, 1, 0}); + REQUIRE(Chunk::relative::toMapBlock({5, 20, 0}) == ivec3 {1, 0, 0}); + REQUIRE(Chunk::relative::toMapBlock({40, 20, 30}) == ivec3 {0, 0, 2}); + REQUIRE(Chunk::relative::toMapBlock({0, -5, 0}) == ivec3 {0, 3, 0}); + REQUIRE(Chunk::relative::toMapBlock({-10, -7, -3}) == ivec3 {2, 1, 1}); + REQUIRE(Chunk::relative::toMapBlock({-16, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Chunk::relative::toMapBlock({-17, -18, -19}) == ivec3 {3, 2, 1}); } SECTION("To Region") { - REQUIRE(Chunk::relative::toRegion({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Chunk::relative::toRegion({0, 5, 0}) == vec3 {0, 5, 0}); - REQUIRE(Chunk::relative::toRegion({5, 20, 0}) == vec3 {5, 4, 0}); - REQUIRE(Chunk::relative::toRegion({40, 20, 30}) == vec3 {8, 4, 14}); - REQUIRE(Chunk::relative::toRegion({0, -5, 0}) == vec3 {0, 11, 0}); - REQUIRE(Chunk::relative::toRegion({-10, -7, -3}) == vec3 {6, 9, 13}); - REQUIRE(Chunk::relative::toRegion({-16, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Chunk::relative::toRegion({-17, -18, -19}) == vec3 {15, 14, 13}); + REQUIRE(Chunk::relative::toRegion({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Chunk::relative::toRegion({0, 5, 0}) == ivec3 {0, 5, 0}); + REQUIRE(Chunk::relative::toRegion({5, 20, 0}) == ivec3 {5, 4, 0}); + REQUIRE(Chunk::relative::toRegion({40, 20, 30}) == ivec3 {8, 4, 14}); + REQUIRE(Chunk::relative::toRegion({0, -5, 0}) == ivec3 {0, 11, 0}); + REQUIRE(Chunk::relative::toRegion({-10, -7, -3}) == ivec3 {6, 9, 13}); + REQUIRE(Chunk::relative::toRegion({-16, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Chunk::relative::toRegion({-17, -18, -19}) == ivec3 {15, 14, 13}); } } SECTION("World") { SECTION("From Block") { - REQUIRE(Chunk::world::fromBlock({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Chunk::world::fromBlock({5, 17, 8}) == vec3 {0, 1, 0}); - REQUIRE(Chunk::world::fromBlock({23, 0, 3}) == vec3 {1, 0, 0}); - REQUIRE(Chunk::world::fromBlock({0, 0, 32}) == vec3 {0, 0, 2}); - REQUIRE(Chunk::world::fromBlock({-4, 40, 0}) == vec3 {-1, 2, 0}); - REQUIRE(Chunk::world::fromBlock({-17, -16, -15}) == vec3 {-2, -1, -1}); - REQUIRE(Chunk::world::fromBlock({-35, -30, -64}) == vec3 {-3, -2, -4}); - REQUIRE(Chunk::world::fromBlock({36, 64, -12}) == vec3 {2, 4, -1}); + REQUIRE(Chunk::world::fromBlock({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Chunk::world::fromBlock({5, 17, 8}) == ivec3 {0, 1, 0}); + REQUIRE(Chunk::world::fromBlock({23, 0, 3}) == ivec3 {1, 0, 0}); + REQUIRE(Chunk::world::fromBlock({0, 0, 32}) == ivec3 {0, 0, 2}); + REQUIRE(Chunk::world::fromBlock({-4, 40, 0}) == ivec3 {-1, 2, 0}); + REQUIRE(Chunk::world::fromBlock({-17, -16, -15}) == ivec3 {-2, -1, -1}); + REQUIRE(Chunk::world::fromBlock({-35, -30, -64}) == ivec3 {-3, -2, -4}); + REQUIRE(Chunk::world::fromBlock({36, 64, -12}) == ivec3 {2, 4, -1}); } } @@ -173,36 +173,36 @@ TEST_CASE("Space", "[math]") { SECTION("Block") { SECTION("Relative") { SECTION("To Chunk") { - REQUIRE(Block::relative::toChunk({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Block::relative::toChunk({0, 5, 0}) == vec3 {0, 5, 0}); - REQUIRE(Block::relative::toChunk({5, 20, 0}) == vec3 {5, 4, 0}); - REQUIRE(Block::relative::toChunk({40, 20, 30}) == vec3 {8, 4, 14}); - REQUIRE(Block::relative::toChunk({0, -5, 0}) == vec3 {0, 11, 0}); - REQUIRE(Block::relative::toChunk({-10, -7, -3}) == vec3 {6, 9, 13}); - REQUIRE(Block::relative::toChunk({-16, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Block::relative::toChunk({-17, -18, -19}) == vec3 {15, 14, 13}); + REQUIRE(Block::relative::toChunk({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Block::relative::toChunk({0, 5, 0}) == ivec3 {0, 5, 0}); + REQUIRE(Block::relative::toChunk({5, 20, 0}) == ivec3 {5, 4, 0}); + REQUIRE(Block::relative::toChunk({40, 20, 30}) == ivec3 {8, 4, 14}); + REQUIRE(Block::relative::toChunk({0, -5, 0}) == ivec3 {0, 11, 0}); + REQUIRE(Block::relative::toChunk({-10, -7, -3}) == ivec3 {6, 9, 13}); + REQUIRE(Block::relative::toChunk({-16, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Block::relative::toChunk({-17, -18, -19}) == ivec3 {15, 14, 13}); } SECTION("To Map Block") { - REQUIRE(Block::relative::toMapBlock({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Block::relative::toMapBlock({0, 5, 0}) == vec3 {0, 5, 0}); - REQUIRE(Block::relative::toMapBlock({5, 20, 0}) == vec3 {5, 20, 0}); - REQUIRE(Block::relative::toMapBlock({40, 20, 30}) == vec3 {40, 20, 30}); - REQUIRE(Block::relative::toMapBlock({0, -5, 0}) == vec3 {0, 59, 0}); - REQUIRE(Block::relative::toMapBlock({-10, -7, -3}) == vec3 {54, 57, 61}); - REQUIRE(Block::relative::toMapBlock({-16, 0, 0}) == vec3 {48, 0, 0}); - REQUIRE(Block::relative::toMapBlock({-17, -18, -19}) == vec3 {47, 46, 45}); + REQUIRE(Block::relative::toMapBlock({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Block::relative::toMapBlock({0, 5, 0}) == ivec3 {0, 5, 0}); + REQUIRE(Block::relative::toMapBlock({5, 20, 0}) == ivec3 {5, 20, 0}); + REQUIRE(Block::relative::toMapBlock({40, 20, 30}) == ivec3 {40, 20, 30}); + REQUIRE(Block::relative::toMapBlock({0, -5, 0}) == ivec3 {0, 59, 0}); + REQUIRE(Block::relative::toMapBlock({-10, -7, -3}) == ivec3 {54, 57, 61}); + REQUIRE(Block::relative::toMapBlock({-16, 0, 0}) == ivec3 {48, 0, 0}); + REQUIRE(Block::relative::toMapBlock({-17, -18, -19}) == ivec3 {47, 46, 45}); } SECTION("To Region") { - REQUIRE(Block::relative::toRegion({0, 0, 0}) == vec3 {0, 0, 0}); - REQUIRE(Block::relative::toRegion({0, 5, 0}) == vec3 {0, 5, 0}); - REQUIRE(Block::relative::toRegion({5, 256, 0}) == vec3 {5, 0, 0}); - REQUIRE(Block::relative::toRegion({40, 20, 30}) == vec3 {40, 20, 30}); - REQUIRE(Block::relative::toRegion({0, -5, 0}) == vec3 {0, 251, 0}); - REQUIRE(Block::relative::toRegion({-10, -7, -3}) == vec3 {246, 249, 253}); - REQUIRE(Block::relative::toRegion({-16, 0, 0}) == vec3 {240, 0, 0}); - REQUIRE(Block::relative::toRegion({-17, -18, -19}) == vec3 {239, 238, 237}); + REQUIRE(Block::relative::toRegion({0, 0, 0}) == ivec3 {0, 0, 0}); + REQUIRE(Block::relative::toRegion({0, 5, 0}) == ivec3 {0, 5, 0}); + REQUIRE(Block::relative::toRegion({5, 256, 0}) == ivec3 {5, 0, 0}); + REQUIRE(Block::relative::toRegion({40, 20, 30}) == ivec3 {40, 20, 30}); + REQUIRE(Block::relative::toRegion({0, -5, 0}) == ivec3 {0, 251, 0}); + REQUIRE(Block::relative::toRegion({-10, -7, -3}) == ivec3 {246, 249, 253}); + REQUIRE(Block::relative::toRegion({-16, 0, 0}) == ivec3 {240, 0, 0}); + REQUIRE(Block::relative::toRegion({-17, -18, -19}) == ivec3 {239, 238, 237}); } }