* 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>
* feat: add linear chunk format with zstd lib dependency
* fixing a typo
* refactor: rename file handling methods for clarity and more lint fixes
* refactor: improve clarity on validation methods
* fix: invert version check in LinearFile header validation
* fix: remove leading dot from file path formatting in LinearChunkFormat
* refactor: improve error handling and method naming in LinearFile operations
* fix: ensure file is flushed after writing in LinearFile operations
* fix: lints and warnings
* fix: more lints
* refactor: streamline LinearFile structure and improve header management
* refactor: change chunks_headers to use Box for improved memory management and use exception to know if file exist
* refactor: update path parameter types to PathBuf for consistency and improved usability
* refactor: update path parameter types to Path avoiding uknown changes and adjust file truncation logic
* fix: avoid using the same path for different tests
* fix: fix some bytes sizes for the header based on the spec
* refactor: enable file truncation when opening for writing and simplify save method
* fix: removing IoSlices for windows issues.
* fix: clippy lints
* refactor: improve incompatible files cheking, some documentation and variable nameing
* feat: add file_format to ChunkConfig and implement format handling in Level
* feat: add error logging for invalid file headers and data size checks in LinearFile and tmp filenames on write
* feat: implement file locking mechanism for concurrent chunk read/write operations
* fix: bug at desserializing the chunks headers.
* feat: (Bulk API) refactor chunk reading and writing to handle multiple chunks at once
* refactor: streamline chunk reading and writing methods, improve chunk management logic
* feat: enhance chunk reading and writing to support bulk and improve concurrency
* feat: add file locking during chunk writing to ensure safe concurrent access
* fix: resolve some issues with the merge
* fix: update chunk header size calculation in linear chunk parsing
* refactor: optimize chunk processing and improve concurrency handling
* feat: implement chunk I/O management with file locking for safe concurrent access
* refactor: simplify public load method and fix clippy issues
* feature: add file cache for files with ongoing IO ops
* refactor: update LoadedData enum variants for consistency and clarity and include docs.
* refactor: restore compression enum and replace ChunkSerializingError with ChunkWritingError for improved error handling
* refactor: enhance chunk cache cleaning logic and improve logging during chunk fetching
* refactor: optimize chunk data handling with parallel processing and improve chunk fetching logic
* fix: lints and logging
* fix: correct typo and import format
* refactor: anvil code organization and llinear chunk reading code.
* fix logging issue and refactor some locks bindings
* refactor: reduce chunk cloning, ensure drop bindings/guards
* refactor: reduce some threading overhead when not needed
* fix: clippy lints
* refactor: simplify chunk data processing in Anvil and Linear serializers
* fix: clippy lints rust 1.84.1 to 1.85.0
* add file drop guard and rework some logic
* refactor: improve AnvilChunkFile and AnvilChunkData serialization logic and docs
* fix: typos
* feature: initial async implementation of Bulk API
* fix: chunk writing with async read
* refactor: improve async handling and use asyn IO for reading files
* fix: sorry i delet a mod xd
* refactor: enhance chunk management with async locks and OneCells
* use async methods where avaliable and stream chunks instead of collecting them
* refactor: streamline chunk management by removing unnecessary mutex and optimizing cache cleanup
* Split data
* Move format related stuff from chunk
* refactor: decoupling Serializer from ChunkIO and reduce CPU usage by 25%-50% when flying as spectator at max speed
* refactor: imrpove CPU usage marking Heavy CPU tasks with tokio block_in_place and improve Docs/Comments
* refactor: improve linear format performance and imrpove some localize tokio::block_in_place for compression and uncompression in both formats, also for serialization and deserialization
* Remove parking_lot dependency from Cargo.toml
* feat: add futures crate for improved async handling and performance optimizations
* refactor: change some comments about blocking (not needed with futures::future::join_all) and zstd compression concerns
* refactor: remove unnecessary blocking in AnvilChunkFile methods for improved performance
* refactor: change receive_chunks parameter from slice to vector for improved flexibility
* fix: add timestamp tracking for chunk updates
* refactor: remove async_trait usage from chunk serializers
* fix: handle potential errors in chunk decompression and parsing
* fix: prevent parsing of empty chunks by updating condition for sector offset and count
* fix: improve dashmap reference management
* dont log if chunk does not exist and tweak help functions
* refactor: reduce CPU and Memory usage while improving Chunk Generation performance and reducing code complexity.
* fix: improve logging for file operations and ensure proper lock management during closure
* fix extra log
* fix: chunk generation threading issue (not using rayon spawn) and a emory leak in the level cache cleanup
* fix: handle expected chunk reading errors without logging as failures
* feat: add intial benchmark for chunk I/O performance and update criterion dependencies
* remove panic for bad chunk return
* refactor: comment out benchmark code for test without BulkAPI PR
* Refactor benchmarking code and remove unused chunk_io benchmark
* fix: remove dummy benchmark file and using paths/files instead of temp dirs
* refactor: update benchmark to re-instanciate the level on each iteration avoiding caching
* fix: clippy lints and add comments
* fix: correct chunk count logging in benchmarking tests
* refactor: replace hardcoded channel size with a constant, print seed used, add one more size to bench.
* use bytes for anvil and stream deserialization
* re-add streaming w/ capacities
* tweak rayon threads
* fix deadlock, max concurrency, box chunks early
* add parallel benchmarking for chunk read/write operations
* work on chunk batching
* add chunk batching
* fix chunk batching
* add comment to lru cache
* fix test
* fix spelling
---------
Co-authored-by: Mili <santiagoogle@hotmail.com>
Co-authored-by: kralverde <github@email.kralverde.dev>
Co-authored-by: suprohub <suprohub@gmail.com>
* Add Defaultgamemode command
* add force_gamemode in configuration.toml
Check if the force_gamemode is enabled while doing the command
* Delete useless import + adapt to the new TextComponent::translate.
* add a space...
* Save the default gamemode in the server
* refactor + delete a .clone
* Add #[must_use]
* Order completed to be up
Make completed features on top and unfinished below
* Group similar features
* Add features and mark if completed
Basically we have:
(W.I.P): The feature is there but is not behaving as intended.
Checkmark: The feature works as intended, it could be improved but it works.
No checkmark: The feature does not exist and will not work nor do anything.
* config is not wip
* fix(tool-rules): ensure `get_speed` and `is_correct_for_drops` check for tags
Both functions were ignoring tags (`#tag`), causing incorrect default values.
- Now correctly checks tags before returning speed or drop validity.
- Ensures tool rules work as expected for both direct and tagged block matches.
* Make Clippy happy and use strip_prefix
replace manual stripping with strip_prefix
* Make clippy happy and use strip_prefix
Make clippy happy and use strip_prefix instead of manual stripping. Also removing unnecessary reference
* cargo: fmt
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* Add more to the To-Do
Added biomes, vegetation, player data saving, off hand, advancements, villagers and mobs inventory as objectives in the to-do
* Remove stack limits from the to-do