Skip to content

refactor: bevy #882

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 125 commits into from
Jul 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
fcd9b61
refactor: bevy
andrewgazelka Apr 22, 2025
21b7206
Merge branch 'main' into andrew/bevy
andrewgazelka Apr 27, 2025
37acbfb
stash changes
andrewgazelka Apr 27, 2025
44e3a4f
Merge remote-tracking branch 'upstream/main' into andrew/bevy
TestingPlant May 22, 2025
b0f5fb7
fmt
TestingPlant May 22, 2025
4b0e5e7
Disable bevy default features
TestingPlant May 22, 2025
464ce4b
Minimize code
TestingPlant May 22, 2025
ec5d0bb
Switch from eyre to anyhow
TestingPlant May 22, 2025
c46b6f6
fix: use entity index as minecraft id
TestingPlant May 22, 2025
d4c22e7
Remove use for sendable and tracing_ext
TestingPlant May 22, 2025
4d9355b
Minimize code enough to compile
TestingPlant May 23, 2025
4b478cd
Remove thread local
TestingPlant May 23, 2025
1d71987
Use DashMap for IgnMap
TestingPlant May 23, 2025
4c8d437
Progress
TestingPlant May 23, 2025
3a078db
Remove SystemOrder
TestingPlant May 23, 2025
095f721
Fix networking
TestingPlant May 23, 2025
1df25b2
Add some resources
TestingPlant May 23, 2025
2ee38e6
Add CommandChannel
TestingPlant May 24, 2025
07ced00
Get handshake to work
TestingPlant May 25, 2025
b284dec
fix: require &mut PacketDecoder
TestingPlant May 25, 2025
44855b0
Use an exclusive system to sync command channel
TestingPlant May 25, 2025
b66ec65
refactor: packet decoding
TestingPlant May 25, 2025
eb6b80a
Add egress
TestingPlant May 25, 2025
dd17e7d
Add status
TestingPlant May 25, 2025
ec9e12b
Remove generate_ingress_events
TestingPlant May 25, 2025
13ec8e1
fix(CommandChannel): do not drop commands upon drop
TestingPlant May 25, 2025
870da00
Add login
TestingPlant May 25, 2025
bc57642
feat: packet channel
TestingPlant May 26, 2025
ca6c24f
Remove lifetime utils
TestingPlant May 31, 2025
82bdbc4
Downgrade Glam
TestingPlant May 31, 2025
f36a407
Use TestingPlant forks of bvh-data and valence
TestingPlant May 31, 2025
1327267
Implement packet events
TestingPlant Jun 1, 2025
21b8317
Use ScheduleRunnerPlugin
TestingPlant Jun 1, 2025
f61e525
Add stats plugin
TestingPlant Jun 1, 2025
0a91a50
Add egress stats
TestingPlant Jun 1, 2025
b31c138
docs: define required components
TestingPlant Jun 8, 2025
f550d06
refactor: use EventReader/EventWriter for packets
TestingPlant Jun 8, 2025
67f5a0d
fix(stats): measure ticks/ms more accurately
TestingPlant Jun 10, 2025
729f6f6
feat: sync chunks
TestingPlant Jun 10, 2025
8a77b1c
feat: add genmap and utils
TestingPlant Jun 10, 2025
41b5ce3
Fix warnings
TestingPlant Jun 10, 2025
57e92b8
chore(deps): update valence
TestingPlant Jun 14, 2025
6812a57
refactor: implement Deref for Packet
TestingPlant Jun 15, 2025
9e7545c
feat: add events
TestingPlant Jun 15, 2025
1b071a2
feat: add Packet::minecraft_id
TestingPlant Jun 16, 2025
f0d0282
feat: inventory
TestingPlant Jun 16, 2025
f5a7a69
feat: hyperion-item
TestingPlant Jun 16, 2025
94e3ba4
feat: hyperion-rank-tree
TestingPlant Jun 16, 2025
feeaaf4
chore(deps): update valence
TestingPlant Jun 16, 2025
e130e8a
feat: chat
TestingPlant Jun 16, 2025
1f98a82
feat: sync player chunk positions
TestingPlant Jun 16, 2025
c41dbc4
fix: despawn disconnected players
TestingPlant Jun 17, 2025
8f1fc58
fix(hyperion-utils): rewrite tests to use new API
TestingPlant Jun 18, 2025
2f94660
feat(hyperion-utils): add next_lowest
TestingPlant Jun 18, 2025
4a53f2c
feat: handle position updates
TestingPlant Jun 16, 2025
80a4ac7
feat: spatial
TestingPlant Jun 20, 2025
b72a3d6
fix: fix clippy warnings
TestingPlant Jun 16, 2025
b15a543
fix: downgrade valence in packet-inspector
TestingPlant Jun 20, 2025
0696aa2
feat: hyperion-permission
TestingPlant Jun 20, 2025
015d976
fix(mojang): tests
TestingPlant Jun 20, 2025
82b55eb
fix(packet_channel): remove debug constant in test
TestingPlant Jun 20, 2025
95e4610
fix(spatial): warnings
TestingPlant Jun 20, 2025
0e7c55c
feat: add collision tests
TestingPlant Jun 20, 2025
e6b1b88
fix: change load chunk message to trace level
TestingPlant Jun 23, 2025
3a6c106
feat: implement most commands
TestingPlant Jun 23, 2025
71d3adc
feat: add gui
TestingPlant Jun 23, 2025
f31a4ed
chore(deps): update valence
TestingPlant Jun 24, 2025
0f9101a
feat: metadata
TestingPlant Jun 24, 2025
c5dda87
refactor(player_join): remove command handling
TestingPlant Jun 24, 2025
f25f9d1
fix: clippy
TestingPlant Jun 25, 2025
7b8d391
feat: hyperion-respawn
TestingPlant Jun 25, 2025
376cd95
feat: hyperion-proxy-module
TestingPlant Jun 25, 2025
80996be
fix: remove leftover dbg!
TestingPlant Jun 25, 2025
3309ed3
fix: remove flecs_ecs dependency
TestingPlant Jun 25, 2025
895ae1e
fix: remove unused event storage
TestingPlant Jun 25, 2025
07c1cdf
fix(docs): fix doc links
TestingPlant Jun 25, 2025
11c0528
refactor: remove RawQueue benchmark
TestingPlant Jun 25, 2025
be5c18a
refactor(hyperion): update tests
TestingPlant Jun 25, 2025
7df8ffc
chore(deps): update bevy
TestingPlant Jun 25, 2025
87f5503
fix(hyperion-utils): clippy
TestingPlant Jun 25, 2025
e32089e
feat: add SpatialPlugin to HyperionCore
TestingPlant Jun 25, 2025
5685fff
fix: remove ConnectionId requirement for arrows
TestingPlant Jun 25, 2025
e928ee8
feat: initialize entity uuid
TestingPlant Jun 25, 2025
99b20fb
fix(metadata): use Bundle and Commands
TestingPlant Jun 25, 2025
9cc6fcd
feat: entity tests
TestingPlant Jun 25, 2025
8add576
feat: vanish
TestingPlant Jun 25, 2025
bce7175
fix(player_join): spawn players after player list
TestingPlant Jun 25, 2025
e9aeee4
perf: process player join in parallel
TestingPlant Jun 26, 2025
268b81c
perf: use all cores for ComputeTaskPool
TestingPlant Jun 26, 2025
c24383a
perf(metadata): use pre-encoded packet
TestingPlant Jun 26, 2025
ec8f2bc
perf: multithreaded packet decoding
TestingPlant Jun 26, 2025
85fc9c0
perf: decode in FixedUpdate
TestingPlant Jun 26, 2025
516c25e
perf: multithread sync_player_entity
TestingPlant Jun 26, 2025
6abfb5c
refactor: remove leftover PacketState enum
TestingPlant Jun 27, 2025
9030450
fix(ingress): add Xp component
TestingPlant Jun 27, 2025
5d49c8b
fix(simulation): add MetadataPlugin
TestingPlant Jun 27, 2025
634bbed
refactor: use Bevy's Name component
TestingPlant Jun 27, 2025
862178a
perf: reduce allocs in ingress
TestingPlant Jun 28, 2025
ef86982
feat: broadcast chunk deltas
TestingPlant Jun 28, 2025
b3e8570
perf(send_full_loaded_chunks): remove chunk deltas
TestingPlant Jun 28, 2025
f3fe44c
perf: adjust MAX_CHUNKS_PER_TICK
TestingPlant Jun 28, 2025
b866d87
fix: remove unused bump
TestingPlant Jun 28, 2025
38570d1
chore(deps): update valence
TestingPlant Jun 29, 2025
8cefe06
perf: avoid Bytes allocation on most packets
TestingPlant Jun 29, 2025
4abd2c1
refactor: simplify try_next_packet api
TestingPlant Jun 29, 2025
dc497a9
fix(metadata): remove unused register_component_ids
TestingPlant Jun 30, 2025
52129e9
feat: implement all handlers
TestingPlant Jun 30, 2025
8501b98
fix: remove unused Comms
TestingPlant Jun 30, 2025
b4b30f4
fix: remove players properly
TestingPlant Jun 30, 2025
cb7e91a
fix: add ActiveAnimation
TestingPlant Jun 30, 2025
76a3971
feat: implement attack
TestingPlant Jun 30, 2025
45a3ea6
feat: add level updates
TestingPlant Jun 30, 2025
be206e7
feat: implement SetSkin handler
TestingPlant Jun 30, 2025
0b730f5
feat(tag): add plugins
TestingPlant Jun 30, 2025
78abdf8
fix: add ConfirmBlockSequences
TestingPlant Jun 30, 2025
01b4b77
refactor: remove commented out code
TestingPlant Jun 30, 2025
9dbaf5c
perf: enable rayon multithreading
TestingPlant Jun 30, 2025
54e31d7
feat(spawn): add missing components
TestingPlant Jun 30, 2025
ee27adb
fix: add packet_state::Play after GameJoinS2c
TestingPlant Jun 30, 2025
ee65b3a
refactor(tag): rename module to plugin
TestingPlant Jun 30, 2025
5dfe54a
perf: update kill counts in parallel
TestingPlant Jul 1, 2025
46c6419
perf: lower max batch size
TestingPlant Jul 1, 2025
57a1272
refactor(packet-channel): move to separate crate
TestingPlant Jul 1, 2025
e21ed9c
feat(packet-channel): add benches
TestingPlant Jul 1, 2025
01f15de
fix: skip test_get_first_collision
TestingPlant Jul 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,599 changes: 1,356 additions & 243 deletions Cargo.lock

