Commit graph

338 commits

Author SHA1 Message Date
d4be401bcd
Resource: Biome: fix integer underflow
Explicitly cast height value to signed integer to fix incorrect biome color
values below a height of 64.
2021-12-11 22:28:22 +01:00
fd4773c8ca
treewide: replace license headers with SPDX-License-Identifier 2021-11-17 12:07:56 +01:00
38d8bd0738
Chunk: replace withDepth argument with extensible flags field 2021-08-24 21:03:18 +02:00
fdce587c74
build: update to modern CMake, use pkg-config for zlib and libpng
Starting with CMake 3.7, we can avoid dealing with individual variables
for include dirs, libraries, ... for dependencies found using
pkg-config, and instead just reference them using an imported target.
2021-08-24 13:14:48 +02:00
73e5c12cde
Rename .inc files to .inc.cpp for better language detection by editors and Github 2021-06-25 19:43:14 +02:00
af1afc3315 Biome: add Dripstone Caves and Lush Caves
Temperature and downfall values were taken from the Caves & Cliffs: Part II
Preview datapack.
2021-06-24 19:28:25 +02:00
0a42605a2b Add Minecraft 1.17 block types, update all color values 2021-06-24 19:28:25 +02:00
9ac3b00b6e
Make region iteration more efficient for sparse worlds
Do not iterate over each region coordinate in the bounding box.

Closes #12
2021-02-13 11:06:30 +01:00
c06af49068
Info: restructure mipmap level data structure 2021-02-13 11:06:30 +01:00
cbc4a946c6
Info: rename mipmap "info" key to "bounds" 2021-02-13 11:06:30 +01:00
d2802b73f5
Info: make tile existence map mor efficient for sparse worlds
Explicitly list the coordinates where tiles exist instead of including a
full array with the size of the bounding box.
2021-02-13 11:06:21 +01:00
0ebc895ec0
Info: print concise JSON
Reduce size by removing pretty-printing
2021-02-13 10:20:19 +01:00
Aaron Webster
367078178f
Change BlockType from struct to class
Fixes the -Wmismatched-tags compilation warning.
2020-09-16 18:14:09 -07:00
3ec83c8cf8
Compare file contents with old data before writing
Do not writeoutput files when their content hasn't changed. This saves
time for incremental generation (as compressing a PNG takes much longer
than decompressing it) and avoids modification timestamp updates that
might trigger subsequent generation steps.
2020-06-20 15:01:52 +02:00
ef69a34034
PNG: export format byte count 2020-06-20 15:01:09 +02:00
98e21236d9
Do not generate light data for invisible blocks 2020-06-20 14:48:26 +02:00
03ae9cf302
Exclude unpopulated chunks from biome averaging
Avoids weirdly colored stripes at the edges of the map.
2020-06-20 12:17:24 +02:00
eb831608e0
Add smooth transitions between biomes
Simliar to the way biome transitions are rendered in Minecraft itself,
add smoothing by averaging biome-based colors over all biome values with
distance ≤3 (1-norm).
2020-06-20 12:15:32 +02:00
623d70ec9e
More preparation for biome smoothing 2020-06-20 11:40:29 +02:00
19ef022a67
Biome: return FloatColor for block colors 2020-06-20 11:40:29 +02:00
50f798f89e
Do not store biome in block structure
Use biome data from biome map.
2020-06-20 11:40:29 +02:00
a3cf5edda4
Read biome maps when iterating regions 2020-06-20 11:40:29 +02:00
072d664199
Separate top layer search from block data retrieval 2020-06-20 11:40:29 +02:00
569d0f1198
Pass region indices as int instead of size_t
Region indices can be negative.
2020-06-20 11:40:29 +02:00
4f7663f82f
Merge doRegion{,Biome}() into makeBiome()/makeMap() 2020-06-20 11:40:27 +02:00
2f0d1892f4
Split getModTime() out of checkRegion() 2020-06-20 00:58:08 +02:00
f539d668eb
Collect biome data
We store the biome data as grayscale images, as biome indices are
represented as bytes and we get PNG compression for free.
2020-06-20 00:58:08 +02:00
dc97c4a8c1
PNG: add support for grayscale images without alpha 2020-06-20 00:58:08 +02:00
4f49434dbf
Clean up doLevel() 2020-06-19 20:06:44 +02:00
0245c5c926
Add message before updating mipmaps 2020-06-19 19:09:40 +02:00
5946d19629
Biome: add biome-specific water colors
Also fix default and swamp water colors.
2020-06-19 01:21:35 +02:00
685a4959f1
Add correct foliage colors for birch and spruce 2020-06-19 00:00:30 +02:00
ef4b6eac02
BlockType: replace list of booleans with flags bitfield 2020-06-18 23:38:21 +02:00
446e74791f
Add Minecraft 1.16 biomes
These are Nether biomes. We still add them for completeness.
2020-06-18 23:18:11 +02:00
985eb18e52
Update temperature values for 1.15 ocean biomes 2020-06-18 23:11:34 +02:00
a47b34de0d
Add block types for Minecraft 1.16 (rc1) 2020-06-18 22:57:38 +02:00
7a99a19998
Section: implement new Minecraft 1.16 block state format 2020-06-18 22:57:38 +02:00
58f19e50b2
Region: allow the last 4096 byte block to be incomplete 2019-12-14 23:19:09 +01:00
f0c08f78e0
GZip: improve file open error message 2019-12-14 22:19:34 +01:00
d9af9cbc9d
Catch normal runtime errors instead of exiting with SIGABRT 2019-12-14 22:16:41 +01:00
1f10707733
Chunk: add support for Minecraft 1.15 biome map 2019-12-11 21:37:00 +01:00
466f393d26
NBT: unify API of different array types 2019-12-11 21:02:51 +01:00
c313db2994
Add block types for Minecraft 1.15 2019-12-10 23:47:34 +01:00
54932b3747
build: add install command 2019-08-28 21:00:17 +02:00
f58677b7f0
GZip: remove useless move
This was causing a compiler warning with GCC 9.
2019-08-28 20:57:40 +02:00
ae68c3bab4
Add quirk for stone_slab rename
The old stone_slab block from pre-1.14 has been renamed to
smooth_stone_slab, and the name stone_slab was reused for a new block.
Resolve the palette entry depending on the chunk's dataVersion.
2019-05-25 19:51:28 +02:00
359ace4932
Update block types for Minecraft 1.14
Based-on-patch-by: Roman Shishkin <spark@uwtech.org>
2019-05-25 18:55:29 +02:00
fb097cbb79
Chunk: allow Chunks with empty Sections tag 2019-05-25 18:55:29 +02:00
3c92f58110
Section: allow empty sections 2019-05-25 18:55:29 +02:00
Roman Shishkin
b8d6b905bf
Add new 1.14 biomes 2019-05-25 16:41:46 +02:00