Phase 5: Cobblebase jobs take back gated work, dig only zone ores

From Adrian's Mining test (2026-10-31):

- A gated job assigned to a pastured Pokemon that doesn't pass its gate
  is taken back at once (BaseManager assignment cleared, Cobblebase's
  assignment sync sent, owner told what the Pokemon needs), so it no
  longer sticks or shows under Buffs -> Active.
- Mining, Ore Finder and Evolution-item Finder only give the ores and
  evolution stones of the pasture's zone: new loot condition
  cobblesurvival:in_zone, the pack's versions of the 12 Cobblebase
  tables (tools/cobblebase_loot.py), Cobblebase's built-in copies
  removed at server start (ore/BaseLoot.kt). Mining adds quartz and the
  evolution stones, drops the type gems.
- Mining's loot reaching the chest needs an Item Gatherer in the same
  pasture (Cobblebase's design); documented, not changed.
- Self-tests gated_jobs_are_taken_back, base_jobs_dig_their_zones_ores;
  docs, balance table, licenses, Phase 5 checklist.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-10-31 18:56:00 +01:00
1 parent 70cc2cad50
commit 11a583db01
27 files changed
+1458 -28

No files matched your search

@@ -6,6 +6,7 @@ import com.mojang.logging.LogUtils
import dev.cobblesurvival.catching.Catching
import dev.cobblesurvival.dev.BiomePreview
import dev.cobblesurvival.dev.OreVeins
import dev.cobblesurvival.ore.BaseLoot
import dev.cobblesurvival.ore.OreNodes
import dev.cobblesurvival.permadeath.Permadeath
import dev.cobblesurvival.party.ShoulderPassives
@@ -14,6 +15,7 @@ import dev.cobblesurvival.selftest.SelfTest
import dev.cobblesurvival.world.OnlyPokemon
import dev.cobblesurvival.world.SharedLoot
import dev.cobblesurvival.zone.Guardians
import dev.cobblesurvival.zone.InZoneCondition
import dev.cobblesurvival.zone.LevelPressure
import dev.cobblesurvival.zone.Wanderers
import dev.cobblesurvival.zone.ZoneCondition
@@ -57,6 +59,7 @@ class CobbleSurvival {
init {
LOGGER.info("Cobblemon Survival companion {} loaded (Cobblemon {})", version, Cobblemon.VERSION)
MOD_BUS.addListener(::onAddPackFinders)
InZoneCondition.register(MOD_BUS)
NeoForge.EVENT_BUS.addListener(::onRegisterCommands)
NeoForge.EVENT_BUS.addListener(::onServerStarted)
NeoForge.EVENT_BUS.addListener(::onPortalSpawn)
@@ -70,6 +73,7 @@ class CobbleSurvival {
Gates.register()
ShoulderPassives.register()
OreNodes.register()
BaseLoot.register()
Catching.register()
Wanderers.register()
SharedLoot.register()