Commit Graph

112 Commits

Author SHA1 Message Date
Alexander Medvedev
80e6fceb08 feat: 1.8 Client support 2026-08-21 16:24:22 +02:00
necko
ce4f3cc1f1 docs: fix broken chunk loading image link in README (#2547)
Signed-off-by: necko <128916594+Necko1@users.noreply.github.com>
2026-07-26 11:39:10 +02:00
Alexander Medvedev
a956857209 readme: make vid loop 2026-07-24 12:40:59 +02:00
Alexander Medvedev
6422a13498 chore: Update README video (#2398)
* fix: readme video

* seems github only accepts webp

this platform is just awesome

* Update pumpkin_chunk_loading.webp
2026-07-13 13:10:40 +02:00
Alexander Medvedev
b1b2a31c49 fix: vanilla level.dat loading 2026-07-13 12:53:33 +02:00
Missing_Love
406878e6c1 chore: update README with Java/Bedrock and W.I.P status (#2361)
* Update README with Java/Bedrock and W.I.P status

Signed-off-by: Missing_Love <42416195+Q2297045667@users.noreply.github.com>

* Update README.md

Signed-off-by: Missing_Love <42416195+Q2297045667@users.noreply.github.com>

---------

Signed-off-by: Missing_Love <42416195+Q2297045667@users.noreply.github.com>
2026-07-11 12:46:02 +02:00
Alexander Medvedev
7bff068dff fix: discord links 2026-06-09 16:49:32 +02:00
Alexander Medvedev
8c4fa99470 feat: add rudimentary .pump format
also this should fix a dead lock
2026-04-30 09:05:40 +02:00
Alexander Medvedev
9012a92287 feat(plugin-api): add support for plugin dependencies 2026-04-15 16:47:08 +02:00
Alexander Medvedev
1e196cfe34 fix: arrows not damage non living entities 2026-04-07 14:04:41 +02:00
Alexander Medvedev
1cf5ac603c replace discord link with https://discord.gg/pumpkinmc 2026-02-09 19:32:34 +01:00
Alexander Medvedev
05688ade9e fix: structure connection through chunks
still needs a bit more work, also changed the license,
2026-02-01 23:03:15 +01:00
Alexander Medvedev
2abb33c2ab README: link to some tracking issues 2026-01-29 11:36:08 +01:00
Alexander Medvedev
142296a9b2 feat: 1.21.9-1.21.11 support
more versions will come
2026-01-22 17:16:37 +01:00
Alexander Medvedev
20a14d730b feat: building wither 2026-01-20 22:47:22 +01:00
Alexander Medvedev
a44a5babe3 feat: partially implement Stronghold
also fixed some bugs
2026-01-10 17:56:25 +01:00
Alexander Medvedev
42c903493a port to 1.21.11 2025-12-24 13:09:01 +01:00
Alexander Medvedev
0ce5471761 Overhaul registry loading
Registry data is now loaded dynamically for automatic future-proofing, ending the need for manual struct updates. Access to specific values now requires explicit data lookups.
2025-11-18 19:00:18 +01:00
Alexander Medvedev
58583da4c1 Port to 1.21.9
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
2025-10-02 18:27:10 +02:00
Alexander Medvedev
f0668ec746 readme: check eating as complete 2025-08-20 16:31:07 +02:00
Alexander Medvedev
7e3a1c0972 Fix rust 1.89 warns 2025-08-11 20:45:55 +02:00
Alexander Medvedev
eaf5959f2b Minor Chunk gen speed gains 2025-07-28 12:18:54 +02:00
unschlagbar
2e2236bf3b Bedrock player joining (#1063)
Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>
2025-07-26 17:31:00 +02:00
Maoyue 貓月
9582e48fd4 docs: fix quick start link (#1053) 2025-07-11 08:42:35 +02:00
Alexander Medvedev
630560e1d8 Update README gif 2025-07-02 10:45:32 +02:00
Alexander Medvedev
c67d4cfd2e Update to 1.21.7 2025-06-30 23:41:23 +02:00
Alexander Medvedev
e0c91b3edc Initial Bedrock support
You can't join the World, But the base is ready
2025-06-29 00:33:44 +02:00
Alexander Medvedev
a31c9ec703 Implement Entity data Saving/Reading 2025-06-25 03:47:05 +02:00
Alexander Medvedev
82948f830e Update to 1.21.6 2025-06-17 19:53:33 +02:00
Alexander Medvedev
c253b0902c fix some CI issues
hopefully...
2025-06-12 20:15:46 +02:00
Alexander Medvedev
fb3792eaf4 Update typos to 1.33 2025-06-05 17:09:29 +02:00
Alexander Medvedev
3e1c9f735c README: check Liquid Physics 2025-04-05 11:55:36 +02:00
Toyo
d36102dc69 Make To-Do more precise (#689)
- Moved "Biomes" to be alongside completed features
- Marked "Commands" and "Redstone" as W.I.P (#15 and redstone is a basic implementation
2025-04-01 07:28:10 +02:00
Alexander Medvedev
d8b726dfe2 Update to 1.21.5 (#665)
* update to 1.21.5

* maybe made something better maybe made something worse

:c does still not work

* some fixes

* fix chunk packet

finally, this took way too much of my life time

* port text component

* fix tests

recipes are broken but we currently don't use them anyway
2025-03-27 21:49:02 +01:00
4lve
eb587c9753 add Partial Redstone functionality (#621)
* Add scheduled block ticks

* Fix typos

* fix scheduled block ticks

* Default to empty vec

* Proper Block Updates

* Basic redstone works LFG!

* add buttons and lamps

* observers

* Only send update packet at end of tick

* hmm

* Start implementing MCHPRS

* redstone connections done

* visual state done

* Begin implementing multi_block_update

* Redstone works partially

* Fix typos

* Think I know what caused the client side desync

* Fix clippy

* Change fluid tick type

* Something is broken

* Don't use RWLock for block_ticks

* fix delay not decrementing

* Remove server from scheduled block ticks

* Fix redstone bug

* fix hardpower

* Fix tick lag

* Fix comperators

* Don't loop every tick

* Fix panic

* Fix redstone not powering block below

* make redstone_wire emit hard power

* Add target block

* fix clippy

* Merge

* merge

* add redstone torches

* Fix tick piorities

* default to air

* fix doors

* Update README.md

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-03-21 15:37:19 +01:00
Alexander Medvedev
7a15a50030 Generate Biomes (#610)
* Populate biomes

* actually fix multi noise sampler

* actually they are all pass-through

* fix serde error

* prepare things

* implement surface rules

* fix max_y

* fix terrain gen

* make surface rules work

* fix wrong biome coords

* refactor height estimator to its own struct

* implement surface estimation for surface rules

* fix surface gen

* some carve work

* fix conflicts

* more biomes work

* fix biome map

* refactor biome lookups

* add unit tests

* change from_block to from_chunk

* not only lushcaves anymore

* add more unit tests

* add unit test

* fix multi noise

* Update proto_chunk.rs

* fix biome map access

* test badlands impl

* fix badlands

* fix some values

* make it compile

* Fix bug in get_enclosing_parameters (#641)

* add badlands pillar and icebergs

* fix clippy

* fix clippy in test

* Update README.md

---------

Co-authored-by: kralverde <github@email.kralverde.dev>
Co-authored-by: 4lve <72332750+4lve@users.noreply.github.com>
2025-03-19 17:02:52 +01:00
Epix
93510eecd5 Grammar fixes, terminology change (#633)
* 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
2025-03-16 10:40:17 +01:00
Alexander Medvedev
aa9de86d4e Update README.md (#614) 2025-03-06 16:35:54 +01:00
Toyo
d827f68826 README: Specify features state (#598)
* 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
2025-02-27 16:42:05 +01:00
Alexander Medvedev
8aef30ee13 Make TNT Work (#590)
* make tnt work

* Spawn TNT at right position

* Fix tnt
2025-02-25 16:38:12 +01:00
Alexander Medvedev
995edfb3c2 Add Effects 2025-02-22 14:17:06 +01:00
Toyo
2af2fbbf73 README: Add more to the To-Do (#569)
* 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
2025-02-21 09:42:40 +01:00
Alexander Medvedev
2e2fe83720 Add Hunger 2025-02-07 00:22:52 +01:00
Mili
12866bce36 feat: add linear chunk format (#494)
* 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.

* Refactor chunk file locking mechanism to use DashMap for improved concurrency and simplify read/write guard management

* docs: Update documentation for LinearVersion enum with format references

* re-check workflows

* re-check lints 2

* rename config values

* Some doc improvements

---------

Co-authored-by: Mili <santiagoogle@hotmail.com>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-02-05 22:28:20 +01:00
Alexander Medvedev
484009bb9e Fixed Some typos 2025-02-02 15:12:34 +01:00
Alexander Medvedev
fefcb78e56 Fix reading from invalid level.data
Also use Spawn x and z now !
2025-01-30 15:13:56 +01:00
vyPal
a0ae1ae515 add Plugin system (#339)
* Add pumpkin-api crate for API definitions

* Add proc-macro definitions for pumpkin-api

* Add pumpkin-api and pumpkin-api-macros to workspace

* Add basic PluginManager implementation plugin loading

* Update .gitignore to include specific plugin file types

* Add example plugin

* Cargo fmt

* Fix clippy issues

* Refactoring to prevent a circular import

* Add base impl for plugin hooks

* Move plugin manager to server

* Make metadata have static lifetime

* Add default implementations to events

* Add hooks to proc macro

* Update example

* Fix formatting

* Fix clippy warnings

* Load metadata from Cargo.toml

* Mark plugins as an implemented feature :D

* Implement new event handling

* Create a static global reference to the plugin manager

* Emit player join and leave events

* Update macro generation

* Update example

* Fix formatting

* Fix clippy issue

* Simplify event handling

* Add plugin command to list plugins

* Make handlers async

* Update macros

* Update example

* Fix formatting and clippy issues

* Better styling on plugins command

* Fix clippy issues

* Cargo fmt

* Disable doctest for lib target on pumpkin crate

* New API for plugins

* Update api macros

* Update plugin example

* A bit of clean up

* Some QoL (and performance) improvements

* Cargo fmt and clippy fixes

* refactoring, better event handling, new context functions

* Async on_load and on_unload

* Fix mutex lock never going out of scope

* Async plugin loading

* Add plugin management command

* Fix clippy issues

* Fix import issues

* Move TcpConnection out of client

* Move packet encoding out of client

* Allow plugins to register commands

* Fix fmt and clippy

* Implement plugin list in query

* Make arguments public so that plugins can use them

* Update proc_macros to handle runtime

* Make tree_builder public for use in plugins

* Make FindArg trait public for use in plugins

* Update example plugin

* Fix merge related issues

* Fix cargo fmt

* Post-merge fixes (also 69th commit, nice)

* New event system

* cargo fmt

* Impl block break event

* cargo fmt and clippy

* Reduced plugin size

* Reduce dependency count

* Old code cleanup

* cargo fmt

* Add event priority and blocking options to event registration and handling

* Refactor event handling to support blocking execution and improve event registration

* Fix post-merge errors

* Update example plugin

* increase mpsc channel capacity and handle write errors gracefully

* Use Arc<Player> instead of &Player

* add missing import

* Update example plugin with playing sounds

* Remove example plugin

* Create plugins dir if doesnt exist

* Remove unused vars

* Remove unnecessary clones

* Fix impl

* cargo fmt

* Make server pub in context
2025-01-24 17:26:09 +01:00
Alexander Medvedev
23dbb72bbe rename WorldPosition 2025-01-12 16:45:22 +01:00
Alexander Medvedev
495de3db16 add Anvil Chunk saving (#401)
* anvil saving foundation

* fix: clippy warns

* write chunk header

* write x_pos and z_pos

* cargo: fmt

* maybe improve something, maybe made something worse

* Make anvil work (#465)

* refactored stuff into chaos

* now we got sinkholes

* Reimplemented the whole write logic we now have wierd chunks but the data is mostly correct

* Fixed long overflow

* Fix fmt and clippy

* Added unit test to check anvil saving

* Fix fmt

* Fixed useless clone

* Removed unnecessary unwraps and added timestamp table

* Removed fs2 dependency

* Fix stop deadlock

---------

Co-authored-by: Alvsch <94403567+Alvsch@users.noreply.github.com>

* Update README.md

---------

Co-authored-by: Nico Göbel <147538729+leobeg@users.noreply.github.com>
Co-authored-by: Alvsch <94403567+Alvsch@users.noreply.github.com>
2025-01-07 17:07:35 +01:00
Alexander Medvedev
f2cfad06bd Add Entity AI 2025-01-04 18:37:59 +01:00