* Wrap Context in Arc
* Add support for plugin to expose custom APIs
* Add functionality to allow plugins to load in parallel
* Remove PluginManager from RwLock
* Change method/module visibility to be accessible from plugin API
* Allow plugins to register custom plugin loaders with the PluginManager
* Unload all plugins when shutting down server
* Fix formatting
* Major grammar sweep
* Remove extra backtick
* Use more specific terminology for chunk data storage
* Forgor to cargofmt
* Fix typo "thier"
* Fix typo "clousures"
* Try new terminology
* Forgor to cargofmt
* Use "Subchunks" instead of "Heterogeneous" for ChunkBlocks variant
* Fix variable name
* Forgor to change comment
* Add block builder
* Implement loot tables
* chaos snapshot
* LFG
* add oak fence
* lever facing
* Add trait for CardinalDirection
* fix clippy
* fix clippy
* reimplement partial state of loottable
* Implement neighbor block updates
* add oak door
* Fix crash on invalid state
* Fixes
* Add fences
* Add doors
* Refactor how we handle block properties when implemented in many places
* Remove old loot_table, moved to block generation
* Better Block Properties
* Add fence gates
* Update block_grouper and add logs
* Build tags instead and make it easier to define variants of blocks
* Save block states
* Allow nether fences to connect with fence gates
* Move away from hardcoded property names
* Clean up property remaps
* start refactor of blocks
* refactor block compile build
* refactor name map for property groups
* Make it so fences can't connect to the air part of a fence gate
* Use extractor instead of hard coded property names
* to_value and from_value should be stripped of "L" prefix
* Prefix isn't used anymore
* use hashes to verify uniqueness
* Don't declare IntProvider twice and fix typo
* remove some comments that don't apply anymore
* Move loot table so it's shared
* Futureproof Loot Tables
* Implement BlockStateProperty condition for LootTables
* Move experience to pumpkin_utils
* Add is_liquid
---------
Co-authored-by: kralverde <github@email.kralverde.dev>
* Added 11 blocks properties
Added the following properties:
Axis
Open
Age
Attachment
Signal Fire
6 connection directions
* Clippy my beloved 💕
* Reworked block properties
Changed block properties to make them more extensible and easier to handle.
* Little too much of Clippy
* Lever works!!! 🎉
Made the lever work, implementing modifiers to the “on_place” per block, plus the “on_interact” function to handle the state when interacting with a block that has it.
* Kinda implemented bool as value
* A little bit of Clippy :)
* Updated revised areas
* Removed enum added macro to search for block entity id
* Added sign update for all clients & clean up
* updated update_sign
* Updated code
* typo fix and format
* Finish and correct merge
* Remove hardcoded block entity value
* Move to own nbt crate
---------
Co-authored-by: whiteout314 <almagro.carlos@proton.me>
* simplify all
* fmt
* Consider using derive macro
* Add new events
* Add events call
* minor fixes
* minor fixes
* fix
* optimize code
* big changes
* fix skill issue
* fix
* Consider not specify patch version
* make logger shared
* i want test one thing
* Add one useful function
* add little amouth of docs
* use config instead
* revert changes
* fmt
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* WIP interactive blocks
* Added jukebox and crafting table
* Making feature more dynamic allowing every block action to be registered here
* Renamed interactive_block_manager to block_manager
* Simplifying register functions
* Added on placed
* Fix master merge
* Added pumpkin_block macro
* Removed junk
* Added the option to block placing in on_use_with_item
* Fixed inventory lock
* Adding on_broken and implementing it for the jukebox
* Fixed merge
Before only Clientbound Packet IDs where parsed from JSON, Now Serverbound Packet IDs are parsed from JSON as well. This makes porting to new minecraft version much easier
* Added CSoundEffect packet
* Added sound macro
added a macro that turns sound namespaces to the sounds id
* added CEntitySoundEffect
* updated id to i32
* Added sound effects to pvp
* Added sweeping and particles
* Added I-Frames to living entity
* Refactored combat
split up the combat handling into multiple functions and a new combat module
* use new packet macro
* updated json files
* fixed attacking
* use builtin clamp
* Update JSON Files to 1.21.2
* Update constants to 1.21.2
* Port c_login_success to 1.21.2
* Fix: damage type
* Overhaul Packet ID system
We now use Packet IDS from enums.
1. This is very very nice for seeing which Packets are already implemented and which not.
2. This lets us easly port to newer Minecraft version, In vanilla there are no Packet ids hardcoded, Packet IDs will be parsed from a enum like this
* Port all Packets to 1.20.2
* Update README badge to 1.20.2
* Change doc for the new packet id system