The algorithm was designed so All portals must be facing the center, no matter which block had the eye inserted in last.
Note: Still need to create a block entity so that portals don't become invisible when you relog.
Addresses part of #3445Fixes#3695
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.
* Replace cWorld::FindClosesPlayer with cWorld::DoWithClosestPlayer
* Implement experience reward splitting into the orb sizes used in vanilla
* Modified speed calculation in cExpOrb::Tick to make the orbs fly towards the player
Fixes#4216
* 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
* Fixes a number of "<function>: not all control paths return a value" warnings on MSVC.
* Introduces the UNREACHABLE global macro and uses it instead of conditionally compiled switch defaults.
* Move cNBTParseErrorCategory from FastNBT.h into FastNBT.cpp to prevent bad calls to message()
* Add hand parameter to distinguish main hand/off hand.
* Add a new function cClientHandle::HandleUseItem to separate the functionality of using an item without a target block. This matches the protocol with client version >= 1.9
* Always actively update the status of a block if the placement fails (by out of reach or rejected by plugin).
* Do not call plugin callback CallHookPlayerRightClick(-1, 255, -1, -1, 0, 0, 0) when using item.
The CallHookPlayerUsingItem will still be called.
Now at most one of CallHookPlayerRightClick, CallHookPlayerUsingBlock,
CallHookPlayerUsingItem and CallHookPlayerEating will be called based on
the type of action (not including the used version of callbacks).
* Do not count using item as BlockInteractionsRate check (Using item takes time).
* Now we can open chests(etc.) when sneaking as long as the player's hand is empty.
This is what vanilla server does.
* 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.
Adds a block handler for concrete powder and implements hardening to concrete.
Concrete powder turns into concrete when:
* It is next to water when it receives a block update
* It falls onto a water block (even with Physics SandInstantFall=1)
* Uses vanilla logic to decide which blocks rain falls through.
* Rain falls infinitely above the world, and stops at y=0.
* Entities will now be extinguished if they are under rain-blocking
blocks, and fire will now be extinguished by rain similarly.
* Create IsWeatherWetAtXYZ to identify wetness at a particular location.
* Use new code for enderman rain detection.
* Fixes issue #916
* Disable warnings for global constructors in the fire simulator.
* Made BroadcastSoundEffect take vector parameters.
* Added docs for new vectored methods
* Removed old code
* Fixed lua warnings
* Made old BroadcastSoundEffect not an override.
* m_Block to m_BlockPos, used Vector3d constructor where prettier.
* a_Block to a_BlockPos
* Changed thunderbolt a_Block to a_BlockPos
* Threaded world interface into ConvertBlockToPickups
* Changed how cBlockPiston::PushBlocks sets the old block to air, so that the block exists for the DropBlock call.
* Removed unused a_Digger argument.
* Removed incorrect comment
* This time actually removed a_Digger references.
* Check for intersection between placed blocks and entities.
+ Implemented GetPlacementCollisionBox, to permit custom placement collision boxes for blocks.
* Factored block-entity placement checking into another function in cPlayer.
- Removed vector min/max functions
* Use GetWorld to get the world in DoesPlacingBlocksIntersectEntity.
+ Added block height checks, allow different cEntity subclasses to decide whether they will prevent block placement.