arismoko
14e5230c9e
Wrap relative teleport angle deltas before resolving them
2026-11-03 16:43:32 +00:00
arismoko
de02700c81
Initialize command registries and permissions in the pitch fixture
2026-11-03 16:16:07 +00:00
arismoko
5d17cd57d3
Keep command angle wrapping out of the shared teleport writer
2026-11-03 16:12:02 +00:00
arismoko
387d2d5855
Test non-finite teleport rotations
2026-11-03 10:57:15 +00:00
arismoko
233e61d62f
Guard non-finite teleport rotations
2026-11-03 10:38:20 +00:00
arismoko
00681eb16b
Merge maintainer upstream refresh without rewriting history
2026-11-03 05:01:18 +00:00
arismoko
868bc02e8e
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6FN1T2FS6T4M8P7GFXJ6WTR-tp-pitch-clamp
2026-11-03 04:51:06 +00:00
arismoko
d3aae59b1f
Merge upstream main after its verification fixes
2026-11-03 04:50:51 +00:00
arismoko
fec9e03f33
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6FN1T2FS6T4M8P7GFXJ6WTR-launcher-allocator
2026-11-03 04:50:05 +00:00
arismoko
5e6d499849
Merge upstream main into build-time native API generation
2026-11-03 04:48:17 +00:00
arismoko
18ae21bcca
Wrap teleport rotations like vanilla
2026-11-03 04:19:06 +00:00
arismoko
0ade9ae0e9
Respect catalog targets when generating Host helpers
...
Resolve the callee named by the catalog rather than deriving it from the public helper name. Keep native-method and module validation, and cover a helper that shares a hook name but targets its distinct ref method.
2026-11-03 04:05:03 +00:00
arismoko
4ac46cd511
Wrap teleport pitch before clamping
2026-11-03 04:02:19 +00:00
arismoko
246f2a22e5
Fix native game allocator initialization
2026-11-03 03:36:34 +00:00
arismoko
72396f7ecb
Merge upstream main into build-time native API generation
2026-11-03 03:29:20 +00:00
arismoko
616e855940
Share mod-owned generation and move dispatch tests to its crate
...
Delegate launcher trait, event and helper generation to horizon-mod-api-gen. Keep the old-source compatibility path, move dispatch fixtures out of xtask into an unpublished workspace member, and select launcher checks when shared generator code changes.
2026-11-03 02:31:27 +00:00
arismoko
8f6fe50c47
Derive mod API receivers from public Ref structs
...
Drop the shared HANDLES registration list. Reuse the source export walk, infer snake_case receiver keys, and keep unknown-receiver errors and duplicate-key diagnostics.
2026-11-03 02:19:34 +00:00
arismoko
9116ac3911
Generate the native mod API into Cargo OUT_DIR
...
Build every profile from the catalog, fragments and handwritten signatures. Keep xtask for filling handwritten placeholders, and stamping for catalog data. Stage launcher-owned declarations as build input, retaining shared injection validation for older source trees with committed generated traits.
2026-11-03 02:14:54 +00:00
arismoko
275fffcb37
Native mods: test that saved entities of every kind load their attachments back onto themselves
2026-11-03 00:55:19 +00:00
arismoko
5494d7fc5e
Merge upstream main into w3-explosion
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 19:34:50 +00:00
arismoko
d9b0388195
Merge upstream main into w1-bow
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 19:34:33 +00:00
arismoko
26db6dcaf9
Merge upstream main into w3-explosion
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 18:44:59 +00:00
arismoko
8c579c0ef1
Merge upstream main into w1-bow
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 18:44:42 +00:00
arismoko
d4ff1afd96
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6EA9PQK4BXKXA1BE1D8FR68-w3-block-drops-note
2026-11-02 17:40:33 +00:00
arismoko
0a5b17f53b
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6EA9PJ1AQ4Q6N2S9TNXP8B7-w3-level-misc
...
# Conflicts:
# crates/horizon-client/src/mod_api.rs
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 17:40:17 +00:00
arismoko
d0f4655dc6
Merge remote-tracking branch 'upstream/main' into entity-holders
...
# Conflicts:
# crates/horizon-client/src/game/persist.rs
2026-11-02 16:51:49 +00:00
arismoko
ef3d35dd97
Retry siege setup after a canceled attempt
2026-11-02 16:16:37 +00:00
arismoko
b7b0de9866
Merge remote-tracking branch 'upstream/main' into entity-holders
2026-11-02 15:05:17 +00:00
arismoko
0e6e918a75
Merge remote-tracking branch 'upstream/main' into native-template
2026-11-02 15:05:13 +00:00
arismoko
f495aeba1b
Merge upstream main into w1-bow
2026-11-02 15:04:21 +00:00
arismoko
2f1b035fce
Merge upstream main into w3-explosion
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 15:03:41 +00:00
arismoko
063b262b0c
Merge upstream main into w3-level-misc
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 15:03:33 +00:00
arismoko
608b08c2c0
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6EA9PQK4BXKXA1BE1D8FR68-w3-block-drops-note
2026-11-02 15:03:30 +00:00
arismoko
a09da57204
Merge upstream main into w1-bow
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated.rs
2026-11-02 15:01:27 +00:00
arismoko
96e0000c86
Remove Java identity wording from spawn hook
2026-11-02 14:51:17 +00:00
arismoko
656929153f
Merge remote-tracking branch 'upstream/main' into entity-holders
2026-11-02 14:47:38 +00:00
arismoko
5833c990f8
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6EA9PQK4BXKXA1BE1D8FR68-w3-block-drops-note
2026-11-02 14:44:08 +00:00
arismoko
b75b4d06a1
Document explosion player context
2026-11-02 14:44:04 +00:00
arismoko
a61ff00f34
Document note tuning hook contract
2026-11-02 14:43:49 +00:00
arismoko
42de84a1d7
Expose note block tuning hook
2026-11-02 14:34:20 +00:00
arismoko
9de3e585b0
Dispatch explosion knockback to native mods
2026-11-02 14:31:02 +00:00
arismoko
acb777465d
Merge upstream main into w1-bow
2026-11-02 14:30:46 +00:00
arismoko
d4bb9a2598
Regenerate level hooks and fix catalog tests
2026-11-02 14:28:59 +00:00
arismoko
9e2dab8547
Merge upstream main into w3-explosion
2026-11-02 14:26:58 +00:00
arismoko
010db43f76
Merge remote-tracking branch 'upstream/main' into native-template
2026-11-02 14:26:56 +00:00
arismoko
b9004603f8
Merge remote-tracking branch 'upstream/main' into entity-holders
2026-11-02 14:26:56 +00:00
arismoko
35c5475d14
Merge upstream main into w1-bow
2026-11-02 14:24:43 +00:00
arismoko
0f2a76003e
Merge upstream main into w3-level-misc
...
# Conflicts:
# crates/horizon-client/src/game/native_hooks.rs
2026-11-02 14:24:41 +00:00
arismoko
9d24a0ea53
Merge upstream main into w3-explosion
2026-11-02 14:24:10 +00:00
arismoko
e88344fcef
Regenerate the mod API
2026-11-02 14:21:51 +00:00
arismoko
a848ae0be2
cargo horizon-mod new: a native trait mod template
...
`--template native [--horizon <commit>]` writes a trait mod's bundle: its
horizon-mixin.toml, pinned to that Horizon commit or left unpinned, and an
[api] crate whose hooks() greets each player who joins. The files are
what docs/api/mod-files.md lets a bundle carry, so the launcher builds the
folder as it is and packs it into an .hnmod; a test packs it that way and
runs the registry's check on it.
2026-11-02 14:13:03 +00:00
arismoko
97e4713f37
Bow: no projectile lookup work without native mods
2026-11-02 14:11:04 +00:00
arismoko
5a1491137e
Merge upstream main into w1-bow
2026-11-02 14:11:04 +00:00
arismoko
84e2ee50ca
Potential spawns hook: borrow the list and keep the fast path without mods
...
Fix the local player's UUID, merge the SpawnEntry import, and move the
hook docs into the fragments' summaries.
2026-11-02 14:10:38 +00:00
arismoko
e3fa03a0e0
Native mods: every entity holds attachments
...
Holder::Entity refused experience orbs, projectiles, tridents, falling
blocks, fireworks, primed TNT, End crystals, the dragon and ominous item
spawners: they were saved through the memory found again by type and
position, with a new UUID once they moved, so attachments could not be
found under it. Every entity now keeps the UUID it was loaded with (or
was given) by entity id, reads its attachments back on load, and the
holder check walks entity_lists!, so a new kind holds attachments too.
The entity memory's pruning walks the same lists: it no longer drops the
UUIDs of rockets, falling blocks and tridents at each autosave.
2026-11-02 14:08:27 +00:00
arismoko
d926c8e3f3
Apply explosion knockback to flying players and dragons
2026-11-02 13:54:09 +00:00
arismoko
4f3b375d25
Apply explosion knockback hook after entity damage
2026-11-02 13:44:46 +00:00
arismoko
b74cd0c600
Fix explosion knockback hook contract, dragon and creative flyers
...
Use the collect contract so mods see and change the calculated velocity
(replace generated code that did not compile), fire it for the ender
dragon and for creative players flying, and restore the lost comments.
2026-11-02 13:41:54 +00:00
arismoko
9245872736
Merge upstream main into the bow hooks
...
release_bow asks getProjectile before ArrowLooseEvent, as BowItem.releaseUsing
does, and the hook markers name their fragments.
2026-11-02 13:39:12 +00:00
arismoko
2f470c7a82
Add village siege native hook
2026-11-02 13:35:33 +00:00
arismoko
355becd82d
Wire explosion knockback for other entities and wind
2026-11-02 13:33:21 +00:00
arismoko
fd75a600c5
Apply potential spawn hook to validation lookup
2026-11-02 13:33:17 +00:00
arismoko
92ecb918ed
Add potential natural spawns hook
2026-11-02 13:31:58 +00:00
arismoko
e1084abe75
Add explosion knockback hook for players
2026-11-02 13:31:44 +00:00
arismoko
e21b51bf94
Merge remote-tracking branch 'upstream/main' into panic-mods
...
# Conflicts:
# crates/horizon-client/src/mod_api.rs
2026-11-02 13:04:56 +00:00
arismoko
5e7f5eb03c
Target drowning hook in its compiled crate
2026-11-02 13:03:23 +00:00
arismoko
c1649ac88e
Merge remote-tracking branch 'upstream/main' into mixin-docs
...
# Conflicts:
# docs/native-mods.md
2026-11-02 13:02:49 +00:00
arismoko
a24453a6fe
Merge upstream main into living hooks
2026-11-02 12:56:23 +00:00
arismoko
704f504b5a
Limit far chunk snapshot promotion to Horizon clients
2026-11-02 12:51:05 +00:00
arismoko
78da6fd259
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6E1Z4GQ0S5X4JCHHMZRPF31-attachment-sync
...
# Conflicts:
# crates/horizon-client/src/lan/hub.rs
# crates/horizon-client/src/mod_api/generated_host.rs
2026-11-02 12:48:22 +00:00
arismoko
bcc3d47b55
Merge upstream main into item expiry hooks
2026-11-02 12:44:04 +00:00
arismoko
32b4236c75
docs: where a mixin module lives, and why the [api] crate keeps its own attachment
2026-11-02 12:38:10 +00:00
arismoko
6fc2bd3256
A panic in a native mod's hook names the mod and the hook
...
The generated dispatch loops over mod_api::entered, which marks the thread as
inside each mod's hook while it runs; the crash handler adds "in native mod
<id>, hook <hook>" to the panic's message, and the panic goes on unwinding as
before. The launcher's generated executable passes the bundles' ids to
mod_api::name_mods when the revision has it. Dispatch still takes
&[Box<dyn Hooks>].
2026-11-02 12:37:42 +00:00
arismoko
364297a363
Merge remote-tracking branch 'upstream/main' into mixin-docs
...
# Conflicts:
# docs/native-mods.md
2026-11-02 12:36:42 +00:00
arismoko
c029313d6c
Crash reports list the build's native mods
...
A game the launcher built with native mods reads their ids and versions from
the native-mods.json beside it and adds them to the crash report's details as
Native Mods. The line stays out of crash telemetry, which keeps only its listed
details.
2026-11-02 12:32:16 +00:00
arismoko
4d97da3bca
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6E1Z4GQ0S5X4JCHHMZRPF31-attachment-sync
2026-11-02 12:17:49 +00:00
arismoko
4717146e92
Merge upstream main into living hooks
2026-11-02 12:06:42 +00:00
arismoko
3794f5e635
Merge upstream main into item expiry hooks
2026-11-02 12:06:25 +00:00
arismoko
05ac3060c0
Fix attachment sync lifecycle and far chunk snapshots
2026-11-02 12:04:49 +00:00
arismoko
b68e32f307
Merge remote-tracking branch 'upstream/main' into v2/ses_01M6E1Z4GQ0S5X4JCHHMZRPF31-attachment-sync
...
# Conflicts:
# crates/horizon-client/src/game/remote.rs
# crates/horizon-client/src/lan/hub.rs
# crates/horizon-world/src/attachments.rs
# docs/native-mods.md
2026-11-02 11:59:57 +00:00
arismoko
2970a73d5c
Suppress living callbacks during movement prediction
2026-11-02 11:48:46 +00:00
arismoko
16c57b72c5
Cover living free functions in hook catalog test
2026-11-02 11:35:13 +00:00
arismoko
d9fd6ae395
Fix attachment sync review findings
2026-11-02 11:30:10 +00:00
arismoko
0c9e0a3563
Merge branch 'main' of https://github.com/horizon-rust/horizon into v2/ses_01M6DYMGWF02H5RBZ0RFVQ78M9-test-host
...
# Conflicts:
# crates/horizon-client/src/mod_api/generated_host.rs
2026-11-02 11:21:49 +00:00
arismoko
0fc26de99b
Keep vanilla drowning event shape
2026-11-02 11:19:24 +00:00
arismoko
479a03daef
Fix attachment sync review findings
2026-11-02 11:18:18 +00:00
arismoko
1ed50d2e5b
Set tick phase explicitly in resting item test
2026-11-02 11:16:50 +00:00
arismoko
7c7f781095
Fix test guidance sentence
2026-11-02 11:15:05 +00:00
arismoko
bd7e5670fe
Keep drowning bubble count informational
2026-11-02 11:11:19 +00:00
arismoko
5b433baaf9
Restore generator and normalize living hook entity IDs
2026-11-02 11:05:20 +00:00
arismoko
30078d515b
Fix attachment sync review findings
2026-11-02 11:04:34 +00:00
arismoko
3dd5956f10
Fix signed age in item merge test fixture
2026-11-02 11:04:16 +00:00
arismoko
08a0f3e3b1
Clarify testing unconstructible mod API values
2026-11-02 11:00:22 +00:00
arismoko
6be9ab6017
Use a listen contract for item expiry extensions
2026-11-02 11:00:22 +00:00
arismoko
45ffb1d479
Regenerate the mod API
2026-11-02 10:51:01 +00:00
arismoko
6a3160acb1
Regenerate the mod API
2026-11-02 10:49:42 +00:00
arismoko
1ec8980e6a
Document testing a trait mod through dispatch functions
2026-11-02 10:41:17 +00:00
arismoko
9d7ea67f81
Mod API: a mod can implement the key hook
...
mod_api re-exported winit::event::KeyEvent, which shadowed the generated
KeyEvent<'_> that Hooks::key takes, so a mod crate could not name key's event.
mod_api now re-exports winit itself, as it does serde_json, and a test builds a
mod-side Hooks with key and input_key.
2026-11-02 10:38:08 +00:00
arismoko
e0835ea689
Fix drowning particle delivery and remove unused heal hook
2026-11-02 10:26:00 +00:00
arismoko
cee65d7ce2
Native hook stamping keeps the generated mod API current
...
The catalog takes a batch's new hooks and helpers in file name order, the order
xtask mod-api reads pending fragments in; API numbers still follow merge order.
Stamping used to append them in merge order, which reordered generated.rs.
2026-11-02 10:19:23 +00:00