Commit graph

45 commits

Author SHA1 Message Date
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
d9af9cbc9d
Catch normal runtime errors instead of exiting with SIGABRT 2019-12-14 22:16:41 +01:00
0bdf249307
Add biome color computation
Rather than using fixed values for all biomes, generate grass and foliage
colors based on (height-dependent) temperature and rainfall parameters.

This changes a lot of colors; in general, the new colors should be closer
to the actual Minecraft rendering. It also fixes a few colors that were
completely off (like in the badlands biomes) and adds the MC 1.13 biomes
(which were rendered in black).

Some of the newer biomes (warm/cold/... oceans) don't have proper
parameters yet, and we do not derive the water color from the biome yet.

Fixes #1.
2018-11-08 17:49:28 +01:00
a3246d98c0
Adjust for minor API differences on Windows 2018-07-26 23:18:56 +02:00
de04cce993
World/Block: return colors as struct instead of uint32_t
Gets rid of a useless byte switch, and removes the arpa/inet.h include,
which is not available on Windows.
2018-07-26 23:18:55 +02:00
4e3a9736b6
World/Block: remove useless blockLight accessor 2018-07-22 16:59:18 +02:00
c082c8800c
Separate splitting of regions into chunks and actual parsing of chunk structure 2018-07-20 23:49:51 +02:00
292f4f4f3b
Don't rely on utimensat()
utimensat() does not work on all filesystems, in particular on Windows.
2017-06-13 16:39:17 +02:00
1e14dabc2d Fix definition of timespec >= operator 2015-02-06 23:06:11 +01:00
d73c8b930b Include cleanup
Also remove all uses of unistd.h by replacing unlink with std::rename
2015-02-06 19:51:20 +01:00
fb81ea7d60 Make light layer darker 2015-02-06 17:56:59 +01:00
e4b1919ba8 Use heap memory for image buffers 2015-02-04 09:00:34 +01:00
4d9f29afab Add mipmap support to allow zooming out 2015-02-03 20:15:58 +01:00
0162c236fa Nicer timespec operations 2015-02-03 18:39:58 +01:00
45a1915006 Refactor image creation 2015-02-03 15:02:21 +01:00
0bd8e211e2 Also unlink light tmpfile on errors 2015-02-03 14:19:19 +01:00
9e0bbcf685 Generate light layer 2015-02-03 13:13:12 +01:00
e1b3347da5 Start mipmapping infrastructure 2015-02-03 12:42:33 +01:00
1d3db43d29 Refactor PNG writing 2015-02-02 19:29:37 +01:00
b46c5de3ac Free PNG structs after writing 2015-02-02 18:52:33 +01:00
34857eabbc Add spawn coordinates 2015-02-02 18:33:21 +01:00
db59b73856 Refactor info generation 2015-02-02 17:56:43 +01:00
fd4ce45885 Generate info file 2015-02-02 05:13:07 +01:00
8bdbfd3ec0 Factor out filename check 2015-02-02 04:47:40 +01:00
213124ec57 Output "normal" messages to stdout
This makes it easier to filter for the errors
2015-02-02 03:53:49 +01:00
75671b4b96 Catch exceptions for single regions 2015-02-02 03:38:49 +01:00
a3d6648fa6 Workaround for old libraries without regex support 2015-02-02 03:33:43 +01:00
bedd81dce6 Don't explicitly include setjmp
libpng does this for us.
2015-02-02 03:20:25 +01:00
58adcc4c15 Skip unchanged regions 2015-02-02 03:06:22 +01:00
248b9e319d Convert all regions with one call 2015-02-02 02:25:56 +01:00
8db3a5b94f Use DIM constant as PNG dimension 2015-02-02 01:47:16 +01:00
8c1629af42 Change region reader to a visitor pattern
Not keeping the whole region in memory reduces the needed space
to less than 5MB (from about 140).
2015-02-02 01:41:17 +01:00
22b9cfcb8b Move ressource files to a separate directory 2015-02-02 00:31:52 +01:00
9b1d92387d Use biome data 2015-02-01 15:19:18 +01:00
143b9f6c78 Add support for biome colors, fix block type indices 2015-02-01 15:10:07 +01:00
8b09f6f4ec Handle lighting and depth 2015-02-01 14:02:04 +01:00
d26fe3d9f8 Write PNG files
No biome colors or light levels yet...
2015-02-01 11:58:50 +01:00
cd45c4009c Compute top non-air layer
This doesn't yet ignore non-opaque blocks.
2015-02-01 07:47:22 +01:00
fc1fc8fbbc Use template argument for list subtype, extract further information from chunks 2015-02-01 03:21:57 +01:00
a6a2a62812 More convenient tag access 2015-02-01 01:38:20 +01:00
cbe6461882 Implement most of the chunk format 2015-02-01 00:27:01 +01:00
1e74afda41 Initial commit 2015-01-31 15:07:47 +01:00