Fixed (hopefully) perspective transformations for custom models too.

This commit is contained in:
RainWarrior 2016-03-10 04:48:13 +03:00
parent cf93859095
commit 8e9b403fbf
1 changed files with 15 additions and 1 deletions

View File

@ -382,20 +382,34 @@ public class ForgeHooksClient
return m; return m;
} }
private static final Matrix4f flipX;
static {
flipX = new Matrix4f();
flipX.setIdentity();
flipX.m00 = -1;
}
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public static IBakedModel handleCameraTransforms(IBakedModel model, ItemCameraTransforms.TransformType cameraTransformType, boolean leftHandHackery) public static IBakedModel handleCameraTransforms(IBakedModel model, ItemCameraTransforms.TransformType cameraTransformType, boolean leftHandHackery)
{ {
if(model instanceof IPerspectiveAwareModel) if(model instanceof IPerspectiveAwareModel)
{ {
// FIXME: left hand hackery
Pair<? extends IBakedModel, Matrix4f> pair = ((IPerspectiveAwareModel)model).handlePerspective(cameraTransformType); Pair<? extends IBakedModel, Matrix4f> pair = ((IPerspectiveAwareModel)model).handlePerspective(cameraTransformType);
Matrix4f matrix = new Matrix4f(pair.getRight());
if(leftHandHackery)
{
matrix.mul(flipX, matrix);
matrix.mul(matrix, flipX);
}
if(pair.getRight() != null) multiplyCurrentGlMatrix(pair.getRight()); if(pair.getRight() != null) multiplyCurrentGlMatrix(pair.getRight());
return pair.getLeft(); return pair.getLeft();
} }
else else
{ {
//if(leftHandHackery) GlStateManager.scale(-1, 1, 1);
ItemCameraTransforms.func_188034_a(model.getItemCameraTransforms().getTransform(cameraTransformType), leftHandHackery); ItemCameraTransforms.func_188034_a(model.getItemCameraTransforms().getTransform(cameraTransformType), leftHandHackery);
//if(leftHandHackery) GlStateManager.scale(-1, 1, 1);
} }
return model; return model;
} }