* Pistons/Ice no longer need to FastSetBlock first (#4600), and the former don't drop items when broken in creative
- Begin migration away from stationary fluids
* Tick the chunk after applying a client's changed
* Broadcast pending blocks at the end of a tick
* WakeUp is for singular changes (block breaking for example). The simulator should check blocks around the position and discover other affected blocks as it sees fit
* AddBlock is for when you know a whole area is to be updated; chunk loading, or area wakeups for example
+ Prepares for correct handling of destroyed blocks after removal of SolidBlockHandler in the redstone simulator
Closes#4708
This updates jsoncpp, mbedtls, TCLAP and SQLiteCpp to their latest stable release. A few additional changes were needed:
* jsoncpp deprecated Reader, FastWriter and StyledWriter which I've replaced
with some helper functions in JsonUtils.cpp
* SQLiteCpp changed how it builds with external sqlite libraries, now expecting
them to be installed. The simplest path was to remove sqlite from cuberite's
submodule and just use SQLiteCpp's internal version.
* Falling blocks can now be spawned at any position.
* Added a /cake command to Debuggers that throws a cake in a nice slow arc.
* Fixed regular falling blocks.
The BlockID.h file was removed from Globals.h and renamed to BlockType.h (main change)
The BlockInfo.h file was removed from Globals.h (main change)
The ENUM_BLOCK_ID and ENUM_ITEM_ID enum names were replaced with ENUM_BLOCK_TYPE and ENUM_ITEM_TYPE (cosmetics)
The various enums, such as eDimension, eDamageType and eExplosionSource were moved from BlockType.h to Defines.h, together with the helper functions for converting between them and strings (StringToDimension et al.) (minor)
Many inline functions were moved from headers to their respective cpp files, so that BlockType.h could be included only into the cpp file, rather than the header.
That broke our tests a bit, since they pick bits and pieces out of the main code and provide stubs for the rest; they had to be re-stubbed and re-verified.
eMonsterType values are no longer tied to E_ITEM_SPAWN_EGG_META_* values
Closes#4236
CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/".
#include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
* Move Broadcast functions from cChunkMap to cBroadcaster
- Remove cBroadcastInterface in favour of cBroadcaster.
- cChunk: Remove broadcast functions.
* resurect broadcast interface
* Absorb cBroadcaster into cWorld.
Removes the need for forwarding the function calls.
* Improve const-correctness
* Use Int8 instead of char
+ Comment `ForClients` functions
* Improve comments
* Broadcaster: Rename ForClients functions
* Replaces AppendVPrintf with fmt::sprintf
* fmt::ArgList now used as a type safe alternative to varargs.
* Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu.
* Adds FLOG functions to log with fmt's native formatting style.