From 4c1ab67f3389dd3250115fd2cc2b187bd31017d9 Mon Sep 17 00:00:00 2001 From: Drullkus <5010174+Drullkus@users.noreply.github.com> Date: Sat, 9 Jul 2022 09:12:55 -0700 Subject: [PATCH] Create PieceBeardifierModifier to re-enable piecewise beardifier definitions (#8798) --- .../world/level/levelgen/Beardifier.java.patch | 14 ++++++++++++++ .../common/world/PieceBeardifierModifier.java | 13 +++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 patches/minecraft/net/minecraft/world/level/levelgen/Beardifier.java.patch create mode 100644 src/main/java/net/minecraftforge/common/world/PieceBeardifierModifier.java 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(); +}