Commit Graph

229 Commits

Author SHA1 Message Date
Alexander Medvedev
0050576be4 Revert "feat: Add Mineshaft Generation (#2740)" 2026-08-05 14:38:20 +02:00
Alexander Medvedev
a748aae07e Revert "feat: Add Mineshaft Generation (#2740)"
This reverts commit 09d23bd15f.
2026-08-05 14:31:26 +02:00
Alexander Medvedev
7350fba3b0 chore: chunk loading/saving move from serde to manual
should be faster now
2026-08-05 12:23:44 +02:00
ZlordHUN
09d23bd15f feat: Add Mineshaft Generation (#2740)
* feat: Add Mineshaft Generation

* fix(structures): remove redundant mineshaft probability gate

The MINESHAFTS structure_set already gates generation via its
frequency reduction (0.004, LegacyType3) in placement, so the extra
0.01 roll in the generator was double-gating and made mineshafts far
too rare. No other Pumpkin structure generator rolls its own
probability, so the gate has been removed to match vanilla frequency.

* feat(structures): faithful port of vanilla mineshaft generation

Rewrites all mineshaft pieces to match vanilla MineshaftPieces
(decompiled from server.jar):

- Corridor: 3-wide tunnel with fence posts + plank beams every 5
  blocks, floor planks below the box at y=-1, cobwebs, rails (with
  correct NORTH_SOUTH / EAST_WEST shape per corridor axis), cave-spider
  spawner (spider corridors), chest (1%), wood support pillars
- Room: carved dome chamber at Y=50, vanilla dims (8-13 wide)
- Crossing: 5x5 with corner pillars, optional two-floored
- Stairs: vanilla descending staircase (air-only, no planks)
- Assembly: vanilla piece weights (70% corridor / 10% stairs / 20%
  crossing), depth <= 8, bounds = 80 blocks from start
- Liquid check (isInInvalidLocation): aborts pieces in water/lava
- Mesa variant: dark oak wood throughout

* feat(world): support generated loot minecarts

* Minecart Vanila Parity

* Rebased And Added Furnace, Hopper, TNT Minecarts

* Refactor minecarts and fix off-rail gravity

Split minecart variants into focused modules, correct airborne minecart physics, and remove the test-only entity chunk-loading rework.

* Fix mineshaft vanilla parity

---------

Co-authored-by: Zoltán Virágh <zoltan.viragh@cloudtalk.io>
2026-08-05 08:48:26 +02:00
Alexander Medvedev
9ececd9eca chore: add more chunk tests 2026-08-04 10:38:27 +02:00
Tomislav
ba95a301c1 feat: add hr_hr translation (#2529)
Co-authored-by: Tomislav Andric <tomo@Tomislavs-MacBook-Pro.local>
2026-08-02 23:35:49 -04:00
Eshan I.
7844590958 fix(ai): damage endermen in rain (#2714) 2026-08-02 20:07:35 +02:00
Alexander Medvedev
f474756b16 fix: ci 2026-08-02 12:42:21 +02:00
Alexander Medvedev
98d4451fc9 chore: some fixes 2026-08-02 10:49:37 +02:00
Alexander Medvedev
141b49f973 chore: some more tests 2026-08-02 08:31:01 +02:00
Alexander Medvedev
a2263c55cc chore: update bug report template 2026-07-30 12:55:41 +02:00
Alexander Medvedev
ac89bff1ca fix: from_legacy_string 2026-07-26 10:25:13 +02:00
Alexander Medvedev
3103e97e18 ci: remove macos-15-intel 2026-07-24 12:31:57 +02:00
Alexander Medvedev
712bb96d3e feat: Initial advancement triggers 2026-07-17 16:10:43 +02:00
Alexander Medvedev
b1b2a31c49 fix: vanilla level.dat loading 2026-07-13 12:53:33 +02:00
BitForge
f13736def9 fix(loot): animals drop cooked food without fire or Fire Aspect (#2391)
* fix(loot): animals drop cooked food without fire or Fire Aspect

Fix issue #2366 where farm animals dropped cooked meat instead of raw
when killed, regardless of fire state or weapon enchantments.

Root cause: LootCondition::EntityProperties lacked predicate fields for
is_on_fire and equipment enchantments, codegen discarded predicate data,
and the evaluator did not resolve 'direct_attacker'.

- Add is_on_fire and mainhand_enchantment_tag to EntityProperties
- Add predicate structs to codegen with correct serde renames
- Fix evaluator to resolve direct_attacker and check fire/enchantments
- Fix pre-existing v[0] panic on empty StringOrVec arrays
- Add 18 unit tests

* fix(loot): add backticks to doc comment for clippy

* fix(data): update block.rs generated loot tables with new EntityProperties fields

* fix(loot): merge match arms and collapse if for clippy
2026-07-11 18:17:19 +02:00
ChocoDev
da2401d07d feat: aquifer sample and top material in cave carver (#2242)
* sin/cos util

* 4 nieghbor check

* formating

* air helper

* carver wrapper

* fmt

* clippy

* clipp2

* remove local y

* out of bound guard

* fluid tick

* surface rule

* wire up

* math correct

* start fix

* bring back xoroshiro oops

* scheduler guard

* simplify test

* clean test

* comment

* crash fix

* clippy

* clippy

* i hate you codex

* sin cos

* im stupid f32
2026-07-05 15:55:43 +02:00
Alexander Medvedev
c60fa90ed8 feat(bedrock): Add Protocol encryption 2026-07-04 15:01:42 +02:00
Alexander Medvedev
8c5d6dc405 fix: bedrock SActorEvent packet 2026-06-28 13:26:32 +02:00
Alexander Medvedev
03a90a40b1 chore: expand loot table 2026-06-27 10:35:46 +02:00
kedor
39596c1b9f feat: Advancement command (#2282)
* starting implementing the advancement command

* implementing globally of the advancement command

* fixing lib.rs

* implementing the new Advancement argument and updating the AdvancementArgs lifetime

* updating wit by adding advancement as command arg

* cargo fmt

* fixing the advancement
hooking the saving
spawn blocking task for IO task

* fixing the update of load to be async

* adding await to load for a test

* fix when save is disable

* making save_enable check first

* fix conflict

* update hash

* fix wit change

* fix column_pos

* adding rust documentation

* typos fix

* removing example

* invalid advancement packet

* fix itemstack parsing to use ItemStack Template ones

* changing enum type from i32 to VarInt

* fix packet by switching up the frame type and flags

* fixing packet and loading of the advancement

* cargo clippy

* update wit
2026-06-26 09:23:54 +02:00
Tunar Məmmədli
35c3ebf6b5 fix(math): prevent NaN from zero-length normalization (#2202)
* Guard vector normalization against zero length

* improve vector normalization
2026-06-24 19:18:48 +02:00
Laptop59
11380eb38a feat(command): implement column pos argument type (#2237)
* initial commit

* added a new struct `ColumnPos` and suggestions for the new argument type

* remove examples that don't actually work
2026-06-20 21:49:21 +02:00
Alexander Medvedev
23e7992b2d Port to 26.2 2026-06-20 20:07:31 +02:00
Alexander Medvedev
8634d8740f fix: nether/end 2026-06-13 22:44:29 +02:00
Alexander Medvedev
38a924e6ce fix: slimes 2026-06-13 19:14:33 +02:00
Alexander Medvedev
5b8eab0f56 feat: initial village support 2026-06-10 23:07:10 +02:00
Alexander Medvedev
dd524b6ef9 Revert "feat: implementing the base generation of advancement (#2236)"
This reverts commit decfc460b2.
2026-06-09 16:49:14 +02:00
kedor
decfc460b2 feat: implementing the base generation of advancement (#2236)
* implementing the barebone generation of

* cargo fmt

* fixing CI

* fixing unused import

* updating advancements.json file
2026-06-09 16:00:37 +02:00
Alexander Medvedev
e47695d810 feat(bedrock): add item drops 2026-06-07 14:34:54 +02:00
Alexander Medvedev
f19eee2d70 fix: some bedrock fixes
also added join and leave translated messages
2026-06-04 20:54:48 +02:00
とぴ。(おーけ
a2f0122503 chore(pumpkin-util): gate codegen deps behind feature flag (#2127)
Make `syn`, `quote`, and `proc-macro2` optional in pumpkin-util,
exposing them via a new `codegen` feature. `pumpkin-codegen` opts in
explicitly, so downstream consumers no longer pay the proc-macro
build cost when they don't need `ToTokens` impls.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-04 11:12:55 +02:00
Alexander Medvedev
f19d84efef chore: made text component clickable links clickable in console 2026-05-23 11:30:30 +02:00
Alexander Medvedev
3303bb7b97 chore(net): change get_string to get_str
changed return value from `String` to `Box<str>` which is smaller and makes more sense since we don't mutate packet data

String — 24 bytes (ptr + len + capacity)
Box<str> — 16 bytes (ptr + len)
2026-05-23 11:21:53 +02:00
Alexander Medvedev
bd544271e2 feat: more loot table work 2026-05-22 22:23:47 +02:00
Alexander Medvedev
d47ac2cd51 feat(loot-table): add luck 2026-05-21 22:20:00 +02:00
Alexander Medvedev
2fcc9bcf4a chore: enforce some more clippy lints
pumpkin contributors will love me :cap:
2026-05-20 22:27:54 +02:00
Laptop59
6f2b137e70 feat(command): implement list_suggestions for some argument types (#2101)
* implement suggestions for everything we have right now

* use `translate_cross` instead

* fixed tests

* fix SNBT tests and suggestions to how they should be

* fixed `parse_for_suggestion`'s signature to only take a `SuggestionBuilder`

* added suggestions for vec3 and block pos

* add `Default` and `Debug` trait to `Vec3ArgumentType`

---------

Signed-off-by: Alexander Medvedev <lilalexmed@proton.me>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2026-05-18 21:55:39 +02:00
Demetrius Kanios
81f9f51d39 feat: Implement Bedrock NBT (network variant) (#2148)
* Implement Bedrock (Network) NBT

* Refactor to reduce dup between Java and Bedrock impls.

* Add tests, fuzzers, and benchmarks for Bedrock
2026-05-18 21:46:29 +02:00
Alexander Medvedev
d3d13323b2 fix: don't store empty chunks
should be fixed
2026-05-17 13:47:34 +02:00
Alexander Medvedev
966fbec3d3 feat(plugin-api): add java/bedrock abstraction 2026-05-16 09:56:18 +02:00
Alexander Medvedev
5aafff35e8 feat: add bedrock forms 2026-05-15 18:24:28 +02:00
SomeYellowGuy
f383c88c76 feat(codec): implement Encode and Decode for some pumpkin-util items and convenience codec macros (#2111)
* added identifier codec

* added codec impls for `Vector2<T>` and `Vector3<T>`

* added codec impl for `BlockPos`

* added codec impls for `BlockBox` and `EulerAngle`

* fixed formatting and clippy

* added `BlockPos` test

* fixed clippy and formatting

* fixed codec mapping macros and started using them in tests

* fixed formatting
2026-05-15 08:45:49 +02:00
RB007
b2b10f3323 feat: chest loot tables (#2084)
* feat: add vanilla chest loot table json files

* feat: codegen and chest loot logic

Co-authored-by: Copilot <copilot@github.com>

* fix: monster_room loot chests

* fix: nether_fortress loot chests

* fix: shuffle item stacks and fmt/clippy

Co-authored-by: Copilot <copilot@github.com>

---------

Signed-off-by: Alexander Medvedev <lilalexmed@proton.me>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2026-05-15 08:43:51 +02:00
Laptop59
bf296ee5a8 feat: implement UuidArgumentType (#2117) 2026-05-15 08:40:38 +02:00
Alexander Medvedev
5c90387b02 refactor: move block entities from pumpkin-world -> pumpkin 2026-05-07 19:35:17 +02:00
Alexander Medvedev
44c162df6d fix: broadcast correct protocol version in status response 2026-05-06 15:34:11 +02:00
YAJ-54S12G-1
aa5b6db50b feat: lzh translation (#2078)
* feat: lzh translation

* fix and format translation.rs
2026-05-05 10:43:46 +02:00
Alexander Medvedev
9b88ef56e4 feat: bedrock translations 2026-05-03 21:31:46 +02:00
Alexander Medvedev
fb5ede696c chore: some more bedrock work 2026-05-03 19:16:21 +02:00