mirror of
https://github.com/horizon-rust/horizon-mods.git
synced 2026-11-07 11:05:58 -10:00
Zoom, FPS Counter, Keystrokes and Minimap turn native (2.0.0) (#26)
The four official entries switch from `mod` to `native-mod`, each with a 2.0.0 `.hnmod` built from native/<name>/ and pinned to Nightly 6f8c7a0 (nightly-source/2026-10-28-6f8c7a0), the first Nightly with the native hook points v1 and the on/off from Options > Mods. Their 1.0.0 `.hmod` stays published; the index lists only 2.0.0, and the launcher keeps a player's installed `.hmod` until a native build has the mod. Settings carry over: the same files and keys. Recipes stays on 8f91683 (hook points v2) until a Nightly ships them. native.py now builds mods pinned to different commits on the pin of the mods that need the most hook points, as the launcher does, so `together` checks the whole set without --horizon. Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
d6a1ddd703
commit
22c6f14ea6
14 files changed
+75
-19
No files matched your search
@@ -65,7 +65,7 @@ why.
|
||||
| `.github/workflows/publish.yml` | On merge: releases, then `index.json` on Pages |
|
||||
| `.github/workflows/cleanup.yml` | Weekly: staging files nobody needs any more |
|
||||
| `.github/workflows/native.yml` | Horizon's native mods: each changed one's tests, `.hnmod` and game check, all of them together, and weekly on the newest Nightly |
|
||||
| `native/<name>/` | Horizon's own native mods (Zoom, FPS Counter, Keystrokes, Minimap): the source of their `.hnmod` files |
|
||||
| `native/<name>/` | Horizon's own native mods (Zoom, FPS Counter, Keystrokes, Minimap, Recipes): the source of their `.hnmod` files |
|
||||
| `native/tools/` | Shared by them: apply on Horizon, check, build, package, prove (`native/tools/native.py`) |
|
||||
| `scripts/` | What the workflows share |
|
||||
|
||||
|
||||
+15
-2
@@ -1,5 +1,5 @@
|
||||
id = "fps_overlay"
|
||||
kind = "mod"
|
||||
kind = "native-mod"
|
||||
name = "FPS Counter"
|
||||
summary = "Frames per second in a corner of the screen, with the minimum and the 1% low."
|
||||
description = """
|
||||
@@ -10,11 +10,24 @@ Horizon's own FPS counter, formerly an extra in Options > Horizon Extras.
|
||||
- Settings: Options > Mods > FPS Counter > Settings (corner; minimum and 1% low).
|
||||
|
||||
It reads the game's own frame counter and draws on the HUD: nothing else.
|
||||
|
||||
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
|
||||
(Settings → Game → Native mods (experimental), then Build). Your settings carry over from 1.0.0. Turn it off in
|
||||
Options > Mods: it rests at once, and the next build leaves it out. Its source is
|
||||
[horizon-mods/native/fps-overlay](https://github.com/horizon-rust/horizon-mods/tree/main/native/fps-overlay).
|
||||
"""
|
||||
authors = ["Horizon"]
|
||||
owners = ["ludovic111"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/horizon-rust/horizon/tree/main/mods/official/fps-overlay"
|
||||
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/fps-overlay"
|
||||
|
||||
[[versions]]
|
||||
version = "2.0.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "fps_overlay-2.0.0.hnmod"
|
||||
sha256 = "bedb670e2490ce8239906c86eabd3a0c131ef5037b2937607231bdbdba38c171"
|
||||
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
|
||||
+15
-2
@@ -1,5 +1,5 @@
|
||||
id = "keystrokes"
|
||||
kind = "mod"
|
||||
kind = "native-mod"
|
||||
name = "Keystrokes"
|
||||
summary = "Your movement keys, mouse buttons and space bar in a corner, lit while held, with clicks per second."
|
||||
description = """
|
||||
@@ -10,11 +10,24 @@ Horizon's own keystrokes overlay, formerly an extra in Options > Horizon Extras.
|
||||
- Settings: Options > Mods > Keystrokes > Settings (corner; clicks per second).
|
||||
|
||||
It reads which keys you hold and your clicks, and draws on the HUD: nothing else.
|
||||
|
||||
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
|
||||
(Settings → Game → Native mods (experimental), then Build). Your settings carry over from 1.0.0. Turn it off in
|
||||
Options > Mods: it rests at once, and the next build leaves it out. Its source is
|
||||
[horizon-mods/native/keystrokes](https://github.com/horizon-rust/horizon-mods/tree/main/native/keystrokes).
|
||||
"""
|
||||
authors = ["Horizon"]
|
||||
owners = ["ludovic111"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/horizon-rust/horizon/tree/main/mods/official/keystrokes"
|
||||
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/keystrokes"
|
||||
|
||||
[[versions]]
|
||||
version = "2.0.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "keystrokes-2.0.0.hnmod"
|
||||
sha256 = "bed34d2f8049e92c52cd7c91c0c4c8c9d165faaf0183500cf4021d9e04783a7d"
|
||||
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
|
||||
+15
-2
@@ -1,5 +1,5 @@
|
||||
id = "minimap"
|
||||
kind = "mod"
|
||||
kind = "native-mod"
|
||||
name = "Minimap"
|
||||
summary = "A map of the world around you in a corner of the screen."
|
||||
description = """
|
||||
@@ -10,11 +10,24 @@ Horizon's own minimap, formerly an extra in Options > Horizon Extras.
|
||||
- Settings: Options > Mods > Minimap > Settings (corner; size; square or round; zoom, 0.5 to 4 blocks per pixel; turn with the player).
|
||||
|
||||
It shows a map in a corner of the screen: nothing else.
|
||||
|
||||
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
|
||||
(Settings → Game → Native mods (experimental), then Build). Your settings carry over from 1.0.0. Turn it off in
|
||||
Options > Mods: it rests at once, and the next build leaves it out. Its source is
|
||||
[horizon-mods/native/minimap](https://github.com/horizon-rust/horizon-mods/tree/main/native/minimap).
|
||||
"""
|
||||
authors = ["Horizon"]
|
||||
owners = ["ludovic111"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/horizon-rust/horizon/tree/main/mods/official/minimap"
|
||||
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/minimap"
|
||||
|
||||
[[versions]]
|
||||
version = "2.0.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "minimap-2.0.0.hnmod"
|
||||
sha256 = "6f5dbca0699562b088a04b3f5abdc1b7faf8da51257a96da0a4ed639c6644ed9"
|
||||
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
|
||||
+15
-2
@@ -1,5 +1,5 @@
|
||||
id = "zoom"
|
||||
kind = "mod"
|
||||
kind = "native-mod"
|
||||
name = "Zoom"
|
||||
summary = "Hold a key to zoom in; the mouse wheel zooms further while you hold it."
|
||||
description = """
|
||||
@@ -11,11 +11,24 @@ Horizon's own zoom, formerly an extra in Options > Horizon Extras.
|
||||
- Settings: Options > Mods > Zoom > Settings (the key; starting zoom; smooth zoom; slower turning).
|
||||
|
||||
It hears its own key and the mouse wheel while you hold it, and zooms the camera: nothing else.
|
||||
|
||||
Now a native mod (2.0.0): built into the game by the launcher, on the Horizon you play, like any native mod
|
||||
(Settings → Game → Native mods (experimental), then Build). Your settings carry over from 1.0.0. Turn it off in
|
||||
Options > Mods: it rests at once, and the next build leaves it out. Its source is
|
||||
[horizon-mods/native/zoom](https://github.com/horizon-rust/horizon-mods/tree/main/native/zoom).
|
||||
"""
|
||||
authors = ["Horizon"]
|
||||
owners = ["ludovic111"]
|
||||
license = "MIT"
|
||||
source = "https://github.com/horizon-rust/horizon/tree/main/mods/official/zoom"
|
||||
source = "https://github.com/horizon-rust/horizon-mods/tree/main/native/zoom"
|
||||
|
||||
[[versions]]
|
||||
version = "2.0.0"
|
||||
published = "2026-10-29"
|
||||
game = "26.3"
|
||||
file = "zoom-2.0.0.hnmod"
|
||||
sha256 = "49fa2d7d635225c53304fbf1477606c0677eb23d94dac75b730f6c3ba065f127"
|
||||
changelog = "Native: built into the game by the launcher on Horizon's native hook points; settings carry over; turn it off in Options > Mods."
|
||||
|
||||
[[versions]]
|
||||
version = "1.0.0"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"game": "26.3",
|
||||
"hooks": 1,
|
||||
"horizon_repository": "https://github.com/horizon-rust/horizon",
|
||||
"horizon_revision": "8f91683323ac1165e7d76b3037e18f30fe647205",
|
||||
"horizon_revision": "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a",
|
||||
"horizon_mixins_repository": "https://github.com/horizon-rust/horizon-mixins",
|
||||
"horizon_mixins_revision": "0d6b103c70633d8fd9443d8d0acd3aadaacedb06"
|
||||
}
|
||||
@@ -6,7 +6,7 @@ priority = 100
|
||||
# The commit it was tested on. It uses only the native hook points (hooks 1 in
|
||||
# compatibility.json): the launcher builds it on any Horizon that has them.
|
||||
[compatibility]
|
||||
horizon_revision = "8f91683323ac1165e7d76b3037e18f30fe647205"
|
||||
horizon_revision = "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a"
|
||||
|
||||
[[module]]
|
||||
id = "runtime"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"game": "26.3",
|
||||
"hooks": 1,
|
||||
"horizon_repository": "https://github.com/horizon-rust/horizon",
|
||||
"horizon_revision": "8f91683323ac1165e7d76b3037e18f30fe647205",
|
||||
"horizon_revision": "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a",
|
||||
"horizon_mixins_repository": "https://github.com/horizon-rust/horizon-mixins",
|
||||
"horizon_mixins_revision": "0d6b103c70633d8fd9443d8d0acd3aadaacedb06"
|
||||
}
|
||||
@@ -6,7 +6,7 @@ priority = 100
|
||||
# The commit it was tested on. It uses only the native hook points (hooks 1 in
|
||||
# compatibility.json): the launcher builds it on any Horizon that has them.
|
||||
[compatibility]
|
||||
horizon_revision = "8f91683323ac1165e7d76b3037e18f30fe647205"
|
||||
horizon_revision = "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a"
|
||||
|
||||
[[module]]
|
||||
id = "runtime"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"game": "26.3",
|
||||
"hooks": 1,
|
||||
"horizon_repository": "https://github.com/horizon-rust/horizon",
|
||||
"horizon_revision": "8f91683323ac1165e7d76b3037e18f30fe647205",
|
||||
"horizon_revision": "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a",
|
||||
"horizon_mixins_repository": "https://github.com/horizon-rust/horizon-mixins",
|
||||
"horizon_mixins_revision": "0d6b103c70633d8fd9443d8d0acd3aadaacedb06"
|
||||
}
|
||||
@@ -6,7 +6,7 @@ priority = 100
|
||||
# The commit it was tested on. It uses only the native hook points (hooks 1 in
|
||||
# compatibility.json): the launcher builds it on any Horizon that has them.
|
||||
[compatibility]
|
||||
horizon_revision = "8f91683323ac1165e7d76b3037e18f30fe647205"
|
||||
horizon_revision = "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a"
|
||||
|
||||
[[module]]
|
||||
id = "runtime"
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
python3 native/tools/native.py proof --resources PATH zoom # build, then drive the game with horizon-ctl
|
||||
--horizon REV build on another Horizon commit (`latest` = the newest Nightly) instead of the mods'
|
||||
compatibility.json: they use only the native hook points, so they build on any Horizon whose
|
||||
NATIVE_HOOKS_API is at least the one they name, as the launcher does.
|
||||
NATIVE_HOOKS_API is at least the one they name, as the launcher does. Without it, mods pinned
|
||||
to different commits build on the commit of those that need the most hook points.
|
||||
`all` names every mod in native/.
|
||||
|
||||
Horizon's source comes from GitHub's archive of the commit, never a local checkout; horizon-mixins is built once at
|
||||
@@ -206,7 +207,10 @@ def main():
|
||||
package(m)
|
||||
return
|
||||
if args.horizon is None:
|
||||
revs = {m.compat["horizon_revision"] for m in mods}
|
||||
# Mods on the hook points build on any Horizon with the hook points they need, as the launcher builds
|
||||
# them: the commit of the mods that need the most has them all (stage checks each mod's need).
|
||||
newest = max(m.compat["hooks"] for m in mods)
|
||||
revs = {m.compat["horizon_revision"] for m in mods if m.compat["hooks"] == newest}
|
||||
if len(revs) != 1:
|
||||
sys.exit(f"the mods were tested on different Horizons {sorted(revs)}: pass --horizon")
|
||||
revision = revs.pop()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"game": "26.3",
|
||||
"hooks": 1,
|
||||
"horizon_repository": "https://github.com/horizon-rust/horizon",
|
||||
"horizon_revision": "8f91683323ac1165e7d76b3037e18f30fe647205",
|
||||
"horizon_revision": "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a",
|
||||
"horizon_mixins_repository": "https://github.com/horizon-rust/horizon-mixins",
|
||||
"horizon_mixins_revision": "0d6b103c70633d8fd9443d8d0acd3aadaacedb06"
|
||||
}
|
||||
@@ -6,7 +6,7 @@ priority = 100
|
||||
# The commit it was tested on. It uses only the native hook points (hooks 1 in
|
||||
# compatibility.json): the launcher builds it on any Horizon that has them.
|
||||
[compatibility]
|
||||
horizon_revision = "8f91683323ac1165e7d76b3037e18f30fe647205"
|
||||
horizon_revision = "6f8c7a0e5d531d3834c4d0be4659a1db8e7e5c2a"
|
||||
|
||||
[[module]]
|
||||
id = "runtime"
|
||||
|
||||
Reference in new issue
Block a user