From 3e206ee544034fb7103b80c275f007c9d5ef1e80 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 9 Jun 2020 19:22:45 +0200 Subject: [PATCH] Temporary fix for quad rotator. --- .../java/appeng/client/render/FacingToRotation.java | 5 +---- .../appeng/client/render/cablebus/QuadRotator.java | 11 ++++++++++- src/main/java/appeng/parts/networking/PartCable.java | 4 ---- .../pipeline/transformers/QuadMatrixTransformer.java | 7 +++++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/appeng/client/render/FacingToRotation.java b/src/main/java/appeng/client/render/FacingToRotation.java index e8dec6d68..630885b0f 100644 --- a/src/main/java/appeng/client/render/FacingToRotation.java +++ b/src/main/java/appeng/client/render/FacingToRotation.java @@ -21,10 +21,7 @@ package appeng.client.render; import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Quaternion; -import net.minecraft.client.renderer.Vector3f; -import net.minecraft.client.renderer.Vector4f; +import net.minecraft.client.renderer.*; import net.minecraft.util.Direction; import net.minecraft.util.IStringSerializable; import net.minecraft.util.math.Vec3i; diff --git a/src/main/java/appeng/client/render/cablebus/QuadRotator.java b/src/main/java/appeng/client/render/cablebus/QuadRotator.java index 5efbf2998..79b1438dc 100644 --- a/src/main/java/appeng/client/render/cablebus/QuadRotator.java +++ b/src/main/java/appeng/client/render/cablebus/QuadRotator.java @@ -22,6 +22,8 @@ package appeng.client.render.cablebus; import java.util.ArrayList; import java.util.List; +import net.minecraft.client.renderer.Matrix4f; +import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.Direction; @@ -64,11 +66,18 @@ public class QuadRotator Quad collector = collectors.get(); QuadMatrixTransformer transformer = pipeline.getElement( "transformer", QuadMatrixTransformer.class ); + // FIXME: Temporary rotation fix + Matrix4f mat = new Matrix4f(); + mat.setTranslation(-0.5f, -0.5f, -0.5f); + mat.multiplyBackward(rotation.getMat()); + mat.translate(new Vector3f(0.5f, 0.5f, 0.5f)); + for( BakedQuad quad : quads ) { pipeline.reset( format ); collector.reset( format ); - transformer.setMatrix( rotation.getMat() ); + + transformer.setMatrix( mat ); pipeline.prepare( collector ); quad.pipe( pipeline ); result.add( collector.bake() ); diff --git a/src/main/java/appeng/parts/networking/PartCable.java b/src/main/java/appeng/parts/networking/PartCable.java index 577f36592..97fabc3fb 100644 --- a/src/main/java/appeng/parts/networking/PartCable.java +++ b/src/main/java/appeng/parts/networking/PartCable.java @@ -39,7 +39,6 @@ import appeng.items.parts.ColoredPartItem; import appeng.me.GridAccessException; import appeng.parts.AEBasePart; import appeng.util.Platform; -import com.google.common.collect.ImmutableSet; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -53,9 +52,6 @@ import java.util.EnumSet; public class PartCable extends AEBasePart implements IPartCable { - private static final ImmutableSet STRAIGHT_PART_LOCATIONS = ImmutableSet.of( AEPartLocation.DOWN, AEPartLocation.NORTH, - AEPartLocation.EAST ); - private final int[] channelsOnSide = { 0, 0, 0, 0, 0, 0 }; private EnumSet connections = EnumSet.noneOf( AEPartLocation.class ); diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java index 1208ae456..27894f657 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java @@ -45,6 +45,7 @@ public class QuadMatrixTransformer extends QuadTransformer private final Vector4f storage = new Vector4f(); private Matrix4f matrix; + private boolean identityMatrix; QuadMatrixTransformer() { @@ -55,17 +56,19 @@ public class QuadMatrixTransformer extends QuadTransformer { super( parent ); this.matrix = matrix; + this.identityMatrix = matrix.equals( identity ); } public void setMatrix( Matrix4f matrix ) { this.matrix = matrix; + this.identityMatrix = matrix.equals( identity ); } @Override public boolean transform() { - if( matrix.equals( identity ) ) + if( identityMatrix ) { return true; } @@ -77,7 +80,7 @@ public class QuadMatrixTransformer extends QuadTransformer vertex.vec[1] = storage.getY(); vertex.vec[2] = storage.getZ(); - storage.set( vertex.normal[0], vertex.normal[1], vertex.normal[2], 1 ); + storage.set( vertex.normal[0], vertex.normal[1], vertex.normal[2], 0 ); storage.transform( matrix ); storage.normalize(); vertex.normal[0] = storage.getX();