Tuff on the Eyes

- Slightly reduced the amount of block types represented in one batch of ore layers
This commit is contained in:
simibubi 2021-12-08 22:44:00 +01:00
parent 2e56ad6714
commit 8eea60ddee
3 changed files with 27 additions and 23 deletions

View file

@ -15,10 +15,12 @@ public class AllLayerPatterns {
.layer(l -> l.weight(2)
.block(AllPaletteStoneTypes.CRIMSITE.getBaseBlock())
.size(1, 3))
.layer(l -> l.weight(2)
.layer(l -> l.weight(1)
.block(Blocks.TUFF)
.block(Blocks.GRANITE)
.size(1, 2))
.block(Blocks.DEEPSLATE)
.size(2, 2))
.layer(l -> l.weight(1)
.blocks(Blocks.DEEPSLATE, Blocks.TUFF))
.layer(l -> l.weight(1)
.block(AllPaletteStoneTypes.LIMESTONE.getBaseBlock()))
.build();
@ -29,43 +31,44 @@ public class AllLayerPatterns {
.layer(l -> l.weight(2)
.block(AllPaletteStoneTypes.ASURINE.getBaseBlock())
.size(1, 3))
.layer(l -> l.weight(2)
.layer(l -> l.weight(1)
.block(Blocks.TUFF)
.block(Blocks.SMOOTH_BASALT)
.block(Blocks.DEEPSLATE)
.size(1, 2))
.layer(l -> l.weight(1)
.block(Blocks.DIORITE)
.blocks(Blocks.DEEPSLATE, Blocks.TUFF))
.layer(l -> l.weight(1)
.block(Blocks.CALCITE))
.build();
public static NonNullSupplier<LayerPattern> OCHRESTONE = () -> LayerPattern.builder()
.layer(l -> l.weight(1)
.block(Blocks.ANDESITE)
.passiveBlock())
.layer(l -> l.weight(2)
.block(AllPaletteStoneTypes.OCHRUM.getBaseBlock())
.size(1, 3))
.layer(l -> l.weight(2)
.block(Blocks.TUFF)
.block(Blocks.SMOOTH_BASALT)
.block(Blocks.DEEPSLATE)
.size(1, 2))
.layer(l -> l.weight(2)
.block(Blocks.DRIPSTONE_BLOCK)
.block(Blocks.GRANITE)
.size(1, 2))
.build();
public static NonNullSupplier<LayerPattern> MALACHITE = () -> LayerPattern.builder()
.layer(l -> l.weight(1)
.passiveBlock())
.layer(l -> l.weight(2)
.passiveBlock())
.layer(l -> l.weight(4)
.block(AllPaletteStoneTypes.VERIDIUM.getBaseBlock())
.size(1, 3))
.layer(l -> l.weight(2)
.block(Blocks.TUFF)
.block(Blocks.ANDESITE)
.size(1, 2))
.layer(l -> l.weight(1)
.layer(l -> l.weight(2)
.blocks(Blocks.TUFF, Blocks.ANDESITE))
.layer(l -> l.weight(3)
.block(Blocks.SMOOTH_BASALT))
.build();
@ -79,6 +82,8 @@ public class AllLayerPatterns {
.block(Blocks.TUFF)
.block(Blocks.ANDESITE)
.size(1, 2))
.layer(l -> l.weight(1)
.blocks(Blocks.TUFF, Blocks.ANDESITE))
.layer(l -> l.weight(1)
.block(Blocks.DIORITE))
.build();
@ -88,9 +93,11 @@ public class AllLayerPatterns {
.passiveBlock())
.layer(l -> l.weight(2)
.block(Blocks.CALCITE))
.layer(l -> l.weight(1)
.block(Blocks.DIORITE))
.layer(l -> l.weight(2)
.block(AllPaletteStoneTypes.LIMESTONE.getBaseBlock())
.size(1, 5))
.size(1, 4))
.build();
public static NonNullSupplier<LayerPattern> SCORIA_NETHER = () -> LayerPattern.builder()

View file

@ -105,7 +105,7 @@ public class LayerPattern {
}
public LayerBuilder passiveBlock() {
return block(Blocks.AIR);
return blocks(Blocks.STONE.defaultBlockState(), Blocks.DEEPSLATE.defaultBlockState());
}
public LayerBuilder block(Block block) {
@ -117,6 +117,10 @@ public class LayerPattern {
return blocks(block.defaultBlockState(), block.defaultBlockState());
}
public LayerBuilder blocks(Block block, Block deepblock) {
return blocks(block.defaultBlockState(), deepblock.defaultBlockState());
}
public LayerBuilder blocks(Couple<NonNullSupplier<? extends Block>> blocksByDepth) {
return blocks(blocksByDepth.getFirst()
.get()

View file

@ -1,7 +1,6 @@
package com.simibubi.create.foundation.worldgen;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -64,7 +63,6 @@ public class LayeredOreFeature extends OreFeatureBase {
List<LayerPattern.Layer> resolvedLayers = new ArrayList<>();
List<Float> layerDiameterOffsets = new ArrayList<>();
BitSet bitset = new BitSet(size * size * size);
MutableBlockPos mutablePos = new MutableBlockPos();
BulkSectionAccess bulksectionaccess = new BulkSectionAccess(worldgenlevel);
int layerCoordinate = random.nextInt(4);
@ -106,11 +104,6 @@ public class LayeredOreFeature extends OreFeatureBase {
if (dx * dx + dy * dy + dz * dz > 1 * layerDiameterOffsets.get(layerIndex))
continue;
int index = x * length * height + y * length + z;
if (bitset.get(index))
continue;
bitset.set(index);
LayerPattern.Layer layer = resolvedLayers.get(layerIndex);
List<TargetBlockState> state = layer.rollBlock(random);