diff --git a/src/main/java/gcewing/architecture/ArchitectureCraftClient.java b/src/main/java/gcewing/architecture/ArchitectureCraftClient.java index 1e443b2..76ea6a8 100644 --- a/src/main/java/gcewing/architecture/ArchitectureCraftClient.java +++ b/src/main/java/gcewing/architecture/ArchitectureCraftClient.java @@ -19,6 +19,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraft.launchwrapper.Launch; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; @@ -64,6 +65,8 @@ public class ArchitectureCraftClient { public static final PreviewRenderer previewRenderer = new PreviewRenderer(); final HashSet emissiveBlocks = new HashSet<>(); public static AngelicaCompat angelicaCompat; + public static final boolean enabledHodgepodgeBottomFaceUVFix = (boolean) Launch.blackboard + .getOrDefault("hodgepodge.FixesConfig.fixBottomFaceUV", Boolean.FALSE); public void preInit(FMLPreInitializationEvent e) { registerBlockRenderers(); diff --git a/src/main/java/gcewing/architecture/client/render/target/RenderTargetBase.java b/src/main/java/gcewing/architecture/client/render/target/RenderTargetBase.java index 48c31bb..a124f9f 100644 --- a/src/main/java/gcewing/architecture/client/render/target/RenderTargetBase.java +++ b/src/main/java/gcewing/architecture/client/render/target/RenderTargetBase.java @@ -9,6 +9,7 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.IIcon; +import gcewing.architecture.ArchitectureCraftClient; import gcewing.architecture.client.render.ITexture; import gcewing.architecture.client.texture.ArchitectureTexture; import gcewing.architecture.compat.Vector3; @@ -137,30 +138,38 @@ public void addProjectedVertex(Vector3 p, EnumFacing face) { double z = p.z - blockZ; double u, v; - v = switch (face) { - case DOWN, UP -> { + switch (face) { + case UP -> { u = x; - yield z; + v = z; + } + case DOWN -> { + if (ArchitectureCraftClient.enabledHodgepodgeBottomFaceUVFix) { + u = 1 - x; + } else { + u = x; + } + v = z; } case NORTH -> { u = 1 - x; - yield 1 - y; + v = 1 - y; } case SOUTH -> { u = x; - yield 1 - y; + v = 1 - y; } case WEST -> { u = 1 - z; - yield 1 - y; + v = 1 - y; } case EAST -> { u = z; - yield 1 - y; + v = 1 - y; } default -> { u = 0; - yield 0; + v = 0; } }; addUVVertex(p, u, v);