feat: replace event-based drops with Global Loot Modifier (fix Create drill crash)

- Add CustomOreLootModifier (Global Loot Modifier) handling all ore drops,
  ensuring compatibility with machines (Create drill/contraptions) and avoiding
  duplication. Handles silk touch (vanilla block / shard diamond block) and
  fortune via config-driven min/max drops.
- Register GLM serializer via DeferredRegister in CustomOreGenMod (user code block)
- Rewrite OreBreakEventHandler: remove direct drops mutation that caused
  UnsupportedOperationException on immutable list when broken by Create drill.
  Drops are now fully GLM-driven; handler only triggers XP/procedure logic.
- Migrate loot tables from loot_table/ (singular, 1.20) to loot_tables/
  (plural, NeoForge 1.21 format) for all 16 ore blocks.
- Declare GLM in data/neoforge/loot_modifiers/global_loot_modifiers.json
- Add Create crushing + milling recipes for diamond -> diamond shards
- Config tweaks: tool durabilities (pickaxe/axe/shovel 450, paxel 800),
  Pure Golden Ore maxHeight 256 -> 320
- Refresh shard diamond armor/item textures
- Simplify unit tests for new drop system
This commit is contained in:
feldenr
2026-06-14 11:08:59 +02:00
parent 3ef6f03244
commit 74480d9d2c
58 changed files with 678 additions and 1238 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx4G
org.gradle.daemon=true
# Mod Properties
mod_version=3.0
mod_version=3.2
mod_id=custom_ore_gen
mod_name=Custom Ore Gen
mod_group_id=com.aulyrius.custom_ore_gen