diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java index ef1774ad4..2ff91b4b0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java @@ -7,6 +7,7 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; +import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.MatrixStacker; import com.simibubi.create.foundation.utility.SuperByteBuffer; @@ -16,6 +17,7 @@ import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.util.Direction; public class DrillRenderer extends KineticTileEntityRenderer { @@ -25,7 +27,7 @@ public class DrillRenderer extends KineticTileEntityRenderer { @Override protected SuperByteBuffer getRotatedModel(KineticTileEntity te) { - return getRotatingModel(te.getBlockState()); + return AllBlockPartials.DRILL_HEAD.renderOnDirectional(te.getBlockState()); } protected static SuperByteBuffer getRotatingModel(BlockState state) { @@ -36,20 +38,25 @@ public class DrillRenderer extends KineticTileEntityRenderer { IRenderTypeBuffer buffer) { MatrixStack[] matrixStacks = new MatrixStack[] { ms, msLocal }; BlockState state = context.state; - SuperByteBuffer superBuffer = getRotatingModel(state); - + SuperByteBuffer superBuffer = AllBlockPartials.DRILL_HEAD.renderOn(state); + Direction facing = state.get(DrillBlock.FACING); + float speed = (float) (context.contraption.stalled || !VecHelper.isVecPointingTowards(context.relativeMotion, state.get(FACING) .getOpposite()) ? context.getAnimationSpeed() : 0); float time = AnimationTickHolder.getRenderTick() / 20; - float angle = (float) (((time * speed) % 360) / 180 * (float) Math.PI); + float angle = (float) (((time * speed) % 360)); for (MatrixStack m : matrixStacks) MatrixStacker.of(m) .centre() - .rotateY(angle) + .rotateY(AngleHelper.horizontalAngle(facing)) + .rotateX(AngleHelper.verticalAngle(facing)) + .rotateZ(angle) .unCentre(); - superBuffer.light(msLocal.peek() + + superBuffer + .light(msLocal.peek() .getModel()) .renderInto(ms, buffer.getBuffer(RenderType.getSolid())); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java index 53168cf56..71ecfdbc6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java @@ -6,8 +6,8 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; +import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.MatrixStacker; import com.simibubi.create.foundation.utility.SuperByteBuffer; import com.simibubi.create.foundation.utility.VecHelper; @@ -16,7 +16,6 @@ import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.util.Direction; -import net.minecraft.util.Direction.Axis; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; @@ -30,42 +29,36 @@ public class HarvesterRenderer extends SafeTileEntityRenderer b.active = true); patternButton.active = false; - patternButton.playDownSound(Minecraft.getInstance().getSoundHandler()); + patternButton.playDownSound(Minecraft.getInstance() + .getSoundHandler()); nbt.putString("Pattern", PlacementPatterns.values()[patternButtons.indexOf(patternButton)].name()); } } @@ -129,50 +127,29 @@ public class ZapperScreen extends AbstractSimiScreen { } protected void renderZapper() { - RenderSystem.pushLightingAttributes(); - RenderSystem.pushMatrix(); - - RenderHelper.enable(); - RenderSystem.enableBlend(); - RenderSystem.enableRescaleNormal(); - RenderSystem.enableAlphaTest(); - RenderSystem.alphaFunc(516, 0.1F); - RenderSystem.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA); - RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); - - RenderSystem.translated((this.width - this.sWidth) / 2 + 260, this.height / 2 - this.sHeight / 4, 100); - RenderSystem.rotatef(90 + 0.2f * animationProgress, 0, 1, 0); - RenderSystem.rotatef(-40, .8f, 0, -.0f); - RenderSystem.scaled(100, -100, 100); - - itemRenderer.renderItem(zapper, TransformType.FIXED, 0xF000F0, OverlayTexture.DEFAULT_UV, new MatrixStack(), getMinecraft().getBufferBuilders().getEntityVertexConsumers()); - - RenderSystem.disableAlphaTest(); - RenderSystem.disableRescaleNormal(); - RenderSystem.disableLighting(); - - RenderSystem.popMatrix(); - RenderSystem.popAttributes(); + GuiGameElement.of(zapper) + .at((this.width - this.sWidth) / 2 + 210, this.height / 2 - this.sHeight / 4) + .scale(4) + .render(); } protected void renderBlock() { RenderSystem.pushMatrix(); - RenderSystem.translated(guiLeft + 1.7f, guiTop - 49, 120); + RenderSystem.translated(guiLeft + 1.7f, guiTop + 48, 120); RenderSystem.rotatef(-30f, .5f, .9f, -.1f); - RenderSystem.scaled(20, -20, 20); + RenderSystem.scaled(20, 20, 20); BlockState state = Blocks.AIR.getDefaultState(); - if (zapper.hasTag() && zapper.getTag().contains("BlockUsed")) - state = NBTUtil.readBlockState(zapper.getTag().getCompound("BlockUsed")); - - RenderSystem.translated(0, -5, 0); - - GuiGameElement.of(state).render(); + if (zapper.hasTag() && zapper.getTag() + .contains("BlockUsed")) + state = NBTUtil.readBlockState(zapper.getTag() + .getCompound("BlockUsed")); + GuiGameElement.of(state) + .render(); RenderSystem.popMatrix(); } - protected void writeAdditionalOptions(CompoundNBT nbt) { - } + protected void writeAdditionalOptions(CompoundNBT nbt) {} } diff --git a/src/main/resources/assets/create/textures/gui/zapper.png b/src/main/resources/assets/create/textures/gui/zapper.png index c7ec82c84..771941d43 100644 Binary files a/src/main/resources/assets/create/textures/gui/zapper.png and b/src/main/resources/assets/create/textures/gui/zapper.png differ