* fix: use rem_euclid for yaw and head_yaw calculations in CSpawnEntity | Thanks to @teknostom
* feat: Add ArmorStand Entity, EulerAngle & EquipmentSlot's
* feat: Add checking for if space is occupied of the armor stand
* feat: clippy
* feat: Enhance ArmorStandEntity with break and drop items functionality
* chore: cargo fmt
* feat: Add WindCharge entity and item with projectile deflection mechanics
* chore: clippy & fmt
* fix: use constant for default deflect cooldown in WindChargeEntity
* feat: add invisibility functionality to Entity and ArmorStandEntity
* refactor: remove EquipmentSlot and HasEquipment trait definitions since it was already existing oops
* feat: implement NbtTag conversion for PackedRotation and update ArmorStandEntity NBT handling
* refactor: fmt
* chore: clippy & fmt
* fix: update damage handling in ArmorStandEntity to use kill instead of remove
* feat: implement ticking behavior for WindChargeEntity to update deflect cooldown and process thrown item entity
* fix: remove unnecessary trailing comma in imports
* remove logging
* fmt
* refactor: simplify EulerAngle initialization and consolidate PackedRotation fields
* Add support for multiple platforms in Docker build
* Enhance Docker workflow with QEMU and Buildx setup
Added steps to set up QEMU and Docker Buildx, and login to GitHub Container Registry.
* Refactor Docker workflow for improved clarity
* Remove duplicate GitHub CR login step
Removed duplicate login step for GitHub Container Registry in the Docker workflow.
* Reorder Docker Buildx setup in workflow
* Rename step to 'Docker Buildx' in workflow
* Make protochunk not have a lifetime
* Staged chunks
* fix
* new generation system init
* small optimize
* fix warning
* fmt
* new get chunk
* use write_radius
* save stage in protochunk
* clean up
* clean old fn
* fix bug
* support saving but broke shutdown
* fail to fix shutdown and still many problems need to solve
* fix shutdown
* fix chunk unload; give highest priority to get_chunk
* fix tick deadlock
* fix chunk level
* drop old channel
* rewrite run_decrease_update; fix a stupid error
* Update chunk_system.rs
* remove some log
* lighter dependency
* clean up
* fix ci
* clean up & merge
* Update chunk_system.rs
* fix a bug
* Proto Chunk Saving, safer io and remove debug output
Port Proto Chunk Saving From #1164
* fix a bug
* fetching chunk message level set to debug
* Update multi_noise.rs
---------
Co-authored-by: 4lve <72332750+4lve@users.noreply.github.com>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
I did not update density functions because i'm too lazy to refactor a bunch of things because Mojang decided to remove "initial_density_without_jaggedness", but i will in the future
* fix: Remove liftimes from CStatusResponse and CPlayerPosition
* fix: Add lifetimes to CachedBranding and fix tests
* fix: Remove lifetimes from CLoginDisconnect packet, data is dropped immediately after the packet is constructed
* fix: Apply formatting to packet_encoder.rs
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* chore: add treewide nix formatting
This allows nix users to format more filetypes than just the `.nix` files. Treefmt-nix is partitioned to a `dev` flake. Refer to the corresponding flake description as to why this was done.
* style: nix fmt
* build: nix caching, sync nix toolchain to rust-toolchain.toml
Nix triggers a full rebuild on any file change. Even for changes on 'non src' relevant files, like e.g. the readme file. This fixes the caching issues, syncs the 'nixified' rust toolchain with the rust-toolchain.toml file, and moves checks and devShells to the development partition.
* chore: add rust-analyzer and rust-src components
Unless the rust-analyzer & rust-src components are installed somewhere else developers will not have a LSP and the rust std docs available. This installs those components for the specified channel, which is especially useful for Nix users.
* chore: remove taplo
Taplo defaults to 2 Spaces, but setting them to 4 doesn't work either for whatever reason. Therefore the removal.
* style: 4 instead of 2 spaces
Reverts the "mistake" by the taplo formatter
* chore: re-add taplo but with 4 spaces
* style: revert unnecessary Cargo.toml formatting
* Fix redstone wire when interacting with glass and non-full blocks
* Use is_solid_block to determine whether redstone wire should be blocked
* Fix: incorrect uses of BlockState.is_solid()
* run cargo fmt
* split state_flags into 2 u8's and remove BlockState.blocks_wire() methods
* Resolve clippy warning
* Revert state_flags back to a single u16
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>