You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Create Horse Power CE 1.2.7
Animal-power data/runtime foundation
Added cross-loader data-driven attachment profiles with exact item/tag selectors, worker/machine restrictions, backend-safe persistence/recovery, radius limits, consumption/drop policy, and output multipliers.
Attachment ownership now rejects cross-machine steals before mutating leashes, vanilla-leash profiles bind only the selected worker instead of batch-moving unrelated leashables, and consumed attachments preserve their full per-stack NBT/data-component state when returned.
Extracted the Horse Crank's single-worker lifecycle behind a reusable animal-power engine and added bounded assignment persistence/migration groundwork while preserving legacy Horse Crank NBT/runtime behavior. Multi-worker lifecycle/output semantics remain follow-up work.
Added exact per-machine worker-stat overrides with field inheritance and deterministic profile-source precedence, including loader-neutral worker-profile datapack JSON on Forge/NeoForge and the NeoForge KubeJS startup-profile map API.
Ported Forge recipes/tags datagen, switched Forge shared datapack resources from hand-maintained JSON to generated output, and added generated-output parity/drift gates.
Release-readiness and packmaker surfaces
Fresh 1.2+ server configs now leave legacy path lists empty so bundled path profiles are not shadowed (dirt 0.70, gravel 1.10); upgraded 1.1 files keep their stored path entries.
Added shared createhorsepower/worker_profiles datapack JSON on both loaders, including machine overrides and deterministic priority/tie handling.
Attachment JSON parsing, shared worker JSON, fresh-default path behavior, and NeoForge KubeJS machine overrides now have parser/source-boundary regression coverage.
KubeJS worker-profile maps reject unknown top-level or machine-override keys instead of silently ignoring snake_case keys; public docs now show the exact camelCase scripting schema.
README/CurseForge/packmaker docs now distinguish bundled vanilla-lead gameplay from pack-supplied harness, yoke, and virtual_tether framework modes and use the unified changelog path.