From 686b32bfd0d3e395afede9a5651f226f449f8982 Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Mon, 4 Jan 2016 12:04:30 +0300 Subject: [PATCH] Fixed random offset not working properly for flatly-lit models. --- .../minecraftforge/client/model/pipeline/BlockInfo.java | 9 +++++++-- .../client/model/pipeline/VertexLighterFlat.java | 2 +- .../client/model/pipeline/VertexLighterSmoothAo.java | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/BlockInfo.java b/src/main/java/net/minecraftforge/client/model/pipeline/BlockInfo.java index 9ef2e5e50..2ea9676e5 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/BlockInfo.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/BlockInfo.java @@ -35,11 +35,15 @@ public class BlockInfo public void updateShift() { - shx = shy = shz = 0; + updateShift(false); + } + + public void updateShift(boolean ignoreY) + { long rand = 0; if(block.getOffsetType() != EnumOffsetType.NONE) { - rand = MathHelper.getPositionRandom(blockPos); + rand = MathHelper.getCoordinateRandom(blockPos.getX(), ignoreY ? 0 : blockPos.getY(), blockPos.getZ()); shx = ((float)((rand >> 16) & 0xF) / 0xF - .5f) * .5f; shz = ((float)((rand >> 24) & 0xF) / 0xF - .5f) * .5f; if(block.getOffsetType() == EnumOffsetType.XYZ) @@ -68,6 +72,7 @@ public class BlockInfo this.blockPos = blockPos; cachedTint = -1; cachedMultiplier = -1; + shx = shy = shz = 0; } private float combine(int c, int s1, int s2, int s3) diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java b/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java index 1f5f76885..7e8fbe787 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java @@ -243,6 +243,6 @@ public class VertexLighterFlat extends QuadGatheringTransformer public void updateBlockInfo() { - blockInfo.updateShift(); + blockInfo.updateShift(true); } } diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterSmoothAo.java b/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterSmoothAo.java index 118d00838..497b8ac20 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterSmoothAo.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterSmoothAo.java @@ -154,7 +154,7 @@ public class VertexLighterSmoothAo extends VertexLighterFlat @Override public void updateBlockInfo() { - super.updateBlockInfo(); + blockInfo.updateShift(false); blockInfo.updateLightMatrix(); } }