summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/MinedMap.cpp2
-rw-r--r--src/World/Biome.cpp205
-rw-r--r--src/World/Biome.hpp39
-rw-r--r--src/World/Block.cpp21
-rw-r--r--src/World/Block.hpp2
-rw-r--r--src/World/BlockType.cpp347
-rw-r--r--src/World/BlockType.hpp1
8 files changed, 441 insertions, 177 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5146071..6869adb 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,6 +4,7 @@ link_directories(${ZLIB_LIBRARY_DIRS} ${LIBPNG_LIBRARY_DIRS})
add_executable(MinedMap
MinedMap.cpp
NBT/Tag.cpp
+ World/Biome.cpp
World/Block.cpp
World/BlockType.cpp
World/Chunk.cpp
diff --git a/src/MinedMap.cpp b/src/MinedMap.cpp
index 594268c..c33dabb 100644
--- a/src/MinedMap.cpp
+++ b/src/MinedMap.cpp
@@ -97,7 +97,7 @@ int main(int argc, char *argv[]) {
for (size_t x = 0; x < World::Chunk::SIZE; x++) {
for (size_t z = 0; z < World::Chunk::SIZE; z++)
- image[Z*World::Chunk::SIZE+z][X*World::Chunk::SIZE+x] = htonl(layer.blocks[x][z].getColor());
+ image[Z*World::Chunk::SIZE+z][X*World::Chunk::SIZE+x] = htonl(layer.blocks[x][z].getColor(0));
}
}
}
diff --git a/src/World/Biome.cpp b/src/World/Biome.cpp
new file mode 100644
index 0000000..f90e54c
--- /dev/null
+++ b/src/World/Biome.cpp
@@ -0,0 +1,205 @@
+/*
+ Copyright (c) 2015, Matthias Schiffer <mschiffer@universe-factory.net>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+#include "Biome.hpp"
+
+
+namespace MinedMap {
+namespace World {
+
+const Biome BIOMES[256] = {
+ /* 0 */ {0.25, 1, 0.25},
+ /* 1 */ {0.3, 1, 0.3},
+ /* 2 */ {1, 1, 0.25},
+ /* 3 */ {0.3, 0.9, 0.3},
+ /* 4 */ {0.15, 0.75, 0.15},
+ /* 5 */ {0.5, 0.75, 0.5},
+ /* 6 */ {0.75, 1, 0.25},
+ /* 7 */ {0.25, 1, 0.25},
+ /* 8 */ {1, 0.1, 0.1},
+ /* 9 */ {1.5, 1.5, 0.75},
+ /* 10 */ {0.25, 1, 0.25},
+ /* 11 */ {0.25, 1, 0.25},
+ /* 12 */ {0.3, 1, 0.3},
+ /* 13 */ {0.3, 0.9, 0.3},
+ /* 14 */ {0.75, 0.1, 0.75},
+ /* 15 */ {0.75, 0.1, 0.75},
+ /* 16 */ {1, 1, 0.25},
+ /* 17 */ {1, 1, 0.25},
+ /* 18 */ {0.15, 0.75, 0.15},
+ /* 19 */ {0.5, 0.75, 0.5},
+ /* 20 */ {0.3, 0.9, 0.3},
+ /* 21 */ {0.1, 1.25, 0.1},
+ /* 22 */ {0.1, 1.25, 0.1},
+ /* 23 */ {0.1, 1.25, 0.1},
+ /* 24 */ {0.25, 1, 0.25},
+ /* 25 */ {1, 1, 0.25},
+ /* 26 */ {1, 1, 0.25},
+ /* 27 */ {0.15, 0.75, 0.15},
+ /* 28 */ {0.15, 0.75, 0.15},
+ /* 29 */ {0.15, 0.75, 0.15},
+ /* 30 */ {0.5, 0.75, 0.5},
+ /* 31 */ {0.5, 0.75, 0.5},
+ /* 32 */ {0.5, 0.75, 0.5},
+ /* 33 */ {0.5, 0.75, 0.5},
+ /* 34 */ {0.3, 0.9, 0.3},
+ /* 35 */ {0.6, 1, 0.25},
+ /* 36 */ {0.6, 1, 0.25},
+ /* 37 */ {0.25, 1, 1.25},
+ /* 38 */ {0.25, 1, 1.25},
+ /* 39 */ {0.25, 1, 1.25},
+ /* 40 */ {},
+ /* 41 */ {},
+ /* 42 */ {},
+ /* 43 */ {},
+ /* 44 */ {},
+ /* 45 */ {},
+ /* 46 */ {},
+ /* 47 */ {},
+ /* 48 */ {},
+ /* 49 */ {},
+ /* 50 */ {},
+ /* 51 */ {},
+ /* 52 */ {},
+ /* 53 */ {},
+ /* 54 */ {},
+ /* 55 */ {},
+ /* 56 */ {},
+ /* 57 */ {},
+ /* 58 */ {},
+ /* 59 */ {},
+ /* 60 */ {},
+ /* 61 */ {},
+ /* 62 */ {},
+ /* 63 */ {},
+ /* 64 */ {},
+ /* 65 */ {},
+ /* 66 */ {},
+ /* 67 */ {},
+ /* 68 */ {},
+ /* 69 */ {},
+ /* 70 */ {},
+ /* 71 */ {},
+ /* 72 */ {},
+ /* 73 */ {},
+ /* 74 */ {},
+ /* 75 */ {},
+ /* 76 */ {},
+ /* 77 */ {},
+ /* 78 */ {},
+ /* 79 */ {},
+ /* 80 */ {},
+ /* 81 */ {},
+ /* 82 */ {},
+ /* 83 */ {},
+ /* 84 */ {},
+ /* 85 */ {},
+ /* 86 */ {},
+ /* 87 */ {},
+ /* 88 */ {},
+ /* 89 */ {},
+ /* 90 */ {},
+ /* 91 */ {},
+ /* 92 */ {},
+ /* 93 */ {},
+ /* 94 */ {},
+ /* 95 */ {},
+ /* 96 */ {},
+ /* 97 */ {},
+ /* 98 */ {},
+ /* 99 */ {},
+ /* 100 */ {},
+ /* 101 */ {},
+ /* 102 */ {},
+ /* 103 */ {},
+ /* 104 */ {},
+ /* 105 */ {},
+ /* 106 */ {},
+ /* 107 */ {},
+ /* 108 */ {},
+ /* 109 */ {},
+ /* 110 */ {},
+ /* 111 */ {},
+ /* 112 */ {},
+ /* 113 */ {},
+ /* 114 */ {},
+ /* 115 */ {},
+ /* 116 */ {},
+ /* 117 */ {},
+ /* 118 */ {},
+ /* 119 */ {},
+ /* 120 */ {},
+ /* 121 */ {},
+ /* 122 */ {},
+ /* 123 */ {},
+ /* 124 */ {},
+ /* 125 */ {},
+ /* 126 */ {},
+ /* 127 */ {},
+ /* 128 */ {},
+ /* 129 */ {0.3, 1, 0.3},
+ /* 130 */ {1, 1, 0.25},
+ /* 131 */ {0.3, 0.9, 0.3},
+ /* 132 */ {0.15, 0.75, 0.15},
+ /* 133 */ {0.5, 0.75, 0.5},
+ /* 134 */ {0.75, 1, 0.25},
+ /* 135 */ {},
+ /* 136 */ {},
+ /* 137 */ {},
+ /* 138 */ {},
+ /* 139 */ {},
+ /* 140 */ {0.3, 1, 0.3},
+ /* 141 */ {},
+ /* 142 */ {},
+ /* 143 */ {},
+ /* 144 */ {},
+ /* 145 */ {},
+ /* 146 */ {},
+ /* 147 */ {},
+ /* 148 */ {},
+ /* 149 */ {0.1, 1.25, 0.1},
+ /* 150 */ {},
+ /* 151 */ {0.1, 1.25, 0.1},
+ /* 152 */ {},
+ /* 153 */ {},
+ /* 154 */ {},
+ /* 155 */ {0.15, 0.75, 0.15},
+ /* 156 */ {0.15, 0.75, 0.15},
+ /* 157 */ {0.15, 0.75, 0.15},
+ /* 158 */ {0.5, 0.75, 0.5},
+ /* 159 */ {},
+ /* 160 */ {0.5, 0.75, 0.5},
+ /* 161 */ {0.5, 0.75, 0.5},
+ /* 162 */ {0.3, 0.9, 0.3},
+ /* 163 */ {0.6, 1, 0.25},
+ /* 164 */ {0.6, 1, 0.25},
+ /* 165 */ {0.25, 1, 1.25},
+ /* 166 */ {0.25, 1, 1.25},
+ /* 167 */ {0.25, 1, 1.25},
+};
+
+}
+}
diff --git a/src/World/Biome.hpp b/src/World/Biome.hpp
new file mode 100644
index 0000000..4534db0
--- /dev/null
+++ b/src/World/Biome.hpp
@@ -0,0 +1,39 @@
+/*
+ Copyright (c) 2015, Matthias Schiffer <mschiffer@universe-factory.net>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+#pragma once
+
+namespace MinedMap {
+namespace World {
+
+struct Biome {
+ float r, g, b;
+};
+
+extern const Biome BIOMES[256];
+
+}
+}
diff --git a/src/World/Block.cpp b/src/World/Block.cpp
index 3aa4af3..f02c107 100644
--- a/src/World/Block.cpp
+++ b/src/World/Block.cpp
@@ -26,20 +26,21 @@
#include "Block.hpp"
#include "BlockType.hpp"
+#include "Biome.hpp"
namespace MinedMap {
namespace World {
-uint32_t Block::getColor() const {
+uint32_t Block::getColor(uint8_t biome) const {
const World::BlockType &t = World::BLOCK_TYPES[id];
if (!t.opaque)
return 0;
- uint8_t r = t.color >> 16;
- uint8_t g = t.color >> 8;
- uint8_t b = t.color;
+ unsigned r = uint8_t(t.color >> 16);
+ unsigned g = uint8_t(t.color >> 8);
+ unsigned b = uint8_t(t.color);
uint8_t light = (blockLight > skyLight) ? blockLight : skyLight;
@@ -50,6 +51,18 @@ uint32_t Block::getColor() const {
g *= lightCoef * heightCoef;
b *= lightCoef * heightCoef;
+ if (t.green) {
+ const Biome &biomeDef = BIOMES[biome];
+
+ r *= biomeDef.r;
+ g *= biomeDef.g;
+ b *= biomeDef.b;
+ }
+
+ if (r > 255) r = 255;
+ if (g > 255) g = 255;
+ if (b > 255) b = 255;
+
return (r << 24) | (g << 16) | (b << 8) | 0xff;
}
diff --git a/src/World/Block.hpp b/src/World/Block.hpp
index f2d481a..2bdbaa5 100644
--- a/src/World/Block.hpp
+++ b/src/World/Block.hpp
@@ -43,7 +43,7 @@ struct Block {
Block() : id(0), data(0), height(0), blockLight(0), skyLight(0) {}
- uint32_t getColor() const;
+ uint32_t getColor(uint8_t biome) const;
};
}
diff --git a/src/World/BlockType.cpp b/src/World/BlockType.cpp
index a65e3eb..1f39ebd 100644
--- a/src/World/BlockType.cpp
+++ b/src/World/BlockType.cpp
@@ -31,177 +31,182 @@ namespace MinedMap {
namespace World {
const BlockType BLOCK_TYPES[256] = {
- /* 0 */ {false, 0},
- /* 1 */ {true, 8224125},
- /* 2 */ {true, 9671571},
- /* 3 */ {true, 8806467},
- /* 4 */ {true, 8026746},
- /* 5 */ {true, 10256206},
- /* 6 */ {true, 4679205},
- /* 7 */ {true, 5460819},
- /* 8 */ {true, 3229684},
- /* 9 */ {true, 3032052},
- /* 10 */ {true, 13589267},
- /* 11 */ {true, 13916690},
- /* 12 */ {true, 14406560},
- /* 13 */ {true, 8289402},
- /* 14 */ {true, 9407356},
- /* 15 */ {true, 8880766},
- /* 16 */ {true, 7566195},
- /* 17 */ {true, 10124621},
- /* 18 */ {true, 8882055},
- /* 19 */ {true, 11974201},
- /* 20 */ {true, 14348532},
- /* 21 */ {true, 6713478},
- /* 22 */ {true, 2507657},
- /* 23 */ {true, 6316128},
- /* 24 */ {true, 14340766},
- /* 25 */ {true, 6570802},
- /* 26 */ {true, 9311766},
- /* 27 */ {true, 8678472},
- /* 28 */ {true, 7890265},
- /* 29 */ {true, 6316128},
- /* 30 */ {true, 14474460},
- /* 31 */ {false, 0},
- /* 32 */ {false, 0},
- /* 33 */ {true, 6316128},
- /* 34 */ {true, 10060121},
- /* 35 */ {true, 14540253},
- /* 36 */ {false, 0},
- /* 37 */ {false, 0},
- /* 38 */ {false, 0},
- /* 39 */ {false, 0},
- /* 40 */ {false, 0},
- /* 41 */ {true, 16378958},
- /* 42 */ {true, 14408667},
- /* 43 */ {true, 10461087},
- /* 44 */ {true, 10461087},
- /* 45 */ {true, 9593686},
- /* 46 */ {true, 8536367},
- /* 47 */ {true, 10256206},
- /* 48 */ {true, 6781287},
- /* 49 */ {true, 1315357},
- /* 50 */ {false, 0},
- /* 51 */ {true, 13863989},
- /* 52 */ {true, 1713969},
- /* 53 */ {true, 10256206},
- /* 54 */ {true, 10256206},
- /* 55 */ {true, 11213577},
- /* 56 */ {true, 8490127},
- /* 57 */ {true, 6413269},
- /* 58 */ {true, 7030570},
- /* 59 */ {true, 45842},
- /* 60 */ {true, 7555885},
- /* 61 */ {true, 6316128},
- /* 62 */ {true, 6316128},
- /* 63 */ {false, 0},
- /* 64 */ {true, 8807730},
- /* 65 */ {false, 0},
- /* 66 */ {true, 7957592},
- /* 67 */ {true, 8026746},
- /* 68 */ {false, 0},
- /* 69 */ {false, 0},
- /* 70 */ {true, 8224125},
- /* 71 */ {true, 10724259},
- /* 72 */ {true, 10256206},
- /* 73 */ {true, 8678251},
- /* 74 */ {true, 8678251},
- /* 75 */ {true, 11213577},
- /* 76 */ {true, 11213577},
- /* 77 */ {false, 0},
- /* 78 */ {true, 15727611},
- /* 79 */ {true, 8236543},
- /* 80 */ {true, 15727611},
- /* 81 */ {true, 877336},
- /* 82 */ {true, 10396848},
- /* 83 */ {true, 9748581},
- /* 84 */ {true, 7031095},
- /* 85 */ {true, 10256206},
- /* 86 */ {true, 12613141},
- /* 87 */ {true, 7288372},
- /* 88 */ {true, 5521459},
- /* 89 */ {true, 9401925},
- /* 90 */ {true, 5704383},
- /* 91 */ {true, 12613141},
- /* 92 */ {true, 14994894},
- /* 93 */ {true, 9933715},
- /* 94 */ {true, 10523539},
- /* 95 */ {true, 16777215},
- /* 96 */ {true, 8281389},
- /* 97 */ {true, 8224125},
- /* 98 */ {true, 8026746},
- /* 99 */ {true, 9267795},
- /* 100 */ {true, 11937060},
- /* 101 */ {true, 7171178},
- /* 102 */ {true, 14348532},
- /* 103 */ {true, 9935140},
- /* 104 */ {false, 0},
- /* 105 */ {false, 0},
- /* 106 */ {true, 7303023},
- /* 107 */ {true, 10256206},
- /* 108 */ {true, 9593686},
- /* 109 */ {true, 8026746},
- /* 110 */ {true, 7299945},
- /* 111 */ {true, 7763574},
- /* 112 */ {true, 2889242},
- /* 113 */ {true, 2889242},
- /* 114 */ {true, 2889242},
- /* 115 */ {true, 6950430},
- /* 116 */ {true, 6766651},
- /* 117 */ {true, 6974058},
- /* 118 */ {true, 3618615},
- /* 119 */ {true, 788751},
- /* 120 */ {true, 5862752},
- /* 121 */ {true, 14540709},
- /* 122 */ {true, 788751},
- /* 123 */ {true, 4598554},
- /* 124 */ {true, 7821623},
- /* 125 */ {true, 10256206},
- /* 126 */ {true, 10256206},
- /* 127 */ {true, 9079872},
- /* 128 */ {true, 14340766},
- /* 129 */ {true, 7176308},
- /* 130 */ {true, 788751},
- /* 131 */ {false, 0},
- /* 132 */ {false, 0},
- /* 133 */ {true, 5364085},
- /* 134 */ {true, 6769966},
- /* 135 */ {true, 12825467},
- /* 136 */ {true, 10120781},
- /* 137 */ {true, 11700591},
- /* 138 */ {true, 7658967},
- /* 139 */ {true, 8026746},
- /* 140 */ {true, 7749939},
- /* 141 */ {true, 109328},
- /* 142 */ {true, 109328},
- /* 143 */ {false, 0},
- /* 144 */ {false, 0},
- /* 145 */ {true, 4209724},
- /* 146 */ {true, 10256206},
- /* 147 */ {true, 16378958},
- /* 148 */ {true, 14408667},
- /* 149 */ {true, 10262165},
- /* 150 */ {true, 10851732},
- /* 151 */ {true, 8549470},
- /* 152 */ {true, 11213577},
- /* 153 */ {true, 8213583},
- /* 154 */ {true, 3618615},
- /* 155 */ {true, 15526370},
- /* 156 */ {true, 15526370},
- /* 157 */ {true, 6837063},
- /* 158 */ {true, 6316128},
- /* 159 */ {true, 13742753},
- /* 160 */ {true, 16777215},
- /* 161 */ {true, 8882055},
- /* 162 */ {true, 10115904},
- /* 163 */ {true, 11098931},
- /* 164 */ {true, 4007698},
- /* 170 */ {true, 11045648},
- /* 171 */ {true, 14540253},
- /* 172 */ {true, 9854018},
- /* 173 */ {true, 1184274},
- /* 174 */ {true, 10863349},
- /* 175 */ {false, 0},
+ /* 0 */ {false, false, 0},
+ /* 1 */ {true, false, 8224125},
+ /* 2 */ {true, true, 9671571},
+ /* 3 */ {true, false, 8806467},
+ /* 4 */ {true, false, 8026746},
+ /* 5 */ {true, false, 10256206},
+ /* 6 */ {true, false, 4679205},
+ /* 7 */ {true, false, 5460819},
+ /* 8 */ {true, false, 3229684},
+ /* 9 */ {true, false, 3032052},
+ /* 10 */ {true, false, 13589267},
+ /* 11 */ {true, false, 13916690},
+ /* 12 */ {true, false, 14406560},
+ /* 13 */ {true, false, 8289402},
+ /* 14 */ {true, false, 9407356},
+ /* 15 */ {true, false, 8880766},
+ /* 16 */ {true, false, 7566195},
+ /* 17 */ {true, false, 10124621},
+ /* 18 */ {true, true, 8882055},
+ /* 19 */ {true, false, 11974201},
+ /* 20 */ {true, false, 14348532},
+ /* 21 */ {true, false, 6713478},
+ /* 22 */ {true, false, 2507657},
+ /* 23 */ {true, false, 6316128},
+ /* 24 */ {true, false, 14340766},
+ /* 25 */ {true, false, 6570802},
+ /* 26 */ {true, false, 9311766},
+ /* 27 */ {true, false, 8678472},
+ /* 28 */ {true, false, 7890265},
+ /* 29 */ {true, false, 6316128},
+ /* 30 */ {true, false, 14474460},
+ /* 31 */ {false, true, 0},
+ /* 32 */ {false, true, 0},
+ /* 33 */ {true, false, 6316128},
+ /* 34 */ {true, false, 10060121},
+ /* 35 */ {true, false, 14540253},
+ /* 36 */ {false, false, 0},
+ /* 37 */ {false, false, 0},
+ /* 38 */ {false, false, 0},
+ /* 39 */ {false, false, 0},
+ /* 40 */ {false, false, 0},
+ /* 41 */ {true, false, 16378958},
+ /* 42 */ {true, false, 14408667},
+ /* 43 */ {true, false, 10461087},
+ /* 44 */ {true, false, 10461087},
+ /* 45 */ {true, false, 9593686},
+ /* 46 */ {true, false, 8536367},
+ /* 47 */ {true, false, 10256206},
+ /* 48 */ {true, false, 6781287},
+ /* 49 */ {true, false, 1315357},
+ /* 50 */ {false, false, 0},
+ /* 51 */ {true, false, 13863989},
+ /* 52 */ {true, false, 1713969},
+ /* 53 */ {true, false, 10256206},
+ /* 54 */ {true, false, 10256206},
+ /* 55 */ {true, false, 11213577},
+ /* 56 */ {true, false, 8490127},
+ /* 57 */ {true, false, 6413269},
+ /* 58 */ {true, false, 7030570},
+ /* 59 */ {true, false, 45842},
+ /* 60 */ {true, false, 7555885},
+ /* 61 */ {true, false, 6316128},
+ /* 62 */ {true, false, 6316128},
+ /* 63 */ {false, false, 0},
+ /* 64 */ {true, false, 8807730},
+ /* 65 */ {false, false, 0},
+ /* 66 */ {true, false, 7957592},
+ /* 67 */ {true, false, 8026746},
+ /* 68 */ {false, false, 0},
+ /* 69 */ {false, false, 0},
+ /* 70 */ {true, false, 8224125},
+ /* 71 */ {true, false, 10724259},
+ /* 72 */ {true, false, 10256206},
+ /* 73 */ {true, false, 8678251},
+ /* 74 */ {true, false, 8678251},
+ /* 75 */ {true, false, 11213577},
+ /* 76 */ {true, false, 11213577},
+ /* 77 */ {false, false, 0},
+ /* 78 */ {true, false, 15727611},
+ /* 79 */ {true, false, 8236543},
+ /* 80 */ {true, false, 15727611},
+ /* 81 */ {true, false, 877336},
+ /* 82 */ {true, false, 10396848},
+ /* 83 */ {true, false, 9748581},
+ /* 84 */ {true, false, 7031095},
+ /* 85 */ {true, false, 10256206},
+ /* 86 */ {true, false, 12613141},
+ /* 87 */ {true, false, 7288372},
+ /* 88 */ {true, false, 5521459},
+ /* 89 */ {true, false, 9401925},
+ /* 90 */ {true, false, 5704383},
+ /* 91 */ {true, false, 12613141},
+ /* 92 */ {true, false, 14994894},
+ /* 93 */ {true, false, 9933715},
+ /* 94 */ {true, false, 10523539},
+ /* 95 */ {true, false, 16777215},
+ /* 96 */ {true, false, 8281389},
+ /* 97 */ {true, false, 8224125},
+ /* 98 */ {true, false, 8026746},
+ /* 99 */ {true, false, 9267795},
+ /* 100 */ {true, false, 11937060},
+ /* 101 */ {true, false, 7171178},
+ /* 102 */ {true, false, 14348532},
+ /* 103 */ {true, false, 9935140},
+ /* 104 */ {false, false, 0},
+ /* 105 */ {false, false, 0},
+ /* 106 */ {true, true, 7303023},
+ /* 107 */ {true, false, 10256206},
+ /* 108 */ {true, false, 9593686},
+ /* 109 */ {true, false, 8026746},
+ /* 110 */ {true, false, 7299945},
+ /* 111 */ {true, true, 7763574},
+ /* 112 */ {true, false, 2889242},
+ /* 113 */ {true, false, 2889242},
+ /* 114 */ {true, false, 2889242},
+ /* 115 */ {true, false, 6950430},
+ /* 116 */ {true, false, 6766651},
+ /* 117 */ {true, false, 6974058},
+ /* 118 */ {true, false, 3618615},
+ /* 119 */ {true, false, 788751},
+ /* 120 */ {true, false, 5862752},
+ /* 121 */ {true, false, 14540709},
+ /* 122 */ {true, false, 788751},
+ /* 123 */ {true, false, 4598554},
+ /* 124 */ {true, false, 7821623},
+ /* 125 */ {true, false, 10256206},
+ /* 126 */ {true, false, 10256206},
+ /* 127 */ {true, false, 9079872},
+ /* 128 */ {true, false, 14340766},
+ /* 129 */ {true, false, 7176308},
+ /* 130 */ {true, false, 788751},
+ /* 131 */ {false, false, 0},
+ /* 132 */ {false, false, 0},
+ /* 133 */ {true, false, 5364085},
+ /* 134 */ {true, false, 6769966},
+ /* 135 */ {true, false, 12825467},
+ /* 136 */ {true, false, 10120781},
+ /* 137 */ {true, false, 11700591},
+ /* 138 */ {true, false, 7658967},
+ /* 139 */ {true, false, 8026746},
+ /* 140 */ {true, false, 7749939},
+ /* 141 */ {true, false, 109328},
+ /* 142 */ {true, false, 109328},
+ /* 143 */ {false, false, 0},
+ /* 144 */ {false, false, 0},
+ /* 145 */ {true, false, 4209724},
+ /* 146 */ {true, false, 10256206},
+ /* 147 */ {true, false, 16378958},
+ /* 148 */ {true, false, 14408667},
+ /* 149 */ {true, false, 10262165},
+ /* 150 */ {true, false, 10851732},
+ /* 151 */ {true, false, 8549470},
+ /* 152 */ {true, false, 11213577},
+ /* 153 */ {true, false, 8213583},
+ /* 154 */ {true, false, 3618615},
+ /* 155 */ {true, false, 15526370},
+ /* 156 */ {true, false, 15526370},
+ /* 157 */ {true, false, 6837063},
+ /* 158 */ {true, false, 6316128},
+ /* 159 */ {true, false, 13742753},
+ /* 160 */ {true, false, 16777215},
+ /* 161 */ {true, true, 8882055},
+ /* 162 */ {true, true, 10115904},
+ /* 163 */ {true, true, 11098931},
+ /* 164 */ {true, true, 4007698},
+ /* 165 */ {false, false, 0},
+ /* 166 */ {false, false, 0},
+ /* 167 */ {false, false, 0},
+ /* 168 */ {false, false, 0},
+ /* 169 */ {false, false, 0},
+ /* 170 */ {true, true, 11045648},
+ /* 171 */ {true, false, 14540253},
+ /* 172 */ {true, false, 9854018},
+ /* 173 */ {true, false, 1184274},
+ /* 174 */ {true, false, 10863349},
+ /* 175 */ {false, false, 0},
};
}
diff --git a/src/World/BlockType.hpp b/src/World/BlockType.hpp
index d131487..5d2454c 100644
--- a/src/World/BlockType.hpp
+++ b/src/World/BlockType.hpp
@@ -33,6 +33,7 @@ namespace World {
struct BlockType {
bool opaque;
+ bool green;
uint32_t color;
};