Phase 9 begins: bigger, sparser veins, a mine-through respawn block, left-out lines
Phase 8 approved (2026-11-09). Adrian's Phase 9 answers: left-out Pokemon rare in fitting zones; legendaries from crafted summons; no public release. - Ore veins more sporadic but bigger: nodes about 40 % rarer, veins about 30 % further apart, each one block larger in radius. 1.5-3x the ore overall; a new island is needed to see it. World check on the regenerated island passes. - The respawn block (Regenerating Ore Veins' regenerator): the aim passes through it unless sneaking (mixin, the pack's first), so ore behind it can be mined; much fainter glass through KubeJS assets. Self-test regenerator_lets_the_aim_through casts a real ray. - 31 lines (67 species) with no matching island biome, or no spawn data (Rotom), get rare homes in fitting zones (world/zones.json -> homeless). Existing spawns and guardians don't change. JEI data and quests regenerated. - surface_nodes_lie_in_the_ground checks the node's centre column: a wider node's edge can lie under a tree or a slope. - Roadmap: every implemented Pokemon obtainable; Iris and Complementary Reimagined as the default shader. Self-tests and the island check pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0be2c2e5c6
commit
e206664b3d
45 files changed
+2723
-242
No files matched your search
@@ -7,6 +7,7 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.gametest.framework.GameTestAssertException
|
||||
import net.minecraft.world.level.ChunkPos
|
||||
import net.minecraft.world.level.levelgen.Heightmap
|
||||
|
||||
/**
|
||||
* Ore nodes on the island (Adrian, 2026-10-30): a surface node is a small lump of ore in the ground of its zone with
|
||||
@@ -44,8 +45,9 @@ object OreNodeTests {
|
||||
if (cave) {
|
||||
s.check(level.getBiome(ground.above()).`is`(node.biome!!)) { "the ${node.vein} at ${ground.toShortString()} isn't in ${node.biome}" }
|
||||
} else {
|
||||
val top = blocks.maxBy { it.y }
|
||||
s.check(level.canSeeSky(top.above())) { "the ${node.vein} at ${ground.toShortString()} is under cover" }
|
||||
// Open ground over the node's centre (leaves don't count): a wide node's edge may lie under a tree or a slope.
|
||||
val surface = level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ground.x, ground.z)
|
||||
s.check(surface <= ground.y + 2) { "the ${node.vein} at ${ground.toShortString()} is under cover (ground at $surface)" }
|
||||
s.check(blocks.all { Zones.at(level, it)?.id == zone }) { "the ${node.vein} at ${ground.toShortString()} reaches out of $zone" }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user