mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
fix BeardGenerator
This commit is contained in:
parent
480bc738dd
commit
61797170b6
@ -18,13 +18,12 @@ import net.minecraft.util.math.MathHelper;
|
|||||||
import net.minecraft.world.chunk.Chunk;
|
import net.minecraft.world.chunk.Chunk;
|
||||||
import net.minecraft.world.gen.StructureAccessor;
|
import net.minecraft.world.gen.StructureAccessor;
|
||||||
import net.minecraft.world.gen.StructureWeightType;
|
import net.minecraft.world.gen.StructureWeightType;
|
||||||
import net.minecraft.world.gen.feature.StructureFeature;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
||||||
import com.dfsek.terra.api.world.info.WorldProperties;
|
import com.dfsek.terra.api.world.info.WorldProperties;
|
||||||
|
|
||||||
|
// net.minecraft.world.gen.StructureWeightSampler
|
||||||
public class BeardGenerator {
|
public class BeardGenerator {
|
||||||
private static final float[] STRUCTURE_WEIGHT_TABLE = Util.make(new float[13824], array -> {
|
private static final float[] STRUCTURE_WEIGHT_TABLE = Util.make(new float[13824], array -> {
|
||||||
for (int i = 0; i < 24; ++i) {
|
for (int i = 0; i < 24; ++i) {
|
||||||
@ -55,8 +54,8 @@ public class BeardGenerator {
|
|||||||
this.pieces = new ObjectArrayList<>(10);
|
this.pieces = new ObjectArrayList<>(10);
|
||||||
int minY = chunk.getBottomY();
|
int minY = chunk.getBottomY();
|
||||||
int maxY = chunk.getTopY();
|
int maxY = chunk.getTopY();
|
||||||
for (StructureFeature<?> structureFeature : StructureFeature.LAND_MODIFYING_STRUCTURES) {
|
for(StructureStart start : structureAccessor.method_41035(ChunkSectionPos.from(chunk),
|
||||||
for(StructureStart<?> start : structureAccessor.getStructureStarts(ChunkSectionPos.from(chunk), structureFeature)) {
|
configuredStructureFeature -> configuredStructureFeature.field_37144)) {
|
||||||
for(StructurePiece structurePiece : start.getChildren()) {
|
for(StructurePiece structurePiece : start.getChildren()) {
|
||||||
if(!structurePiece.intersectsChunk(chunkPos, 12)) continue;
|
if(!structurePiece.intersectsChunk(chunkPos, 12)) continue;
|
||||||
if(structurePiece instanceof PoolStructurePiece poolStructurePiece) {
|
if(structurePiece instanceof PoolStructurePiece poolStructurePiece) {
|
||||||
@ -67,12 +66,9 @@ public class BeardGenerator {
|
|||||||
for(JigsawJunction jigsawJunction : poolStructurePiece.getJunctions()) {
|
for(JigsawJunction jigsawJunction : poolStructurePiece.getJunctions()) {
|
||||||
int k = jigsawJunction.getSourceX();
|
int k = jigsawJunction.getSourceX();
|
||||||
int l = jigsawJunction.getSourceZ();
|
int l = jigsawJunction.getSourceZ();
|
||||||
if(k <= i - 12 || l <= j - 12 || k >= i + 15 + 12 || l >= j + 15 + 12) {
|
if(k <= i - 12 || l <= j - 12 || k >= i + 15 + 12 || l >= j + 15 + 12) continue;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
maxY = Math.max(maxY, jigsawJunction.getSourceGroundY());
|
maxY = Math.max(maxY, jigsawJunction.getSourceGroundY());
|
||||||
minY = Math.min(minY, jigsawJunction.getSourceGroundY());
|
minY = Math.min(minY, jigsawJunction.getSourceGroundY());
|
||||||
|
|
||||||
this.junctions.add(jigsawJunction);
|
this.junctions.add(jigsawJunction);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
@ -82,7 +78,6 @@ public class BeardGenerator {
|
|||||||
this.pieces.add(structurePiece);
|
this.pieces.add(structurePiece);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
this.pieceIterator = this.pieces.iterator();
|
this.pieceIterator = this.pieces.iterator();
|
||||||
this.junctionIterator = this.junctions.iterator();
|
this.junctionIterator = this.junctions.iterator();
|
||||||
this.minY = minY;
|
this.minY = minY;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user