0
Commit Graph

1535 Commits

Author SHA1 Message Date
Nicolas F
0004540a57 world: only render fully formed and lit chunks
Minecraft notes various stages of fetal development that chunks are
in, with the complete ones being "full". Previously, we'd check
against a list of states that are not full to skip a chunk, which
is obviously not future proof, and broke as Mojang updated their
possible range of values for the status field. It's better to
just bail if the status is anything other than "full".

Additionally, a key called "isLightOn" is in the chunk now. This
seemingly determines whether a chunk has been lit. We're also going
to check for this, and bail if it's not. In my tests, I have not yet
seen a single "full" chunk that does not have "isLightOn" set.

Fixes #1558.
2019-04-28 13:41:17 +02:00
Nicolas F
3fc97d131e Add fletching, cartography and smithing tables 2019-04-28 12:55:14 +02:00
InrcedibleHolg
702e4e9e8b added new 1.14 slabs, referencing issue #1560 2019-04-28 10:48:57 +02:00
Nicolas F
e25557d257 textures: fix stone slabs for 1.14 2019-04-26 04:11:20 +02:00
Nicolas F
8760b040c6 world: ignore poi directory in world dir
This is a new directory added in 1.14 which contains .mca files too.

Since we scan for directories with .mca files to use as RegionSets,
and we don't know how to handle these, just skip them.

Fixes some warnings during rendering.
2019-04-23 14:03:25 +02:00
Nicolas F
bc322fa3e4 world: fix for chunk parsing for 1.14
If there's missing light data, just make up some with an empty array.
2019-04-23 14:03:25 +02:00
Nicolas F
6f680aa287 Revert "web: fix goToHash on layer change"
This reverts commit 2186d08c32.

Fixes #1553.
2019-04-21 18:02:19 +02:00
Ben Steadman
8bd731fde1 decode Popen stdout bytes to utf-8 2019-04-20 10:36:53 +01:00
Nicolas F
134d6063bf primitives: misc char -> short fixes 2019-04-07 20:25:53 +02:00
Nicolas F
6a1906445c world: space comments correctly 2019-04-07 20:23:32 +02:00
Nicolas F
bd40aeda3d textures: set prismarine slabs to transparent
This fixes upper slabs removing the block below them.
2019-04-07 20:21:45 +02:00
InrcedibleHolg
f1dd70bdec reorder code in world.py 2019-04-07 19:21:12 +02:00
InrcedibleHolg
abc4a858ff double slab fix 2019-04-07 19:21:12 +02:00
InrcedibleHolg
c34638d26d activated red_sandstone_slab, for only half implemented 2019-04-07 08:21:13 +02:00
InrcedibleHolg
8529cc90bd fix upper/lower slab issue for more slab types 2019-04-07 08:05:22 +02:00
InrcedibleHolg
5df95be17a added: prismarine_brick_stairs, prismarine_slab, dark_prismarine_slab, prismarine_brick_slab 2019-04-06 21:56:30 +02:00
Nicolas F
1ab66dddea fix prismarine stairs
Sorry for the noise in mc_id.h, but somebody decided they want DOS
line endings and I couldn't allow that to happen. When not doing that
put the whole thing into diff, I decided to just fix the indentation
too while I was at it.

Needed bugfixing of some overlooked unsigned char usages for block IDs,
as otherwise the lighting would be scuffed.

Concerns issue #1486.
2019-03-31 19:20:10 +02:00
aheadley
2186d08c32 web: fix goToHash on layer change
Fixes #1548.
2019-03-28 16:07:30 +01:00
Nicolas F
f93bc28230 world: fix stair orientations
Concerns issue #1486.

Inner/outer corners apparently have their data from ancil data instead
of Minecraft's stuff, so we might need to fix that in the future.
2019-03-28 16:02:53 +01:00
Nicolas F
79754b367c world: bandaid fix for double stone brick slabs
This code badly needs a rewrite, we're just altering code path and
data all over the place and this isn't okay.
2019-03-25 21:42:08 +01:00
InrcedibleHolg
37dd1bc56c added cut_red_sandstone and chiseled_red_sandstone 2019-03-24 20:12:24 +01:00
Nicolas F
dc7d1cd208 genPOI: replace optparse with argparse
Maybe one day we'll use actual subparsers but today is not that day.
2019-03-22 17:10:52 +01:00
Wunkolo
4b0b50f215 Implement style fixes 2019-03-18 14:04:36 -07:00
Nicolas F
11aa232141 genPOI: port to Python 3
There's some stuff left to do, like properly do the functools.partial
stuff, and check that the uuidcache is actually working. But hey,
player markers work at least, and so does --skip-scan.

