mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-27 20:34:43 +01:00
Pretty rad
- Bump flywheel build. - Fix all(?) places where radians methods were passed degrees - Add DiffuseLightCalculator. - Add overlay to belt and rotating types. - Use joml quaternions in instance types.
This commit is contained in:
parent
b6d1f02d6a
commit
5038d04ac4
99 changed files with 360 additions and 319 deletions
21
build.gradle
21
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 {
|
dependencies {
|
||||||
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
||||||
|
|
||||||
|
@ -167,9 +184,11 @@ dependencies {
|
||||||
jarJar.ranged(it, '[MC1.19.3-1.1.10,)')
|
jarJar.ranged(it, '[MC1.19.3-1.1.10,)')
|
||||||
}
|
}
|
||||||
jarJar("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") {
|
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}")
|
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
|
||||||
|
|
||||||
if (flywheelInWorkspace) {
|
if (flywheelInWorkspace) {
|
||||||
|
|
|
@ -23,7 +23,7 @@ use_parchment = true
|
||||||
# dependency versions
|
# dependency versions
|
||||||
registrate_version = MC1.20-1.3.3
|
registrate_version = MC1.20-1.3.3
|
||||||
flywheel_minecraft_version = 1.20.1
|
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_minecraft_version = 1.20.1
|
||||||
jei_version = 15.2.0.22
|
jei_version = 15.2.0.22
|
||||||
curios_minecraft_version = 1.20.1
|
curios_minecraft_version = 1.20.1
|
||||||
|
|
|
@ -18,8 +18,8 @@ public class AnimatedCrafter extends AnimatedKinetics {
|
||||||
|
|
||||||
matrixStack.translate(3, 16, 0);
|
matrixStack.translate(3, 16, 0);
|
||||||
TransformStack.of(matrixStack)
|
TransformStack.of(matrixStack)
|
||||||
.rotateX(-12.5f)
|
.rotateXDegrees(-12.5f)
|
||||||
.rotateY(-22.5f);
|
.rotateYDegrees(-22.5f);
|
||||||
int scale = 22;
|
int scale = 22;
|
||||||
|
|
||||||
blockElement(cogwheel())
|
blockElement(cogwheel())
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class DirectionalExtenderScrollOptionSlot extends CenteredSideValueBoxTra
|
||||||
public void rotate(BlockState state, PoseStack ms) {
|
public void rotate(BlockState state, PoseStack ms) {
|
||||||
if (!getSide().getAxis().isHorizontal())
|
if (!getSide().getAxis().isHorizontal())
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.FACING)) + 180);
|
.rotateYDegrees(AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.FACING)) + 180);
|
||||||
super.rotate(state, ms);
|
super.rotate(state, ms);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -541,9 +541,9 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
||||||
TransformStack.of(matrixStack)
|
TransformStack.of(matrixStack)
|
||||||
.nudge(getId())
|
.nudge(getId())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(angleYaw)
|
.rotateYDegrees(angleYaw)
|
||||||
.rotateZ(anglePitch)
|
.rotateZDegrees(anglePitch)
|
||||||
.rotateY(angleInitialYaw)
|
.rotateYDegrees(angleInitialYaw)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.actors;
|
package com.simibubi.create.content.contraptions.actors;
|
||||||
|
|
||||||
import org.joml.Quaternionf;
|
import org.joml.Quaternionf;
|
||||||
|
import org.joml.Quaternionfc;
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.InstanceHandle;
|
import com.jozufozu.flywheel.api.instance.InstanceHandle;
|
||||||
|
@ -19,10 +20,7 @@ public class ActorInstance extends AbstractInstance {
|
||||||
public byte rotationAxisX;
|
public byte rotationAxisX;
|
||||||
public byte rotationAxisY;
|
public byte rotationAxisY;
|
||||||
public byte rotationAxisZ;
|
public byte rotationAxisZ;
|
||||||
public float qX;
|
public Quaternionf rotation = new Quaternionf();
|
||||||
public float qY;
|
|
||||||
public float qZ;
|
|
||||||
public float qW;
|
|
||||||
public byte rotationCenterX = 64;
|
public byte rotationCenterX = 64;
|
||||||
public byte rotationCenterY = 64;
|
public byte rotationCenterY = 64;
|
||||||
public byte rotationCenterZ = 64;
|
public byte rotationCenterZ = 64;
|
||||||
|
@ -84,11 +82,8 @@ public class ActorInstance extends AbstractInstance {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActorInstance setLocalRotation(Quaternionf q) {
|
public ActorInstance setLocalRotation(Quaternionfc q) {
|
||||||
this.qX = q.x();
|
this.rotation.set(q);
|
||||||
this.qY = q.y();
|
|
||||||
this.qZ = q.z();
|
|
||||||
this.qW = q.w();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,8 +136,8 @@ public class ContraptionControlsBlockEntity extends SmartBlockEntity {
|
||||||
Direction facing = state.getValue(ControlsBlock.FACING);
|
Direction facing = state.getValue(ControlsBlock.FACING);
|
||||||
float yRot = AngleHelper.horizontalAngle(facing);
|
float yRot = AngleHelper.horizontalAngle(facing);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot + 180)
|
.rotateYDegrees(yRot + 180)
|
||||||
.rotateX(67.5f);
|
.rotateXDegrees(67.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -46,15 +46,15 @@ public class PIInstance {
|
||||||
middle.loadIdentity()
|
middle.loadIdentity()
|
||||||
.translate(instancePos)
|
.translate(instancePos)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(angleY)
|
.rotateYDegrees(angleY)
|
||||||
.rotateX(angleX)
|
.rotateXDegrees(angleX)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
top.loadIdentity()
|
top.loadIdentity()
|
||||||
.translate(instancePos)
|
.translate(instancePos)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(angleY)
|
.rotateYDegrees(angleY)
|
||||||
.rotateX(angleX)
|
.rotateXDegrees(angleX)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
middle.translate(0, progress * 0.5f + 0.375f, 0);
|
middle.translate(0, progress * 0.5f + 0.375f, 0);
|
||||||
|
|
|
@ -81,8 +81,8 @@ public class PortableStorageInterfaceRenderer extends SafeBlockEntityRenderer<Po
|
||||||
|
|
||||||
private static void rotateToFacing(SuperByteBuffer buffer, Direction facing) {
|
private static void rotateToFacing(SuperByteBuffer buffer, Direction facing) {
|
||||||
buffer.center()
|
buffer.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
.rotateXDegrees(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -183,8 +183,8 @@ public class RollerBlockEntity extends SmartBlockEntity {
|
||||||
Direction facing = state.getValue(RollerBlock.FACING);
|
Direction facing = state.getValue(RollerBlock.FACING);
|
||||||
float yRot = AngleHelper.horizontalAngle(facing) + 180;
|
float yRot = AngleHelper.horizontalAngle(facing) + 180;
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(90);
|
.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer<RollerBlockEntity>
|
||||||
.scale(17 / 16f));
|
.scale(17 / 16f));
|
||||||
HarvesterRenderer.transform(be.getLevel(), facing, superBuffer, be.getAnimatedSpeed(), Vec3.ZERO);
|
HarvesterRenderer.transform(be.getLevel(), facing, superBuffer, be.getAnimatedSpeed(), Vec3.ZERO);
|
||||||
superBuffer.translate(0, -.5, .5)
|
superBuffer.translate(0, -.5, .5)
|
||||||
.rotateY(90)
|
.rotateYDegrees(90)
|
||||||
.light(light)
|
.light(light)
|
||||||
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
|
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
@ -75,7 +75,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer<RollerBlockEntity>
|
||||||
viewProjection.translate(0, -.25, 0);
|
viewProjection.translate(0, -.25, 0);
|
||||||
int contraptionWorldLight = ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld);
|
int contraptionWorldLight = ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld);
|
||||||
superBuffer.translate(0, -.5, .5)
|
superBuffer.translate(0, -.5, .5)
|
||||||
.rotateY(90)
|
.rotateYDegrees(90)
|
||||||
.light(matrices.getWorld(), contraptionWorldLight)
|
.light(matrices.getWorld(), contraptionWorldLight)
|
||||||
.renderInto(viewProjection, buffers.getBuffer(RenderType.cutoutMipped()));
|
.renderInto(viewProjection, buffers.getBuffer(RenderType.cutoutMipped()));
|
||||||
viewProjection.popPose();
|
viewProjection.popPose();
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class ControlsRenderer {
|
||||||
PoseStack ms = matrices.getModel();
|
PoseStack ms = matrices.getModel();
|
||||||
cover.transform(ms)
|
cover.transform(ms)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(hAngle)
|
.rotateYDegrees(hAngle)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld))
|
.light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld))
|
||||||
.renderInto(matrices.getViewProjection(), buffer.getBuffer(RenderType.cutoutMipped()));
|
.renderInto(matrices.getViewProjection(), buffer.getBuffer(RenderType.cutoutMipped()));
|
||||||
|
@ -38,16 +38,16 @@ public class ControlsRenderer {
|
||||||
double yOffset = Mth.lerp(equipAnimation * equipAnimation, -0.15f, 0.05f);
|
double yOffset = Mth.lerp(equipAnimation * equipAnimation, -0.15f, 0.05f);
|
||||||
|
|
||||||
for (boolean first : Iterate.trueAndFalse) {
|
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);
|
SuperByteBuffer lever = CachedBufferer.partial(AllPartialModels.TRAIN_CONTROLS_LEVER, state);
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(hAngle)
|
.rotateYDegrees(hAngle)
|
||||||
.translate(0, 0, 4 / 16f)
|
.translate(0, 0, 4 / 16f)
|
||||||
.rotateX(vAngle - 45)
|
.rotateXDegrees(vAngle - 45)
|
||||||
.translate(0, yOffset, 0)
|
.translate(0, yOffset, 0)
|
||||||
.rotateX(45)
|
.rotateXDegrees(45)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, -2 / 16f, -3 / 16f)
|
.translate(0, -2 / 16f, -3 / 16f)
|
||||||
.translate(first ? 0 : 6 / 16f, 0, 0);
|
.translate(first ? 0 : 6 / 16f, 0, 0);
|
||||||
|
|
|
@ -37,8 +37,8 @@ public class StickerRenderer extends SafeBlockEntityRenderer<StickerBlockEntity>
|
||||||
Direction facing = state.getValue(StickerBlock.FACING);
|
Direction facing = state.getValue(StickerBlock.FACING);
|
||||||
head.nudge(be.hashCode())
|
head.nudge(be.hashCode())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(AngleHelper.verticalAngle(facing) + 90)
|
.rotateXDegrees(AngleHelper.verticalAngle(facing) + 90)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, (offset * offset) * 4 / 16f, 0);
|
.translate(0, (offset * offset) * 4 / 16f, 0);
|
||||||
|
|
||||||
|
|
|
@ -59,8 +59,8 @@ public class StickerVisual extends AbstractBlockEntityVisual<StickerBlockEntity>
|
||||||
.translate(getVisualPosition())
|
.translate(getVisualPosition())
|
||||||
.nudge(blockEntity.hashCode())
|
.nudge(blockEntity.hashCode())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(AngleHelper.verticalAngle(facing) + 90)
|
.rotateXDegrees(AngleHelper.verticalAngle(facing) + 90)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, (offset * offset) * 4 / 16f, 0);
|
.translate(0, (offset * offset) * 4 / 16f, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer<ElevatorP
|
||||||
SuperByteBuffer magnet = CachedBufferer.partial(AllPartialModels.ELEVATOR_MAGNET, blockState);
|
SuperByteBuffer magnet = CachedBufferer.partial(AllPartialModels.ELEVATOR_MAGNET, blockState);
|
||||||
if (running || offset == 0)
|
if (running || offset == 0)
|
||||||
AbstractPulleyRenderer.renderAt(world, magnet.center()
|
AbstractPulleyRenderer.renderAt(world, magnet.center()
|
||||||
.rotateY(blockStateAngle)
|
.rotateYDegrees(blockStateAngle)
|
||||||
.uncenter(), offset, pos, ms, vb);
|
.uncenter(), offset, pos, ms, vb);
|
||||||
|
|
||||||
SuperByteBuffer rotatedCoil = getRotatedCoil(be);
|
SuperByteBuffer rotatedCoil = getRotatedCoil(be);
|
||||||
|
@ -84,7 +84,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer<ElevatorP
|
||||||
float f = offset % 1;
|
float f = offset % 1;
|
||||||
if (f < .25f || f > .75f) {
|
if (f < .25f || f > .75f) {
|
||||||
halfRope.center()
|
halfRope.center()
|
||||||
.rotateY(blockStateAngle)
|
.rotateYDegrees(blockStateAngle)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
AbstractPulleyRenderer.renderAt(world,
|
AbstractPulleyRenderer.renderAt(world,
|
||||||
halfRope.shiftUVScrolling(beltShift, (float) beltScroll * spriteSize), f > .75f ? f - 1 : f, pos, ms,
|
halfRope.shiftUVScrolling(beltShift, (float) beltScroll * spriteSize), f > .75f ? f - 1 : f, pos, ms,
|
||||||
|
@ -96,7 +96,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer<ElevatorP
|
||||||
|
|
||||||
for (int i = 0; i < offset - .25f; i++) {
|
for (int i = 0; i < offset - .25f; i++) {
|
||||||
rope.center()
|
rope.center()
|
||||||
.rotateY(blockStateAngle)
|
.rotateYDegrees(blockStateAngle)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
AbstractPulleyRenderer.renderAt(world, rope.shiftUVScrolling(beltShift, (float) beltScroll * spriteSize),
|
AbstractPulleyRenderer.renderAt(world, rope.shiftUVScrolling(beltShift, (float) beltScroll * spriteSize),
|
||||||
offset - i, pos, ms, vb);
|
offset - i, pos, ms, vb);
|
||||||
|
|
|
@ -56,11 +56,11 @@ public class GantryCarriageRenderer extends KineticBlockEntityRenderer<GantryCar
|
||||||
|
|
||||||
SuperByteBuffer cogs = CachedBufferer.partial(AllPartialModels.GANTRY_COGS, state);
|
SuperByteBuffer cogs = CachedBufferer.partial(AllPartialModels.GANTRY_COGS, state);
|
||||||
cogs.center()
|
cogs.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
.rotateXDegrees(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
||||||
.rotateY(alongFirst ^ facing.getAxis() == Axis.X ? 0 : 90)
|
.rotateYDegrees(alongFirst ^ facing.getAxis() == Axis.X ? 0 : 90)
|
||||||
.translate(0, -9 / 16f, 0)
|
.translate(0, -9 / 16f, 0)
|
||||||
.rotateX(-angleForBE)
|
.rotateXDegrees(-angleForBE)
|
||||||
.translate(0, 9 / 16f, 0)
|
.translate(0, 9 / 16f, 0)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
|
|
|
@ -68,11 +68,11 @@ public class GantryCarriageVisual extends ShaftVisual<GantryCarriageBlockEntity>
|
||||||
gantryCogs.loadIdentity()
|
gantryCogs.loadIdentity()
|
||||||
.translate(getVisualPosition())
|
.translate(getVisualPosition())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
.rotateXDegrees(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
||||||
.rotateY(alongFirst ^ facing.getAxis() == Direction.Axis.X ? 0 : 90)
|
.rotateYDegrees(alongFirst ^ facing.getAxis() == Direction.Axis.X ? 0 : 90)
|
||||||
.translate(0, -9 / 16f, 0)
|
.translate(0, -9 / 16f, 0)
|
||||||
.rotateX(-cogAngle)
|
.rotateXDegrees(-cogAngle)
|
||||||
.translate(0, 9 / 16f, 0)
|
.translate(0, 9 / 16f, 0)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.setChanged();
|
.setChanged();
|
||||||
|
|
|
@ -204,11 +204,11 @@ public class CouplingRenderer {
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.translate(camera.scale(-1)
|
.translate(camera.scale(-1)
|
||||||
.add(x, y, z))
|
.add(x, y, z))
|
||||||
.rotateY(yaw)
|
.rotateYDegrees(yaw)
|
||||||
.rotateZ(pitch)
|
.rotateZDegrees(pitch)
|
||||||
.rotateX(roll)
|
.rotateXDegrees(roll)
|
||||||
.translate(offset, 0, 0)
|
.translate(offset, 0, 0)
|
||||||
.rotateY(flip ? 180 : 0);
|
.rotateYDegrees(flip ? 180 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,11 +66,11 @@ public class SlidingDoorRenderer extends SafeBlockEntityRenderer<SlidingDoorBloc
|
||||||
|
|
||||||
if (flip)
|
if (flip)
|
||||||
partial.translate(0, 0, 1);
|
partial.translate(0, 0, 1);
|
||||||
partial.rotateY(91 * f * value * value);
|
partial.rotateYDegrees(91 * f * value * value);
|
||||||
|
|
||||||
if (!left)
|
if (!left)
|
||||||
partial.translate(0, 0, f / 2f)
|
partial.translate(0, 0, f / 2f)
|
||||||
.rotateY(-181 * f * value * value);
|
.rotateYDegrees(-181 * f * value * value);
|
||||||
|
|
||||||
if (flip)
|
if (flip)
|
||||||
partial.translate(0, 0, -1 / 2f);
|
partial.translate(0, 0, -1 / 2f);
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class WhistleRenderer extends SafeBlockEntityRenderer<WhistleBlockEntity>
|
||||||
|
|
||||||
CachedBufferer.partial(mouth, blockState)
|
CachedBufferer.partial(mouth, blockState)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(direction))
|
.rotateYDegrees(AngleHelper.horizontalAngle(direction))
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, offset * 4 / 16f, 0)
|
.translate(0, offset * 4 / 16f, 0)
|
||||||
.light(light)
|
.light(light)
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class BacktankArmorLayer<T extends LivingEntity, M extends EntityModel<T>
|
||||||
.renderInto(ms, buffer.getBuffer(renderType));
|
.renderInto(ms, buffer.getBuffer(renderType));
|
||||||
|
|
||||||
cogs.center()
|
cogs.center()
|
||||||
.rotateY(180)
|
.rotateYDegrees(180)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, 6.5f / 16, 11f / 16)
|
.translate(0, 6.5f / 16, 11f / 16)
|
||||||
.rotate(AngleHelper.rad(2 * AnimationTickHolder.getRenderTime(entity.level()) % 360), Direction.EAST)
|
.rotate(AngleHelper.rad(2 * AnimationTickHolder.getRenderTime(entity.level()) % 360), Direction.EAST)
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class BacktankRenderer extends KineticBlockEntityRenderer<BacktankBlockEn
|
||||||
BlockState blockState = be.getBlockState();
|
BlockState blockState = be.getBlockState();
|
||||||
SuperByteBuffer cogs = CachedBufferer.partial(getCogsModel(blockState), blockState);
|
SuperByteBuffer cogs = CachedBufferer.partial(getCogsModel(blockState), blockState);
|
||||||
cogs.center()
|
cogs.center()
|
||||||
.rotateY(180 + AngleHelper.horizontalAngle(blockState.getValue(BacktankBlock.HORIZONTAL_FACING)))
|
.rotateYDegrees(180 + AngleHelper.horizontalAngle(blockState.getValue(BacktankBlock.HORIZONTAL_FACING)))
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, 6.5f / 16, 11f / 16)
|
.translate(0, 6.5f / 16, 11f / 16)
|
||||||
.rotate(AngleHelper.rad(be.getSpeed() / 4f * AnimationTickHolder.getRenderTime(be.getLevel()) % 360),
|
.rotate(AngleHelper.rad(be.getSpeed() / 4f * AnimationTickHolder.getRenderTime(be.getLevel()) % 360),
|
||||||
|
|
|
@ -35,8 +35,8 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
|
||||||
PartialModel partialModel = entity.size == 3 ? AllPartialModels.CRAFTING_BLUEPRINT_3x3
|
PartialModel partialModel = entity.size == 3 ? AllPartialModels.CRAFTING_BLUEPRINT_3x3
|
||||||
: entity.size == 2 ? AllPartialModels.CRAFTING_BLUEPRINT_2x2 : AllPartialModels.CRAFTING_BLUEPRINT_1x1;
|
: entity.size == 2 ? AllPartialModels.CRAFTING_BLUEPRINT_2x2 : AllPartialModels.CRAFTING_BLUEPRINT_1x1;
|
||||||
SuperByteBuffer sbb = CachedBufferer.partial(partialModel, Blocks.AIR.defaultBlockState());
|
SuperByteBuffer sbb = CachedBufferer.partial(partialModel, Blocks.AIR.defaultBlockState());
|
||||||
sbb.rotateY(-yaw)
|
sbb.rotateYDegrees(-yaw)
|
||||||
.rotateX(90.0F + entity.getXRot())
|
.rotateXDegrees(90.0F + entity.getXRot())
|
||||||
.translate(-.5, -1 / 32f, -.5);
|
.translate(-.5, -1 / 32f, -.5);
|
||||||
if (entity.size == 2)
|
if (entity.size == 2)
|
||||||
sbb.translate(.5, 0, -.5);
|
sbb.translate(.5, 0, -.5);
|
||||||
|
@ -61,8 +61,8 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
|
||||||
int itemLight = Mth.floor(sl + .5) << 20 | (Mth.floor(bl + .5) & 0xf) << 4;
|
int itemLight = Mth.floor(sl + .5) << 20 | (Mth.floor(bl + .5) & 0xf) << 4;
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(vertical ? 0 : -yaw)
|
.rotateYDegrees(vertical ? 0 : -yaw)
|
||||||
.rotateX(fakeNormalXRotation);
|
.rotateXDegrees(fakeNormalXRotation);
|
||||||
Matrix3f copy = new Matrix3f(ms.last()
|
Matrix3f copy = new Matrix3f(ms.last()
|
||||||
.normal());
|
.normal());
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(-yaw)
|
.rotateYDegrees(-yaw)
|
||||||
.rotateX(entity.getXRot())
|
.rotateXDegrees(entity.getXRot())
|
||||||
.translate(0, 0, 1 / 32f + .001);
|
.translate(0, 0, 1 / 32f + .001);
|
||||||
|
|
||||||
if (entity.size == 3)
|
if (entity.size == 3)
|
||||||
|
|
|
@ -52,19 +52,19 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer {
|
||||||
ms.translate(0, 1 / 16f, -7 / 16f);
|
ms.translate(0, 1 / 16f, -7 / 16f);
|
||||||
ms.scale(1, 1, 1 + animation);
|
ms.scale(1, 1, 1 + animation);
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
stacker.rotateX(-halfAngle)
|
stacker.rotateXDegrees(-halfAngle)
|
||||||
.translate(ROTATION_OFFSET);
|
.translate(ROTATION_OFFSET);
|
||||||
renderer.renderSolid(THIN_SHORT.get(), light);
|
renderer.renderSolid(THIN_SHORT.get(), light);
|
||||||
stacker.translateBack(ROTATION_OFFSET);
|
stacker.translateBack(ROTATION_OFFSET);
|
||||||
|
|
||||||
ms.translate(0, 5.5f / 16f, 0);
|
ms.translate(0, 5.5f / 16f, 0);
|
||||||
stacker.rotateX(-oppositeAngle)
|
stacker.rotateXDegrees(-oppositeAngle)
|
||||||
.translate(ROTATION_OFFSET);
|
.translate(ROTATION_OFFSET);
|
||||||
renderer.renderSolid(WIDE_LONG.get(), light);
|
renderer.renderSolid(WIDE_LONG.get(), light);
|
||||||
stacker.translateBack(ROTATION_OFFSET);
|
stacker.translateBack(ROTATION_OFFSET);
|
||||||
|
|
||||||
ms.translate(0, 11 / 16f, 0);
|
ms.translate(0, 11 / 16f, 0);
|
||||||
stacker.rotateX(oppositeAngle)
|
stacker.rotateXDegrees(oppositeAngle)
|
||||||
.translate(ROTATION_OFFSET);
|
.translate(ROTATION_OFFSET);
|
||||||
ms.translate(0, 0.5f / 16f, 0);
|
ms.translate(0, 0.5f / 16f, 0);
|
||||||
renderer.renderSolid(THIN_SHORT.get(), light);
|
renderer.renderSolid(THIN_SHORT.get(), light);
|
||||||
|
@ -73,19 +73,19 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer {
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
|
||||||
stacker.rotateX(-180 + halfAngle)
|
stacker.rotateXDegrees(-180 + halfAngle)
|
||||||
.translate(ROTATION_OFFSET);
|
.translate(ROTATION_OFFSET);
|
||||||
renderer.renderSolid(WIDE_SHORT.get(), light);
|
renderer.renderSolid(WIDE_SHORT.get(), light);
|
||||||
stacker.translateBack(ROTATION_OFFSET);
|
stacker.translateBack(ROTATION_OFFSET);
|
||||||
|
|
||||||
ms.translate(0, 5.5f / 16f, 0);
|
ms.translate(0, 5.5f / 16f, 0);
|
||||||
stacker.rotateX(oppositeAngle)
|
stacker.rotateXDegrees(oppositeAngle)
|
||||||
.translate(ROTATION_OFFSET);
|
.translate(ROTATION_OFFSET);
|
||||||
renderer.renderSolid(THIN_LONG.get(), light);
|
renderer.renderSolid(THIN_LONG.get(), light);
|
||||||
stacker.translateBack(ROTATION_OFFSET);
|
stacker.translateBack(ROTATION_OFFSET);
|
||||||
|
|
||||||
ms.translate(0, 11 / 16f, 0);
|
ms.translate(0, 11 / 16f, 0);
|
||||||
stacker.rotateX(-oppositeAngle)
|
stacker.rotateXDegrees(-oppositeAngle)
|
||||||
.translate(ROTATION_OFFSET);
|
.translate(ROTATION_OFFSET);
|
||||||
ms.translate(0, 0.5f / 16f, 0);
|
ms.translate(0, 0.5f / 16f, 0);
|
||||||
renderer.renderSolid(WIDE_SHORT.get(), light);
|
renderer.renderSolid(WIDE_SHORT.get(), light);
|
||||||
|
@ -93,8 +93,8 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer {
|
||||||
|
|
||||||
// hand
|
// hand
|
||||||
ms.translate(0, 5.5f / 16f, 0);
|
ms.translate(0, 5.5f / 16f, 0);
|
||||||
stacker.rotateX(180 - halfAngle)
|
stacker.rotateXDegrees(180 - halfAngle)
|
||||||
.rotateY(180);
|
.rotateYDegrees(180);
|
||||||
ms.translate(0, 0, -4 / 16f);
|
ms.translate(0, 0, -4 / 16f);
|
||||||
ms.scale(1, 1, 1 / (1 + animation));
|
ms.scale(1, 1, 1 / (1 + animation));
|
||||||
renderer.renderSolid((leftHand || rightHand) ? ExtendoGripRenderHandler.pose.get()
|
renderer.renderSolid((leftHand || rightHand) ? ExtendoGripRenderHandler.pose.get()
|
||||||
|
@ -110,7 +110,7 @@ public class ExtendoGripItemRenderer extends CustomRenderedItemModelRenderer {
|
||||||
angle += 360 * animation;
|
angle += 360 * animation;
|
||||||
angle %= 360;
|
angle %= 360;
|
||||||
stacker.translate(COG_ROTATION_OFFSET)
|
stacker.translate(COG_ROTATION_OFFSET)
|
||||||
.rotateZ(angle)
|
.rotateZDegrees(angle)
|
||||||
.translateBack(COG_ROTATION_OFFSET);
|
.translateBack(COG_ROTATION_OFFSET);
|
||||||
renderer.renderSolid(COG.get(), light);
|
renderer.renderSolid(COG.get(), light);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
|
@ -87,13 +87,13 @@ public class ExtendoGripRenderHandler {
|
||||||
ms.translate(flip * (0.64000005F - .1f), -0.4F + equipProgress * -0.6F, -0.71999997F + .3f);
|
ms.translate(flip * (0.64000005F - .1f), -0.4F + equipProgress * -0.6F, -0.71999997F + .3f);
|
||||||
|
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
msr.rotateY(flip * 75.0F);
|
msr.rotateYDegrees(flip * 75.0F);
|
||||||
ms.translate(flip * -1.0F, 3.6F, 3.5F);
|
ms.translate(flip * -1.0F, 3.6F, 3.5F);
|
||||||
msr.rotateZ(flip * 120)
|
msr.rotateZDegrees(flip * 120)
|
||||||
.rotateX(200)
|
.rotateXDegrees(200)
|
||||||
.rotateY(flip * -135.0F);
|
.rotateYDegrees(flip * -135.0F);
|
||||||
ms.translate(flip * 5.6F, 0.0F, 0.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);
|
ms.translate(flip * 0.05f, -0.3f, -0.3f);
|
||||||
|
|
||||||
PlayerRenderer playerrenderer = (PlayerRenderer) mc.getEntityRenderDispatcher()
|
PlayerRenderer playerrenderer = (PlayerRenderer) mc.getEntityRenderDispatcher()
|
||||||
|
@ -123,7 +123,7 @@ public class ExtendoGripRenderHandler {
|
||||||
if (blockItem && mc.getItemRenderer()
|
if (blockItem && mc.getItemRenderer()
|
||||||
.getModel(heldItem, null, null, 0)
|
.getModel(heldItem, null, null, 0)
|
||||||
.isGui3d()) {
|
.isGui3d()) {
|
||||||
msr.rotateY(flip * 45);
|
msr.rotateYDegrees(flip * 45);
|
||||||
ms.translate(flip * 0.15f, -0.15f, -.05f);
|
ms.translate(flip * 0.15f, -0.15f, -.05f);
|
||||||
ms.scale(1.25f, 1.25f, 1.25f);
|
ms.scale(1.25f, 1.25f, 1.25f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class PotatoCannonItemRenderer extends CustomRenderedItemModelRenderer {
|
||||||
localMs.translate(-1 / 4f, -1 / 4f, 1);
|
localMs.translate(-1 / 4f, -1 / 4f, 1);
|
||||||
localMs.scale(.5f, .5f, .5f);
|
localMs.scale(.5f, .5f, .5f);
|
||||||
TransformStack.of(localMs)
|
TransformStack.of(localMs)
|
||||||
.rotateY(-34);
|
.rotateYDegrees(-34);
|
||||||
itemRenderer.renderStatic(ammo, ItemDisplayContext.GUI, light, OverlayTexture.NO_OVERLAY, localMs,
|
itemRenderer.renderStatic(ammo, ItemDisplayContext.GUI, light, OverlayTexture.NO_OVERLAY, localMs,
|
||||||
buffer, mc.level, 0);
|
buffer, mc.level, 0);
|
||||||
});
|
});
|
||||||
|
|
|
@ -50,14 +50,14 @@ public class PotatoCannonRenderHandler extends ShootableGadgetRenderHandler {
|
||||||
ms.translate(flip * -.1f, 0, .14f);
|
ms.translate(flip * -.1f, 0, .14f);
|
||||||
ms.scale(.75f, .75f, .75f);
|
ms.scale(.75f, .75f, .75f);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(recoil * 80);
|
.rotateXDegrees(recoil * 80);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void transformHand(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
|
protected void transformHand(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
|
||||||
ms.translate(flip * -.09, -.275, -.25);
|
ms.translate(flip * -.09, -.275, -.25);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateZ(flip * -10);
|
.rotateZDegrees(flip * -10);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,8 +33,8 @@ public interface PotatoProjectileRenderMode {
|
||||||
.subtract(p1);
|
.subtract(p1);
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(AngleHelper.deg(Mth.atan2(diff.x, diff.z)) + 180)
|
.rotateYDegrees(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)))));
|
.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) {
|
public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) {
|
||||||
super.transform(ms, entity, pt);
|
super.transform(ms, entity, pt);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateZ((entity.tickCount + pt) * 2 * entityRandom(entity, 16))
|
.rotateZDegrees((entity.tickCount + pt) * 2 * entityRandom(entity, 16))
|
||||||
.rotateX((entity.tickCount + pt) * entityRandom(entity, 32));
|
.rotateXDegrees((entity.tickCount + pt) * entityRandom(entity, 32));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -69,12 +69,12 @@ public interface PotatoProjectileRenderMode {
|
||||||
public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) {
|
public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) {
|
||||||
Vec3 diff = entity.getDeltaMovement();
|
Vec3 diff = entity.getDeltaMovement();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(AngleHelper.deg(Mth.atan2(diff.x, diff.z)))
|
.rotateYDegrees(AngleHelper.deg(Mth.atan2(diff.x, diff.z)))
|
||||||
.rotateX(270
|
.rotateXDegrees(270
|
||||||
+ AngleHelper.deg(Mth.atan2(diff.y, -Mth.sqrt((float) (diff.x * diff.x + diff.z * diff.z)))));
|
+ AngleHelper.deg(Mth.atan2(diff.y, -Mth.sqrt((float) (diff.x * diff.x + diff.z * diff.z)))));
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY((entity.tickCount + pt) * 20 * spin + entityRandom(entity, 360))
|
.rotateYDegrees((entity.tickCount + pt) * 20 * spin + entityRandom(entity, 360))
|
||||||
.rotateZ(-spriteAngleOffset);
|
.rotateZDegrees(-spriteAngleOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ public interface PotatoProjectileRenderMode {
|
||||||
@Override
|
@Override
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public void transform(PoseStack ms, PotatoProjectileEntity entity, float pt) {
|
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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@ public class CrossPlaneMirror extends SymmetryMirror {
|
||||||
super.applyModelTransform(ms);
|
super.applyModelTransform(ms);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(((Align) orientation) == Align.Y ? 0 : 45)
|
.rotateYDegrees(((Align) orientation) == Align.Y ? 0 : 45)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ public class PlaneMirror extends SymmetryMirror {
|
||||||
super.applyModelTransform(ms);
|
super.applyModelTransform(ms);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(((Align) orientation) == Align.XY ? 0 : 90)
|
.rotateYDegrees(((Align) orientation) == Align.XY ? 0 : 90)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,9 +127,9 @@ public class RadialToolboxMenu extends AbstractSimiScreen {
|
||||||
for (int slot = 0; slot < 8; slot++) {
|
for (int slot = 0; slot < 8; slot++) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateZ(slot * 45 - 45)
|
.rotateZDegrees(slot * 45 - 45)
|
||||||
.translate(0, -40 + (10 * (1 - fade) * (1 - fade)), 0)
|
.translate(0, -40 + (10 * (1 - fade) * (1 - fade)), 0)
|
||||||
.rotateZ(-slot * 45 + 45);
|
.rotateZDegrees(-slot * 45 + 45);
|
||||||
ms.translate(-12, -12, 0);
|
ms.translate(-12, -12, 0);
|
||||||
|
|
||||||
if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) {
|
if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) {
|
||||||
|
|
|
@ -60,17 +60,17 @@ public class ToolBoxVisual extends AbstractBlockEntityVisual<ToolboxBlockEntity>
|
||||||
lid.loadIdentity()
|
lid.loadIdentity()
|
||||||
.translate(getVisualPosition())
|
.translate(getVisualPosition())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(-facing.toYRot())
|
.rotateYDegrees(-facing.toYRot())
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, 6 / 16f, 12 / 16f)
|
.translate(0, 6 / 16f, 12 / 16f)
|
||||||
.rotateX(135 * lidAngle)
|
.rotateXDegrees(135 * lidAngle)
|
||||||
.translateBack(0, 6 / 16f, 12 / 16f);
|
.translateBack(0, 6 / 16f, 12 / 16f);
|
||||||
|
|
||||||
for (int offset : Iterate.zeroAndOne) {
|
for (int offset : Iterate.zeroAndOne) {
|
||||||
drawers[offset].loadIdentity()
|
drawers[offset].loadIdentity()
|
||||||
.translate(getVisualPosition())
|
.translate(getVisualPosition())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(-facing.toYRot())
|
.rotateYDegrees(-facing.toYRot())
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, offset * 1 / 8f, -drawerOffset * .175f * (2 - offset));
|
.translate(0, offset * 1 / 8f, -drawerOffset * .175f * (2 - offset));
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,17 +36,17 @@ public class ToolboxRenderer extends SmartBlockEntityRenderer<ToolboxBlockEntity
|
||||||
|
|
||||||
VertexConsumer builder = buffer.getBuffer(RenderType.cutoutMipped());
|
VertexConsumer builder = buffer.getBuffer(RenderType.cutoutMipped());
|
||||||
lid.center()
|
lid.center()
|
||||||
.rotateY(-facing.toYRot())
|
.rotateYDegrees(-facing.toYRot())
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, 6 / 16f, 12 / 16f)
|
.translate(0, 6 / 16f, 12 / 16f)
|
||||||
.rotateX(135 * lidAngle)
|
.rotateXDegrees(135 * lidAngle)
|
||||||
.translate(0, -6 / 16f, -12 / 16f)
|
.translate(0, -6 / 16f, -12 / 16f)
|
||||||
.light(light)
|
.light(light)
|
||||||
.renderInto(ms, builder);
|
.renderInto(ms, builder);
|
||||||
|
|
||||||
for (int offset : Iterate.zeroAndOne) {
|
for (int offset : Iterate.zeroAndOne) {
|
||||||
drawer.center()
|
drawer.center()
|
||||||
.rotateY(-facing.toYRot())
|
.rotateYDegrees(-facing.toYRot())
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, offset * 1 / 8f, -drawerOffset * .175f * (2 - offset))
|
.translate(0, offset * 1 / 8f, -drawerOffset * .175f * (2 - offset))
|
||||||
.light(light)
|
.light(light)
|
||||||
|
|
|
@ -133,8 +133,8 @@ public class ToolboxScreen extends AbstractSimiContainerScreen<ToolboxMenu> {
|
||||||
.pushPose()
|
.pushPose()
|
||||||
.translate(x, y, 100)
|
.translate(x, y, 100)
|
||||||
.scale(50)
|
.scale(50)
|
||||||
.rotateX(-22)
|
.rotateXDegrees(-22)
|
||||||
.rotateY(-202);
|
.rotateYDegrees(-202);
|
||||||
|
|
||||||
GuiGameElement.of(AllBlocks.TOOLBOXES.get(color)
|
GuiGameElement.of(AllBlocks.TOOLBOXES.get(color)
|
||||||
.getDefaultState())
|
.getDefaultState())
|
||||||
|
@ -143,7 +143,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen<ToolboxMenu> {
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.pushPose()
|
.pushPose()
|
||||||
.translate(0, -6 / 16f, 12 / 16f)
|
.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);
|
.translate(0, 6 / 16f, -12 / 16f);
|
||||||
GuiGameElement.of(AllPartialModels.TOOLBOX_LIDS.get(color))
|
GuiGameElement.of(AllPartialModels.TOOLBOX_LIDS.get(color))
|
||||||
.render(graphics);
|
.render(graphics);
|
||||||
|
|
|
@ -87,9 +87,9 @@ public class ItemDrainRenderer extends SmartBlockEntityRenderer<ItemDrainBlockEn
|
||||||
.getStep();
|
.getStep();
|
||||||
float verticalAngle = positive * offset * 360;
|
float verticalAngle = positive * offset * 360;
|
||||||
if (insertedFrom.getAxis() != Direction.Axis.X)
|
if (insertedFrom.getAxis() != Direction.Axis.X)
|
||||||
msr.rotateX(verticalAngle);
|
msr.rotateXDegrees(verticalAngle);
|
||||||
if (insertedFrom.getAxis() != Direction.Axis.Z)
|
if (insertedFrom.getAxis() != Direction.Axis.Z)
|
||||||
msr.rotateZ(-verticalAngle);
|
msr.rotateZDegrees(-verticalAngle);
|
||||||
|
|
||||||
if (renderUpright) {
|
if (renderUpright) {
|
||||||
Entity renderViewEntity = Minecraft.getInstance().cameraEntity;
|
Entity renderViewEntity = Minecraft.getInstance().cameraEntity;
|
||||||
|
@ -115,13 +115,13 @@ public class ItemDrainRenderer extends SmartBlockEntityRenderer<ItemDrainBlockEn
|
||||||
ms.translate(r.nextFloat() * .0625f * i, 0, r.nextFloat() * .0625f * i);
|
ms.translate(r.nextFloat() * .0625f * i, 0, r.nextFloat() * .0625f * i);
|
||||||
ms.scale(.5f, .5f, .5f);
|
ms.scale(.5f, .5f, .5f);
|
||||||
if (!blockItem && !renderUpright)
|
if (!blockItem && !renderUpright)
|
||||||
msr.rotateX(90);
|
msr.rotateXDegrees(90);
|
||||||
itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, light, overlay, ms, buffer, be.getLevel(), 0);
|
itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, light, overlay, ms, buffer, be.getLevel(), 0);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
||||||
if (!renderUpright) {
|
if (!renderUpright) {
|
||||||
if (!blockItem)
|
if (!blockItem)
|
||||||
msr.rotateY(10);
|
msr.rotateYDegrees(10);
|
||||||
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
|
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
|
||||||
} else
|
} else
|
||||||
ms.translate(0, 0, -1 / 16f);
|
ms.translate(0, 0, -1 / 16f);
|
||||||
|
|
|
@ -84,8 +84,8 @@ public class SmartFluidPipeBlockEntity extends SmartBlockEntity {
|
||||||
public void rotate(BlockState state, PoseStack ms) {
|
public void rotate(BlockState state, PoseStack ms) {
|
||||||
AttachFace face = state.getValue(SmartFluidPipeBlock.FACE);
|
AttachFace face = state.getValue(SmartFluidPipeBlock.FACE);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(angleY(state))
|
.rotateYDegrees(angleY(state))
|
||||||
.rotateX(face == AttachFace.CEILING ? -45 : 45);
|
.rotateXDegrees(face == AttachFace.CEILING ? -45 : 45);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected float angleY(BlockState state) {
|
protected float angleY(BlockState state) {
|
||||||
|
|
|
@ -42,9 +42,9 @@ public class FluidValveRenderer extends KineticBlockEntityRenderer<FluidValveBlo
|
||||||
pointerRotationOffset = 90;
|
pointerRotationOffset = 90;
|
||||||
|
|
||||||
pointer.center()
|
pointer.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
.rotateXDegrees(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)
|
||||||
.rotateY(pointerRotationOffset + pointerRotation)
|
.rotateYDegrees(pointerRotationOffset + pointerRotation)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.light(light)
|
.light(light)
|
||||||
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
|
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
|
||||||
|
|
|
@ -64,9 +64,9 @@ public class FluidValveVisual extends ShaftVisual<FluidValveBlockEntity> impleme
|
||||||
pointer.loadIdentity()
|
pointer.loadIdentity()
|
||||||
.translate(getVisualPosition())
|
.translate(getVisualPosition())
|
||||||
.center()
|
.center()
|
||||||
.rotateY((float) yRot)
|
.rotateYDegrees((float) yRot)
|
||||||
.rotateX((float) xRot)
|
.rotateXDegrees((float) xRot)
|
||||||
.rotateY(pointerRotationOffset + pointerRotation)
|
.rotateYDegrees(pointerRotationOffset + pointerRotation)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.setChanged();
|
.setChanged();
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,17 +91,17 @@ public class FluidTankRenderer extends SafeBlockEntityRenderer<FluidTankBlockEnt
|
||||||
for (Direction d : Iterate.horizontalDirections) {
|
for (Direction d : Iterate.horizontalDirections) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
CachedBufferer.partial(AllPartialModels.BOILER_GAUGE, blockState)
|
CachedBufferer.partial(AllPartialModels.BOILER_GAUGE, blockState)
|
||||||
.rotateY(d.toYRot())
|
.rotateYDegrees(d.toYRot())
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(be.width / 2f - 6 / 16f, 0, 0)
|
.translate(be.width / 2f - 6 / 16f, 0, 0)
|
||||||
.light(light)
|
.light(light)
|
||||||
.renderInto(ms, vb);
|
.renderInto(ms, vb);
|
||||||
CachedBufferer.partial(AllPartialModels.BOILER_GAUGE_DIAL, blockState)
|
CachedBufferer.partial(AllPartialModels.BOILER_GAUGE_DIAL, blockState)
|
||||||
.rotateY(d.toYRot())
|
.rotateYDegrees(d.toYRot())
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(be.width / 2f - 6 / 16f, 0, 0)
|
.translate(be.width / 2f - 6 / 16f, 0, 0)
|
||||||
.translate(0, dialPivot, dialPivot)
|
.translate(0, dialPivot, dialPivot)
|
||||||
.rotateX(-90 * progress)
|
.rotateXDegrees(-90 * progress)
|
||||||
.translate(0, -dialPivot, -dialPivot)
|
.translate(0, -dialPivot, -dialPivot)
|
||||||
.light(light)
|
.light(light)
|
||||||
.renderInto(ms, vb);
|
.renderInto(ms, vb);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.kinetics.belt;
|
package com.simibubi.create.content.kinetics.belt;
|
||||||
|
|
||||||
import org.joml.Quaternionf;
|
import org.joml.Quaternionf;
|
||||||
|
import org.joml.Quaternionfc;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.InstanceHandle;
|
import com.jozufozu.flywheel.api.instance.InstanceHandle;
|
||||||
import com.jozufozu.flywheel.api.instance.InstanceType;
|
import com.jozufozu.flywheel.api.instance.InstanceType;
|
||||||
|
@ -10,32 +11,25 @@ import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
|
|
||||||
public class BeltInstance extends KineticInstance {
|
public class BeltInstance extends KineticInstance {
|
||||||
public float qX;
|
public final Quaternionf rotation = new Quaternionf();
|
||||||
public float qY;
|
|
||||||
public float qZ;
|
|
||||||
public float qW;
|
|
||||||
public float sourceU;
|
public float sourceU;
|
||||||
public float sourceV;
|
public float sourceV;
|
||||||
public float minU;
|
public float minU;
|
||||||
public float minV;
|
public float minV;
|
||||||
public float maxU;
|
public float maxU;
|
||||||
public float maxV;
|
public float maxV;
|
||||||
public byte scrollMult;
|
public float scrollMult;
|
||||||
|
|
||||||
public BeltInstance(InstanceType<? extends KineticInstance> type, InstanceHandle handle) {
|
public BeltInstance(InstanceType<? extends KineticInstance> type, InstanceHandle handle) {
|
||||||
super(type, handle);
|
super(type, handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BeltInstance setRotation(Quaternionf q) {
|
public BeltInstance setRotation(Quaternionfc q) {
|
||||||
this.qX = q.x();
|
this.rotation.set(q);
|
||||||
this.qY = q.y();
|
|
||||||
this.qZ = q.z();
|
|
||||||
this.qW = q.w();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BeltInstance setScrollTexture(SpriteShiftEntry spriteShift) {
|
public BeltInstance setScrollTexture(SpriteShiftEntry spriteShift) {
|
||||||
// FIXME: these are null for some reason
|
|
||||||
TextureAtlasSprite source = spriteShift.getOriginal();
|
TextureAtlasSprite source = spriteShift.getOriginal();
|
||||||
TextureAtlasSprite target = spriteShift.getTarget();
|
TextureAtlasSprite target = spriteShift.getTarget();
|
||||||
|
|
||||||
|
@ -50,7 +44,7 @@ public class BeltInstance extends KineticInstance {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BeltInstance setScrollMult(float scrollMult) {
|
public BeltInstance setScrollMult(float scrollMult) {
|
||||||
this.scrollMult = (byte) (scrollMult * 127);
|
this.scrollMult = scrollMult;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,9 +77,9 @@ public class BeltRenderer extends SafeBlockEntityRenderer<BeltBlockEntity> {
|
||||||
float renderTick = AnimationTickHolder.getRenderTime(be.getLevel());
|
float renderTick = AnimationTickHolder.getRenderTime(be.getLevel());
|
||||||
|
|
||||||
msr.center()
|
msr.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing) + (upward ? 180 : 0) + (sideways ? 270 : 0))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing) + (upward ? 180 : 0) + (sideways ? 270 : 0))
|
||||||
.rotateZ(sideways ? 90 : 0)
|
.rotateZDegrees(sideways ? 90 : 0)
|
||||||
.rotateX(!diagonal && beltSlope != BeltSlope.HORIZONTAL ? 90 : 0)
|
.rotateXDegrees(!diagonal && beltSlope != BeltSlope.HORIZONTAL ? 90 : 0)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
if (downward || beltSlope == BeltSlope.VERTICAL && axisDirection == AxisDirection.POSITIVE) {
|
if (downward || beltSlope == BeltSlope.VERTICAL && axisDirection == AxisDirection.POSITIVE) {
|
||||||
|
@ -132,9 +132,9 @@ public class BeltRenderer extends SafeBlockEntityRenderer<BeltBlockEntity> {
|
||||||
PoseStack stack = new PoseStack();
|
PoseStack stack = new PoseStack();
|
||||||
var stacker = TransformStack.of(stack);
|
var stacker = TransformStack.of(stack);
|
||||||
stacker.center();
|
stacker.center();
|
||||||
if (dir.getAxis() == Direction.Axis.X) stacker.rotateY(90);
|
if (dir.getAxis() == Direction.Axis.X) stacker.rotateYDegrees(90);
|
||||||
if (dir.getAxis() == Direction.Axis.Y) stacker.rotateX(90);
|
if (dir.getAxis() == Direction.Axis.Y) stacker.rotateXDegrees(90);
|
||||||
stacker.rotateX(90);
|
stacker.rotateXDegrees(90);
|
||||||
stacker.uncenter();
|
stacker.uncenter();
|
||||||
return stack;
|
return stack;
|
||||||
};
|
};
|
||||||
|
|
|
@ -132,9 +132,9 @@ public class BeltVisual extends KineticBlockEntityVisual<BeltBlockEntity> {
|
||||||
var model = Models.partial(AllPartialModels.BELT_PULLEY, dir.getAxis(), (axis11, modelTransform1) -> {
|
var model = Models.partial(AllPartialModels.BELT_PULLEY, dir.getAxis(), (axis11, modelTransform1) -> {
|
||||||
var msr = TransformStack.of(modelTransform1);
|
var msr = TransformStack.of(modelTransform1);
|
||||||
msr.center();
|
msr.center();
|
||||||
if (axis11 == Direction.Axis.X) msr.rotateY(90);
|
if (axis11 == Direction.Axis.X) msr.rotateYDegrees(90);
|
||||||
if (axis11 == Direction.Axis.Y) msr.rotateX(90);
|
if (axis11 == Direction.Axis.Y) msr.rotateXDegrees(90);
|
||||||
msr.rotateX(90);
|
msr.rotateXDegrees(90);
|
||||||
msr.uncenter();
|
msr.uncenter();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ public class MechanicalCrafterRenderer extends SafeBlockEntityRenderer<Mechanica
|
||||||
}
|
}
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(180)
|
.rotateYDegrees(180)
|
||||||
.translate(0, 0, (x + y * 3 + offset * 9) / 1024f );
|
.translate(0, 0, (x + y * 3 + offset * 9) / 1024f );
|
||||||
Minecraft.getInstance()
|
Minecraft.getInstance()
|
||||||
.getItemRenderer()
|
.getItemRenderer()
|
||||||
|
|
|
@ -28,8 +28,8 @@ public class ShaftlessCogwheelVisual extends SingleRotatingVisual<KineticBlockEn
|
||||||
var stacker = TransformStack.of(stack)
|
var stacker = TransformStack.of(stack)
|
||||||
.center();
|
.center();
|
||||||
|
|
||||||
if (facing.getAxis() == Direction.Axis.X) stacker.rotateZ(90);
|
if (facing.getAxis() == Direction.Axis.X) stacker.rotateZDegrees(90);
|
||||||
else if (facing.getAxis() == Direction.Axis.Z) stacker.rotateX(90);
|
else if (facing.getAxis() == Direction.Axis.Z) stacker.rotateXDegrees(90);
|
||||||
|
|
||||||
stacker.uncenter();
|
stacker.uncenter();
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,11 +44,11 @@ public class DeployerFilterSlot extends ValueBoxTransform.Sided {
|
||||||
|
|
||||||
if (facing.getAxis() == Axis.Y)
|
if (facing.getAxis() == Axis.Y)
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(180 + AngleHelper.horizontalAngle(state.getValue(DeployerBlock.FACING)));
|
.rotateYDegrees(180 + AngleHelper.horizontalAngle(state.getValue(DeployerBlock.FACING)));
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(xRot);
|
.rotateXDegrees(xRot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -198,8 +198,8 @@ public class DeployerRenderer extends SafeBlockEntityRenderer<DeployerBlockEntit
|
||||||
|
|
||||||
TransformStack.of(m)
|
TransformStack.of(m)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(axis == Direction.Axis.Z ? 90 : 0)
|
.rotateYDegrees(axis == Direction.Axis.Z ? 90 : 0)
|
||||||
.rotateZ(axis.isHorizontal() ? 90 : 0)
|
.rotateZDegrees(axis.isHorizontal() ? 90 : 0)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
shaft.transform(m);
|
shaft.transform(m);
|
||||||
shaft.rotateCentered(angle, Direction.get(AxisDirection.POSITIVE, Direction.Axis.Y));
|
shaft.rotateCentered(angle, Direction.get(AxisDirection.POSITIVE, Direction.Axis.Y));
|
||||||
|
|
|
@ -44,9 +44,9 @@ public class DrillRenderer extends KineticBlockEntityRenderer<DrillBlockEntity>
|
||||||
superBuffer
|
superBuffer
|
||||||
.transform(matrices.getModel())
|
.transform(matrices.getModel())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(AngleHelper.verticalAngle(facing))
|
.rotateXDegrees(AngleHelper.verticalAngle(facing))
|
||||||
.rotateZ(angle)
|
.rotateZDegrees(angle)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.light(matrices.getWorld(),
|
.light(matrices.getWorld(),
|
||||||
ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld))
|
ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld))
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class GearboxVisual extends KineticBlockEntityVisual<GearboxBlockEntity>
|
||||||
RotatingInstance key = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF), RenderStage.AFTER_BLOCK_ENTITIES)
|
RotatingInstance key = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF), RenderStage.AFTER_BLOCK_ENTITIES)
|
||||||
.createInstance();
|
.createInstance();
|
||||||
|
|
||||||
key.setRotationAxis(Direction.get(Direction.AxisDirection.POSITIVE, axis).step())
|
key.setRotationAxis(axis)
|
||||||
.setRotationalSpeed(getSpeed(direction))
|
.setRotationalSpeed(getSpeed(direction))
|
||||||
.setRotationOffset(getRotationOffset(axis)).setColor(blockEntity)
|
.setRotationOffset(getRotationOffset(axis)).setColor(blockEntity)
|
||||||
.setPosition(getVisualPosition())
|
.setPosition(getVisualPosition())
|
||||||
|
|
|
@ -82,7 +82,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
|
||||||
msr.center();
|
msr.center();
|
||||||
|
|
||||||
if (inverted)
|
if (inverted)
|
||||||
msr.rotateX(180);
|
msr.rotateXDegrees(180);
|
||||||
|
|
||||||
if (usingFlywheel)
|
if (usingFlywheel)
|
||||||
doItemTransforms(msr, baseAngle, lowerArmAngle, upperArmAngle, headAngle);
|
doItemTransforms(msr, baseAngle, lowerArmAngle, upperArmAngle, headAngle);
|
||||||
|
@ -93,7 +93,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
|
||||||
if (hasItem) {
|
if (hasItem) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
float itemScale = isBlockItem ? .5f : .625f;
|
float itemScale = isBlockItem ? .5f : .625f;
|
||||||
msr.rotateX(90);
|
msr.rotateXDegrees(90);
|
||||||
msLocal.translate(0, isBlockItem ? -9 / 16f : -10 / 16f, 0);
|
msLocal.translate(0, isBlockItem ? -9 / 16f : -10 / 16f, 0);
|
||||||
msLocal.scale(itemScale, itemScale, itemScale);
|
msLocal.scale(itemScale, itemScale, itemScale);
|
||||||
|
|
||||||
|
@ -143,13 +143,13 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
|
||||||
transformHead(msr, headAngle);
|
transformHead(msr, headAngle);
|
||||||
|
|
||||||
if (inverted)
|
if (inverted)
|
||||||
msr.rotateZ(180);
|
msr.rotateZDegrees(180);
|
||||||
|
|
||||||
claw.transform(msLocal)
|
claw.transform(msLocal)
|
||||||
.renderInto(ms, builder);
|
.renderInto(ms, builder);
|
||||||
|
|
||||||
if (inverted)
|
if (inverted)
|
||||||
msr.rotateZ(180);
|
msr.rotateZDegrees(180);
|
||||||
|
|
||||||
for (int flip : Iterate.positiveAndNegative) {
|
for (int flip : Iterate.positiveAndNegative) {
|
||||||
msLocal.pushPose();
|
msLocal.pushPose();
|
||||||
|
@ -175,22 +175,22 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
|
||||||
|
|
||||||
public static void transformHead(TransformStack msr, float headAngle) {
|
public static void transformHead(TransformStack msr, float headAngle) {
|
||||||
msr.translate(0, 0, -15 / 16d);
|
msr.translate(0, 0, -15 / 16d);
|
||||||
msr.rotateX(headAngle - 45f);
|
msr.rotateXDegrees(headAngle - 45f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void transformUpperArm(TransformStack msr, float upperArmAngle) {
|
public static void transformUpperArm(TransformStack msr, float upperArmAngle) {
|
||||||
msr.translate(0, 0, -14 / 16d);
|
msr.translate(0, 0, -14 / 16d);
|
||||||
msr.rotateX(upperArmAngle - 90);
|
msr.rotateXDegrees(upperArmAngle - 90);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void transformLowerArm(TransformStack msr, float lowerArmAngle) {
|
public static void transformLowerArm(TransformStack msr, float lowerArmAngle) {
|
||||||
msr.translate(0, 2 / 16d, 0);
|
msr.translate(0, 2 / 16d, 0);
|
||||||
msr.rotateX(lowerArmAngle + 135);
|
msr.rotateXDegrees(lowerArmAngle + 135);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void transformBase(TransformStack msr, float baseAngle) {
|
public static void transformBase(TransformStack msr, float baseAngle) {
|
||||||
msr.translate(0, 4 / 16d, 0);
|
msr.translate(0, 4 / 16d, 0);
|
||||||
msr.rotateY(baseAngle);
|
msr.rotateYDegrees(baseAngle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -130,7 +130,7 @@ public class ArmVisual extends SingleRotatingVisual<ArmBlockEntity> implements D
|
||||||
msr.center();
|
msr.center();
|
||||||
|
|
||||||
if (ceiling)
|
if (ceiling)
|
||||||
msr.rotateX(180);
|
msr.rotateXDegrees(180);
|
||||||
|
|
||||||
ArmRenderer.transformBase(msr, baseAngle);
|
ArmRenderer.transformBase(msr, baseAngle);
|
||||||
base.setTransform(msLocal)
|
base.setTransform(msLocal)
|
||||||
|
@ -149,13 +149,13 @@ public class ArmVisual extends SingleRotatingVisual<ArmBlockEntity> implements D
|
||||||
ArmRenderer.transformHead(msr, headAngle);
|
ArmRenderer.transformHead(msr, headAngle);
|
||||||
|
|
||||||
if (ceiling && blockEntity.goggles)
|
if (ceiling && blockEntity.goggles)
|
||||||
msr.rotateZ(180);
|
msr.rotateZDegrees(180);
|
||||||
|
|
||||||
claw.setTransform(msLocal)
|
claw.setTransform(msLocal)
|
||||||
.setChanged();
|
.setChanged();
|
||||||
|
|
||||||
if (ceiling && blockEntity.goggles)
|
if (ceiling && blockEntity.goggles)
|
||||||
msr.rotateZ(180);
|
msr.rotateZDegrees(180);
|
||||||
|
|
||||||
ItemStack item = blockEntity.heldItem;
|
ItemStack item = blockEntity.heldItem;
|
||||||
ItemRenderer itemRenderer = Minecraft.getInstance()
|
ItemRenderer itemRenderer = Minecraft.getInstance()
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class CreativeMotorBlockEntity extends GeneratingKineticBlockEntity {
|
||||||
if (getSide() != Direction.UP)
|
if (getSide() != Direction.UP)
|
||||||
return;
|
return;
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateZ(-AngleHelper.horizontalAngle(facing) + 180);
|
.rotateZDegrees(-AngleHelper.horizontalAngle(facing) + 180);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -26,8 +26,8 @@ public class SawFilterSlot extends ValueBoxTransform {
|
||||||
int yRot = (state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 90 : 0)
|
int yRot = (state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 90 : 0)
|
||||||
+ (state.getValue(SawBlock.FLIPPED) ? 0 : 180);
|
+ (state.getValue(SawBlock.FLIPPED) ? 0 : 180);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(90);
|
.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,11 +190,11 @@ public class SawRenderer extends SafeBlockEntityRenderer<SawBlockEntity> {
|
||||||
|
|
||||||
superBuffer.transform(matrices.getModel())
|
superBuffer.transform(matrices.getModel())
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(AngleHelper.verticalAngle(facing));
|
.rotateXDegrees(AngleHelper.verticalAngle(facing));
|
||||||
|
|
||||||
if (!SawBlock.isHorizontal(state)) {
|
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()
|
superBuffer.uncenter()
|
||||||
|
|
|
@ -74,9 +74,9 @@ public class SteamEngineValueBox extends ValueBoxTransform.Sided {
|
||||||
|
|
||||||
float yRot = AngleHelper.horizontalAngle(facing) + (facing == Direction.DOWN ? 180 : 0);
|
float yRot = AngleHelper.horizontalAngle(facing) + (facing == Direction.DOWN ? 180 : 0);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(facing == Direction.DOWN ? -90 : 90)
|
.rotateXDegrees(facing == Direction.DOWN ? -90 : 90)
|
||||||
.rotateY(roll);
|
.rotateYDegrees(roll);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -43,8 +43,8 @@ public class ChuteRenderer extends SafeBlockEntityRenderer<ChuteBlockEntity> {
|
||||||
float itemPosition = be.itemPosition.getValue(partialTicks);
|
float itemPosition = be.itemPosition.getValue(partialTicks);
|
||||||
ms.translate(0, -.5 + itemPosition, 0);
|
ms.translate(0, -.5 + itemPosition, 0);
|
||||||
ms.scale(itemScale, itemScale, itemScale);
|
ms.scale(itemScale, itemScale, itemScale);
|
||||||
msr.rotateX(itemPosition * 180);
|
msr.rotateXDegrees(itemPosition * 180);
|
||||||
msr.rotateY(itemPosition * 180);
|
msr.rotateYDegrees(itemPosition * 180);
|
||||||
itemRenderer.renderStatic(be.item, ItemDisplayContext.FIXED, light, overlay, ms, buffer, be.getLevel(), 0);
|
itemRenderer.renderStatic(be.item, ItemDisplayContext.FIXED, light, overlay, ms, buffer, be.getLevel(), 0);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class CreativeCrateBlockEntity extends CrateBlockEntity {
|
||||||
@Override
|
@Override
|
||||||
public void rotate(BlockState state, PoseStack ms) {
|
public void rotate(BlockState state, PoseStack ms) {
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(90);
|
.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -85,10 +85,10 @@ public class DepotRenderer extends SafeBlockEntityRenderer<DepotBlockEntity> {
|
||||||
msr.nudge(i);
|
msr.nudge(i);
|
||||||
|
|
||||||
boolean renderUpright = BeltHelper.isItemUpright(stack);
|
boolean renderUpright = BeltHelper.isItemUpright(stack);
|
||||||
msr.rotateY(360 / 8f * i);
|
msr.rotateYDegrees(360 / 8f * i);
|
||||||
ms.translate(.35f, 0, 0);
|
ms.translate(.35f, 0, 0);
|
||||||
if (renderUpright)
|
if (renderUpright)
|
||||||
msr.rotateY(-(360 / 8f * i));
|
msr.rotateYDegrees(-(360 / 8f * i));
|
||||||
Random r = new Random(i + 1);
|
Random r = new Random(i + 1);
|
||||||
int angle = (int) (360 * r.nextFloat());
|
int angle = (int) (360 * r.nextFloat());
|
||||||
renderItem(be.getLevel(), ms, buffer, light, overlay, stack, renderUpright ? angle + 90 : angle, r, itemPosition);
|
renderItem(be.getLevel(), ms, buffer, light, overlay, stack, renderUpright ? angle + 90 : angle, r, itemPosition);
|
||||||
|
@ -109,7 +109,7 @@ public class DepotRenderer extends SafeBlockEntityRenderer<DepotBlockEntity> {
|
||||||
.isGui3d();
|
.isGui3d();
|
||||||
|
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
msr.rotateY(angle);
|
msr.rotateYDegrees(angle);
|
||||||
|
|
||||||
if (renderUpright) {
|
if (renderUpright) {
|
||||||
Entity renderViewEntity = Minecraft.getInstance().cameraEntity;
|
Entity renderViewEntity = Minecraft.getInstance().cameraEntity;
|
||||||
|
@ -130,14 +130,14 @@ public class DepotRenderer extends SafeBlockEntityRenderer<DepotBlockEntity> {
|
||||||
ms.scale(.5f, .5f, .5f);
|
ms.scale(.5f, .5f, .5f);
|
||||||
if (!blockItem && !renderUpright) {
|
if (!blockItem && !renderUpright) {
|
||||||
ms.translate(0, -3 / 16f, 0);
|
ms.translate(0, -3 / 16f, 0);
|
||||||
msr.rotateX(90);
|
msr.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, light, overlay, ms, buffer, level, 0);
|
itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, light, overlay, ms, buffer, level, 0);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
||||||
if (!renderUpright) {
|
if (!renderUpright) {
|
||||||
if (!blockItem)
|
if (!blockItem)
|
||||||
msr.rotateY(10);
|
msr.rotateYDegrees(10);
|
||||||
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
|
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
|
||||||
} else
|
} else
|
||||||
ms.translate(0, 0, -1 / 16f);
|
ms.translate(0, 0, -1 / 16f);
|
||||||
|
|
|
@ -631,8 +631,8 @@ public class EjectorBlockEntity extends KineticBlockEntity {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(angle(state))
|
.rotateYDegrees(angle(state))
|
||||||
.rotateX(90);
|
.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected float angle(BlockState state) {
|
protected float angle(BlockState state) {
|
||||||
|
|
|
@ -66,8 +66,8 @@ public class EjectorRenderer extends ShaftRenderer<EjectorBlockEntity> {
|
||||||
msr.translate(launchedItemLocation.subtract(Vec3.atLowerCornerOf(be.getBlockPos())));
|
msr.translate(launchedItemLocation.subtract(Vec3.atLowerCornerOf(be.getBlockPos())));
|
||||||
Vec3 itemRotOffset = VecHelper.voxelSpace(0, 3, 0);
|
Vec3 itemRotOffset = VecHelper.voxelSpace(0, 3, 0);
|
||||||
msr.translate(itemRotOffset);
|
msr.translate(itemRotOffset);
|
||||||
msr.rotateY(AngleHelper.horizontalAngle(be.getFacing()));
|
msr.rotateYDegrees(AngleHelper.horizontalAngle(be.getFacing()));
|
||||||
msr.rotateX(time * 40);
|
msr.rotateXDegrees(time * 40);
|
||||||
msr.translateBack(itemRotOffset);
|
msr.translateBack(itemRotOffset);
|
||||||
Minecraft.getInstance()
|
Minecraft.getInstance()
|
||||||
.getItemRenderer()
|
.getItemRenderer()
|
||||||
|
@ -95,11 +95,11 @@ public class EjectorRenderer extends ShaftRenderer<EjectorBlockEntity> {
|
||||||
|
|
||||||
static <T extends Translate<T> & Rotate<T>> void applyLidAngle(KineticBlockEntity be, Vec3 rotationOffset, float angle, T tr) {
|
static <T extends Translate<T> & Rotate<T>> void applyLidAngle(KineticBlockEntity be, Vec3 rotationOffset, float angle, T tr) {
|
||||||
tr.center()
|
tr.center()
|
||||||
.rotateY(180 + AngleHelper.horizontalAngle(be.getBlockState()
|
.rotateYDegrees(180 + AngleHelper.horizontalAngle(be.getBlockState()
|
||||||
.getValue(EjectorBlock.HORIZONTAL_FACING)))
|
.getValue(EjectorBlock.HORIZONTAL_FACING)))
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(rotationOffset)
|
.translate(rotationOffset)
|
||||||
.rotateX(-angle)
|
.rotateXDegrees(-angle)
|
||||||
.translateBack(rotationOffset);
|
.translateBack(rotationOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,22 +60,22 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided {
|
||||||
super.rotate(state, ms);
|
super.rotate(state, ms);
|
||||||
if (shape == Shape.PULLING || shape == Shape.PUSHING)
|
if (shape == Shape.PULLING || shape == Shape.PUSHING)
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(-22.5f);
|
.rotateXDegrees(-22.5f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.getBlock() instanceof FunnelBlock) {
|
if (state.getBlock() instanceof FunnelBlock) {
|
||||||
super.rotate(state, ms);
|
super.rotate(state, ms);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(-22.5f);
|
.rotateXDegrees(-22.5f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float yRot = AngleHelper.horizontalAngle(AbstractFunnelBlock.getFunnelFacing(state))
|
float yRot = AngleHelper.horizontalAngle(AbstractFunnelBlock.getFunnelFacing(state))
|
||||||
+ (facing == Direction.DOWN ? 180 : 0);
|
+ (facing == Direction.DOWN ? 180 : 0);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(facing == Direction.DOWN ? -90 : 90);
|
.rotateXDegrees(facing == Direction.DOWN ? -90 : 90);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class FunnelRenderer extends SmartBlockEntityRenderer<FunnelBlockEntity>
|
||||||
flapAngle *= .5f;
|
flapAngle *= .5f;
|
||||||
|
|
||||||
msr.translate(pivot)
|
msr.translate(pivot)
|
||||||
.rotateX(flapAngle)
|
.rotateXDegrees(flapAngle)
|
||||||
.translateBack(pivot);
|
.translateBack(pivot);
|
||||||
|
|
||||||
flapBuffer.light(light)
|
flapBuffer.light(light)
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class BeltTunnelRenderer extends SmartBlockEntityRenderer<BeltTunnelBlock
|
||||||
|
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
msr.center()
|
msr.center()
|
||||||
.rotateY(horizontalAngle)
|
.rotateYDegrees(horizontalAngle)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
ms.translate(0.075f / 16f, 0, 0);
|
ms.translate(0.075f / 16f, 0, 0);
|
||||||
|
@ -64,7 +64,7 @@ public class BeltTunnelRenderer extends SmartBlockEntityRenderer<BeltTunnelBlock
|
||||||
flapAngle *= .5f;
|
flapAngle *= .5f;
|
||||||
|
|
||||||
msr.translate(pivot)
|
msr.translate(pivot)
|
||||||
.rotateX(flapAngle)
|
.rotateXDegrees(flapAngle)
|
||||||
.translateBack(pivot);
|
.translateBack(pivot);
|
||||||
flapBuffer.light(light)
|
flapBuffer.light(light)
|
||||||
.renderInto(ms, vb);
|
.renderInto(ms, vb);
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class BasinRenderer extends SmartBlockEntityRenderer<BasinBlockEntity> {
|
||||||
BlockPos pos = basin.getBlockPos();
|
BlockPos pos = basin.getBlockPos();
|
||||||
ms.translate(.5, .2f, .5);
|
ms.translate(.5, .2f, .5);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(basin.ingredientRotation.getValue(partialTicks));
|
.rotateYDegrees(basin.ingredientRotation.getValue(partialTicks));
|
||||||
|
|
||||||
RandomSource r = RandomSource.create(pos.hashCode());
|
RandomSource r = RandomSource.create(pos.hashCode());
|
||||||
Vec3 baseVector = new Vec3(.125, level, 0);
|
Vec3 baseVector = new Vec3(.125, level, 0);
|
||||||
|
@ -80,8 +80,8 @@ public class BasinRenderer extends SmartBlockEntityRenderer<BasinBlockEntity> {
|
||||||
Vec3 itemPosition = VecHelper.rotate(baseVector, anglePartition * itemCount, Axis.Y);
|
Vec3 itemPosition = VecHelper.rotate(baseVector, anglePartition * itemCount, Axis.Y);
|
||||||
ms.translate(itemPosition.x, itemPosition.y, itemPosition.z);
|
ms.translate(itemPosition.x, itemPosition.y, itemPosition.z);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(anglePartition * itemCount + 35)
|
.rotateYDegrees(anglePartition * itemCount + 35)
|
||||||
.rotateX(65);
|
.rotateXDegrees(65);
|
||||||
|
|
||||||
for (int i = 0; i <= stack.getCount() / 8; i++) {
|
for (int i = 0; i <= stack.getCount() / 8; i++) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
@ -125,8 +125,8 @@ public class BasinRenderer extends SmartBlockEntityRenderer<BasinBlockEntity> {
|
||||||
.translate(outVec)
|
.translate(outVec)
|
||||||
.translate(new Vec3(0, Math.max(-.55f, -(progress * progress * 2)), 0))
|
.translate(new Vec3(0, Math.max(-.55f, -(progress * progress * 2)), 0))
|
||||||
.translate(directionVec.scale(progress * .5f))
|
.translate(directionVec.scale(progress * .5f))
|
||||||
.rotateY(AngleHelper.horizontalAngle(direction))
|
.rotateYDegrees(AngleHelper.horizontalAngle(direction))
|
||||||
.rotateX(progress * 180);
|
.rotateXDegrees(progress * 180);
|
||||||
renderItem(ms, buffer, light, overlay, intAttached.getValue());
|
renderItem(ms, buffer, light, overlay, intAttached.getValue());
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class FilteredDetectorFilterSlot extends ValueBoxTransform.Sided {
|
||||||
if (getSide() != Direction.UP)
|
if (getSide() != Direction.UP)
|
||||||
return;
|
return;
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateZ(-AngleHelper.horizontalAngle(facing) + 180);
|
.rotateZDegrees(-AngleHelper.horizontalAngle(facing) + 180);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -21,8 +21,8 @@ public class BrassDiodeScrollSlot extends ValueBoxTransform {
|
||||||
public void rotate(BlockState state, PoseStack ms) {
|
public void rotate(BlockState state, PoseStack ms) {
|
||||||
float yRot = AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.HORIZONTAL_FACING)) + 180;
|
float yRot = AngleHelper.horizontalAngle(state.getValue(BlockStateProperties.HORIZONTAL_FACING)) + 180;
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(90);
|
.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -45,8 +45,8 @@ public class DisplayLinkRenderer extends SafeBlockEntityRenderer<DisplayLinkBloc
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
|
||||||
msr.center()
|
msr.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(face))
|
.rotateYDegrees(AngleHelper.horizontalAngle(face))
|
||||||
.rotateX(-AngleHelper.verticalAngle(face) - 90)
|
.rotateXDegrees(-AngleHelper.verticalAngle(face) - 90)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
CachedBufferer.partial(AllPartialModels.DISPLAY_LINK_TUBE, blockState)
|
CachedBufferer.partial(AllPartialModels.DISPLAY_LINK_TUBE, blockState)
|
||||||
|
|
|
@ -278,8 +278,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen {
|
||||||
.pushPose()
|
.pushPose()
|
||||||
.translate(x + background.width + 4, y + background.height + 4, 100)
|
.translate(x + background.width + 4, y + background.height + 4, 100)
|
||||||
.scale(40)
|
.scale(40)
|
||||||
.rotateX(-22)
|
.rotateXDegrees(-22)
|
||||||
.rotateY(63);
|
.rotateYDegrees(63);
|
||||||
GuiGameElement.of(blockEntity.getBlockState()
|
GuiGameElement.of(blockEntity.getBlockState()
|
||||||
.setValue(DisplayLinkBlock.FACING, Direction.UP))
|
.setValue(DisplayLinkBlock.FACING, Direction.UP))
|
||||||
.render(graphics);
|
.render(graphics);
|
||||||
|
|
|
@ -46,8 +46,8 @@ public class RedstoneLinkFrequencySlot extends ValueBoxTransform.Dual {
|
||||||
.isVertical() ? 0 : AngleHelper.horizontalAngle(facing) + 180;
|
.isVertical() ? 0 : AngleHelper.horizontalAngle(facing) + 180;
|
||||||
float xRot = facing == Direction.UP ? 90 : facing == Direction.DOWN ? 270 : 0;
|
float xRot = facing == Direction.UP ? 90 : facing == Direction.DOWN ? 270 : 0;
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(xRot);
|
.rotateXDegrees(xRot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -107,8 +107,8 @@ public class LinkedControllerItemRenderer extends CustomRenderedItemModelRendere
|
||||||
float equip = equipProgress.getValue(pt);
|
float equip = equipProgress.getValue(pt);
|
||||||
int handModifier = transformType == ItemDisplayContext.FIRST_PERSON_LEFT_HAND ? -1 : 1;
|
int handModifier = transformType == ItemDisplayContext.FIRST_PERSON_LEFT_HAND ? -1 : 1;
|
||||||
msr.translate(0, equip / 4, equip / 4 * handModifier);
|
msr.translate(0, equip / 4, equip / 4 * handModifier);
|
||||||
msr.rotateY(equip * -30 * handModifier);
|
msr.rotateYDegrees(equip * -30 * handModifier);
|
||||||
msr.rotateZ(equip * -30);
|
msr.rotateZDegrees(equip * -30);
|
||||||
active = true;
|
active = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,8 @@ public class NixieTubeRenderer extends SafeBlockEntityRenderer<NixieTubeBlockEnt
|
||||||
|
|
||||||
var msr = TransformStack.of(ms);
|
var msr = TransformStack.of(ms);
|
||||||
msr.center()
|
msr.center()
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateZ(xRot)
|
.rotateZDegrees(xRot)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
if (be.signalState != null) {
|
if (be.signalState != null) {
|
||||||
|
@ -131,7 +131,7 @@ public class NixieTubeRenderer extends SafeBlockEntityRenderer<NixieTubeBlockEnt
|
||||||
|
|
||||||
if (facing == Direction.DOWN)
|
if (facing == Direction.DOWN)
|
||||||
msr.center()
|
msr.center()
|
||||||
.rotateZ(180)
|
.rotateZDegrees(180)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
|
|
||||||
boolean invertTubes =
|
boolean invertTubes =
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class SchematicTransformation {
|
||||||
ms.translate(xOrigin, 0, zOrigin);
|
ms.translate(xOrigin, 0, zOrigin);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.translate(rotationOffset)
|
.translate(rotationOffset)
|
||||||
.rotateY(rot)
|
.rotateYDegrees(rot)
|
||||||
.translateBack(rotationOffset);
|
.translateBack(rotationOffset);
|
||||||
ms.scale(abs(fb), 1, abs(lr));
|
ms.scale(abs(fb), 1, abs(lr));
|
||||||
ms.translate(-xOrigin, 0, -zOrigin);
|
ms.translate(-xOrigin, 0, -zOrigin);
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class DeployTool extends PlacementToolBase {
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.translate(origin)
|
.translate(origin)
|
||||||
.translate(rotationOffset)
|
.translate(rotationOffset)
|
||||||
.rotateY(transformation.getCurrentRotation())
|
.rotateYDegrees(transformation.getCurrentRotation())
|
||||||
.translateBack(rotationOffset)
|
.translateBack(rotationOffset)
|
||||||
.translateBack(origin);
|
.translateBack(origin);
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class StandardBogeyRenderer {
|
||||||
for (int i : Iterate.zeroAndOne) {
|
for (int i : Iterate.zeroAndOne) {
|
||||||
shafts[i].translate(-.5f, .25f, i * -1)
|
shafts[i].translate(-.5f, .25f, i * -1)
|
||||||
.center()
|
.center()
|
||||||
.rotateZ(wheelAngle)
|
.rotateZDegrees(wheelAngle)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.render(ms, light, vb);
|
.render(ms, light, vb);
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ public class StandardBogeyRenderer {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
wheels[(side + 1)/2]
|
wheels[(side + 1)/2]
|
||||||
.translate(0, 12 / 16f, side)
|
.translate(0, 12 / 16f, side)
|
||||||
.rotateX(wheelAngle)
|
.rotateXDegrees(wheelAngle)
|
||||||
.render(ms, light, vb);
|
.render(ms, light, vb);
|
||||||
if (!inInstancedContraption)
|
if (!inInstancedContraption)
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
@ -100,7 +100,7 @@ public class StandardBogeyRenderer {
|
||||||
secondaryShafts[i]
|
secondaryShafts[i]
|
||||||
.translate(-.5f, .25f, .5f + i * -2)
|
.translate(-.5f, .25f, .5f + i * -2)
|
||||||
.center()
|
.center()
|
||||||
.rotateX(wheelAngle)
|
.rotateXDegrees(wheelAngle)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.render(ms, light, vb);
|
.render(ms, light, vb);
|
||||||
}
|
}
|
||||||
|
@ -117,14 +117,14 @@ public class StandardBogeyRenderer {
|
||||||
|
|
||||||
getTransform(LARGE_BOGEY_WHEELS, ms, inInstancedContraption)
|
getTransform(LARGE_BOGEY_WHEELS, ms, inInstancedContraption)
|
||||||
.translate(0, 1, 0)
|
.translate(0, 1, 0)
|
||||||
.rotateX(wheelAngle)
|
.rotateXDegrees(wheelAngle)
|
||||||
.render(ms, light, vb);
|
.render(ms, light, vb);
|
||||||
|
|
||||||
getTransform(BOGEY_PIN, ms, inInstancedContraption)
|
getTransform(BOGEY_PIN, ms, inInstancedContraption)
|
||||||
.translate(0, 1, 0)
|
.translate(0, 1, 0)
|
||||||
.rotateX(wheelAngle)
|
.rotateXDegrees(wheelAngle)
|
||||||
.translate(0, 1 / 4f, 0)
|
.translate(0, 1 / 4f, 0)
|
||||||
.rotateX(-wheelAngle)
|
.rotateXDegrees(-wheelAngle)
|
||||||
.render(ms, light, vb);
|
.render(ms, light, vb);
|
||||||
|
|
||||||
if (!inInstancedContraption)
|
if (!inInstancedContraption)
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class FlapDisplayRenderer extends KineticBlockEntityRenderer<FlapDisplayB
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(be.getBlockState()
|
.rotateYDegrees(AngleHelper.horizontalAngle(be.getBlockState()
|
||||||
.getValue(FlapDisplayBlock.HORIZONTAL_FACING)))
|
.getValue(FlapDisplayBlock.HORIZONTAL_FACING)))
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.translate(0, 0, -3 / 16f);
|
.translate(0, 0, -3 / 16f);
|
||||||
|
|
|
@ -84,17 +84,17 @@ public class CarriageContraptionEntityRenderer extends ContraptionEntityRenderer
|
||||||
boolean selfUpsideDown = bogey.isUpsideDown();
|
boolean selfUpsideDown = bogey.isUpsideDown();
|
||||||
boolean leadingUpsideDown = bogey.carriage.leadingBogey().isUpsideDown();
|
boolean leadingUpsideDown = bogey.carriage.leadingBogey().isUpsideDown();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(viewYRot + 90)
|
.rotateYDegrees(viewYRot + 90)
|
||||||
.rotateX(-viewXRot)
|
.rotateXDegrees(-viewXRot)
|
||||||
.rotateY(180)
|
.rotateYDegrees(180)
|
||||||
.translate(0, 0, bogey.isLeading ? 0 : -bogeySpacing)
|
.translate(0, 0, bogey.isLeading ? 0 : -bogeySpacing)
|
||||||
.rotateY(-180)
|
.rotateYDegrees(-180)
|
||||||
.rotateX(viewXRot)
|
.rotateXDegrees(viewXRot)
|
||||||
.rotateY(-viewYRot - 90)
|
.rotateYDegrees(-viewYRot - 90)
|
||||||
.rotateY(bogey.yaw.getValue(partialTicks))
|
.rotateYDegrees(bogey.yaw.getValue(partialTicks))
|
||||||
.rotateX(bogey.pitch.getValue(partialTicks))
|
.rotateXDegrees(bogey.pitch.getValue(partialTicks))
|
||||||
.translate(0, .5f, 0)
|
.translate(0, .5f, 0)
|
||||||
.rotateZ(selfUpsideDown ? 180 : 0)
|
.rotateZDegrees(selfUpsideDown ? 180 : 0)
|
||||||
.translateY(selfUpsideDown != leadingUpsideDown ? 2 : 0);
|
.translateY(selfUpsideDown != leadingUpsideDown ? 2 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,8 +72,8 @@ public class CarriageCouplingRenderer {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(anchor.x - camera.x, anchor.y - camera.y, anchor.z - camera.z);
|
ms.translate(anchor.x - camera.x, anchor.y - camera.y, anchor.z - camera.z);
|
||||||
CachedBufferer.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
|
CachedBufferer.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
|
||||||
.rotateY(-yRot)
|
.rotateYDegrees(-yRot)
|
||||||
.rotateX(xRot)
|
.rotateXDegrees(xRot)
|
||||||
.light(lightCoords)
|
.light(lightCoords)
|
||||||
.renderInto(ms, vb);
|
.renderInto(ms, vb);
|
||||||
|
|
||||||
|
@ -84,8 +84,8 @@ public class CarriageCouplingRenderer {
|
||||||
double stretch = ((anchor2.distanceTo(anchor) - 2 * margin) * 4) / couplingSegments;
|
double stretch = ((anchor2.distanceTo(anchor) - 2 * margin) * 4) / couplingSegments;
|
||||||
for (int j = 0; j < couplingSegments; j++) {
|
for (int j = 0; j < couplingSegments; j++) {
|
||||||
CachedBufferer.partial(AllPartialModels.TRAIN_COUPLING_CABLE, air)
|
CachedBufferer.partial(AllPartialModels.TRAIN_COUPLING_CABLE, air)
|
||||||
.rotateY(-yRot + 180)
|
.rotateYDegrees(-yRot + 180)
|
||||||
.rotateX(-xRot)
|
.rotateXDegrees(-xRot)
|
||||||
.translate(0, 0, margin + 2 / 16f)
|
.translate(0, 0, margin + 2 / 16f)
|
||||||
.scale(1, 1, (float) stretch)
|
.scale(1, 1, (float) stretch)
|
||||||
.translate(0, 0, j / 4f)
|
.translate(0, 0, j / 4f)
|
||||||
|
@ -102,8 +102,8 @@ public class CarriageCouplingRenderer {
|
||||||
.subtract(camera);
|
.subtract(camera);
|
||||||
ms.translate(translation.x, translation.y, translation.z);
|
ms.translate(translation.x, translation.y, translation.z);
|
||||||
CachedBufferer.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
|
CachedBufferer.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
|
||||||
.rotateY(-yRot + 180)
|
.rotateYDegrees(-yRot + 180)
|
||||||
.rotateX(-xRot)
|
.rotateXDegrees(-xRot)
|
||||||
.light(lightCoords2)
|
.light(lightCoords2)
|
||||||
.renderInto(ms, vb);
|
.renderInto(ms, vb);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
|
@ -99,7 +99,7 @@ public class TrackObserverBlockEntity extends SmartBlockEntity implements ITrans
|
||||||
@Override
|
@Override
|
||||||
public void rotate(BlockState state, PoseStack ms) {
|
public void rotate(BlockState state, PoseStack ms) {
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(90);
|
.rotateXDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -561,7 +561,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleMenu> {
|
||||||
|
|
||||||
if (xOffset + 16 > cardWidth - 26) {
|
if (xOffset + 16 > cardWidth - 26) {
|
||||||
TransformStack.of(matrixStack)
|
TransformStack.of(matrixStack)
|
||||||
.rotateZ(-90);
|
.rotateZDegrees(-90);
|
||||||
int zLevel = 200;
|
int zLevel = 200;
|
||||||
graphics.fillGradient(-cardHeight + 2, 18, -2 - cardHeader, 28, zLevel, 0x44000000, 0x00000000);
|
graphics.fillGradient(-cardHeight + 2, 18, -2 - cardHeader, 28, zLevel, 0x44000000, 0x00000000);
|
||||||
graphics.fillGradient(-cardHeight + 2, cardWidth - 26, -2 - cardHeader, cardWidth - 16, zLevel, 0x00000000,
|
graphics.fillGradient(-cardHeight + 2, cardWidth - 26, -2 - cardHeader, cardWidth - 16, zLevel, 0x00000000,
|
||||||
|
|
|
@ -122,7 +122,7 @@ public class TrainHatArmorLayer<T extends LivingEntity, M extends EntityModel<T>
|
||||||
if (valid) {
|
if (valid) {
|
||||||
ms.scale(1, -1, -1);
|
ms.scale(1, -1, -1);
|
||||||
ms.translate(0, -2.25f / 16f, 0);
|
ms.translate(0, -2.25f / 16f, 0);
|
||||||
msr.rotateX(-8.5f);
|
msr.rotateXDegrees(-8.5f);
|
||||||
BlockState air = Blocks.AIR.defaultBlockState();
|
BlockState air = Blocks.AIR.defaultBlockState();
|
||||||
CachedBufferer.partial(AllPartialModels.TRAIN_HAT, air)
|
CachedBufferer.partial(AllPartialModels.TRAIN_HAT, air)
|
||||||
.disableDiffuse()
|
.disableDiffuse()
|
||||||
|
|
|
@ -103,8 +103,8 @@ public abstract class AbstractStationScreen extends AbstractSimiScreen {
|
||||||
msr.pushPose()
|
msr.pushPose()
|
||||||
.translate(guiLeft + background.width + 4, guiTop + background.height + 4, 100)
|
.translate(guiLeft + background.width + 4, guiTop + background.height + 4, 100)
|
||||||
.scale(40)
|
.scale(40)
|
||||||
.rotateX(-22)
|
.rotateXDegrees(-22)
|
||||||
.rotateY(63);
|
.rotateYDegrees(63);
|
||||||
GuiGameElement.of(blockEntity.getBlockState()
|
GuiGameElement.of(blockEntity.getBlockState()
|
||||||
.setValue(BlockStateProperties.WATERLOGGED, false))
|
.setValue(BlockStateProperties.WATERLOGGED, false))
|
||||||
.render(graphics);
|
.render(graphics);
|
||||||
|
|
|
@ -118,7 +118,7 @@ public class StationRenderer extends SafeBlockEntityRenderer<StationBlockEntity>
|
||||||
SuperByteBuffer flagBB = CachedBufferer.partial(flag, be.getBlockState());
|
SuperByteBuffer flagBB = CachedBufferer.partial(flag, be.getBlockState());
|
||||||
transformFlag(flagBB, be, partialTicks, be.flagYRot, be.flagFlipped);
|
transformFlag(flagBB, be, partialTicks, be.flagYRot, be.flagFlipped);
|
||||||
flagBB.translate(0.5f / 16, 0, 0)
|
flagBB.translate(0.5f / 16, 0, 0)
|
||||||
.rotateY(be.flagFlipped ? 0 : 180)
|
.rotateYDegrees(be.flagFlipped ? 0 : 180)
|
||||||
.translate(-0.5f / 16, 0, 0)
|
.translate(-0.5f / 16, 0, 0)
|
||||||
.light(light)
|
.light(light)
|
||||||
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
|
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
|
||||||
|
@ -135,10 +135,10 @@ public class StationRenderer extends SafeBlockEntityRenderer<StationBlockEntity>
|
||||||
|
|
||||||
float nudge = 1 / 512f;
|
float nudge = 1 / 512f;
|
||||||
flag.center()
|
flag.center()
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.translate(nudge, 9.5f / 16f, flipped ? 14f / 16f - nudge : 2f / 16f + nudge)
|
.translate(nudge, 9.5f / 16f, flipped ? 14f / 16f - nudge : 2f / 16f + nudge)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
.rotateX((flipped ? 1 : -1) * (progress * 90 + 270));
|
.rotateXDegrees((flipped ? 1 : -1) * (progress * 90 + 270));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class ValueBoxRenderer {
|
||||||
|
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(230);
|
.rotateXDegrees(230);
|
||||||
Matrix3f copy = new Matrix3f(ms.last()
|
Matrix3f copy = new Matrix3f(ms.last()
|
||||||
.normal());
|
.normal());
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
@ -57,7 +57,7 @@ public class ValueBoxRenderer {
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.translate(0, 0, -1 / 4f)
|
.translate(0, 0, -1 / 4f)
|
||||||
.translate(0, 0, 1 / 32f + .001)
|
.translate(0, 0, 1 / 32f + .001)
|
||||||
.rotateY(180);
|
.rotateYDegrees(180);
|
||||||
|
|
||||||
PoseStack squashedMS = new PoseStack();
|
PoseStack squashedMS = new PoseStack();
|
||||||
squashedMS.last()
|
squashedMS.last()
|
||||||
|
|
|
@ -113,8 +113,8 @@ public abstract class ValueBoxTransform {
|
||||||
float yRot = AngleHelper.horizontalAngle(getSide()) + 180;
|
float yRot = AngleHelper.horizontalAngle(getSide()) + 180;
|
||||||
float xRot = getSide() == Direction.UP ? 90 : getSide() == Direction.DOWN ? 270 : 0;
|
float xRot = getSide() == Direction.UP ? 90 : getSide() == Direction.DOWN ? 270 : 0;
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(yRot)
|
.rotateYDegrees(yRot)
|
||||||
.rotateX(xRot);
|
.rotateXDegrees(xRot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -85,9 +85,9 @@ public class CreateBlockEntityBuilder<T extends BlockEntity, P> extends BlockEnt
|
||||||
var instanceFactory = this.instanceFactory;
|
var instanceFactory = this.instanceFactory;
|
||||||
if (instanceFactory != null) {
|
if (instanceFactory != null) {
|
||||||
NonNullPredicate<T> renderNormally = this.renderNormally;
|
NonNullPredicate<T> renderNormally = this.renderNormally;
|
||||||
SimpleBlockEntityVisualizer.configure(getEntry())
|
SimpleBlockEntityVisualizer.builder(getEntry())
|
||||||
.factory(instanceFactory.get())
|
.factory(instanceFactory.get())
|
||||||
.skipRender(be -> !renderNormally.test(be))
|
.skipVanillaRender(be -> !renderNormally.test(be))
|
||||||
.apply();
|
.apply();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -58,9 +58,9 @@ public class CreateEntityBuilder<T extends Entity, P> extends EntityBuilder<T, P
|
||||||
var instanceFactory = this.instanceFactory;
|
var instanceFactory = this.instanceFactory;
|
||||||
if (instanceFactory != null) {
|
if (instanceFactory != null) {
|
||||||
NonNullPredicate<T> renderNormally = this.renderNormally;
|
NonNullPredicate<T> renderNormally = this.renderNormally;
|
||||||
SimpleEntityVisualizer.configure(getEntry())
|
SimpleEntityVisualizer.builder(getEntry())
|
||||||
.factory(instanceFactory.get())
|
.factory(instanceFactory.get())
|
||||||
.skipRender(be -> !renderNormally.test(be))
|
.skipVanillaRender(be -> !renderNormally.test(be))
|
||||||
.apply();
|
.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,8 @@ public class FluidRenderer {
|
||||||
var msr = TransformStack.of(ms);
|
var msr = TransformStack.of(ms);
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
msr.center()
|
msr.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(direction))
|
.rotateYDegrees(AngleHelper.horizontalAngle(direction))
|
||||||
.rotateX(direction == Direction.UP ? 180 : direction == Direction.DOWN ? 0 : 270)
|
.rotateXDegrees(direction == Direction.UP ? 180 : direction == Direction.DOWN ? 0 : 270)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
ms.translate(.5, 0, .5);
|
ms.translate(.5, 0, .5);
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ public class FluidRenderer {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
renderFlowingTiledFace(Direction.SOUTH, hMin, yMin, hMax, yMax, h, builder, ms, light, color, flowTexture);
|
renderFlowingTiledFace(Direction.SOUTH, hMin, yMin, hMax, yMax, h, builder, ms, light, color, flowTexture);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
msr.rotateY(90);
|
msr.rotateYDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (progress != 1)
|
if (progress != 1)
|
||||||
|
@ -112,7 +112,7 @@ public class FluidRenderer {
|
||||||
if (fluidAttributes.isLighterThanAir())
|
if (fluidAttributes.isLighterThanAir())
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.translate(center)
|
.translate(center)
|
||||||
.rotateX(180)
|
.rotateXDegrees(180)
|
||||||
.translateBack(center);
|
.translateBack(center);
|
||||||
|
|
||||||
for (Direction side : Iterate.directions) {
|
for (Direction side : Iterate.directions) {
|
||||||
|
|
|
@ -60,8 +60,8 @@ public abstract class Outline {
|
||||||
poseStack.pushPose();
|
poseStack.pushPose();
|
||||||
TransformStack.of(poseStack)
|
TransformStack.of(poseStack)
|
||||||
.translate(start.x - camera.x, start.y - camera.y, start.z - camera.z)
|
.translate(start.x - camera.x, start.y - camera.y, start.z - camera.z)
|
||||||
.rotateY(hAngle)
|
.rotateYDegrees(hAngle)
|
||||||
.rotateX(vAngle);
|
.rotateXDegrees(vAngle);
|
||||||
bufferCuboidLine(poseStack.last(), consumer, new Vector3f(), Direction.SOUTH, length, width, color, lightmap,
|
bufferCuboidLine(poseStack.last(), consumer, new Vector3f(), Direction.SOUTH, length, width, color, lightmap,
|
||||||
disableNormals);
|
disableNormals);
|
||||||
poseStack.popPose();
|
poseStack.popPose();
|
||||||
|
|
|
@ -20,7 +20,6 @@ import org.apache.commons.lang3.mutable.MutableObject;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.lib.math.DiffuseLightCalculator;
|
|
||||||
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.simibubi.create.foundation.gui.UIRenderHelper;
|
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.HideAllInstruction;
|
||||||
import com.simibubi.create.foundation.ponder.instruction.PonderInstruction;
|
import com.simibubi.create.foundation.ponder.instruction.PonderInstruction;
|
||||||
import com.simibubi.create.foundation.ponder.ui.PonderUI;
|
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.ForcedDiffuseState;
|
||||||
import com.simibubi.create.foundation.render.SuperRenderTypeBuffer;
|
import com.simibubi.create.foundation.render.SuperRenderTypeBuffer;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
@ -525,13 +525,13 @@ public class PonderScene {
|
||||||
ms.translate(width / 2, height / 2, 200 + offset);
|
ms.translate(width / 2, height / 2, 200 + offset);
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(-35)
|
.rotateXDegrees(-35)
|
||||||
.rotateY(55)
|
.rotateYDegrees(55)
|
||||||
.translate(offset, 0, 0)
|
.translate(offset, 0, 0)
|
||||||
.rotateY(-55)
|
.rotateYDegrees(-55)
|
||||||
.rotateX(35)
|
.rotateXDegrees(35)
|
||||||
.rotateX(xRotation.getValue(pt))
|
.rotateXDegrees(xRotation.getValue(pt))
|
||||||
.rotateY(yRotation.getValue(pt));
|
.rotateYDegrees(yRotation.getValue(pt));
|
||||||
|
|
||||||
UIRenderHelper.flipForGuiRender(ms);
|
UIRenderHelper.flipForGuiRender(ms);
|
||||||
float f = 30 * scaleFactor;
|
float f = 30 * scaleFactor;
|
||||||
|
|
|
@ -104,7 +104,7 @@ public class MinecartElement extends AnimatedSceneElement {
|
||||||
Mth.lerp(pt, entity.yo, entity.getY()), Mth.lerp(pt, entity.zo, entity.getZ()));
|
Mth.lerp(pt, entity.yo, entity.getY()), Mth.lerp(pt, entity.zo, entity.getZ()));
|
||||||
|
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateY(rotation.getValue(pt));
|
.rotateYDegrees(rotation.getValue(pt));
|
||||||
|
|
||||||
entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade));
|
entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade));
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
|
@ -148,7 +148,7 @@ public class ParrotElement extends AnimatedSceneElement {
|
||||||
Mth.lerp(pt, entity.zo, entity.getZ()));
|
Mth.lerp(pt, entity.zo, entity.getZ()));
|
||||||
|
|
||||||
TransformStack.of(ms)
|
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));
|
entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade));
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
|
@ -25,67 +25,71 @@ public class AllInstanceTypes {
|
||||||
.cullShader(asResource("instance/cull/rotating.glsl"))
|
.cullShader(asResource("instance/cull/rotating.glsl"))
|
||||||
.vertexShader(asResource("instance/rotating.vert"))
|
.vertexShader(asResource("instance/rotating.vert"))
|
||||||
.layout(LayoutBuilder.create()
|
.layout(LayoutBuilder.create()
|
||||||
.vector("light", IntegerRepr.SHORT, 2)
|
|
||||||
.vector("color", FloatRepr.NORMALIZED_UNSIGNED_BYTE, 4)
|
.vector("color", FloatRepr.NORMALIZED_UNSIGNED_BYTE, 4)
|
||||||
|
.vector("light", IntegerRepr.SHORT, 2)
|
||||||
|
.vector("overlay", IntegerRepr.SHORT, 2)
|
||||||
.vector("pos", FloatRepr.FLOAT, 3)
|
.vector("pos", FloatRepr.FLOAT, 3)
|
||||||
.scalar("speed", FloatRepr.FLOAT)
|
.scalar("speed", FloatRepr.FLOAT)
|
||||||
.scalar("offset", FloatRepr.FLOAT)
|
.scalar("offset", FloatRepr.FLOAT)
|
||||||
.vector("axis", FloatRepr.NORMALIZED_BYTE, 3)
|
.vector("axis", FloatRepr.NORMALIZED_BYTE, 3)
|
||||||
.build())
|
.build())
|
||||||
.writer((ptr, instance) -> {
|
.writer((ptr, instance) -> {
|
||||||
MemoryUtil.memPutShort(ptr, instance.blockLight);
|
MemoryUtil.memPutByte(ptr, instance.r);
|
||||||
MemoryUtil.memPutShort(ptr + 2, instance.skyLight);
|
MemoryUtil.memPutByte(ptr + 1, instance.g);
|
||||||
MemoryUtil.memPutByte(ptr + 4, instance.r);
|
MemoryUtil.memPutByte(ptr + 2, instance.b);
|
||||||
MemoryUtil.memPutByte(ptr + 5, instance.g);
|
MemoryUtil.memPutByte(ptr + 3, instance.a);
|
||||||
MemoryUtil.memPutByte(ptr + 6, instance.b);
|
MemoryUtil.memPutShort(ptr + 4, instance.blockLight);
|
||||||
MemoryUtil.memPutByte(ptr + 7, instance.a);
|
MemoryUtil.memPutShort(ptr + 6, instance.skyLight);
|
||||||
MemoryUtil.memPutFloat(ptr + 8, instance.x);
|
MemoryUtil.memPutInt(ptr + 8, instance.overlay);
|
||||||
MemoryUtil.memPutFloat(ptr + 12, instance.y);
|
MemoryUtil.memPutFloat(ptr + 12, instance.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 16, instance.z);
|
MemoryUtil.memPutFloat(ptr + 16, instance.y);
|
||||||
MemoryUtil.memPutFloat(ptr + 20, instance.rotationalSpeed);
|
MemoryUtil.memPutFloat(ptr + 20, instance.z);
|
||||||
MemoryUtil.memPutFloat(ptr + 24, instance.rotationOffset);
|
MemoryUtil.memPutFloat(ptr + 24, instance.rotationalSpeed);
|
||||||
MemoryUtil.memPutByte(ptr + 28, instance.rotationAxisX);
|
MemoryUtil.memPutFloat(ptr + 28, instance.rotationOffset);
|
||||||
MemoryUtil.memPutByte(ptr + 29, instance.rotationAxisY);
|
MemoryUtil.memPutByte(ptr + 32, instance.rotationAxisX);
|
||||||
MemoryUtil.memPutByte(ptr + 30, instance.rotationAxisZ);
|
MemoryUtil.memPutByte(ptr + 33, instance.rotationAxisY);
|
||||||
|
MemoryUtil.memPutByte(ptr + 34, instance.rotationAxisZ);
|
||||||
})
|
})
|
||||||
.register();
|
.register();
|
||||||
public static final InstanceType<BeltInstance> BELTS = SimpleInstanceType.builder(BeltInstance::new)
|
public static final InstanceType<BeltInstance> BELTS = SimpleInstanceType.builder(BeltInstance::new)
|
||||||
.cullShader(asResource("instance/cull/belt.glsl"))
|
.cullShader(asResource("instance/cull/belt.glsl"))
|
||||||
.vertexShader(asResource("instance/belt.vert"))
|
.vertexShader(asResource("instance/belt.vert"))
|
||||||
.layout(LayoutBuilder.create()
|
.layout(LayoutBuilder.create()
|
||||||
.vector("light", IntegerRepr.SHORT, 2)
|
|
||||||
.vector("color", FloatRepr.NORMALIZED_UNSIGNED_BYTE, 4)
|
.vector("color", FloatRepr.NORMALIZED_UNSIGNED_BYTE, 4)
|
||||||
|
.vector("light", IntegerRepr.SHORT, 2)
|
||||||
|
.vector("overlay", IntegerRepr.SHORT, 2)
|
||||||
.vector("pos", FloatRepr.FLOAT, 3)
|
.vector("pos", FloatRepr.FLOAT, 3)
|
||||||
.scalar("speed", FloatRepr.FLOAT)
|
.scalar("speed", FloatRepr.FLOAT)
|
||||||
.scalar("offset", FloatRepr.FLOAT)
|
.scalar("offset", FloatRepr.FLOAT)
|
||||||
.vector("rotation", FloatRepr.FLOAT, 4)
|
.vector("rotation", FloatRepr.FLOAT, 4)
|
||||||
.vector("sourceTexture", FloatRepr.FLOAT, 2)
|
.vector("sourceTexture", FloatRepr.FLOAT, 2)
|
||||||
.vector("scrollTexture", FloatRepr.FLOAT, 4)
|
.vector("scrollTexture", FloatRepr.FLOAT, 4)
|
||||||
.scalar("scrollMult", FloatRepr.NORMALIZED_BYTE)
|
.scalar("scrollMult", FloatRepr.FLOAT)
|
||||||
.build())
|
.build())
|
||||||
.writer((ptr, instance) -> {
|
.writer((ptr, instance) -> {
|
||||||
MemoryUtil.memPutShort(ptr, instance.blockLight);
|
MemoryUtil.memPutByte(ptr, instance.r);
|
||||||
MemoryUtil.memPutShort(ptr + 2, instance.skyLight);
|
MemoryUtil.memPutByte(ptr + 1, instance.g);
|
||||||
MemoryUtil.memPutByte(ptr + 4, instance.r);
|
MemoryUtil.memPutByte(ptr + 2, instance.b);
|
||||||
MemoryUtil.memPutByte(ptr + 5, instance.g);
|
MemoryUtil.memPutByte(ptr + 3, instance.a);
|
||||||
MemoryUtil.memPutByte(ptr + 6, instance.b);
|
MemoryUtil.memPutShort(ptr + 4, instance.blockLight);
|
||||||
MemoryUtil.memPutByte(ptr + 7, instance.a);
|
MemoryUtil.memPutShort(ptr + 6, instance.skyLight);
|
||||||
MemoryUtil.memPutFloat(ptr + 8, instance.x);
|
MemoryUtil.memPutInt(ptr + 8, instance.overlay);
|
||||||
MemoryUtil.memPutFloat(ptr + 12, instance.y);
|
MemoryUtil.memPutFloat(ptr + 12, instance.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 16, instance.z);
|
MemoryUtil.memPutFloat(ptr + 16, instance.y);
|
||||||
MemoryUtil.memPutFloat(ptr + 20, instance.rotationalSpeed);
|
MemoryUtil.memPutFloat(ptr + 20, instance.z);
|
||||||
MemoryUtil.memPutFloat(ptr + 24, instance.rotationOffset);
|
MemoryUtil.memPutFloat(ptr + 24, instance.rotationalSpeed);
|
||||||
MemoryUtil.memPutFloat(ptr + 28, instance.qX);
|
MemoryUtil.memPutFloat(ptr + 28, instance.rotationOffset);
|
||||||
MemoryUtil.memPutFloat(ptr + 32, instance.qY);
|
MemoryUtil.memPutFloat(ptr + 32, instance.rotation.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 36, instance.qZ);
|
MemoryUtil.memPutFloat(ptr + 36, instance.rotation.y);
|
||||||
MemoryUtil.memPutFloat(ptr + 40, instance.qW);
|
MemoryUtil.memPutFloat(ptr + 40, instance.rotation.z);
|
||||||
MemoryUtil.memPutFloat(ptr + 44, instance.sourceU);
|
MemoryUtil.memPutFloat(ptr + 44, instance.rotation.w);
|
||||||
MemoryUtil.memPutFloat(ptr + 48, instance.sourceV);
|
MemoryUtil.memPutFloat(ptr + 48, instance.sourceU);
|
||||||
MemoryUtil.memPutFloat(ptr + 52, instance.minU);
|
MemoryUtil.memPutFloat(ptr + 52, instance.sourceV);
|
||||||
MemoryUtil.memPutFloat(ptr + 56, instance.minV);
|
MemoryUtil.memPutFloat(ptr + 56, instance.minU);
|
||||||
MemoryUtil.memPutFloat(ptr + 60, instance.maxU);
|
MemoryUtil.memPutFloat(ptr + 60, instance.minV);
|
||||||
MemoryUtil.memPutFloat(ptr + 64, instance.maxV);
|
MemoryUtil.memPutFloat(ptr + 64, instance.maxU);
|
||||||
MemoryUtil.memPutByte(ptr + 68, instance.scrollMult);
|
MemoryUtil.memPutFloat(ptr + 68, instance.maxV);
|
||||||
|
MemoryUtil.memPutFloat(ptr + 72, instance.scrollMult);
|
||||||
})
|
})
|
||||||
.register();
|
.register();
|
||||||
public static final InstanceType<ActorInstance> ACTORS = SimpleInstanceType.builder(ActorInstance::new)
|
public static final InstanceType<ActorInstance> ACTORS = SimpleInstanceType.builder(ActorInstance::new)
|
||||||
|
@ -110,10 +114,10 @@ public class AllInstanceTypes {
|
||||||
MemoryUtil.memPutByte(ptr + 20, instance.rotationAxisX);
|
MemoryUtil.memPutByte(ptr + 20, instance.rotationAxisX);
|
||||||
MemoryUtil.memPutByte(ptr + 21, instance.rotationAxisY);
|
MemoryUtil.memPutByte(ptr + 21, instance.rotationAxisY);
|
||||||
MemoryUtil.memPutByte(ptr + 22, instance.rotationAxisZ);
|
MemoryUtil.memPutByte(ptr + 22, instance.rotationAxisZ);
|
||||||
MemoryUtil.memPutFloat(ptr + 24, instance.qX);
|
MemoryUtil.memPutFloat(ptr + 24, instance.rotation.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 28, instance.qY);
|
MemoryUtil.memPutFloat(ptr + 28, instance.rotation.y);
|
||||||
MemoryUtil.memPutFloat(ptr + 32, instance.qZ);
|
MemoryUtil.memPutFloat(ptr + 32, instance.rotation.z);
|
||||||
MemoryUtil.memPutFloat(ptr + 34, instance.qW);
|
MemoryUtil.memPutFloat(ptr + 34, instance.rotation.w);
|
||||||
MemoryUtil.memPutByte(ptr + 38, instance.rotationCenterX);
|
MemoryUtil.memPutByte(ptr + 38, instance.rotationCenterX);
|
||||||
MemoryUtil.memPutByte(ptr + 39, instance.rotationCenterY);
|
MemoryUtil.memPutByte(ptr + 39, instance.rotationCenterY);
|
||||||
MemoryUtil.memPutByte(ptr + 40, instance.rotationCenterZ);
|
MemoryUtil.memPutByte(ptr + 40, instance.rotationCenterZ);
|
||||||
|
|
|
@ -67,8 +67,8 @@ public class CachedBufferer {
|
||||||
PoseStack stack = new PoseStack();
|
PoseStack stack = new PoseStack();
|
||||||
TransformStack.of(stack)
|
TransformStack.of(stack)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(AngleHelper.verticalAngle(facing))
|
.rotateXDegrees(AngleHelper.verticalAngle(facing))
|
||||||
.uncenter();
|
.uncenter();
|
||||||
return stack;
|
return stack;
|
||||||
};
|
};
|
||||||
|
@ -79,8 +79,8 @@ public class CachedBufferer {
|
||||||
PoseStack stack = new PoseStack();
|
PoseStack stack = new PoseStack();
|
||||||
TransformStack.of(stack)
|
TransformStack.of(stack)
|
||||||
.center()
|
.center()
|
||||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateX(AngleHelper.verticalAngle(facing) + 90)
|
.rotateXDegrees(AngleHelper.verticalAngle(facing) + 90)
|
||||||
.uncenter();
|
.uncenter();
|
||||||
return stack;
|
return stack;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,8 +2,6 @@ package com.simibubi.create.foundation.render;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.lib.math.DiffuseLightCalculator;
|
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||||
|
|
||||||
public final class ForcedDiffuseState {
|
public final class ForcedDiffuseState {
|
||||||
|
|
|
@ -6,7 +6,6 @@ import org.joml.Quaternionf;
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.lib.math.DiffuseLightCalculator;
|
|
||||||
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
||||||
import com.jozufozu.flywheel.lib.util.ShadersModHandler;
|
import com.jozufozu.flywheel.lib.util.ShadersModHandler;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
|
|
@ -49,7 +49,8 @@ public abstract class Outline {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.translate(start)
|
.translate(start)
|
||||||
.rotateY(hAngle).rotateX(vAngle);
|
.rotateYDegrees(hAngle)
|
||||||
|
.rotateXDegrees(vAngle);
|
||||||
renderAACuboidLine(ms, buffer, Vec3.ZERO, new Vec3(0, 0, diff.length()));
|
renderAACuboidLine(ms, buffer, Vec3.ZERO, new Vec3(0, 0, diff.length()));
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class CreateMainMenuScreen extends AbstractSimiScreen {
|
||||||
ms.scale(24 * side, 24 * side, 32);
|
ms.scale(24 * side, 24 * side, 32);
|
||||||
ms.translate(-1.75 * ((alpha * alpha) / 2f + .5f), .25f, 0);
|
ms.translate(-1.75 * ((alpha * alpha) / 2f + .5f), .25f, 0);
|
||||||
TransformStack.of(ms)
|
TransformStack.of(ms)
|
||||||
.rotateX(45);
|
.rotateXDegrees(45);
|
||||||
GuiGameElement.of(AllBlocks.LARGE_COGWHEEL.getDefaultState())
|
GuiGameElement.of(AllBlocks.LARGE_COGWHEEL.getDefaultState())
|
||||||
.rotateBlock(0, Util.getMillis() / 32f * side, 0)
|
.rotateBlock(0, Util.getMillis() / 32f * side, 0)
|
||||||
.render(graphics);
|
.render(graphics);
|
||||||
|
|
|
@ -11,6 +11,7 @@ void flw_instanceVertex(in FlwInstance instance) {
|
||||||
|
|
||||||
flw_vertexTexCoord = flw_vertexTexCoord - instance.sourceTexture + instance.scrollTexture.xy + vec2(0, scroll);
|
flw_vertexTexCoord = flw_vertexTexCoord - instance.sourceTexture + instance.scrollTexture.xy + vec2(0, scroll);
|
||||||
flw_vertexLight = instance.light / 15.;
|
flw_vertexLight = instance.light / 15.;
|
||||||
|
flw_vertexOverlay = instance.overlay;
|
||||||
|
|
||||||
#if defined(DEBUG_RAINBOW)
|
#if defined(DEBUG_RAINBOW)
|
||||||
flw_vertexColor = instance.color;
|
flw_vertexColor = instance.color;
|
||||||
|
|
|
@ -15,6 +15,7 @@ void flw_instanceVertex(in FlwInstance instance) {
|
||||||
|
|
||||||
flw_vertexNormal = spin * flw_vertexNormal;
|
flw_vertexNormal = spin * flw_vertexNormal;
|
||||||
flw_vertexLight = instance.light / 15.;
|
flw_vertexLight = instance.light / 15.;
|
||||||
|
flw_vertexOverlay = instance.overlay;
|
||||||
|
|
||||||
#if defined(DEBUG_RAINBOW)
|
#if defined(DEBUG_RAINBOW)
|
||||||
flw_vertexColor = instance.color;
|
flw_vertexColor = instance.color;
|
||||||
|
|
Loading…
Add table
Reference in a new issue