* feat: implement boat placement
- add boat item handler for all boat/raft types
- raycast with fluid handling to place on water or blocks
- filter entities with can_hit predicate (vanilla parity)
- check space is empty before spawning
- decrement item unless creative mode
* feat: add boat entity with damage handling
- create BoatEntity struct implementing EntityBase
- implement can_hit() and is_collidable() for boats
- implement damage handling that drops boat item on destroy
- update boat item to spawn BoatEntity instead of generic Entity
* fix: boat damage wobble and attack sounds match vanilla
Boats now accumulate damage with wobble animation that decays over time.
Attack sounds play for all hittable entities, not just living entities.
* feat: add boat riding and vehicle movement packets
* feat: complete boat implementation matching vanilla
- add underwater check (60 ticks) and max 2 passengers limit
- add paddle animation metadata and handler
- implement proper land dismount with offset calculation
- add riding_cooldown field to entity
* fix: clippy warnings for boat implementation
* refactor: use loot tables for boat item drops
* fix: collapse nested if to satisfy clippy
* style: fix cargo fmt formatting for collapsible if
* fix: boat dismount places player correctly beside vehicle
- implement vanilla's dismount position calculation with
getDismountHeight, canDismountInBlock, and pose fallback
(standing → crouching → swimming)
- fix packet ordering race: use enqueue_packet for teleport so it
arrives after CSetPassengers (send_packet_now bypassed the queue)
- pre-set awaiting_teleport before CSetPassengers to block stale
movement packets during async dismount calculation
- send CSetPassengers directly to dismounting player, broadcast to
others (matching vanilla's targeted packet behavior)
- use DELTA|ROT position flags for teleport (vanilla preserves
current look direction with relative rotation)
- add riding cooldown (60 ticks) to prevent immediate re-mount
- reset sneaking state after player dismount
- fix water detection to check specifically for water/flowing_water
fluids (Fluid::from_state_id returns EMPTY for air blocks)
- revert broken loot table refactor for boat item drops (boats use
hardcoded entity-to-item mapping, not loot tables)
- add get_dismount_height helper on World matching vanilla's
BlockView.getDismountHeight()
- ignore movement packets while awaiting teleport confirmation in
handle_position and handle_position_rotation
* style: fix cargo fmt formatting
* refactor: use loot tables for boat item drops
add loot table entries to entities.json for all 20 boat/raft types
and use the existing loot table system instead of hardcoded mapping.
* fix: resolve rebase conflicts and clippy warnings
* fix: regenerate codegen to include boat loot tables
* feat: implement firework data components
* Fix: Cargo Fmt
* Fix: Update color to i32 and add color limits
* Fix: Check firework flight time is within NBT limit
* fix: cargo fmt
* fix: clippy
implements the minecraft:potion_contents data component which was causing
server crashes when players clicked on potions or tipped arrows in creative
mode
fixes#1309
Its works, but block state ids are currently not mapped, meaning that when using the current default world gen the client mostly will disconnect due to a not found block state id, vanilla version compatible worlds should work
it is gone for good, i made the new registry be parsed from compile time in pumpkin-nbt and even parse the nbt code at compile time as well, And like expected this gives a massive speedup in first time parsing and also decreased bin size
* scheduled ticks for banners
* scheduled ticks and can place at for cakes
* add pitch to world spawn and setworldspawn command
* add ability migrate LevelDat from SpawnAngle to SpawnYaw
* backwards compatibility
* use minecraft name for setworldspawn
make PlayerSpawnPosition not panic anymore
fix infinite skipping of night when no players were online
* fix more clippy lints
* send abilities update on initial spawn
* Revert "fix more clippy lints"
This reverts commit 19d4ae56f8.
* .-.
* implement advance time gamerule
* still tick world_age
* advance weather
* add dropping of inventory on death
* keep inventory gamerule
* clippy
---------
Co-authored-by: CuzImClicks <cuzimclicks@proton.me>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* switch to btreemap to comply with lint
* amplifier i32 -> u8
* switch allow to expect lint
* remove many many unnecessary clippy lints
* dont use expect inside quotes