Still needs a port to argparse though.
2019-03-18 19:45:22 +01:00
Wunkolo
62dcfab7a0 Fix block_class_is_subset linkage 2019-03-17 20:21:03 -07:00
Wunkolo
121b0d96ab Increment extension version 2019-03-17 18:48:06 -07:00
Wunkolo
26bd4d120a Fix implicit declaration 2019-03-17 18:46:45 -07:00
Wunkolo
1271772aa1 Collapse special case logic to block_class_is_subset
Thanks demorgan's law
2019-03-17 18:02:44 -07:00
Wunkolo
5ff6a6400e Convert case switch to block_class_is_subset 2019-03-17 17:57:18 -07:00
Wunkolo
ee9a3411ba block_class_is_subset implementation pass 2019-03-17 17:33:30 -07:00
Wunkolo
2c3d54ea5d Implement block_class header 2019-03-17 15:09:33 -07:00
Wunkolo
eb9d6a98e5 Increment overviewer extension version 2019-03-17 12:05:32 -07:00
Nicolas F
0072eae3f0 world: fix reading old biomes
Some older maps store biomes differently, and we should use this as
a bytes object, not a str object.
2019-03-17 18:13:26 +01:00
Nicolas F
e348a548b6 Initial Python 3 port
Many things work, some don't. Notably, genPOI doesn't work, and
there's some signedness comparison stuff going on in the C extension.

This also completely drops support for Python 2, as maintaining a C
extension for both Python 2 and 3 is a pain and not worth it for the
9 months that Python 2 is still going to be supported upstream.

The documentation needs to be adjusted as well.

All of the few tests we have pass, and rendering a map works, both
with a configuration file and without. We can also use optimizeimages.

Concerns #1528.
2019-03-17 17:57:07 +01:00
Wunkolo
50f12827f5 Block ID enum pass 2019-03-16 22:42:08 -07:00
Wunkolo
4d4df31ece Block ID to mc_id replacement pass 2019-03-16 21:15:08 -07:00
Wunkolo
7e97544f4d First pass mc_id enum implementation 2019-03-16 20:21:44 -07:00
Nicolas F
99eebd5b69 world: fix potatoes and carrots growth stages
Concerns #1486

Also get rid of an obviously broken leftover wheat elif.
2019-03-16 17:47:49 +01:00
Nicolas F
f7ab92917f world: fix seed growth stages
Concerns #1486
2019-03-16 17:40:05 +01:00
Nicolas F
061406ca55 world: fix mossy cobblestone block/wall rendering
Concerns #1486

I need some high-proof alcohol.
2019-03-16 17:07:35 +01:00
Nicolas F
dd6e69189f world: fix petrified_oak_slab rendering
Concerns #1486
2019-03-16 16:50:15 +01:00
Nicolas F
6aaf680c8c settingsValidators: fix code style, adjust strings
Some absolute thonkers in here like two-spaces indent code. Yikes
my man.
2019-03-15 16:48:08 +01:00
Jeroen Smienk
84938213dd Simplified finding spawn Y
Simplified finding the first air block above saved spawn Y by removing the function and looping through the sections once.
2019-03-11 14:52:29 +01:00
Nicolas F
c9b506a58c genPOI: fix code style
One code style error can't really be fixed because despite
has_key being deprecated, "in" doesn't work on "super" for objects
that derive from dict, at least not in Python 2.7. Thanks Guido.

Also, I don't know which one of you it is that keeps putting semicolons
at the end of your statements but you seriously need to stop.
2019-03-10 18:05:32 +01:00
Nicolas F
a551795969 optimizeimages: fix code style 2019-03-07 15:50:59 +01:00
Nicolas F
ec63aa55b6 util: fix code style 2019-03-07 15:49:37 +01:00
Nicolas F
fc88572aa3 cache: fix code style 2019-03-07 15:43:01 +01:00
Nicolas F
94aa49019c logger: code style fixes 2019-03-07 15:33:28 +01:00
Nicolas F
61ebd35240 Add WebP image format support
Since Firefox 65 added support for WebP, users may be interested
in having maps that use WebP images. Support for this is added in
this commit, along with documentation for it.

A new option, "imglossless", controls whether we write out lossless
or lossy WebP images. The generic name "imglossless" as opposed to
a more specific "webplossless" was chosen in case future image
formats we also implement also support lossless/lossy modes in the
same format (JPEG-XL? AV1 image format?).

It's an okay meme but lossy mode really falls apart on our sorts
of images on the more zoomed out composite tiles, resulting in
pretty blurry messes. Might be due to a PSNR bias in the encoder,
which is to be expected from Google.
2019-03-04 17:04:09 +01:00
Nicolas F
7f63dfe315 tileset: drastic code style fixes
We've also added a setup.cfg to specify what rules we want for
pycodestyle. We'll be ignoring some dumb ones that make no sense
and probably shouldn't exist, like both W503 and W504 being an
issue somehow???????

We're using a line length limit of 100. If you're on an 80 character
terminal and incredibly upset about this, then that's the nursing
home staff's problem, not ours.
2019-03-03 16:47:35 +01:00