* LINUX doesn't exist apparently, use UNIX instead
+ Add some platform-specific logic to determine whether to use mcpu or march
- Remove duplicated compile option comments
+ Add STATUS level to messages
* End crystal placement
* End crystal placement - fixed error and added some comments
* Removed unused includes
* Update src/Items/ItemEndCrystal.h
Co-authored-by: Alexander Harkness <me@bearbin.net>
* End Crystal placement, early-return pattern enforcement
* End crystal Item finish?
* Small changes
Fixed a crashbug in ender crystal destruction.
According to vanilla 1.16 testing, end crystals don't place if any entity intersects the box, not just other end crystals.
Check return value of SpawnEnderCrystal.
Add header in SeeMake.
Cafe Stile Redux.
* The stylechecker relies on CMakeLists
* There is another
Co-authored-by: Alexander Harkness <me@bearbin.net>
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
First one: add missing exception handler in ProcessProtocolIn
Second: remove faulty logic dealing with incomplete packets.
`a_Data = a_Data.substr(m_Buffer.GetUsedSpace() - m_Buffer.GetReadableSpace());`
was incorrect; it attempted to apply a length derived from m_Buffer to an unrelated a_Data. Its purpose was to give cProtocol the data the client sent, minus initial handshake bytes. However, we can use the knowledge that during initial handshake, there is no encryption and every byte can be written unchanged into m_Buffer, to just call cProtocol with a data length of zero. This will cause it to parse from m_Buffer - wherein we have already written everything the client sent - with no a_Data manipulation needed.
Additionally, removed UnsupportedButPingableProtocolException (use of exception as control flow) and encode this state as m_Protocol == nullptr, id est "no protocol for this unsupported version", which is then handled by cMultiVersionProtocol itself.
+ A cPlayer, once created, has a strong pointer to the cClientHandle. The player ticks the clienthandle. If he finds the handle destroyed, he destroys himself in turn. Nothing else can kill the player.
* The client handle has a pointer to the player. Once a player is created, the client handle never outlasts the player, nor does it manage the player's lifetime. The pointer is always safe to use after FinishAuthenticate, which is also the point where cProtocol is put into the Game state that allows player manipulation.
+ Entities are once again never lost by constructing a chunk when they try to move into one that doesn't exist.
* Fixed a forgotten Super invocation in cPlayer::OnRemoveFromWorld.
* Fix SaveToDisk usage in destructor by only saving things cPlayer owns, instead of accessing cWorld.
- Removed RemoveFromAllChunks. On destruction cWorld::RemovePlayer calls RemoveClientFromChunks already, and there's no need to manually clear the chunk lists.
Loaded entities are directly moved into the chunk data, instead of having to go through cWorld, as if they were just spawned. This avoid dirtying the chunk.
+ Add type-safe container for states
* Split registry Blocks into BlockTypes, BlockStates so the block types enumeration can be #included without too much penalty
* Ensure Registry uses type-safe container
* Replace DoWithNearestPlayer with bounding box search (avoid iterating through all players in world).
* Do line-of-sight checks from eye-to-eye.
+ Added LOS and LOS lost timer to target lost checks, in addition to distance.
* Turn off global-constructors warning. These are needed to implement cRoot signal handler functionality
* Add Clang flags based on version lookup instead of a compile test. The CMake config process is single threaded and slow enough already
* Reduced GetStackValue verbosity
+ Clarify EnchantmentLevel, StayCount, AlwaysTicked, ViewDistance signedness
+ Give SettingsRepositoryInterface a move constructor to simplify main.cpp code
- Remove do {} while (false) construction in redstone handler
* Fix lilypad displacing block above
Side fixes:
* Fix lilypad displacing half slabs
* Fix lilypad being placed on flowing water and non-water blocks in
general
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Added magma block contact damage
* Fireproof entities do not take damage from magma
* Fire resistance prevents magma damage
* No magma damage when hovering over magma block
* upgraded to new C++ for loops and fixed errors
* readded delete instruction
* now using unique ptr
* added test for text only (that was causing an error for me)
* using unique ptr constructor
* added move constructor and deleted copy constructor
* fixed deconstuctor
http prefixes are constexpr and std::string_view
* fixed whitespace
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* [FIX] Add correct implementation of seed drops.
> Official percentage of drops has been implemented
* Fix C++ conventions
* Change "Vals" variable to "m_Vals"
* [FIX] Add correct implementation of Carrots, Potatoes, Wheat & Beetroots seed
* Add Fortune support with crops
Add fortune support with Wheat, Carrots, Potatoes & Beetroots seeds
* [FIX] Right-clicking on a grown Beetroot in survival consume 2 bone meals
Fix#4805
* Add documentation for "cWorld::IsFullGrownPlantAt" method
* Fix dispenser that full grown a plant
> Change methods cItemDyeHandler::FertilizePlant & cItemDyeHandler::growPlantsAround to static
* Display particle even if tree doesn't grow
* When right-clicking on a full grown melon / pumpkin seed, no longer produce a melon / pumpkin
Before this commit, when you right-click on a melon or a pumpkin seed, a melon / pumpkin block spawned.
With this commit, it no longer spawns
* [FIX] Do not create melon / pumpkin block when right-clicking with a bone meal
This fix will prevent the creation of a melon / pumpkin block when you right-click with a bone meal on a melon / pumpkin plant
- It just detect if the plant is full grown. if yes, the method "Grow" is not called
- Remove IsFullGrownPlant
Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* fixed network
fixed explosion
fixed ticking
added network broadcast to Setter method
added nullptr protection
using macros in 1.10 Protocol_1_10.cpp
revealed functions to LUA API
small fixups, typos, less functions used
fixed more doc
readded info that saving is done only if the beam is displayed
made the constructor transfer all needed members
fixed wrong commit
removed default parameters on SpawnEnderCrystal
fixed wrong metadata
moved call to destroy in the right place
fixed some typos
Fixed Ender Crystal
* fixed documentation
* fixed doc and added proper error message
* Parameters, arrows
* Parameters
Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
+ Make TNT drop pickups, change a few comments.
+ Give each ray random intensity, instead of each explosion.
* Use direction instead of destination, rewrite for pairs of edges.
* cBlockInfo: further cleanup
+ Use switch statements instead of lookup in dynamically initialised arrays
- Remove some deprecated bindings
* Update Stubs removing references to BlockInfoArray
* Fixed current end generator
* Implemented new simplified end generation which includes a void between the main island and other islands
* Fixed basic style
* Hopefully fixed clang errors.
* added breaking, spawning, animation
* checkstyle
* added undocumented API symbols
* added changes suggested by @peterbell10
* added natural ore like generation
* fixed spawning two silverfishes
* fixed clang
* fixed clang try 2
* updated comment
unified offset
* final clang fix
* added spawning for more silverfishes if one was damaged
* fixed spawning on one hit kill
* fixed spawning on one hit kill
fixed spawning by potion damage
* fixed clang
* fixed broken build
* fixed broken build
* I should read the error message properly
fixed build now?
* added small changes suggested by @peterbell10
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* added wolf breading
* mpoved breeding to monster
* checkstyle
* fixed my IDE "helping"
* removed magic number
and fixed faster aging
* added flooring to age manipulation
* fixed copiler error
* fixed typo
* moved tps to Defines.h
* removed the TPS constant from the lua API exposure
* added inline constexpr
added explanation
* fixed broken build
* "fixed" build
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* Beacon now check for players in surrounding square not every player
* added proper BoundingBox
Co-authored-by: Alexander Harkness <me@bearbin.net>
* one symbol to change everything
one symbol to break the whole build
Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Alexander Harkness <me@bearbin.net>
* Tried to fix a small issue...
Ended up rewriting a bunch of god awful, opaque code with no source
and no sense. Who names a function GetPlayerRelativeBlockHardness???
It's gone now. We're safe again.
* Testing anti-cheat.
* Tidy up debug logging.
* Remove empty member declaration.
* Rewrite GetDigSpeed slightly for better readability.
* GetMiningProgressPerTick now returns 1 when instantly mined. Fixed hasily written typo.
* Comment style and typo fixes.
* Use lapis for enchanting, subtract correct number of levels, ClientHandle now selects from pregenerated list.
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
+ Implemented and standardized all clamped discrete random drops.
+ Changed cItems Add from push_back to emplace_back. Implement fortune for crops.
+ Enabled hoes to be enchanted with efficiency, silk touch and fortune. Made leaves, gravel and crops affected by fortune.
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Use lapis for enchanting, subtract correct number of levels.
* Enforced distancing regulation better than our government.
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Removed BiomeDef.h
* Removed ChunkDef.h from Globals.h
* Added to CONTRIBUTORS.
* Re-added empty last line to Globals.h
* Included stddef and StringUtils in BiomeDef.h
* Fixed build tools compiling. It compiles, but at what cost?
* Added include to src/Generating/Trees.h
* Include added in ChunkGeneratorThread.h
* Moved rearranged includes in LineBlockTracer.cpp
* Re-arrange headers in ChunkInterface.cpp
* Included ChunkDef.h in Path.h
* Included ChunkDef.h in NBTChunkSerializer.h
* Rearranged included and added required includes to headers.
* Removed unnecessary included in StringUtils.h.