diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/ItemRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/ItemRenderer.java.patch index 20bcbd265..3196c360a 100644 --- a/patches/minecraft/net/minecraft/client/renderer/entity/ItemRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/entity/ItemRenderer.java.patch @@ -23,7 +23,7 @@ p_225623_4_.func_227861_a_((double)f7, (double)f8, (double)f9); } -@@ -75,18 +72,19 @@ +@@ -75,18 +72,18 @@ float f11 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F; float f13 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F; float f10 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F; @@ -37,9 +37,7 @@ } } -- this.field_177080_a.func_229111_a_(itemstack, ItemCameraTransforms.TransformType.GROUND, false, p_225623_4_, p_225623_5_, p_225623_6_, OverlayTexture.field_229196_a_, ibakedmodel); -+ IBakedModel transformedModel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(p_225623_4_, ibakedmodel, ItemCameraTransforms.TransformType.GROUND, false); -+ this.field_177080_a.func_229111_a_(itemstack, ItemCameraTransforms.TransformType.GROUND, false, p_225623_4_, p_225623_5_, p_225623_6_, OverlayTexture.field_229196_a_, transformedModel); + this.field_177080_a.func_229111_a_(itemstack, ItemCameraTransforms.TransformType.GROUND, false, p_225623_4_, p_225623_5_, p_225623_6_, OverlayTexture.field_229196_a_, ibakedmodel); p_225623_4_.func_227865_b_(); if (!flag) { - p_225623_4_.func_227861_a_((double)(0.0F * f4), (double)(0.0F * f5), (double)(0.09375F * f6)); @@ -47,7 +45,7 @@ } } -@@ -97,4 +95,21 @@ +@@ -97,4 +94,21 @@ public ResourceLocation func_110775_a(ItemEntity p_110775_1_) { return AtlasTexture.field_110575_b; } diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index 35c59eedf..bab736952 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -811,11 +811,9 @@ public class ForgeHooksClient @SuppressWarnings("deprecation") public static IBakedModel handlePerspective(IBakedModel model, ItemCameraTransforms.TransformType type, MatrixStack stack) { - if (!model.getItemCameraTransforms().getTransform(type).equals(ItemTransformVec3f.DEFAULT)) - { - // Push to the matrix to make it not empty and indicate that we want to transform things - stack.func_227860_a_(); - model.getItemCameraTransforms().getTransform(type).func_228830_a_(false, stack); + TransformationMatrix tr = TransformationHelper.toTransformation(model.getItemCameraTransforms().getTransform(type)); + if(!tr.isIdentity()) { + tr.push(stack); } return model; } diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeTransformationMatrix.java b/src/main/java/net/minecraftforge/client/extensions/IForgeTransformationMatrix.java index ab1e83adc..949d6a59b 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeTransformationMatrix.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeTransformationMatrix.java @@ -42,12 +42,17 @@ public interface IForgeTransformationMatrix default void push(MatrixStack stack) { stack.func_227860_a_(); - stack.func_227863_a_(getTransformaion().func_227989_d_()); + Vector3f trans = getTransformaion().getTranslation(); stack.func_227861_a_(trans.getX(), trans.getY(), trans.getZ()); - stack.func_227863_a_(getTransformaion().getRightRot()); + + stack.func_227863_a_(getTransformaion().func_227989_d_()); + Vector3f scale = getTransformaion().getScale(); - stack.func_227861_a_(scale.getX(), scale.getY(), scale.getZ()); + stack.func_227862_a_(scale.getX(), scale.getY(), scale.getZ()); + + stack.func_227863_a_(getTransformaion().getRightRot()); + } default TransformationMatrix compose(TransformationMatrix other) diff --git a/src/main/java/net/minecraftforge/common/model/TransformationHelper.java b/src/main/java/net/minecraftforge/common/model/TransformationHelper.java index df90bc27e..99c3afceb 100644 --- a/src/main/java/net/minecraftforge/common/model/TransformationHelper.java +++ b/src/main/java/net/minecraftforge/common/model/TransformationHelper.java @@ -112,38 +112,6 @@ public final class TransformationHelper ); } - private static final EnumMap vanillaUvTransformLocalToGlobal = Maps.newEnumMap(Direction.class); - private static final EnumMap vanillaUvTransformGlobalToLocal = Maps.newEnumMap(Direction.class); - - static - { - vanillaUvTransformLocalToGlobal.put(Direction.SOUTH, TransformationMatrix.func_227983_a_()); - vanillaUvTransformLocalToGlobal.put(Direction.EAST, new TransformationMatrix(null, - new Quaternion(Vector3f.field_229181_d_, 90,true), null, null)); - vanillaUvTransformLocalToGlobal.put(Direction.WEST, new TransformationMatrix(null, - new Quaternion(Vector3f.field_229181_d_, -90,true), null, null)); - vanillaUvTransformLocalToGlobal.put(Direction.NORTH, new TransformationMatrix(null, - new Quaternion(Vector3f.field_229181_d_, 180,true), null, null)); - vanillaUvTransformLocalToGlobal.put(Direction.UP, new TransformationMatrix(null, - new Quaternion(Vector3f.field_229179_b_, -90,true), null, null)); - vanillaUvTransformLocalToGlobal.put(Direction.DOWN, new TransformationMatrix(null, - new Quaternion(Vector3f.field_229179_b_, 90,true), null, null)); - - for(Direction side : Direction.values()) - { - vanillaUvTransformGlobalToLocal.put(side, vanillaUvTransformLocalToGlobal.get(side).inverse()); - } - } - - public static TransformationMatrix getUVLockTransform(TransformationMatrix matrix, Direction originalSide) - { - Direction newSide = matrix.rotateTransform(originalSide); - return vanillaUvTransformGlobalToLocal.get(originalSide) - .compose(matrix.inverse().blockCornerToCenter()) - .compose(vanillaUvTransformLocalToGlobal.get(newSide)) - .blockCenterToCorner(); - } - public static boolean epsilonEquals(Vector4f v1, Vector4f v2, float epsilon) { return MathHelper.abs(v1.getX()-v2.getX()) < epsilon &&