diff --git a/build.gradle b/build.gradle index e68a3a0d5..6f78f52bd 100644 --- a/build.gradle +++ b/build.gradle @@ -160,6 +160,23 @@ repositories { } } + +// Fix for loading non-mod libraries in dev-env, used for Miniball. +// https://gist.github.com/SizableShrimp/66b22f1b24c255e1491c8d98d3f11f83 +// v--------------------------------------------------------------------v +configurations { + library + implementation.extendsFrom library +} + +minecraft.runs.configureEach { + lazyToken('minecraft_classpath') { + configurations.library.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator) + } +} +// ^--------------------------------------------------------------------^ + + dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" @@ -167,9 +184,11 @@ dependencies { jarJar.ranged(it, '[MC1.19.3-1.1.10,)') } jarJar("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") { - jarJar.ranged(it, '[0.6.10,0.6.11)') + jarJar.ranged(it, '[1.0,2.0)') } + library 'com.dreizak:miniball:1.0.3' + implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") if (flywheelInWorkspace) { diff --git a/gradle.properties b/gradle.properties index f0359e1cb..6dc0154e5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,7 +23,7 @@ use_parchment = true # dependency versions registrate_version = MC1.20-1.3.3 flywheel_minecraft_version = 1.20.1 -flywheel_version = 1.0.0-alpha-27 +flywheel_version = 1.0.0-alpha-32 jei_minecraft_version = 1.20.1 jei_version = 15.2.0.22 curios_minecraft_version = 1.20.1 diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java index c36112f88..aeb6bd02e 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java @@ -18,8 +18,8 @@ public class AnimatedCrafter extends AnimatedKinetics { matrixStack.translate(3, 16, 0); TransformStack.of(matrixStack) - .rotateX(-12.5f) - .rotateY(-22.5f); + .rotateXDegrees(-12.5f) + .rotateYDegrees(-22.5f); int scale = 22; blockElement(cogwheel()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/DirectionalExtenderScrollOptionSlot.java b/src/main/java/com/simibubi/create/content/contraptions/DirectionalExtenderScrollOptionSlot.java index c44c17dd6..e7ddc53dd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/DirectionalExtenderScrollOptionSlot.java +++ b/src/main/java/com/simibubi/create/content/contraptions/DirectionalExtenderScrollOptionSlot.java @@ -28,7 +28,7 @@ public class DirectionalExtenderScrollOptionSlot extends CenteredSideValueBoxTra public void rotate(BlockState state, PoseStack ms) { if (!getSide().getAxis().isHorizontal()) TransformStack.of(ms) - .rotateY(AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.FACING)) + 180); + .rotateYDegrees(AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.FACING)) + 180); super.rotate(state, ms); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/OrientedContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/OrientedContraptionEntity.java index 0f741e032..0b3735c28 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/OrientedContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/OrientedContraptionEntity.java @@ -541,9 +541,9 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { TransformStack.of(matrixStack) .nudge(getId()) .center() - .rotateY(angleYaw) - .rotateZ(anglePitch) - .rotateY(angleInitialYaw) + .rotateYDegrees(angleYaw) + .rotateZDegrees(anglePitch) + .rotateYDegrees(angleInitialYaw) .uncenter(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/ActorInstance.java b/src/main/java/com/simibubi/create/content/contraptions/actors/ActorInstance.java index 7d375cfc9..2da908c28 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/ActorInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/ActorInstance.java @@ -1,6 +1,7 @@ package com.simibubi.create.content.contraptions.actors; import org.joml.Quaternionf; +import org.joml.Quaternionfc; import org.joml.Vector3f; import com.jozufozu.flywheel.api.instance.InstanceHandle; @@ -19,10 +20,7 @@ public class ActorInstance extends AbstractInstance { public byte rotationAxisX; public byte rotationAxisY; public byte rotationAxisZ; - public float qX; - public float qY; - public float qZ; - public float qW; + public Quaternionf rotation = new Quaternionf(); public byte rotationCenterX = 64; public byte rotationCenterY = 64; public byte rotationCenterZ = 64; @@ -84,11 +82,8 @@ public class ActorInstance extends AbstractInstance { return this; } - public ActorInstance setLocalRotation(Quaternionf q) { - this.qX = q.x(); - this.qY = q.y(); - this.qZ = q.z(); - this.qW = q.w(); + public ActorInstance setLocalRotation(Quaternionfc q) { + this.rotation.set(q); return this; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsBlockEntity.java b/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsBlockEntity.java index 3a6335485..a134c2f1b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/contraptionControls/ContraptionControlsBlockEntity.java @@ -136,8 +136,8 @@ public class ContraptionControlsBlockEntity extends SmartBlockEntity { Direction facing = state.getValue(ControlsBlock.FACING); float yRot = AngleHelper.horizontalAngle(facing); TransformStack.of(ms) - .rotateY(yRot + 180) - .rotateX(67.5f); + .rotateYDegrees(yRot + 180) + .rotateXDegrees(67.5f); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java index 52fc7a97e..1863084fa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java @@ -46,15 +46,15 @@ public class PIInstance { middle.loadIdentity() .translate(instancePos) .center() - .rotateY(angleY) - .rotateX(angleX) + .rotateYDegrees(angleY) + .rotateXDegrees(angleX) .uncenter(); top.loadIdentity() .translate(instancePos) .center() - .rotateY(angleY) - .rotateX(angleX) + .rotateYDegrees(angleY) + .rotateXDegrees(angleX) .uncenter(); middle.translate(0, progress * 0.5f + 0.375f, 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceRenderer.java index e437b61c5..0af6cb7da 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PortableStorageInterfaceRenderer.java @@ -81,8 +81,8 @@ public class PortableStorageInterfaceRenderer extends SafeBlockEntityRenderer .scale(17 / 16f)); HarvesterRenderer.transform(be.getLevel(), facing, superBuffer, be.getAnimatedSpeed(), Vec3.ZERO); superBuffer.translate(0, -.5, .5) - .rotateY(90) + .rotateYDegrees(90) .light(light) .renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped())); ms.popPose(); @@ -75,7 +75,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer viewProjection.translate(0, -.25, 0); int contraptionWorldLight = ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld); superBuffer.translate(0, -.5, .5) - .rotateY(90) + .rotateYDegrees(90) .light(matrices.getWorld(), contraptionWorldLight) .renderInto(viewProjection, buffers.getBuffer(RenderType.cutoutMipped())); viewProjection.popPose(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsRenderer.java index e6dbbdee6..5fecc345f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/trainControls/ControlsRenderer.java @@ -30,7 +30,7 @@ public class ControlsRenderer { PoseStack ms = matrices.getModel(); cover.transform(ms) .center() - .rotateY(hAngle) + .rotateYDegrees(hAngle) .uncenter() .light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) .renderInto(matrices.getViewProjection(), buffer.getBuffer(RenderType.cutoutMipped())); @@ -38,16 +38,16 @@ public class ControlsRenderer { double yOffset = Mth.lerp(equipAnimation * equipAnimation, -0.15f, 0.05f); for (boolean first : Iterate.trueAndFalse) { - float vAngle = (float) Mth.clamp(first ? firstLever * 70 - 25 : secondLever * 15, -45, 45); + float vAngle = Mth.clamp(first ? firstLever * 70 - 25 : secondLever * 15, -45, 45); SuperByteBuffer lever = CachedBufferer.partial(AllPartialModels.TRAIN_CONTROLS_LEVER, state); ms.pushPose(); TransformStack.of(ms) .center() - .rotateY(hAngle) + .rotateYDegrees(hAngle) .translate(0, 0, 4 / 16f) - .rotateX(vAngle - 45) + .rotateXDegrees(vAngle - 45) .translate(0, yOffset, 0) - .rotateX(45) + .rotateXDegrees(45) .uncenter() .translate(0, -2 / 16f, -3 / 16f) .translate(first ? 0 : 6 / 16f, 0, 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerRenderer.java index c94bd2089..355687e52 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerRenderer.java @@ -37,8 +37,8 @@ public class StickerRenderer extends SafeBlockEntityRenderer Direction facing = state.getValue(StickerBlock.FACING); head.nudge(be.hashCode()) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(AngleHelper.verticalAngle(facing) + 90) + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(AngleHelper.verticalAngle(facing) + 90) .uncenter() .translate(0, (offset * offset) * 4 / 16f, 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java b/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java index 8432be25a..893a82939 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java @@ -59,8 +59,8 @@ public class StickerVisual extends AbstractBlockEntityVisual .translate(getVisualPosition()) .nudge(blockEntity.hashCode()) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(AngleHelper.verticalAngle(facing) + 90) + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(AngleHelper.verticalAngle(facing) + 90) .uncenter() .translate(0, (offset * offset) * 4 / 16f, 0); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/elevator/ElevatorPulleyRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/elevator/ElevatorPulleyRenderer.java index 94a235546..63d99454d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/elevator/ElevatorPulleyRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/elevator/ElevatorPulleyRenderer.java @@ -56,7 +56,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer .75f) { halfRope.center() - .rotateY(blockStateAngle) + .rotateYDegrees(blockStateAngle) .uncenter(); AbstractPulleyRenderer.renderAt(world, halfRope.shiftUVScrolling(beltShift, (float) beltScroll * spriteSize), f > .75f ? f - 1 : f, pos, ms, @@ -96,7 +96,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer gantryCogs.loadIdentity() .translate(getVisualPosition()) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90) - .rotateY(alongFirst ^ facing.getAxis() == Direction.Axis.X ? 0 : 90) + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90) + .rotateYDegrees(alongFirst ^ facing.getAxis() == Direction.Axis.X ? 0 : 90) .translate(0, -9 / 16f, 0) - .rotateX(-cogAngle) + .rotateXDegrees(-cogAngle) .translate(0, 9 / 16f, 0) .uncenter() .setChanged(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/minecart/CouplingRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/minecart/CouplingRenderer.java index 64cb88e69..42e323877 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/minecart/CouplingRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/minecart/CouplingRenderer.java @@ -204,11 +204,11 @@ public class CouplingRenderer { TransformStack.of(ms) .translate(camera.scale(-1) .add(x, y, z)) - .rotateY(yaw) - .rotateZ(pitch) - .rotateX(roll) + .rotateYDegrees(yaw) + .rotateZDegrees(pitch) + .rotateXDegrees(roll) .translate(offset, 0, 0) - .rotateY(flip ? 180 : 0); + .rotateYDegrees(flip ? 180 : 0); } } diff --git a/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorRenderer.java b/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorRenderer.java index 2a6506c4a..639845b4f 100644 --- a/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorRenderer.java +++ b/src/main/java/com/simibubi/create/content/decoration/slidingDoor/SlidingDoorRenderer.java @@ -66,11 +66,11 @@ public class SlidingDoorRenderer extends SafeBlockEntityRenderer CachedBufferer.partial(mouth, blockState) .center() - .rotateY(AngleHelper.horizontalAngle(direction)) + .rotateYDegrees(AngleHelper.horizontalAngle(direction)) .uncenter() .translate(0, offset * 4 / 16f, 0) .light(light) diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/BacktankArmorLayer.java b/src/main/java/com/simibubi/create/content/equipment/armor/BacktankArmorLayer.java index fe173301e..1f492bd50 100644 --- a/src/main/java/com/simibubi/create/content/equipment/armor/BacktankArmorLayer.java +++ b/src/main/java/com/simibubi/create/content/equipment/armor/BacktankArmorLayer.java @@ -60,7 +60,7 @@ public class BacktankArmorLayer .renderInto(ms, buffer.getBuffer(renderType)); cogs.center() - .rotateY(180) + .rotateYDegrees(180) .uncenter() .translate(0, 6.5f / 16, 11f / 16) .rotate(AngleHelper.rad(2 * AnimationTickHolder.getRenderTime(entity.level()) % 360), Direction.EAST) diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/BacktankRenderer.java b/src/main/java/com/simibubi/create/content/equipment/armor/BacktankRenderer.java index 5f027d022..9d5f982a2 100644 --- a/src/main/java/com/simibubi/create/content/equipment/armor/BacktankRenderer.java +++ b/src/main/java/com/simibubi/create/content/equipment/armor/BacktankRenderer.java @@ -29,7 +29,7 @@ public class BacktankRenderer extends KineticBlockEntityRenderer { PartialModel partialModel = entity.size == 3 ? AllPartialModels.CRAFTING_BLUEPRINT_3x3 : entity.size == 2 ? AllPartialModels.CRAFTING_BLUEPRINT_2x2 : AllPartialModels.CRAFTING_BLUEPRINT_1x1; SuperByteBuffer sbb = CachedBufferer.partial(partialModel, Blocks.AIR.defaultBlockState()); - sbb.rotateY(-yaw) - .rotateX(90.0F + entity.getXRot()) + sbb.rotateYDegrees(-yaw) + .rotateXDegrees(90.0F + entity.getXRot()) .translate(-.5, -1 / 32f, -.5); if (entity.size == 2) sbb.translate(.5, 0, -.5); @@ -61,8 +61,8 @@ public class BlueprintRenderer extends EntityRenderer { int itemLight = Mth.floor(sl + .5) << 20 | (Mth.floor(bl + .5) & 0xf) << 4; TransformStack.of(ms) - .rotateY(vertical ? 0 : -yaw) - .rotateX(fakeNormalXRotation); + .rotateYDegrees(vertical ? 0 : -yaw) + .rotateXDegrees(fakeNormalXRotation); Matrix3f copy = new Matrix3f(ms.last() .normal()); @@ -70,8 +70,8 @@ public class BlueprintRenderer extends EntityRenderer { ms.pushPose(); TransformStack.of(ms) - .rotateY(-yaw) - .rotateX(entity.getXRot()) + .rotateYDegrees(-yaw) + .rotateXDegrees(entity.getXRot()) .translate(0, 0, 1 / 32f + .001); if (entity.size == 3) diff --git a/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItemRenderer.java b/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItemRenderer.java index fc3d3ff8d..a1160d77c 100644 --- a/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItemRenderer.java @@ -52,19 +52,19 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer { ms.translate(0, 1 / 16f, -7 / 16f); ms.scale(1, 1, 1 + animation); ms.pushPose(); - stacker.rotateX(-halfAngle) + stacker.rotateXDegrees(-halfAngle) .translate(ROTATION_OFFSET); renderer.renderSolid(THIN_SHORT.get(), light); stacker.translateBack(ROTATION_OFFSET); ms.translate(0, 5.5f / 16f, 0); - stacker.rotateX(-oppositeAngle) + stacker.rotateXDegrees(-oppositeAngle) .translate(ROTATION_OFFSET); renderer.renderSolid(WIDE_LONG.get(), light); stacker.translateBack(ROTATION_OFFSET); ms.translate(0, 11 / 16f, 0); - stacker.rotateX(oppositeAngle) + stacker.rotateXDegrees(oppositeAngle) .translate(ROTATION_OFFSET); ms.translate(0, 0.5f / 16f, 0); renderer.renderSolid(THIN_SHORT.get(), light); @@ -73,19 +73,19 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer { ms.popPose(); ms.pushPose(); - stacker.rotateX(-180 + halfAngle) + stacker.rotateXDegrees(-180 + halfAngle) .translate(ROTATION_OFFSET); renderer.renderSolid(WIDE_SHORT.get(), light); stacker.translateBack(ROTATION_OFFSET); ms.translate(0, 5.5f / 16f, 0); - stacker.rotateX(oppositeAngle) + stacker.rotateXDegrees(oppositeAngle) .translate(ROTATION_OFFSET); renderer.renderSolid(THIN_LONG.get(), light); stacker.translateBack(ROTATION_OFFSET); ms.translate(0, 11 / 16f, 0); - stacker.rotateX(-oppositeAngle) + stacker.rotateXDegrees(-oppositeAngle) .translate(ROTATION_OFFSET); ms.translate(0, 0.5f / 16f, 0); renderer.renderSolid(WIDE_SHORT.get(), light); @@ -93,8 +93,8 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer { // hand ms.translate(0, 5.5f / 16f, 0); - stacker.rotateX(180 - halfAngle) - .rotateY(180); + stacker.rotateXDegrees(180 - halfAngle) + .rotateYDegrees(180); ms.translate(0, 0, -4 / 16f); ms.scale(1, 1, 1 / (1 + animation)); renderer.renderSolid((leftHand || rightHand) ? ExtendoGripRenderHandler.pose.get() @@ -110,7 +110,7 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer { angle += 360 * animation; angle %= 360; stacker.translate(COG_ROTATION_OFFSET) - .rotateZ(angle) + .rotateZDegrees(angle) .translateBack(COG_ROTATION_OFFSET); renderer.renderSolid(COG.get(), light); ms.popPose(); diff --git a/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripRenderHandler.java b/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripRenderHandler.java index 68ada0f0e..3797e3faf 100644 --- a/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripRenderHandler.java +++ b/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripRenderHandler.java @@ -87,13 +87,13 @@ public class ExtendoGripRenderHandler { ms.translate(flip * (0.64000005F - .1f), -0.4F + equipProgress * -0.6F, -0.71999997F + .3f); ms.pushPose(); - msr.rotateY(flip * 75.0F); + msr.rotateYDegrees(flip * 75.0F); ms.translate(flip * -1.0F, 3.6F, 3.5F); - msr.rotateZ(flip * 120) - .rotateX(200) - .rotateY(flip * -135.0F); + msr.rotateZDegrees(flip * 120) + .rotateXDegrees(200) + .rotateYDegrees(flip * -135.0F); ms.translate(flip * 5.6F, 0.0F, 0.0F); - msr.rotateY(flip * 40.0F); + msr.rotateYDegrees(flip * 40.0F); ms.translate(flip * 0.05f, -0.3f, -0.3f); PlayerRenderer playerrenderer = (PlayerRenderer) mc.getEntityRenderDispatcher() @@ -123,7 +123,7 @@ public class ExtendoGripRenderHandler { if (blockItem && mc.getItemRenderer() .getModel(heldItem, null, null, 0) .isGui3d()) { - msr.rotateY(flip * 45); + msr.rotateYDegrees(flip * 45); ms.translate(flip * 0.15f, -0.15f, -.05f); ms.scale(1.25f, 1.25f, 1.25f); } diff --git a/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonItemRenderer.java b/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonItemRenderer.java index b0ff771eb..1192e6bec 100644 --- a/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonItemRenderer.java @@ -60,7 +60,7 @@ public class PotatoCannonItemRenderer extends CustomRenderedItemModelRenderer { localMs.translate(-1 / 4f, -1 / 4f, 1); localMs.scale(.5f, .5f, .5f); TransformStack.of(localMs) - .rotateY(-34); + .rotateYDegrees(-34); itemRenderer.renderStatic(ammo, ItemDisplayContext.GUI, light, OverlayTexture.NO_OVERLAY, localMs, buffer, mc.level, 0); }); diff --git a/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonRenderHandler.java b/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonRenderHandler.java index f2b6ff72f..9f7961f17 100644 --- a/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonRenderHandler.java +++ b/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoCannonRenderHandler.java @@ -50,14 +50,14 @@ public class PotatoCannonRenderHandler extends ShootableGadgetRenderHandler { ms.translate(flip * -.1f, 0, .14f); ms.scale(.75f, .75f, .75f); TransformStack.of(ms) - .rotateX(recoil * 80); + .rotateXDegrees(recoil * 80); } @Override protected void transformHand(PoseStack ms, float flip, float equipProgress, float recoil, float pt) { ms.translate(flip * -.09, -.275, -.25); TransformStack.of(ms) - .rotateZ(flip * -10); + .rotateZDegrees(flip * -10); } } diff --git a/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoProjectileRenderMode.java b/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoProjectileRenderMode.java index dea6bd37e..3bb51f0a7 100644 --- a/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoProjectileRenderMode.java +++ b/src/main/java/com/simibubi/create/content/equipment/potatoCannon/PotatoProjectileRenderMode.java @@ -33,8 +33,8 @@ public interface PotatoProjectileRenderMode { .subtract(p1); TransformStack.of(ms) - .rotateY(AngleHelper.deg(Mth.atan2(diff.x, diff.z)) + 180) - .rotateX(AngleHelper.deg(Mth.atan2(diff.y, Mth.sqrt((float) (diff.x * diff.x + diff.z * diff.z))))); + .rotateYDegrees(AngleHelper.deg(Mth.atan2(diff.x, diff.z)) + 180) + .rotateXDegrees(AngleHelper.deg(Mth.atan2(diff.y, Mth.sqrt((float) (diff.x * diff.x + diff.z * diff.z))))); } } @@ -48,8 +48,8 @@ public interface PotatoProjectileRenderMode { public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) { super.transform(ms, entity, pt); TransformStack.of(ms) - .rotateZ((entity.tickCount + pt) * 2 * entityRandom(entity, 16)) - .rotateX((entity.tickCount + pt) * entityRandom(entity, 32)); + .rotateZDegrees((entity.tickCount + pt) * 2 * entityRandom(entity, 16)) + .rotateXDegrees((entity.tickCount + pt) * entityRandom(entity, 32)); } } @@ -69,12 +69,12 @@ public interface PotatoProjectileRenderMode { public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) { Vec3 diff = entity.getDeltaMovement(); TransformStack.of(ms) - .rotateY(AngleHelper.deg(Mth.atan2(diff.x, diff.z))) - .rotateX(270 + .rotateYDegrees(AngleHelper.deg(Mth.atan2(diff.x, diff.z))) + .rotateXDegrees(270 + AngleHelper.deg(Mth.atan2(diff.y, -Mth.sqrt((float) (diff.x * diff.x + diff.z * diff.z))))); TransformStack.of(ms) - .rotateY((entity.tickCount + pt) * 20 * spin + entityRandom(entity, 360)) - .rotateZ(-spriteAngleOffset); + .rotateYDegrees((entity.tickCount + pt) * 20 * spin + entityRandom(entity, 360)) + .rotateZDegrees(-spriteAngleOffset); } } @@ -90,7 +90,7 @@ public interface PotatoProjectileRenderMode { @Override @OnlyIn(Dist.CLIENT) public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) { - TransformStack.of(ms).rotateY(AngleHelper.deg(Mth.atan2(offset.x, offset.z))); + TransformStack.of(ms).rotateYDegrees(AngleHelper.deg(Mth.atan2(offset.x, offset.z))); } } diff --git a/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/CrossPlaneMirror.java b/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/CrossPlaneMirror.java index 87b8c55be..35fd9d5ff 100644 --- a/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/CrossPlaneMirror.java +++ b/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/CrossPlaneMirror.java @@ -99,7 +99,7 @@ public class CrossPlaneMirror extends SymmetryMirror { super.applyModelTransform(ms); TransformStack.of(ms) .center() - .rotateY(((Align) orientation) == Align.Y ? 0 : 45) + .rotateYDegrees(((Align) orientation) == Align.Y ? 0 : 45) .uncenter(); } diff --git a/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/PlaneMirror.java b/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/PlaneMirror.java index 192b15c2d..ee117285a 100644 --- a/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/PlaneMirror.java +++ b/src/main/java/com/simibubi/create/content/equipment/symmetryWand/mirror/PlaneMirror.java @@ -95,7 +95,7 @@ public class PlaneMirror extends SymmetryMirror { super.applyModelTransform(ms); TransformStack.of(ms) .center() - .rotateY(((Align) orientation) == Align.XY ? 0 : 90) + .rotateYDegrees(((Align) orientation) == Align.XY ? 0 : 90) .uncenter(); } diff --git a/src/main/java/com/simibubi/create/content/equipment/toolbox/RadialToolboxMenu.java b/src/main/java/com/simibubi/create/content/equipment/toolbox/RadialToolboxMenu.java index fdee489ca..25bbadb88 100644 --- a/src/main/java/com/simibubi/create/content/equipment/toolbox/RadialToolboxMenu.java +++ b/src/main/java/com/simibubi/create/content/equipment/toolbox/RadialToolboxMenu.java @@ -127,9 +127,9 @@ public class RadialToolboxMenu extends AbstractSimiScreen { for (int slot = 0; slot < 8; slot++) { ms.pushPose(); TransformStack.of(ms) - .rotateZ(slot * 45 - 45) + .rotateZDegrees(slot * 45 - 45) .translate(0, -40 + (10 * (1 - fade) * (1 - fade)), 0) - .rotateZ(-slot * 45 + 45); + .rotateZDegrees(-slot * 45 + 45); ms.translate(-12, -12, 0); if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) { diff --git a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java index 8cb2fd562..43ec91198 100644 --- a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java +++ b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java @@ -60,17 +60,17 @@ public class ToolBoxVisual extends AbstractBlockEntityVisual lid.loadIdentity() .translate(getVisualPosition()) .center() - .rotateY(-facing.toYRot()) + .rotateYDegrees(-facing.toYRot()) .uncenter() .translate(0, 6 / 16f, 12 / 16f) - .rotateX(135 * lidAngle) + .rotateXDegrees(135 * lidAngle) .translateBack(0, 6 / 16f, 12 / 16f); for (int offset : Iterate.zeroAndOne) { drawers[offset].loadIdentity() .translate(getVisualPosition()) .center() - .rotateY(-facing.toYRot()) + .rotateYDegrees(-facing.toYRot()) .uncenter() .translate(0, offset * 1 / 8f, -drawerOffset * .175f * (2 - offset)); } diff --git a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxRenderer.java b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxRenderer.java index 1683e63cc..01f64202f 100644 --- a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxRenderer.java +++ b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxRenderer.java @@ -36,17 +36,17 @@ public class ToolboxRenderer extends SmartBlockEntityRenderer { .pushPose() .translate(x, y, 100) .scale(50) - .rotateX(-22) - .rotateY(-202); + .rotateXDegrees(-22) + .rotateYDegrees(-202); GuiGameElement.of(AllBlocks.TOOLBOXES.get(color) .getDefaultState()) @@ -143,7 +143,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen { TransformStack.of(ms) .pushPose() .translate(0, -6 / 16f, 12 / 16f) - .rotateX(-105 * menu.contentHolder.lid.getValue(partialTicks)) + .rotateXDegrees(-105 * menu.contentHolder.lid.getValue(partialTicks)) .translate(0, 6 / 16f, -12 / 16f); GuiGameElement.of(AllPartialModels.TOOLBOX_LIDS.get(color)) .render(graphics); diff --git a/src/main/java/com/simibubi/create/content/fluids/drain/ItemDrainRenderer.java b/src/main/java/com/simibubi/create/content/fluids/drain/ItemDrainRenderer.java index a472fb013..bcec5e455 100644 --- a/src/main/java/com/simibubi/create/content/fluids/drain/ItemDrainRenderer.java +++ b/src/main/java/com/simibubi/create/content/fluids/drain/ItemDrainRenderer.java @@ -87,9 +87,9 @@ public class ItemDrainRenderer extends SmartBlockEntityRenderer impleme pointer.loadIdentity() .translate(getVisualPosition()) .center() - .rotateY((float) yRot) - .rotateX((float) xRot) - .rotateY(pointerRotationOffset + pointerRotation) + .rotateYDegrees((float) yRot) + .rotateXDegrees((float) xRot) + .rotateYDegrees(pointerRotationOffset + pointerRotation) .uncenter() .setChanged(); } diff --git a/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankRenderer.java b/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankRenderer.java index 6f4dfa95f..50895cc66 100644 --- a/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankRenderer.java +++ b/src/main/java/com/simibubi/create/content/fluids/tank/FluidTankRenderer.java @@ -91,17 +91,17 @@ public class FluidTankRenderer extends SafeBlockEntityRenderer type, InstanceHandle handle) { super(type, handle); } - public BeltInstance setRotation(Quaternionf q) { - this.qX = q.x(); - this.qY = q.y(); - this.qZ = q.z(); - this.qW = q.w(); + public BeltInstance setRotation(Quaternionfc q) { + this.rotation.set(q); return this; } public BeltInstance setScrollTexture(SpriteShiftEntry spriteShift) { - // FIXME: these are null for some reason TextureAtlasSprite source = spriteShift.getOriginal(); TextureAtlasSprite target = spriteShift.getTarget(); @@ -50,7 +44,7 @@ public class BeltInstance extends KineticInstance { } public BeltInstance setScrollMult(float scrollMult) { - this.scrollMult = (byte) (scrollMult * 127); + this.scrollMult = scrollMult; return this; } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltRenderer.java index def4a9608..ce408ade6 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltRenderer.java +++ b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltRenderer.java @@ -77,9 +77,9 @@ public class BeltRenderer extends SafeBlockEntityRenderer { float renderTick = AnimationTickHolder.getRenderTime(be.getLevel()); msr.center() - .rotateY(AngleHelper.horizontalAngle(facing) + (upward ? 180 : 0) + (sideways ? 270 : 0)) - .rotateZ(sideways ? 90 : 0) - .rotateX(!diagonal && beltSlope != BeltSlope.HORIZONTAL ? 90 : 0) + .rotateYDegrees(AngleHelper.horizontalAngle(facing) + (upward ? 180 : 0) + (sideways ? 270 : 0)) + .rotateZDegrees(sideways ? 90 : 0) + .rotateXDegrees(!diagonal && beltSlope != BeltSlope.HORIZONTAL ? 90 : 0) .uncenter(); if (downward || beltSlope == BeltSlope.VERTICAL && axisDirection == AxisDirection.POSITIVE) { @@ -132,9 +132,9 @@ public class BeltRenderer extends SafeBlockEntityRenderer { PoseStack stack = new PoseStack(); var stacker = TransformStack.of(stack); stacker.center(); - if (dir.getAxis() == Direction.Axis.X) stacker.rotateY(90); - if (dir.getAxis() == Direction.Axis.Y) stacker.rotateX(90); - stacker.rotateX(90); + if (dir.getAxis() == Direction.Axis.X) stacker.rotateYDegrees(90); + if (dir.getAxis() == Direction.Axis.Y) stacker.rotateXDegrees(90); + stacker.rotateXDegrees(90); stacker.uncenter(); return stack; }; diff --git a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java index 0189843a1..2307d21b7 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java @@ -132,9 +132,9 @@ public class BeltVisual extends KineticBlockEntityVisual { var model = Models.partial(AllPartialModels.BELT_PULLEY, dir.getAxis(), (axis11, modelTransform1) -> { var msr = TransformStack.of(modelTransform1); msr.center(); - if (axis11 == Direction.Axis.X) msr.rotateY(90); - if (axis11 == Direction.Axis.Y) msr.rotateX(90); - msr.rotateX(90); + if (axis11 == Direction.Axis.X) msr.rotateYDegrees(90); + if (axis11 == Direction.Axis.Y) msr.rotateXDegrees(90); + msr.rotateXDegrees(90); msr.uncenter(); }); diff --git a/src/main/java/com/simibubi/create/content/kinetics/crafter/MechanicalCrafterRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/crafter/MechanicalCrafterRenderer.java index db3d9e363..8d3b11171 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/crafter/MechanicalCrafterRenderer.java +++ b/src/main/java/com/simibubi/create/content/kinetics/crafter/MechanicalCrafterRenderer.java @@ -123,7 +123,7 @@ public class MechanicalCrafterRenderer extends SafeBlockEntityRenderer superBuffer .transform(matrices.getModel()) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(AngleHelper.verticalAngle(facing)) - .rotateZ(angle) + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(AngleHelper.verticalAngle(facing)) + .rotateZDegrees(angle) .uncenter() .light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) diff --git a/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java b/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java index c4a2d9193..94da91fdc 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java @@ -44,7 +44,7 @@ public class GearboxVisual extends KineticBlockEntityVisual RotatingInstance key = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF), RenderStage.AFTER_BLOCK_ENTITIES) .createInstance(); - key.setRotationAxis(Direction.get(Direction.AxisDirection.POSITIVE, axis).step()) + key.setRotationAxis(axis) .setRotationalSpeed(getSpeed(direction)) .setRotationOffset(getRotationOffset(axis)).setColor(blockEntity) .setPosition(getVisualPosition()) diff --git a/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmRenderer.java index 6ca4ec255..ac4739256 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmRenderer.java +++ b/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmRenderer.java @@ -82,7 +82,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer { msr.center(); if (inverted) - msr.rotateX(180); + msr.rotateXDegrees(180); if (usingFlywheel) doItemTransforms(msr, baseAngle, lowerArmAngle, upperArmAngle, headAngle); @@ -93,7 +93,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer { if (hasItem) { ms.pushPose(); float itemScale = isBlockItem ? .5f : .625f; - msr.rotateX(90); + msr.rotateXDegrees(90); msLocal.translate(0, isBlockItem ? -9 / 16f : -10 / 16f, 0); msLocal.scale(itemScale, itemScale, itemScale); @@ -143,13 +143,13 @@ public class ArmRenderer extends KineticBlockEntityRenderer { transformHead(msr, headAngle); if (inverted) - msr.rotateZ(180); + msr.rotateZDegrees(180); claw.transform(msLocal) .renderInto(ms, builder); if (inverted) - msr.rotateZ(180); + msr.rotateZDegrees(180); for (int flip : Iterate.positiveAndNegative) { msLocal.pushPose(); @@ -175,22 +175,22 @@ public class ArmRenderer extends KineticBlockEntityRenderer { public static void transformHead(TransformStack msr, float headAngle) { msr.translate(0, 0, -15 / 16d); - msr.rotateX(headAngle - 45f); + msr.rotateXDegrees(headAngle - 45f); } public static void transformUpperArm(TransformStack msr, float upperArmAngle) { msr.translate(0, 0, -14 / 16d); - msr.rotateX(upperArmAngle - 90); + msr.rotateXDegrees(upperArmAngle - 90); } public static void transformLowerArm(TransformStack msr, float lowerArmAngle) { msr.translate(0, 2 / 16d, 0); - msr.rotateX(lowerArmAngle + 135); + msr.rotateXDegrees(lowerArmAngle + 135); } public static void transformBase(TransformStack msr, float baseAngle) { msr.translate(0, 4 / 16d, 0); - msr.rotateY(baseAngle); + msr.rotateYDegrees(baseAngle); } @Override diff --git a/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java b/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java index 617c6c20b..828635a2d 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java @@ -130,7 +130,7 @@ public class ArmVisual extends SingleRotatingVisual implements D msr.center(); if (ceiling) - msr.rotateX(180); + msr.rotateXDegrees(180); ArmRenderer.transformBase(msr, baseAngle); base.setTransform(msLocal) @@ -149,13 +149,13 @@ public class ArmVisual extends SingleRotatingVisual implements D ArmRenderer.transformHead(msr, headAngle); if (ceiling && blockEntity.goggles) - msr.rotateZ(180); + msr.rotateZDegrees(180); claw.setTransform(msLocal) .setChanged(); if (ceiling && blockEntity.goggles) - msr.rotateZ(180); + msr.rotateZDegrees(180); ItemStack item = blockEntity.heldItem; ItemRenderer itemRenderer = Minecraft.getInstance() diff --git a/src/main/java/com/simibubi/create/content/kinetics/motor/CreativeMotorBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/motor/CreativeMotorBlockEntity.java index e3372a062..59412bb01 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/motor/CreativeMotorBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/motor/CreativeMotorBlockEntity.java @@ -80,7 +80,7 @@ public class CreativeMotorBlockEntity extends GeneratingKineticBlockEntity { if (getSide() != Direction.UP) return; TransformStack.of(ms) - .rotateZ(-AngleHelper.horizontalAngle(facing) + 180); + .rotateZDegrees(-AngleHelper.horizontalAngle(facing) + 180); } @Override diff --git a/src/main/java/com/simibubi/create/content/kinetics/saw/SawFilterSlot.java b/src/main/java/com/simibubi/create/content/kinetics/saw/SawFilterSlot.java index 3554170d0..5b629defb 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/saw/SawFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/kinetics/saw/SawFilterSlot.java @@ -26,8 +26,8 @@ public class SawFilterSlot extends ValueBoxTransform { int yRot = (state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 90 : 0) + (state.getValue(SawBlock.FLIPPED) ? 0 : 180); TransformStack.of(ms) - .rotateY(yRot) - .rotateX(90); + .rotateYDegrees(yRot) + .rotateXDegrees(90); } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/saw/SawRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/saw/SawRenderer.java index 3dfedf383..b4a336b0d 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/saw/SawRenderer.java +++ b/src/main/java/com/simibubi/create/content/kinetics/saw/SawRenderer.java @@ -190,11 +190,11 @@ public class SawRenderer extends SafeBlockEntityRenderer { superBuffer.transform(matrices.getModel()) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(AngleHelper.verticalAngle(facing)); + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(AngleHelper.verticalAngle(facing)); if (!SawBlock.isHorizontal(state)) { - superBuffer.rotateZ(state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 90 : 0); + superBuffer.rotateZDegrees(state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 90 : 0); } superBuffer.uncenter() diff --git a/src/main/java/com/simibubi/create/content/kinetics/steamEngine/SteamEngineValueBox.java b/src/main/java/com/simibubi/create/content/kinetics/steamEngine/SteamEngineValueBox.java index 2c177857b..721c56a49 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/steamEngine/SteamEngineValueBox.java +++ b/src/main/java/com/simibubi/create/content/kinetics/steamEngine/SteamEngineValueBox.java @@ -74,9 +74,9 @@ public class SteamEngineValueBox extends ValueBoxTransform.Sided { float yRot = AngleHelper.horizontalAngle(facing) + (facing == Direction.DOWN ? 180 : 0); TransformStack.of(ms) - .rotateY(yRot) - .rotateX(facing == Direction.DOWN ? -90 : 90) - .rotateY(roll); + .rotateYDegrees(yRot) + .rotateXDegrees(facing == Direction.DOWN ? -90 : 90) + .rotateYDegrees(roll); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/chute/ChuteRenderer.java b/src/main/java/com/simibubi/create/content/logistics/chute/ChuteRenderer.java index 03bd6a508..5f22430e7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/chute/ChuteRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/chute/ChuteRenderer.java @@ -43,8 +43,8 @@ public class ChuteRenderer extends SafeBlockEntityRenderer { float itemPosition = be.itemPosition.getValue(partialTicks); ms.translate(0, -.5 + itemPosition, 0); ms.scale(itemScale, itemScale, itemScale); - msr.rotateX(itemPosition * 180); - msr.rotateY(itemPosition * 180); + msr.rotateXDegrees(itemPosition * 180); + msr.rotateYDegrees(itemPosition * 180); itemRenderer.renderStatic(be.item, ItemDisplayContext.FIXED, light, overlay, ms, buffer, be.getLevel(), 0); ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/content/logistics/crate/CreativeCrateBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/crate/CreativeCrateBlockEntity.java index eae05059d..bdb7934b5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/crate/CreativeCrateBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/crate/CreativeCrateBlockEntity.java @@ -57,7 +57,7 @@ public class CreativeCrateBlockEntity extends CrateBlockEntity { @Override public void rotate(BlockState state, PoseStack ms) { TransformStack.of(ms) - .rotateX(90); + .rotateXDegrees(90); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/depot/DepotRenderer.java b/src/main/java/com/simibubi/create/content/logistics/depot/DepotRenderer.java index 825d4be9f..170703b3d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/depot/DepotRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/depot/DepotRenderer.java @@ -85,10 +85,10 @@ public class DepotRenderer extends SafeBlockEntityRenderer { msr.nudge(i); boolean renderUpright = BeltHelper.isItemUpright(stack); - msr.rotateY(360 / 8f * i); + msr.rotateYDegrees(360 / 8f * i); ms.translate(.35f, 0, 0); if (renderUpright) - msr.rotateY(-(360 / 8f * i)); + msr.rotateYDegrees(-(360 / 8f * i)); Random r = new Random(i + 1); int angle = (int) (360 * r.nextFloat()); renderItem(be.getLevel(), ms, buffer, light, overlay, stack, renderUpright ? angle + 90 : angle, r, itemPosition); @@ -109,7 +109,7 @@ public class DepotRenderer extends SafeBlockEntityRenderer { .isGui3d(); ms.pushPose(); - msr.rotateY(angle); + msr.rotateYDegrees(angle); if (renderUpright) { Entity renderViewEntity = Minecraft.getInstance().cameraEntity; @@ -130,14 +130,14 @@ public class DepotRenderer extends SafeBlockEntityRenderer { ms.scale(.5f, .5f, .5f); if (!blockItem && !renderUpright) { ms.translate(0, -3 / 16f, 0); - msr.rotateX(90); + msr.rotateXDegrees(90); } itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, light, overlay, ms, buffer, level, 0); ms.popPose(); if (!renderUpright) { if (!blockItem) - msr.rotateY(10); + msr.rotateYDegrees(10); ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0); } else ms.translate(0, 0, -1 / 16f); diff --git a/src/main/java/com/simibubi/create/content/logistics/depot/EjectorBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/depot/EjectorBlockEntity.java index b008db682..a7d89a18a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/depot/EjectorBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/depot/EjectorBlockEntity.java @@ -631,8 +631,8 @@ public class EjectorBlockEntity extends KineticBlockEntity { return; } TransformStack.of(ms) - .rotateY(angle(state)) - .rotateX(90); + .rotateYDegrees(angle(state)) + .rotateXDegrees(90); } protected float angle(BlockState state) { diff --git a/src/main/java/com/simibubi/create/content/logistics/depot/EjectorRenderer.java b/src/main/java/com/simibubi/create/content/logistics/depot/EjectorRenderer.java index b56fd3996..bbf928bc0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/depot/EjectorRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/depot/EjectorRenderer.java @@ -66,8 +66,8 @@ public class EjectorRenderer extends ShaftRenderer { msr.translate(launchedItemLocation.subtract(Vec3.atLowerCornerOf(be.getBlockPos()))); Vec3 itemRotOffset = VecHelper.voxelSpace(0, 3, 0); msr.translate(itemRotOffset); - msr.rotateY(AngleHelper.horizontalAngle(be.getFacing())); - msr.rotateX(time * 40); + msr.rotateYDegrees(AngleHelper.horizontalAngle(be.getFacing())); + msr.rotateXDegrees(time * 40); msr.translateBack(itemRotOffset); Minecraft.getInstance() .getItemRenderer() @@ -95,11 +95,11 @@ public class EjectorRenderer extends ShaftRenderer { static & Rotate> void applyLidAngle(KineticBlockEntity be, Vec3 rotationOffset, float angle, T tr) { tr.center() - .rotateY(180 + AngleHelper.horizontalAngle(be.getBlockState() + .rotateYDegrees(180 + AngleHelper.horizontalAngle(be.getBlockState() .getValue(EjectorBlock.HORIZONTAL_FACING))) .uncenter() .translate(rotationOffset) - .rotateX(-angle) + .rotateXDegrees(-angle) .translateBack(rotationOffset); } diff --git a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelFilterSlotPositioning.java b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelFilterSlotPositioning.java index 9757f9360..07d9c9792 100644 --- a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelFilterSlotPositioning.java +++ b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelFilterSlotPositioning.java @@ -60,22 +60,22 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided { super.rotate(state, ms); if (shape == Shape.PULLING || shape == Shape.PUSHING) TransformStack.of(ms) - .rotateX(-22.5f); + .rotateXDegrees(-22.5f); return; } if (state.getBlock() instanceof FunnelBlock) { super.rotate(state, ms); TransformStack.of(ms) - .rotateX(-22.5f); + .rotateXDegrees(-22.5f); return; } float yRot = AngleHelper.horizontalAngle(AbstractFunnelBlock.getFunnelFacing(state)) + (facing == Direction.DOWN ? 180 : 0); TransformStack.of(ms) - .rotateY(yRot) - .rotateX(facing == Direction.DOWN ? -90 : 90); + .rotateYDegrees(yRot) + .rotateXDegrees(facing == Direction.DOWN ? -90 : 90); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelRenderer.java b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelRenderer.java index b43edb877..b3e5cc6ea 100644 --- a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelRenderer.java @@ -61,7 +61,7 @@ public class FunnelRenderer extends SmartBlockEntityRenderer flapAngle *= .5f; msr.translate(pivot) - .rotateX(flapAngle) + .rotateXDegrees(flapAngle) .translateBack(pivot); flapBuffer.light(light) diff --git a/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelRenderer.java b/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelRenderer.java index ff28db04f..5cd7d65d1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelRenderer.java @@ -49,7 +49,7 @@ public class BeltTunnelRenderer extends SmartBlockEntityRenderer { BlockPos pos = basin.getBlockPos(); ms.translate(.5, .2f, .5); TransformStack.of(ms) - .rotateY(basin.ingredientRotation.getValue(partialTicks)); + .rotateYDegrees(basin.ingredientRotation.getValue(partialTicks)); RandomSource r = RandomSource.create(pos.hashCode()); Vec3 baseVector = new Vec3(.125, level, 0); @@ -80,8 +80,8 @@ public class BasinRenderer extends SmartBlockEntityRenderer { Vec3 itemPosition = VecHelper.rotate(baseVector, anglePartition * itemCount, Axis.Y); ms.translate(itemPosition.x, itemPosition.y, itemPosition.z); TransformStack.of(ms) - .rotateY(anglePartition * itemCount + 35) - .rotateX(65); + .rotateYDegrees(anglePartition * itemCount + 35) + .rotateXDegrees(65); for (int i = 0; i <= stack.getCount() / 8; i++) { ms.pushPose(); @@ -125,8 +125,8 @@ public class BasinRenderer extends SmartBlockEntityRenderer { .translate(outVec) .translate(new Vec3(0, Math.max(-.55f, -(progress * progress * 2)), 0)) .translate(directionVec.scale(progress * .5f)) - .rotateY(AngleHelper.horizontalAngle(direction)) - .rotateX(progress * 180); + .rotateYDegrees(AngleHelper.horizontalAngle(direction)) + .rotateXDegrees(progress * 180); renderItem(ms, buffer, light, overlay, intAttached.getValue()); ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/content/redstone/FilteredDetectorFilterSlot.java b/src/main/java/com/simibubi/create/content/redstone/FilteredDetectorFilterSlot.java index bb53b0c1e..44b3d8054 100644 --- a/src/main/java/com/simibubi/create/content/redstone/FilteredDetectorFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/redstone/FilteredDetectorFilterSlot.java @@ -48,7 +48,7 @@ public class FilteredDetectorFilterSlot extends ValueBoxTransform.Sided { if (getSide() != Direction.UP) return; TransformStack.of(ms) - .rotateZ(-AngleHelper.horizontalAngle(facing) + 180); + .rotateZDegrees(-AngleHelper.horizontalAngle(facing) + 180); } @Override diff --git a/src/main/java/com/simibubi/create/content/redstone/diodes/BrassDiodeScrollSlot.java b/src/main/java/com/simibubi/create/content/redstone/diodes/BrassDiodeScrollSlot.java index 0d875f90c..e8f4923ee 100644 --- a/src/main/java/com/simibubi/create/content/redstone/diodes/BrassDiodeScrollSlot.java +++ b/src/main/java/com/simibubi/create/content/redstone/diodes/BrassDiodeScrollSlot.java @@ -21,8 +21,8 @@ public class BrassDiodeScrollSlot extends ValueBoxTransform { public void rotate(BlockState state, PoseStack ms) { float yRot = AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.HORIZONTAL_FACING)) + 180; TransformStack.of(ms) - .rotateY(yRot) - .rotateX(90); + .rotateYDegrees(yRot) + .rotateXDegrees(90); } @Override diff --git a/src/main/java/com/simibubi/create/content/redstone/displayLink/DisplayLinkRenderer.java b/src/main/java/com/simibubi/create/content/redstone/displayLink/DisplayLinkRenderer.java index 76e9f142a..6d48ead84 100644 --- a/src/main/java/com/simibubi/create/content/redstone/displayLink/DisplayLinkRenderer.java +++ b/src/main/java/com/simibubi/create/content/redstone/displayLink/DisplayLinkRenderer.java @@ -45,8 +45,8 @@ public class DisplayLinkRenderer extends SafeBlockEntityRenderer { if (xOffset + 16 > cardWidth - 26) { TransformStack.of(matrixStack) - .rotateZ(-90); + .rotateZDegrees(-90); int zLevel = 200; graphics.fillGradient(-cardHeight + 2, 18, -2 - cardHeader, 28, zLevel, 0x44000000, 0x00000000); graphics.fillGradient(-cardHeight + 2, cardWidth - 26, -2 - cardHeader, cardWidth - 16, zLevel, 0x00000000, diff --git a/src/main/java/com/simibubi/create/content/trains/schedule/TrainHatArmorLayer.java b/src/main/java/com/simibubi/create/content/trains/schedule/TrainHatArmorLayer.java index 43f00452f..f2ab4e2f4 100644 --- a/src/main/java/com/simibubi/create/content/trains/schedule/TrainHatArmorLayer.java +++ b/src/main/java/com/simibubi/create/content/trains/schedule/TrainHatArmorLayer.java @@ -122,7 +122,7 @@ public class TrainHatArmorLayer if (valid) { ms.scale(1, -1, -1); ms.translate(0, -2.25f / 16f, 0); - msr.rotateX(-8.5f); + msr.rotateXDegrees(-8.5f); BlockState air = Blocks.AIR.defaultBlockState(); CachedBufferer.partial(AllPartialModels.TRAIN_HAT, air) .disableDiffuse() diff --git a/src/main/java/com/simibubi/create/content/trains/station/AbstractStationScreen.java b/src/main/java/com/simibubi/create/content/trains/station/AbstractStationScreen.java index 79c31d5e3..30617fe4a 100644 --- a/src/main/java/com/simibubi/create/content/trains/station/AbstractStationScreen.java +++ b/src/main/java/com/simibubi/create/content/trains/station/AbstractStationScreen.java @@ -103,8 +103,8 @@ public abstract class AbstractStationScreen extends AbstractSimiScreen { msr.pushPose() .translate(guiLeft + background.width + 4, guiTop + background.height + 4, 100) .scale(40) - .rotateX(-22) - .rotateY(63); + .rotateXDegrees(-22) + .rotateYDegrees(63); GuiGameElement.of(blockEntity.getBlockState() .setValue(BlockStateProperties.WATERLOGGED, false)) .render(graphics); diff --git a/src/main/java/com/simibubi/create/content/trains/station/StationRenderer.java b/src/main/java/com/simibubi/create/content/trains/station/StationRenderer.java index c2c5262ec..c222de808 100644 --- a/src/main/java/com/simibubi/create/content/trains/station/StationRenderer.java +++ b/src/main/java/com/simibubi/create/content/trains/station/StationRenderer.java @@ -118,7 +118,7 @@ public class StationRenderer extends SafeBlockEntityRenderer SuperByteBuffer flagBB = CachedBufferer.partial(flag, be.getBlockState()); transformFlag(flagBB, be, partialTicks, be.flagYRot, be.flagFlipped); flagBB.translate(0.5f / 16, 0, 0) - .rotateY(be.flagFlipped ? 0 : 180) + .rotateYDegrees(be.flagFlipped ? 0 : 180) .translate(-0.5f / 16, 0, 0) .light(light) .renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped())); @@ -135,10 +135,10 @@ public class StationRenderer extends SafeBlockEntityRenderer float nudge = 1 / 512f; flag.center() - .rotateY(yRot) + .rotateYDegrees(yRot) .translate(nudge, 9.5f / 16f, flipped ? 14f / 16f - nudge : 2f / 16f + nudge) .uncenter() - .rotateX((flipped ? 1 : -1) * (progress * 90 + 270)); + .rotateXDegrees((flipped ? 1 : -1) * (progress * 90 + 270)); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxRenderer.java b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxRenderer.java index 8acb23a31..443c951e8 100644 --- a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxRenderer.java @@ -48,7 +48,7 @@ public class ValueBoxRenderer { ms.pushPose(); TransformStack.of(ms) - .rotateX(230); + .rotateXDegrees(230); Matrix3f copy = new Matrix3f(ms.last() .normal()); ms.popPose(); @@ -57,7 +57,7 @@ public class ValueBoxRenderer { TransformStack.of(ms) .translate(0, 0, -1 / 4f) .translate(0, 0, 1 / 32f + .001) - .rotateY(180); + .rotateYDegrees(180); PoseStack squashedMS = new PoseStack(); squashedMS.last() diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java index fcfa6eadf..96e79e5d8 100644 --- a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java @@ -113,8 +113,8 @@ public abstract class ValueBoxTransform { float yRot = AngleHelper.horizontalAngle(getSide()) + 180; float xRot = getSide() == Direction.UP ? 90 : getSide() == Direction.DOWN ? 270 : 0; TransformStack.of(ms) - .rotateY(yRot) - .rotateX(xRot); + .rotateYDegrees(yRot) + .rotateXDegrees(xRot); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/data/CreateBlockEntityBuilder.java b/src/main/java/com/simibubi/create/foundation/data/CreateBlockEntityBuilder.java index 5ea6f911e..f4647daac 100644 --- a/src/main/java/com/simibubi/create/foundation/data/CreateBlockEntityBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/data/CreateBlockEntityBuilder.java @@ -85,9 +85,9 @@ public class CreateBlockEntityBuilder extends BlockEnt var instanceFactory = this.instanceFactory; if (instanceFactory != null) { NonNullPredicate renderNormally = this.renderNormally; - SimpleBlockEntityVisualizer.configure(getEntry()) + SimpleBlockEntityVisualizer.builder(getEntry()) .factory(instanceFactory.get()) - .skipRender(be -> !renderNormally.test(be)) + .skipVanillaRender(be -> !renderNormally.test(be)) .apply(); } }); diff --git a/src/main/java/com/simibubi/create/foundation/data/CreateEntityBuilder.java b/src/main/java/com/simibubi/create/foundation/data/CreateEntityBuilder.java index 108103325..f745eae51 100644 --- a/src/main/java/com/simibubi/create/foundation/data/CreateEntityBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/data/CreateEntityBuilder.java @@ -58,9 +58,9 @@ public class CreateEntityBuilder extends EntityBuilder renderNormally = this.renderNormally; - SimpleEntityVisualizer.configure(getEntry()) + SimpleEntityVisualizer.builder(getEntry()) .factory(instanceFactory.get()) - .skipRender(be -> !renderNormally.test(be)) + .skipVanillaRender(be -> !renderNormally.test(be)) .apply(); } diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java index 4deb18cc3..cae32139d 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java @@ -62,8 +62,8 @@ public class FluidRenderer { var msr = TransformStack.of(ms); ms.pushPose(); msr.center() - .rotateY(AngleHelper.horizontalAngle(direction)) - .rotateX(direction == Direction.UP ? 180 : direction == Direction.DOWN ? 0 : 270) + .rotateYDegrees(AngleHelper.horizontalAngle(direction)) + .rotateXDegrees(direction == Direction.UP ? 180 : direction == Direction.DOWN ? 0 : 270) .uncenter(); ms.translate(.5, 0, .5); @@ -78,7 +78,7 @@ public class FluidRenderer { ms.pushPose(); renderFlowingTiledFace(Direction.SOUTH, hMin, yMin, hMax, yMax, h, builder, ms, light, color, flowTexture); ms.popPose(); - msr.rotateY(90); + msr.rotateYDegrees(90); } if (progress != 1) @@ -112,7 +112,7 @@ public class FluidRenderer { if (fluidAttributes.isLighterThanAir()) TransformStack.of(ms) .translate(center) - .rotateX(180) + .rotateXDegrees(180) .translateBack(center); for (Direction side : Iterate.directions) { diff --git a/src/main/java/com/simibubi/create/foundation/outliner/Outline.java b/src/main/java/com/simibubi/create/foundation/outliner/Outline.java index d5b9dbcb2..efd774f03 100644 --- a/src/main/java/com/simibubi/create/foundation/outliner/Outline.java +++ b/src/main/java/com/simibubi/create/foundation/outliner/Outline.java @@ -60,8 +60,8 @@ public abstract class Outline { poseStack.pushPose(); TransformStack.of(poseStack) .translate(start.x - camera.x, start.y - camera.y, start.z - camera.z) - .rotateY(hAngle) - .rotateX(vAngle); + .rotateYDegrees(hAngle) + .rotateXDegrees(vAngle); bufferCuboidLine(poseStack.last(), consumer, new Vector3f(), Direction.SOUTH, length, width, color, lightmap, disableNormals); poseStack.popPose(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java index 38bd05876..01e0b14e6 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java @@ -20,7 +20,6 @@ import org.apache.commons.lang3.mutable.MutableObject; import org.joml.Matrix4f; import org.joml.Vector4f; -import com.jozufozu.flywheel.lib.math.DiffuseLightCalculator; import com.jozufozu.flywheel.lib.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.UIRenderHelper; @@ -32,6 +31,7 @@ import com.simibubi.create.foundation.ponder.element.WorldSectionElement; import com.simibubi.create.foundation.ponder.instruction.HideAllInstruction; import com.simibubi.create.foundation.ponder.instruction.PonderInstruction; import com.simibubi.create.foundation.ponder.ui.PonderUI; +import com.simibubi.create.foundation.render.DiffuseLightCalculator; import com.simibubi.create.foundation.render.ForcedDiffuseState; import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; import com.simibubi.create.foundation.utility.AnimationTickHolder; @@ -525,13 +525,13 @@ public class PonderScene { ms.translate(width / 2, height / 2, 200 + offset); TransformStack.of(ms) - .rotateX(-35) - .rotateY(55) + .rotateXDegrees(-35) + .rotateYDegrees(55) .translate(offset, 0, 0) - .rotateY(-55) - .rotateX(35) - .rotateX(xRotation.getValue(pt)) - .rotateY(yRotation.getValue(pt)); + .rotateYDegrees(-55) + .rotateXDegrees(35) + .rotateXDegrees(xRotation.getValue(pt)) + .rotateYDegrees(yRotation.getValue(pt)); UIRenderHelper.flipForGuiRender(ms); float f = 30 * scaleFactor; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java index f1462a21e..1d31555a5 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java @@ -104,7 +104,7 @@ public class MinecartElement extends AnimatedSceneElement { Mth.lerp(pt, entity.yo, entity.getY()), Mth.lerp(pt, entity.zo, entity.getZ())); TransformStack.of(ms) - .rotateY(rotation.getValue(pt)); + .rotateYDegrees(rotation.getValue(pt)); entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade)); ms.popPose(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java index 77bf00c4c..fc177c002 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java @@ -148,7 +148,7 @@ public class ParrotElement extends AnimatedSceneElement { Mth.lerp(pt, entity.zo, entity.getZ())); TransformStack.of(ms) - .rotateY(AngleHelper.angleLerp(pt, entity.yRotO, entity.getYRot())); + .rotateYDegrees(AngleHelper.angleLerp(pt, entity.yRotO, entity.getYRot())); entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade)); ms.popPose(); diff --git a/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java b/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java index 747b8f042..11a055ffd 100644 --- a/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java +++ b/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java @@ -25,67 +25,71 @@ public class AllInstanceTypes { .cullShader(asResource("instance/cull/rotating.glsl")) .vertexShader(asResource("instance/rotating.vert")) .layout(LayoutBuilder.create() - .vector("light", IntegerRepr.SHORT, 2) .vector("color", FloatRepr.NORMALIZED_UNSIGNED_BYTE, 4) + .vector("light", IntegerRepr.SHORT, 2) + .vector("overlay", IntegerRepr.SHORT, 2) .vector("pos", FloatRepr.FLOAT, 3) .scalar("speed", FloatRepr.FLOAT) .scalar("offset", FloatRepr.FLOAT) .vector("axis", FloatRepr.NORMALIZED_BYTE, 3) .build()) .writer((ptr, instance) -> { - MemoryUtil.memPutShort(ptr, instance.blockLight); - MemoryUtil.memPutShort(ptr + 2, instance.skyLight); - MemoryUtil.memPutByte(ptr + 4, instance.r); - MemoryUtil.memPutByte(ptr + 5, instance.g); - MemoryUtil.memPutByte(ptr + 6, instance.b); - MemoryUtil.memPutByte(ptr + 7, instance.a); - MemoryUtil.memPutFloat(ptr + 8, instance.x); - MemoryUtil.memPutFloat(ptr + 12, instance.y); - MemoryUtil.memPutFloat(ptr + 16, instance.z); - MemoryUtil.memPutFloat(ptr + 20, instance.rotationalSpeed); - MemoryUtil.memPutFloat(ptr + 24, instance.rotationOffset); - MemoryUtil.memPutByte(ptr + 28, instance.rotationAxisX); - MemoryUtil.memPutByte(ptr + 29, instance.rotationAxisY); - MemoryUtil.memPutByte(ptr + 30, instance.rotationAxisZ); + MemoryUtil.memPutByte(ptr, instance.r); + MemoryUtil.memPutByte(ptr + 1, instance.g); + MemoryUtil.memPutByte(ptr + 2, instance.b); + MemoryUtil.memPutByte(ptr + 3, instance.a); + MemoryUtil.memPutShort(ptr + 4, instance.blockLight); + MemoryUtil.memPutShort(ptr + 6, instance.skyLight); + MemoryUtil.memPutInt(ptr + 8, instance.overlay); + MemoryUtil.memPutFloat(ptr + 12, instance.x); + MemoryUtil.memPutFloat(ptr + 16, instance.y); + MemoryUtil.memPutFloat(ptr + 20, instance.z); + MemoryUtil.memPutFloat(ptr + 24, instance.rotationalSpeed); + MemoryUtil.memPutFloat(ptr + 28, instance.rotationOffset); + MemoryUtil.memPutByte(ptr + 32, instance.rotationAxisX); + MemoryUtil.memPutByte(ptr + 33, instance.rotationAxisY); + MemoryUtil.memPutByte(ptr + 34, instance.rotationAxisZ); }) .register(); public static final InstanceType BELTS = SimpleInstanceType.builder(BeltInstance::new) .cullShader(asResource("instance/cull/belt.glsl")) .vertexShader(asResource("instance/belt.vert")) .layout(LayoutBuilder.create() - .vector("light", IntegerRepr.SHORT, 2) .vector("color", FloatRepr.NORMALIZED_UNSIGNED_BYTE, 4) + .vector("light", IntegerRepr.SHORT, 2) + .vector("overlay", IntegerRepr.SHORT, 2) .vector("pos", FloatRepr.FLOAT, 3) .scalar("speed", FloatRepr.FLOAT) .scalar("offset", FloatRepr.FLOAT) .vector("rotation", FloatRepr.FLOAT, 4) .vector("sourceTexture", FloatRepr.FLOAT, 2) .vector("scrollTexture", FloatRepr.FLOAT, 4) - .scalar("scrollMult", FloatRepr.NORMALIZED_BYTE) + .scalar("scrollMult", FloatRepr.FLOAT) .build()) .writer((ptr, instance) -> { - MemoryUtil.memPutShort(ptr, instance.blockLight); - MemoryUtil.memPutShort(ptr + 2, instance.skyLight); - MemoryUtil.memPutByte(ptr + 4, instance.r); - MemoryUtil.memPutByte(ptr + 5, instance.g); - MemoryUtil.memPutByte(ptr + 6, instance.b); - MemoryUtil.memPutByte(ptr + 7, instance.a); - MemoryUtil.memPutFloat(ptr + 8, instance.x); - MemoryUtil.memPutFloat(ptr + 12, instance.y); - MemoryUtil.memPutFloat(ptr + 16, instance.z); - MemoryUtil.memPutFloat(ptr + 20, instance.rotationalSpeed); - MemoryUtil.memPutFloat(ptr + 24, instance.rotationOffset); - MemoryUtil.memPutFloat(ptr + 28, instance.qX); - MemoryUtil.memPutFloat(ptr + 32, instance.qY); - MemoryUtil.memPutFloat(ptr + 36, instance.qZ); - MemoryUtil.memPutFloat(ptr + 40, instance.qW); - MemoryUtil.memPutFloat(ptr + 44, instance.sourceU); - MemoryUtil.memPutFloat(ptr + 48, instance.sourceV); - MemoryUtil.memPutFloat(ptr + 52, instance.minU); - MemoryUtil.memPutFloat(ptr + 56, instance.minV); - MemoryUtil.memPutFloat(ptr + 60, instance.maxU); - MemoryUtil.memPutFloat(ptr + 64, instance.maxV); - MemoryUtil.memPutByte(ptr + 68, instance.scrollMult); + MemoryUtil.memPutByte(ptr, instance.r); + MemoryUtil.memPutByte(ptr + 1, instance.g); + MemoryUtil.memPutByte(ptr + 2, instance.b); + MemoryUtil.memPutByte(ptr + 3, instance.a); + MemoryUtil.memPutShort(ptr + 4, instance.blockLight); + MemoryUtil.memPutShort(ptr + 6, instance.skyLight); + MemoryUtil.memPutInt(ptr + 8, instance.overlay); + MemoryUtil.memPutFloat(ptr + 12, instance.x); + MemoryUtil.memPutFloat(ptr + 16, instance.y); + MemoryUtil.memPutFloat(ptr + 20, instance.z); + MemoryUtil.memPutFloat(ptr + 24, instance.rotationalSpeed); + MemoryUtil.memPutFloat(ptr + 28, instance.rotationOffset); + MemoryUtil.memPutFloat(ptr + 32, instance.rotation.x); + MemoryUtil.memPutFloat(ptr + 36, instance.rotation.y); + MemoryUtil.memPutFloat(ptr + 40, instance.rotation.z); + MemoryUtil.memPutFloat(ptr + 44, instance.rotation.w); + MemoryUtil.memPutFloat(ptr + 48, instance.sourceU); + MemoryUtil.memPutFloat(ptr + 52, instance.sourceV); + MemoryUtil.memPutFloat(ptr + 56, instance.minU); + MemoryUtil.memPutFloat(ptr + 60, instance.minV); + MemoryUtil.memPutFloat(ptr + 64, instance.maxU); + MemoryUtil.memPutFloat(ptr + 68, instance.maxV); + MemoryUtil.memPutFloat(ptr + 72, instance.scrollMult); }) .register(); public static final InstanceType ACTORS = SimpleInstanceType.builder(ActorInstance::new) @@ -110,10 +114,10 @@ public class AllInstanceTypes { MemoryUtil.memPutByte(ptr + 20, instance.rotationAxisX); MemoryUtil.memPutByte(ptr + 21, instance.rotationAxisY); MemoryUtil.memPutByte(ptr + 22, instance.rotationAxisZ); - MemoryUtil.memPutFloat(ptr + 24, instance.qX); - MemoryUtil.memPutFloat(ptr + 28, instance.qY); - MemoryUtil.memPutFloat(ptr + 32, instance.qZ); - MemoryUtil.memPutFloat(ptr + 34, instance.qW); + MemoryUtil.memPutFloat(ptr + 24, instance.rotation.x); + MemoryUtil.memPutFloat(ptr + 28, instance.rotation.y); + MemoryUtil.memPutFloat(ptr + 32, instance.rotation.z); + MemoryUtil.memPutFloat(ptr + 34, instance.rotation.w); MemoryUtil.memPutByte(ptr + 38, instance.rotationCenterX); MemoryUtil.memPutByte(ptr + 39, instance.rotationCenterY); MemoryUtil.memPutByte(ptr + 40, instance.rotationCenterZ); diff --git a/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java b/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java index 80975e804..87e595496 100644 --- a/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java +++ b/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java @@ -67,8 +67,8 @@ public class CachedBufferer { PoseStack stack = new PoseStack(); TransformStack.of(stack) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(AngleHelper.verticalAngle(facing)) + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(AngleHelper.verticalAngle(facing)) .uncenter(); return stack; }; @@ -79,8 +79,8 @@ public class CachedBufferer { PoseStack stack = new PoseStack(); TransformStack.of(stack) .center() - .rotateY(AngleHelper.horizontalAngle(facing)) - .rotateX(AngleHelper.verticalAngle(facing) + 90) + .rotateYDegrees(AngleHelper.horizontalAngle(facing)) + .rotateXDegrees(AngleHelper.verticalAngle(facing) + 90) .uncenter(); return stack; }; diff --git a/src/main/java/com/simibubi/create/foundation/render/DiffuseLightCalculator.java b/src/main/java/com/simibubi/create/foundation/render/DiffuseLightCalculator.java new file mode 100644 index 000000000..755e42687 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/render/DiffuseLightCalculator.java @@ -0,0 +1,29 @@ +package com.simibubi.create.foundation.render; + +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraftforge.client.model.lighting.QuadLighter; + +public interface DiffuseLightCalculator { + DiffuseLightCalculator DEFAULT = DiffuseLightCalculator::diffuseLight; + DiffuseLightCalculator NETHER = DiffuseLightCalculator::diffuseLightNether; + + static DiffuseLightCalculator forLevel(ClientLevel level) { + return level.effects().constantAmbientLight() ? NETHER : DEFAULT; + } + + float getDiffuse(float normalX, float normalY, float normalZ, boolean shaded); + + static float diffuseLight(float x, float y, float z, boolean shaded) { + if (!shaded) { + return 1f; + } + return QuadLighter.calculateShade(x, y, z, false); + } + + static float diffuseLightNether(float x, float y, float z, boolean shaded) { + if (!shaded) { + return 0.9f; + } + return QuadLighter.calculateShade(x, y, z, true); + } +} diff --git a/src/main/java/com/simibubi/create/foundation/render/ForcedDiffuseState.java b/src/main/java/com/simibubi/create/foundation/render/ForcedDiffuseState.java index 35de4b915..3c94a6281 100644 --- a/src/main/java/com/simibubi/create/foundation/render/ForcedDiffuseState.java +++ b/src/main/java/com/simibubi/create/foundation/render/ForcedDiffuseState.java @@ -2,8 +2,6 @@ package com.simibubi.create.foundation.render; import javax.annotation.Nullable; -import com.jozufozu.flywheel.lib.math.DiffuseLightCalculator; - import it.unimi.dsi.fastutil.objects.ObjectArrayList; public final class ForcedDiffuseState { diff --git a/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java b/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java index f1487a4a7..a68ec0302 100644 --- a/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java +++ b/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java @@ -6,7 +6,6 @@ import org.joml.Quaternionf; import org.joml.Vector3f; import org.joml.Vector4f; -import com.jozufozu.flywheel.lib.math.DiffuseLightCalculator; import com.jozufozu.flywheel.lib.transform.TransformStack; import com.jozufozu.flywheel.lib.util.ShadersModHandler; import com.mojang.blaze3d.systems.RenderSystem; diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java index 9bccd5c19..a66532bff 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java +++ b/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java @@ -49,7 +49,8 @@ public abstract class Outline { ms.pushPose(); TransformStack.of(ms) .translate(start) - .rotateY(hAngle).rotateX(vAngle); + .rotateYDegrees(hAngle) + .rotateXDegrees(vAngle); renderAACuboidLine(ms, buffer, Vec3.ZERO, new Vec3(0, 0, diff.length())); ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java b/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java index 25c1c0785..18f68ecab 100644 --- a/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java +++ b/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java @@ -100,7 +100,7 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { ms.scale(24 * side, 24 * side, 32); ms.translate(-1.75 * ((alpha * alpha) / 2f + .5f), .25f, 0); TransformStack.of(ms) - .rotateX(45); + .rotateXDegrees(45); GuiGameElement.of(AllBlocks.LARGE_COGWHEEL.getDefaultState()) .rotateBlock(0, Util.getMillis() / 32f * side, 0) .render(graphics); diff --git a/src/main/resources/assets/create/flywheel/instance/belt.vert b/src/main/resources/assets/create/flywheel/instance/belt.vert index b8b0fb93d..15fb0061e 100644 --- a/src/main/resources/assets/create/flywheel/instance/belt.vert +++ b/src/main/resources/assets/create/flywheel/instance/belt.vert @@ -11,6 +11,7 @@ void flw_instanceVertex(in FlwInstance instance) { flw_vertexTexCoord = flw_vertexTexCoord - instance.sourceTexture + instance.scrollTexture.xy + vec2(0, scroll); flw_vertexLight = instance.light / 15.; + flw_vertexOverlay = instance.overlay; #if defined(DEBUG_RAINBOW) flw_vertexColor = instance.color; diff --git a/src/main/resources/assets/create/flywheel/instance/rotating.vert b/src/main/resources/assets/create/flywheel/instance/rotating.vert index 3221cf0e7..17dfd15e7 100644 --- a/src/main/resources/assets/create/flywheel/instance/rotating.vert +++ b/src/main/resources/assets/create/flywheel/instance/rotating.vert @@ -15,6 +15,7 @@ void flw_instanceVertex(in FlwInstance instance) { flw_vertexNormal = spin * flw_vertexNormal; flw_vertexLight = instance.light / 15.; + flw_vertexOverlay = instance.overlay; #if defined(DEBUG_RAINBOW) flw_vertexColor = instance.color;