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.6
Fixes
Fixed NeoForge path output being applied twice after the pathEvaluated KubeJS hook. With KubeJS installed and no listener registered, a Great path could incorrectly turn a 2.0x RPM multiplier into 4.0x, and non-neutral stress multipliers could likewise be squared.
Defined pathEvaluated speed/stress values as final absolute path multipliers. Scripts may still replace them with setSpeedMultiplier() / setStressMultiplier(), but the crank now assigns the returned final values instead of multiplying them again.
Fixed NeoForge path effects being lost when KubeJS is not installed. The no-KubeJS firePathEvaluated fallback now preserves the evaluator's absolute speed/stress multipliers instead of replacing them with neutral 1.0x values.
Preserved Forge behavior by keeping the common no-op script hook aligned with the evaluator's existing path multipliers.
Regression coverage
Added discriminating evaluator coverage for LEGACY, WORST_BLOCK, and WEIGHTED_AVERAGE using a mixed custom path whose expected speed and stress outputs differ by mode.
Added coverage proving disabling path stress scaling leaves RPM, validity, coverage accounting, and efficiency unchanged while neutralizing only the final path stress multiplier.
Added Forge 1.20.1 and NeoForge 1.21.1 crank GameTests for the production-shaped case: 16 base RPM / 32 base SU on a Great path keeps the 2.0x RPM path bonus while final stress remains exactly 32 SU.
Added a NeoForge no-KubeJS regression verifying OptionalIntegrations.firePathEvaluated() preserves a 2.0x speed / 1.10x stress result unchanged.
Retained the NeoForge KubeJS-present runtime regression so both optional-integration branches are covered.