Mc1.21.1/neoforge/dev#158
Conversation
Starior
commented
Mar 23, 2026
- Refactored Crushing Wheel Fortune to use an effective pair level L = (F1 + F2) / 2, persisted in controller NBT as EffectiveFortuneLevel, and applied a crusher-specific expected roll model at 0.8 * (1/(L+2) + (L+1)/2) (~20% below vanilla-style reference).
- Added Silk Touch processing behavior for Crushing Wheels: per input roll, return one input item with 5% chance if one wheel has Silk Touch, or 10% if both wheels have Silk Touch; persisted wheel Silk count in NBT as SilkTouchWheelCount.
- Added an anvil restriction for machine block items so enchanting only works with a single item in the left slot (count > 1 is blocked by clearing result).
- Added custom anvil merge support for Fortune + Silk Touch on Crushing Wheels, with pair detection in both directions and custom anvil cost multiplier x4.
- Added scoped compatibility override for the Fortune/Silk conflict using EnchantmentMixin + AnvilCompatibilityContext, so compatibility is lifted only during the intended anvil flow (not globally).
- Extended Crushing Wheel detection for anvil logic to include modded wheel variants via item tag c:create/crushing_wheels.
- Added a small crusher-side optimization: before doing enchantment registry lookups for wheel/controller sync, it now checks whether either wheel has any enchantments (mayHaveAnyEnchantments), and skips the expensive lookup/merge path when both are empty.
mc1.21.1/neoforge/dev
Release 3.6.0 (NeoForge 1.21.1)
…ze enchant checks
Enable Fortune + Silk Touch only for crushing wheel items during anvil merges. Add a scoped compatibility context and Enchantment mixin so the conflict override applies only in the intended anvil flow, with x4 cost preserved.
Enable Fortune+Silk Touch anvil compatibility only for crushing wheels, including modded variants from c:create/crushing_wheels. Keep the compatibility override scoped to the anvil context and preserve existing machine enchanting rules.
|
Thanks for the PR! |
|
Is it okay if I reopen and merge this? |
|
I think I did what you asked with the tag And I'm trying out the implementation of leaving the original block in the world and storing the enchantments in its BlockEntity in another branch. |