diff --git a/patches/minecraft/net/minecraft/world/level/levelgen/Beardifier.java.patch b/patches/minecraft/net/minecraft/world/level/levelgen/Beardifier.java.patch new file mode 100644 index 0000000000..32a9679010 --- /dev/null +++ b/patches/minecraft/net/minecraft/world/level/levelgen/Beardifier.java.patch @@ -0,0 +1,14 @@ +--- a/net/minecraft/world/level/levelgen/Beardifier.java ++++ b/net/minecraft/world/level/levelgen/Beardifier.java +@@ -43,6 +_,11 @@ + + for(StructurePiece structurepiece : p_223936_.m_73602_()) { + if (structurepiece.m_73411_(p_223939_, 12)) { ++ if (structurepiece instanceof net.minecraftforge.common.world.PieceBeardifierModifier pieceBeardifierModifier) { ++ if (pieceBeardifierModifier.getTerrainAdjustment() != TerrainAdjustment.NONE) { ++ objectlist.add(new Beardifier.Rigid(pieceBeardifierModifier.getBeardifierBox(), pieceBeardifierModifier.getTerrainAdjustment(), pieceBeardifierModifier.getGroundLevelDelta())); ++ } ++ } else + if (structurepiece instanceof PoolElementStructurePiece) { + PoolElementStructurePiece poolelementstructurepiece = (PoolElementStructurePiece)structurepiece; + StructureTemplatePool.Projection structuretemplatepool$projection = poolelementstructurepiece.m_209918_().m_210539_(); diff --git a/src/main/java/net/minecraftforge/common/world/PieceBeardifierModifier.java b/src/main/java/net/minecraftforge/common/world/PieceBeardifierModifier.java new file mode 100644 index 0000000000..50870245f9 --- /dev/null +++ b/src/main/java/net/minecraftforge/common/world/PieceBeardifierModifier.java @@ -0,0 +1,13 @@ +package net.minecraftforge.common.world; + +import net.minecraft.world.level.levelgen.structure.BoundingBox; +import net.minecraft.world.level.levelgen.structure.TerrainAdjustment; + +/** Implement this interface in a {@link net.minecraft.world.level.levelgen.structure.StructurePiece} class extension to modify its {@link net.minecraft.world.level.levelgen.Beardifier} behavior. */ +public interface PieceBeardifierModifier { + BoundingBox getBeardifierBox(); + + TerrainAdjustment getTerrainAdjustment(); + + int getGroundLevelDelta(); +}