This restores compatibility with server version == 5.7.0.
The issue was caused by incorrectly assuming that the commit pointed
out by git-blame did introduce the "sound_use*" calls whereas it only
touched these lines without any functional change.
Introducing another check in between does correct this mistake.
Several mistakes were made past where the stream was expected to raise
the EOF flag when reaching the end of stream. That is incorrect. The
flag is only raised if the current read operation fails.
This commit unifies all istream compatibility code to use 'canRead'
for reliable EOF detection. An exception is now thrown when a
value cannot be read completely (e.g. missing bytes).
Version comments are added for easier backtracing.
* Fix `NodeDefManager::allocateId()` not terminating after overflow
* MapBlock::correctBlockNodeIds(): Do not ignore errors
Ignoring would lead to information loss, as the local ids were not translated, so they were
replaced by different nodes.
There is `ignore_world_load_errors` to ignore errors.
* Do not advertise without warning for ignore_world_load_errors
* implement 'core.scancode_to_keyname()' and use it to fix something
* fix whitespaces and fix another thing
* ._.
* lol
* rename to get_key_description
* add case for keybindings whose defaults are not bound
* apply y5nw's suggestions
* lmao I'm so dumb
When generating a new chunk, the chunk's liquid queue is processed immediately, instead of adding entries to the global liquid queue. Since the generated have not been sent to the client, this avoids sending duplicate blocks (that interfere with map sending) later when the global liquid queue is processed.
We discovered that the new font versions now rely on the GPOS
table for kerning. However bare freetype (as used by CGUITTFont)
doesn't read this data. This caused kerning for these fonts to
stop working.
The new files were generated by opening the fonts in FontForge
and immediately exporting them again in TrueType format after
enabling Options -> OpenType -> Old style 'kern'.
No other changes made.
1) Add `node` and `node_pos` field for the `drown` field (analog to `node_damage` type)
2) Add `custom_type` field to allow a standardized way to report more details of the HP change
3) Make `builtin` report a `custom_type` for the HP changes caused by the `/kill` command and `core.do_item_eat`
4) Move the documentation of `PlayerHPChangeReason` to its own section
5) Fill in missing information of said documentation