0
Commit Graph

1251 Commits

Author SHA1 Message Date
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
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
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
Nicolas F
846b7ab8f8 nbt: code style fixes
We're ignoring E221 and E741 since I disagree with them; I think extra
whitespace around operators to align repeated operations can aid
readability and help spot bugs.

This was mostly whitespace issues, e.g. trailing whitespace and
a single space on blank lines.
2019-03-02 15:47:13 +01:00
Nicolas F
336850ea04 observer: drastic code style fixes
I've used pycodestyle to find pep8 violations, and isort to fix import
sorting.

Currently we're looking at a max line length of 80, but I think we may
want to raise this to 100 because 80 is a pain in the butt.
2019-03-02 15:32:25 +01:00
Nicolas F
715b3a2d43 progressbar: actually flush the fd on update
A young software tinkerer from Switzerland noticed an issue with
an application he was working on one day. The progress bar it
was rendering only updated very rarely. This perplexed the teenager,
but never bugged him enough to investigate further. Nobody else seemed
to notice this, so maybe it was his system?

Fast forward a few years. The young man is now a 24 year old fully
grown manchild. The progress bar was still updating only very rarely.
On this rainy afternoon, the tinkerer had nothing else to do than
finally get to the bottom of this perplexing behaviour.

Much investigating was done. Did the Observer have a logic bug? No,
if we check in the update function by appending a line to a file,
we can see that it works properly. Besides, the logic of this piece
of code surely hasn't been changed for years.

Did maxvalue get set to 100 instead of the number of tiles? No, it
correctly overrode the right method to not just set max_value but
also maxvalue. (Great naming there, aheadley.)

Was it the polymorphic inheritance causing issues then? No, even the
parent class correctly behaved in its update function. Well, almost.
That is when the developer came upon a shocking revelation. His hands
trempled as his fingers moved across the laptop's keyboard, nearly
accidentally entering the "nuclear missile launch" mode in Kate's
Vi-Input editing. The developer added one line to the file.

self.fd.flush()

The progress bar finally worked as intended.
2019-03-01 14:36:28 +01:00
Nicolas F
311d3eacc2 web: add layer fallback to goToHash
With the changes to things being indexed by path instead of name,
old hashes would stop working. To make this a bit less jarring, we
can fall back to the default tileset of a world, which means the
map would still load.
2019-02-28 13:37:19 +01:00
Nicolas F
b57db703ae web: fix overlays showing up for all base layers
Overlays should only show up for the base layers they apply to,
however, we've had them show up for all base layers in a world.

To fix this, we first change things to be indexed by the unique path,
not the human-readable name (which is not supposed to be always unique).

Then, we remove and add overlay layers to the layerCtrl as needed on a
baselayerchange event.
2019-02-27 14:22:18 +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
Nicolas F
b70f1a012f Fix C extension build warnings the painful way
Some bad distributions (Debian) apparently are not good enough to
have a Pillow version from this decade packaged.

Therefore, we need to do it the painful way of prefixing our
symbols and refactoring everything to use them.

A new header file called "utils.h" has been added for this purpose,
and it is included in "overviewer.h".

The following macros have been prefixed with "OV_":
- MIN
- MAX
- CLAMP
- BLEND
- MULDIV255

Additionally, the C extension version was bumped to 56 because 55
was reverted back to 54.
2019-02-22 12:53:47 +01: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
Aaron Griffith
fc4a8ec38d Revert "Fix C extension build warnings"
This reverts commit 03a8697866.

Turns out there was a good reason for this: it makes Overviewer work on
Debian. Why? Who knows. It's a mystery.
2019-02-21 17:08:39 -05:00
Aaron Griffith
509bce77d6 Merge 'jvaskonen/minecraft113' and 'jvaskonen/pillar' into master 2019-02-21 16:30:34 -05:00
Nicolas F
bc71ad7a8f web: fix white rectangle behind markers 2019-02-21 18:25:50 +01:00
Nicolas F
23f8cbd330 web: reimplement marker groups default checking
Now you can use checked=True again!

Fixes #1474.
2019-02-21 17:24:08 +01:00
Nicolas F
03a8697866 Fix C extension build warnings
Today in "why did we ever do this?", we discover we've vendored
code from PIL/Pillow, but PIL/Pillow moved some macro definitions
around, so now our vendored code conflicted with their macros that
they included in the headers we're including.

The solution is to throw out our vendored macros and update the
semantics in our vendored Draw.c. I'm not sure why we vendored it,
but we seemingly did remove some stuff from it to avoid having to
pull in all of PIL/Pillow.
2019-02-21 16:27:55 +01:00
Nicolas F
a05daa7519 Merge pull request #1510 from 14mRh4X0r/fix-icon-offset
Fix marker icon position properly. Closes #1481.
2019-02-21 15:59:14 +01:00
Aaron Griffith
1e4cabe5d0 Merge branch 'master' into minecraft113 2019-02-19 14:28:34 -05:00
Willem Mulder
ad5c419546 Fix marker icon position properly. Closes #1481.
CSS margin is always relative to the containing element. For some
reason, using the browser inspector, this does not get propagated
properly. Adding a containing element with the size of the child element
allows us to use margin to offset the icon.
2019-01-23 21:13:59 +01:00
Marc Tönsing
3727f0407a removed strong tags in coordination box
This fixes navigation not working on iOS Safari on iPad and iPhone.
2019-01-10 23:22:27 +01: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
43122d5dfa Fixing top textures of non-vertically oriented quartz pillars. 2018-12-11 23:51:56 -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