0
Commit Graph

210 Commits

Author SHA1 Message Date
Nicolas F
c34be9ca67 world: add __lt__ method to RegionSet
So turns out genPOI wants to use sorted() so it can use itertools.groupby.

Python 2 somehow just... sorted objects so that groupby (which is basically
the UNIX uniq) could group them properly. Python 3 no longer does this,
so as comparison method let's just compare regiondir strings since that
gives us the desired result.

Fixes #1597.
2019-06-25 19:19:28 +02:00
Andrew Chin
c78b17f6a7 Fix for reading worlds from local dir 2019-06-21 23:35:33 -04:00
Aaron Griffith
248ea42dd2 Merge branch 'master' into python3-fun-times 2019-06-21 22:08:58 -04:00
Nicolas F
f1c7ab93f1 world: remove lit chunk check
Apparently not even chunks of that data version can be relied upon
to have that flag mean anything at all, as the --forceUpgrade and
--eraseCache switches result in a world where chunks are flagged
as not being lit but seemingly do have SkyLight and BlockLight keys.

Concerns #1570.
2019-05-05 15:17:43 +02:00
Nicolas F
9479ac59b4 world: make the chunk populated code even uglier
Fixes #1568.
Fixes #1566.
2019-05-03 15:13:18 +02:00
Nicolas F
c77fcc5fb3 world: fix snowy grass check
pro tip: 'false' == True.
2019-04-30 21:08:00 +02:00
Nicolas F
0d10211d1b world: fix rendering of 1.13 worlds
Fixes #1563.
2019-04-30 19:41:35 +02:00
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
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
6a1906445c world: space comments correctly 2019-04-07 20:23:32 +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
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
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
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
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
Aaron Griffith
28f924621b do block state unpacking with numpy slices, not loops
For posterity, my testbench used to make sure this implementation
yields identical results:

https://gist.github.com/agrif/a34efb8e0b534f0309415c9af4872a69
2019-02-22 12:11:37 -05:00
Aaron Griffith
53fa463838 block states with 9, 10, 11, and 12 bits per value now unpack correctly
old code mistakenly re-used byte 0 for every aligned stretch of blocks,
causing the wrong block id to be read
2019-02-21 19:28:32 -05:00
James Miller
72c8a1dbd8 trapdoor orientation
non-oak trapdoors
dried kelp blocks
2018-12-16 05:17:19 -08:00
James Miller
2b2ad76c81 non-oak buttons
buttons on top of blocks
2018-12-16 03:33:38 -08:00
James Miller
ce78ffe008 bone block orientation
smooth stone blocks
coral and dead coral blocks
blue ice
2018-12-16 00:44:09 -08:00
James Miller
9200278f2f Wood and stripped wood 2018-12-15 00:51:27 -08:00
James Miller
be80775bf2 Stripped logs 2018-12-15 00:14:28 -08:00
James Miller
446916540a non-oak pressure plates 2018-12-14 23:40:21 -08:00
James Miller
b282bec2cf Uncarved pumpkin textures 2018-12-14 23:08:33 -08:00
James Miller
39c006886d One more infested block 2018-12-12 23:24:00 -08:00
James Miller
a99ff9ea37 Fix light grey terracotta and glazed terracotta orientation. 2018-12-12 00:38:43 -08:00
James Miller
b85a954e96 When adding quartz pillar orientation, I assumed the top orientation was correct, when it was actually the side.
see: https://github.com/overviewer/Minecraft-Overviewer/pull/1502
2018-12-12 00:06:49 -08:00
James Miller
39812d84ac Added note blocks, carved pumkin, non-oak pressure plates (oak texture), more infested stone bricks and melons. 2018-12-11 20:18:08 -08:00
James Miller
217a896e28 Adds chiseled quartz and quartz pillars 2018-12-09 23:35:00 -08:00
James Miller
a80ed53231 Adding mappings for damaged anvils. Add handling for sign and anvil orientation. 2018-12-09 21:30:31 -08:00
James Miller
4bea454970 Potted plants still not rendering, but I figure this is better than an error message. 2018-12-09 04:45:39 -08:00
James Miller
342a53d67d Fixes big mushrooms 2018-12-09 03:55:14 -08:00
James Miller
57578eab7a Fixing handling of torches/redstone torches on walls 2018-12-09 02:00:12 -08:00
RedSparr0w
1428bf150c remove print 2018-09-22 15:40:24 +12:00
Danial Nickford
dec61e5763 furnace orientation 2018-09-21 09:47:27 +12:00
Danial Nickford
50909270fe dispenser, dropper orientation 2018-09-21 09:47:13 +12:00