Large diffs are not rendered by default.

76 changes: 42 additions & 34 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ members = [
'crates/hyperion-clap',
'crates/hyperion-command',
'crates/hyperion-crafting',
'crates/hyperion-event-macros',
'crates/hyperion-genmap',
'crates/hyperion-gui',
'crates/hyperion-inventory',
Expand All @@ -40,8 +39,8 @@ members = [
'crates/hyperion-stats',
'crates/hyperion-text',
'crates/hyperion-utils',
'crates/packet-channel',
'crates/simd-utils',
'crates/system-order',
'events/tag',
'tools/packet-inspector',
'tools/rust-mc-bot',
Expand All @@ -51,10 +50,12 @@ resolver = '2'
[workspace.dependencies]
anyhow = '1.0.98'
approx = '0.5.1'
arc-swap = '1.7.1'
arrayvec = '0.7.4'
base64 = '0.22.1'
bitfield-struct = "0.10.1"
bitvec = '1.0.1'
boxcar = '0.2.13'
bumpalo = '3.16'
byteorder = '1.5.0'
bytes = '1.8.0'
Expand All @@ -72,7 +73,7 @@ enumset = '1.1.6'
fastrand = '2.1.0'
flume = '0.11.1'
futures-util = '0.3.31'
glam = "0.30.3"
glam = "0.29.3"
heapless = '0.8.0'
heed = "0.21.0"
hex = '0.4.3'
Expand All @@ -90,9 +91,9 @@ num-traits = '0.2.19'
num_cpus = "1.16.0"
once_cell = '1.21.3'
ordered-float = "5.0.0"
ouroboros = '0.18.5'
papaya = "0.2.1"
parking_lot = '0.12.3'
paste = "1.0.15"
plotters-bitmap = '0.3.6'
proc-macro2 = '1.0.95'
proptest = '1.5.0'
Expand All @@ -102,12 +103,14 @@ rayon = '1.10.0'
rkyv = '0.8.8'
serde = '1.0.217'
serde_json = '1.0.140'
serial_test = '3.2.0'
slotmap = '1.0.7'
snafu = '0.8.5'
syn = '2.0.101'
tango-bench = "0.6.0"
tar = '0.4.41'
thiserror = '2.0.12'
thread_local = '1.1.8'
tikv-jemallocator = '0.6.0'
time = '0.3.41'
tokio = '1.45.0'
Expand All @@ -119,11 +122,16 @@ uuid = '1.16.0'
path = "crates/hyperion-proxy-module"

[workspace.dependencies.bvh]
git = 'https://github.com/andrewgazelka/bvh-data'
git = 'https://github.com/TestingPlant/bvh-data'

[workspace.dependencies.bvh-region]
path = 'crates/bvh-region'

[workspace.dependencies.bevy]
default-features = false
features = ['multi_threaded']
version = "0.16.1"

[workspace.dependencies.bytemuck]
features = ['derive']
version = '1.23.0'
Expand All @@ -133,7 +141,7 @@ features = ['derive']
version = '4.5.38'

[workspace.dependencies.derive_more]
features = ['display', 'from', 'deref', 'deref_mut', 'debug', 'constructor']
features = ['display', 'from', 'into', 'deref', 'deref_mut', 'debug', 'constructor', 'add']
version = "2.0.1"

[workspace.dependencies.divan]
Expand All @@ -143,10 +151,6 @@ git = 'https://github.com/nvzqz/divan'
default-features = false
version = '1.1.1'

[workspace.dependencies.flecs_ecs]
features = ['flecs_manual_registration']
git = 'https://github.com/Indra-db/Flecs-Rust'

[workspace.dependencies.geometry]
path = 'crates/geometry'

Expand All @@ -165,9 +169,6 @@ path = 'crates/hyperion-command'
[workspace.dependencies.hyperion-crafting]
path = 'crates/hyperion-crafting'

[workspace.dependencies.hyperion-event-macros]
path = 'crates/hyperion-event-macros'

[workspace.dependencies.hyperion-genmap]
path = 'crates/hyperion-genmap'

Expand Down Expand Up @@ -207,6 +208,9 @@ path = 'crates/hyperion-text'
[workspace.dependencies.hyperion-utils]
path = 'crates/hyperion-utils'

[workspace.dependencies.packet-channel]
path = 'crates/packet-channel'

[workspace.dependencies.indexmap]
features = ['rayon']
version = '2.9.0'
Expand Down Expand Up @@ -244,9 +248,6 @@ path = 'crates/simd-utils'
default-features = false
version = '5.2.0'

[workspace.dependencies.system-order]
path = 'crates/system-order'

[workspace.dependencies.tokio-util]
features = ['full']
version = '0.7.15'
Expand All @@ -264,43 +265,47 @@ features = ['timer-fallback']
version = '0.11.4'

[workspace.dependencies.valence_anvil]
branch = 'feat-open'
branch = 'feat-bytes'
features = ['parsing']
git = 'https://github.com/andrewgazelka/valence'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_build_utils]
branch = 'feat-open'
git = 'https://github.com/andrewgazelka/valence'
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_bytes]
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_generated]
branch = 'feat-open'
git = 'https://github.com/andrewgazelka/valence'
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_ident]
branch = 'feat-open'
git = 'https://github.com/andrewgazelka/valence'
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_nbt]
branch = 'feat-open'
branch = 'feat-bytes'
features = ['serde']
git = 'https://github.com/andrewgazelka/valence'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_protocol]
branch = 'feat-open'
branch = 'feat-bytes'
features = ['compression']
git = 'https://github.com/andrewgazelka/valence'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_registry]
branch = 'feat-open'
git = 'https://github.com/andrewgazelka/valence'
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_server]
branch = 'feat-open'
git = 'https://github.com/andrewgazelka/valence'
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.valence_text]
branch = 'feat-open'
git = 'https://github.com/andrewgazelka/valence'
branch = 'feat-bytes'
git = 'https://github.com/TestingPlant/valence'

[workspace.dependencies.tag]
path = "events/tag"
Expand All @@ -319,6 +324,9 @@ print_stdout = 'deny'
single_match_else = 'allow'
too_long_first_doc_paragraph = 'allow'
too_many_lines = 'allow'
needless_pass_by_value = 'allow'
type_complexity = 'allow'
too_many_arguments = 'allow'

upper_case_acronyms = 'deny'

Expand Down
6 changes: 4 additions & 2 deletions crates/hyperion-clap/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@ readme = "README.md"
publish = false

[dependencies]
clap ={ workspace = true }
flecs_ecs = { workspace = true }
clap = { workspace = true }
bevy = { workspace = true }
hyperion = { workspace = true }
hyperion-clap-macros = { workspace = true }
hyperion-command = { workspace = true }
hyperion-permission = { workspace = true }
hyperion-utils = { workspace = true }
tracing = { workspace = true }
valence_protocol = { workspace = true }
valence_bytes = { workspace = true }

[lints]
workspace = true
Loading
Loading