feat: improve Survival Games chests, protection, spawns, and sidebar #8
Loading…
Reference in a new issue
No description provided.
Delete branch "codex/sg-improvements"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
A broad Survival Games fidelity pass — chest tiers, loot balance, mid-game refills, protection/baseline, pedestrian spawn setup, and a cleaner sidebar/theme. Researched against classic MCGamer/MCSG conventions.
Chests
chests.ymlkeystier2Block/tier3Block(NONEdisables).chancekept as a legacy alias. NewfillChancecontrols per-slot density (was a hardcoded 0.18).gameRules.refillSeconds(default[180, 780]≈ 3:00/13:00) re-rolls opened chests.Protection & world baseline
worldProtections.mobSpawnAllowlist(default[CHICKEN]); hostile natural spawns stay blocked, allowlisted passives spawn even during grace.BlockPlaceEventreportsCAKE_BLOCK, notCAKE; config now normalises the alias) and tall-grass breaking (addedDOUBLE_PLANT).WorldBaselinenormalises the game world on load: fixed daylight, clear weather, no mob griefing (leavesdoMobSpawningon so chickens still spawn).Spawn pedestals
PedestalResolverresolves cornucopia spawns in order: explicitcornucopiaSpawns, else marker-block detection viapedestalBlock, else a generated ring ofpedestalCount(default 24) atpedestalRadius— no more hand-listing 24 coordinates unless a map needs it. Results sorted by angle.Sidebar & theme
§a) across chat phase/win/supply-drop announcements, welcome/end messages, and help.Chart & docs
game.yml/chests.ymlupdated (refill, mob allowlist, cake/DOUBLE_PLANT, weighted loot, no raw food/cobblestone, tier-block settings).chart/README.mdand the design spec updated.Verification
./gradlew build(all plugin modules, Spotless): green. New tests for tier detection/conversion, refill, fillChance, weight parsing, allowlist, refill config, and pedestal resolution.make lint-chart+make test-chart: green; renderedgame.yml/chests.ymlverified.make kind-test: PASS.Notes / follow-ups
/fly+/invisstill use the synchronous DB fallback (unchanged).pedestalBlock.