From e54ccb853a30dfcbc7f5f17783bdf4094d44e041 Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Wed, 22 Feb 2023 14:45:06 -0800 Subject: [PATCH] Use more generics in BE renderer and instance subclasses - This makes it unnecessary to cast or store the passed BE in BE renderers and instances --- .../simibubi/create/AllBlockEntityTypes.java | 14 +++++------ .../base/BackHalfShaftInstance.java | 4 +-- .../base/CutoutRotatingInstance.java | 4 +-- .../contraptions/base/HalfShaftInstance.java | 4 +-- .../base/HorizontalHalfShaftInstance.java | 4 +-- .../base/KineticBlockEntityRenderer.java | 10 ++++---- .../base/SingleRotatingInstance.java | 4 +-- .../components/actors/DrillInstance.java | 5 ++-- .../components/actors/DrillRenderer.java | 5 ++-- .../components/clock/CuckooClockRenderer.java | 22 ++++++++-------- ...ce.java => ShaftlessCogwheelInstance.java} | 4 +-- .../components/crank/HandCrankInstance.java | 4 +-- .../components/crank/HandCrankRenderer.java | 8 +++--- .../components/deployer/DeployerInstance.java | 7 ++---- .../components/fan/EncasedFanRenderer.java | 5 ++-- ...eelInstance.java => FlywheelInstance.java} | 4 +-- .../components/flywheel/FlywheelRenderer.java | 14 +++++------ ...nstance.java => MillstoneCogInstance.java} | 5 ++-- .../millstone/MillstoneRenderer.java | 5 ++-- .../mixer/MechanicalMixerRenderer.java | 12 ++++----- .../motor/CreativeMotorRenderer.java | 5 ++-- .../press/MechanicalPressRenderer.java | 11 ++++---- .../components/press/PressInstance.java | 6 ++--- .../components/saw/SawInstance.java | 5 ++-- .../bearing/BearingInstance.java | 9 +++---- .../bearing/BearingRenderer.java | 9 +++---- .../elevator/ElevatorPulleyInstance.java | 5 ++-- .../elevator/ElevatorPulleyRenderer.java | 11 ++++---- .../gantry/GantryCarriageInstance.java | 7 +++--- .../gantry/GantryCarriageRenderer.java | 10 ++++---- .../piston/MechanicalPistonRenderer.java | 5 ++-- .../pulley/AbstractPulleyInstance.java | 4 +-- .../pulley/AbstractPulleyRenderer.java | 20 +++++++-------- .../pulley/HosePulleyInstance.java | 4 +-- .../pulley/PulleyRenderer.java | 23 ++++++++--------- .../pulley/RopePulleyInstance.java | 4 +-- .../contraptions/fluids/PumpCogInstance.java | 3 +-- .../contraptions/fluids/PumpRenderer.java | 11 +++----- .../fluids/actors/HosePulleyRenderer.java | 15 ++++++----- .../fluids/pipes/FluidValveInstance.java | 7 ++---- .../fluids/pipes/FluidValveRenderer.java | 16 +++++------- .../BracketedKineticBlockEntityInstance.java | 5 ++-- .../BracketedKineticBlockEntityRenderer.java | 5 ++-- .../relays/encased/EncasedCogRenderer.java | 8 +++--- .../relays/encased/ShaftInstance.java | 4 +-- .../relays/encased/ShaftRenderer.java | 2 +- .../relays/encased/SplitShaftRenderer.java | 10 +++----- .../relays/gauge/GaugeInstance.java | 12 ++++----- .../relays/gauge/GaugeRenderer.java | 9 ++----- .../relays/gearbox/GearboxRenderer.java | 5 ++-- .../curiosities/armor/BacktankInstance.java | 5 ++-- .../curiosities/armor/BacktankRenderer.java | 7 +++--- .../block/depot/EjectorInstance.java | 5 +--- .../block/depot/EjectorRenderer.java | 25 +++++++------------ .../block/mechanicalArm/ArmInstance.java | 18 ++++++------- .../block/mechanicalArm/ArmRenderer.java | 22 ++++++++-------- .../display/FlapDisplayRenderer.java | 24 ++++++++---------- 57 files changed, 210 insertions(+), 290 deletions(-) rename src/main/java/com/simibubi/create/content/contraptions/components/crafter/{MechanicalCrafterInstance.java => ShaftlessCogwheelInstance.java} (89%) rename src/main/java/com/simibubi/create/content/contraptions/components/flywheel/{FlyWheelInstance.java => FlywheelInstance.java} (93%) rename src/main/java/com/simibubi/create/content/contraptions/components/millstone/{MillStoneCogInstance.java => MillstoneCogInstance.java} (71%) diff --git a/src/main/java/com/simibubi/create/AllBlockEntityTypes.java b/src/main/java/com/simibubi/create/AllBlockEntityTypes.java index c8c126fea..cedf07a6f 100644 --- a/src/main/java/com/simibubi/create/AllBlockEntityTypes.java +++ b/src/main/java/com/simibubi/create/AllBlockEntityTypes.java @@ -23,8 +23,8 @@ import com.simibubi.create.content.contraptions.components.actors.controls.Contr import com.simibubi.create.content.contraptions.components.clock.CuckooClockBlockEntity; import com.simibubi.create.content.contraptions.components.clock.CuckooClockRenderer; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlockEntity; -import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterInstance; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterRenderer; +import com.simibubi.create.content.contraptions.components.crafter.ShaftlessCogwheelInstance; import com.simibubi.create.content.contraptions.components.crank.HandCrankBlockEntity; import com.simibubi.create.content.contraptions.components.crank.HandCrankInstance; import com.simibubi.create.content.contraptions.components.crank.HandCrankRenderer; @@ -37,11 +37,11 @@ import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlockEn import com.simibubi.create.content.contraptions.components.fan.EncasedFanRenderer; import com.simibubi.create.content.contraptions.components.fan.FanInstance; import com.simibubi.create.content.contraptions.components.fan.NozzleBlockEntity; -import com.simibubi.create.content.contraptions.components.flywheel.FlyWheelInstance; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlockEntity; +import com.simibubi.create.content.contraptions.components.flywheel.FlywheelInstance; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelRenderer; -import com.simibubi.create.content.contraptions.components.millstone.MillStoneCogInstance; import com.simibubi.create.content.contraptions.components.millstone.MillstoneBlockEntity; +import com.simibubi.create.content.contraptions.components.millstone.MillstoneCogInstance; import com.simibubi.create.content.contraptions.components.millstone.MillstoneRenderer; import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerBlockEntity; import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerRenderer; @@ -573,14 +573,14 @@ public class AllBlockEntityTypes { public static final BlockEntityEntry FLYWHEEL = REGISTRATE .blockEntity("flywheel", FlywheelBlockEntity::new) - .instance(() -> FlyWheelInstance::new, false) + .instance(() -> FlywheelInstance::new, false) .validBlocks(AllBlocks.FLYWHEEL) .renderer(() -> FlywheelRenderer::new) .register(); public static final BlockEntityEntry MILLSTONE = REGISTRATE .blockEntity("millstone", MillstoneBlockEntity::new) - .instance(() -> MillStoneCogInstance::new, false) + .instance(() -> MillstoneCogInstance::new, false) .validBlocks(AllBlocks.MILLSTONE) .renderer(() -> MillstoneRenderer::new) .register(); @@ -641,7 +641,7 @@ public class AllBlockEntityTypes { public static final BlockEntityEntry MECHANICAL_CRAFTER = REGISTRATE .blockEntity("mechanical_crafter", MechanicalCrafterBlockEntity::new) - .instance(() -> MechanicalCrafterInstance::new) + .instance(() -> ShaftlessCogwheelInstance::new) .validBlocks(AllBlocks.MECHANICAL_CRAFTER) .renderer(() -> MechanicalCrafterRenderer::new) .register(); @@ -838,7 +838,7 @@ public class AllBlockEntityTypes { public static final BlockEntityEntry FLAP_DISPLAY = REGISTRATE .blockEntity("flap_display", FlapDisplayBlockEntity::new) - .instance(() -> MechanicalCrafterInstance::new) + .instance(() -> ShaftlessCogwheelInstance::new) .renderer(() -> FlapDisplayRenderer::new) .validBlocks(AllBlocks.DISPLAY_BOARD) .register(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/BackHalfShaftInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/BackHalfShaftInstance.java index 35a08a762..917634f7c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/BackHalfShaftInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/BackHalfShaftInstance.java @@ -5,8 +5,8 @@ import com.jozufozu.flywheel.api.MaterialManager; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class BackHalfShaftInstance extends HalfShaftInstance { - public BackHalfShaftInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { +public class BackHalfShaftInstance extends HalfShaftInstance { + public BackHalfShaftInstance(MaterialManager materialManager, T blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java index 9e4dc451d..21d6b99fe 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java @@ -5,8 +5,8 @@ import com.jozufozu.flywheel.api.MaterialManager; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import com.simibubi.create.foundation.render.AllMaterialSpecs; -public class CutoutRotatingInstance extends SingleRotatingInstance { - public CutoutRotatingInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { +public class CutoutRotatingInstance extends SingleRotatingInstance { + public CutoutRotatingInstance(MaterialManager materialManager, T blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/HalfShaftInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/HalfShaftInstance.java index 25a038647..159c77a37 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/HalfShaftInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/HalfShaftInstance.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class HalfShaftInstance extends SingleRotatingInstance { - public HalfShaftInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { +public class HalfShaftInstance extends SingleRotatingInstance { + public HalfShaftInstance(MaterialManager materialManager, T blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalHalfShaftInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalHalfShaftInstance.java index 30fc9fa0c..594ed744f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalHalfShaftInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalHalfShaftInstance.java @@ -5,9 +5,9 @@ import com.jozufozu.flywheel.api.MaterialManager; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class HorizontalHalfShaftInstance extends HalfShaftInstance { +public class HorizontalHalfShaftInstance extends HalfShaftInstance { - public HorizontalHalfShaftInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public HorizontalHalfShaftInstance(MaterialManager materialManager, T blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlockEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlockEntityRenderer.java index 17c472b09..fc9abc824 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlockEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlockEntityRenderer.java @@ -26,7 +26,7 @@ import net.minecraft.core.Direction.AxisDirection; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class KineticBlockEntityRenderer extends SafeBlockEntityRenderer { +public class KineticBlockEntityRenderer extends SafeBlockEntityRenderer { public static final SuperByteBufferCache.Compartment KINETIC_BLOCK = new SuperByteBufferCache.Compartment<>(); public static boolean rainbowMode = false; @@ -40,7 +40,7 @@ public class KineticBlockEntityRenderer extends SafeBlockEntityRenderer { +public class SingleRotatingInstance extends KineticBlockEntityInstance { protected RotatingData rotatingModel; - public SingleRotatingInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public SingleRotatingInstance(MaterialManager materialManager, T blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillInstance.java index 3a499bb8a..b89593ec0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillInstance.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.actors; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; @@ -11,9 +10,9 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class DrillInstance extends SingleRotatingInstance { +public class DrillInstance extends SingleRotatingInstance { - public DrillInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public DrillInstance(MaterialManager materialManager, DrillBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java index aa116ee86..ca80ab89b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.components.actors; import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; @@ -19,14 +18,14 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; -public class DrillRenderer extends KineticBlockEntityRenderer { +public class DrillRenderer extends KineticBlockEntityRenderer { public DrillRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(DrillBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllBlockPartials.DRILL_HEAD, state); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java index 538ebeb06..f8353b157 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java @@ -4,7 +4,6 @@ import com.jozufozu.flywheel.core.PartialModel; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.contraptions.components.clock.CuckooClockBlockEntity.Animation; import com.simibubi.create.foundation.render.CachedBufferer; @@ -18,20 +17,19 @@ import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -public class CuckooClockRenderer extends KineticBlockEntityRenderer { +public class CuckooClockRenderer extends KineticBlockEntityRenderer { public CuckooClockRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(CuckooClockBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); if (!(be instanceof CuckooClockBlockEntity)) return; - CuckooClockBlockEntity clock = (CuckooClockBlockEntity) be; BlockState blockState = be.getBlockState(); Direction direction = blockState.getValue(CuckooClockBlock.HORIZONTAL_FACING); @@ -40,8 +38,8 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer { // Render Hands SuperByteBuffer hourHand = CachedBufferer.partial(AllBlockPartials.CUCKOO_HOUR_HAND, blockState); SuperByteBuffer minuteHand = CachedBufferer.partial(AllBlockPartials.CUCKOO_MINUTE_HAND, blockState); - float hourAngle = clock.hourHand.getValue(partialTicks); - float minuteAngle = clock.minuteHand.getValue(partialTicks); + float hourAngle = be.hourHand.getValue(partialTicks); + float minuteAngle = be.minuteHand.getValue(partialTicks); rotateHand(hourHand, hourAngle, direction).light(light) .renderInto(ms, vb); rotateHand(minuteHand, minuteAngle, direction).light(light) @@ -53,9 +51,9 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer { float angle = 0; float offset = 0; - if (clock.animationType != null) { - float value = clock.animationProgress.getValue(partialTicks); - int step = clock.animationType == Animation.SURPRISE ? 3 : 15; + if (be.animationType != null) { + float value = be.animationProgress.getValue(partialTicks); + int step = be.animationType == Animation.SURPRISE ? 3 : 15; for (int phase = 30; phase <= 60; phase += step) { float local = value - phase; if (local < -step / 3) @@ -76,9 +74,9 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer { .renderInto(ms, vb); // Figure - if (clock.animationType != Animation.NONE) { + if (be.animationType != Animation.NONE) { offset = -(angle / 135) * 1 / 2f + 10 / 16f; - PartialModel partialModel = (clock.animationType == Animation.PIG ? AllBlockPartials.CUCKOO_PIG : AllBlockPartials.CUCKOO_CREEPER); + PartialModel partialModel = (be.animationType == Animation.PIG ? AllBlockPartials.CUCKOO_PIG : AllBlockPartials.CUCKOO_CREEPER); SuperByteBuffer figure = CachedBufferer.partial(partialModel, blockState); figure.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(direction.getCounterClockWise()))); @@ -90,7 +88,7 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer { } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(CuckooClockBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllBlockPartials.SHAFT_HALF, state, state .getValue(CuckooClockBlock.HORIZONTAL_FACING) .getOpposite()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/ShaftlessCogwheelInstance.java similarity index 89% rename from src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterInstance.java rename to src/main/java/com/simibubi/create/content/contraptions/components/crafter/ShaftlessCogwheelInstance.java index f85ecc139..58715c524 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/ShaftlessCogwheelInstance.java @@ -13,9 +13,9 @@ import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import net.minecraft.core.Direction; -public class MechanicalCrafterInstance extends SingleRotatingInstance { +public class ShaftlessCogwheelInstance extends SingleRotatingInstance { - public MechanicalCrafterInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public ShaftlessCogwheelInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java index aa9fbc479..410ca9d82 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java @@ -12,15 +12,13 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class HandCrankInstance extends SingleRotatingInstance implements DynamicInstance { +public class HandCrankInstance extends SingleRotatingInstance implements DynamicInstance { - private final HandCrankBlockEntity blockEntity; private ModelData crank; private Direction facing; public HandCrankInstance(MaterialManager modelManager, HandCrankBlockEntity blockEntity) { super(modelManager, blockEntity); - this.blockEntity = blockEntity; Block block = blockState.getBlock(); PartialModel renderedHandle = null; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankRenderer.java index d3c56cb28..a6c883b67 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankRenderer.java @@ -5,7 +5,6 @@ import static net.minecraft.world.level.block.state.properties.BlockStatePropert import com.jozufozu.flywheel.backend.Backend; import com.jozufozu.flywheel.core.PartialModel; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -17,14 +16,14 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -public class HandCrankRenderer extends KineticBlockEntityRenderer { +public class HandCrankRenderer extends KineticBlockEntityRenderer { public HandCrankRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(HandCrankBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); @@ -40,9 +39,8 @@ public class HandCrankRenderer extends KineticBlockEntityRenderer { Direction facing = state.getValue(FACING); SuperByteBuffer handle = CachedBufferer.partialFacing(renderedHandle, state, facing.getOpposite()); - HandCrankBlockEntity crank = (HandCrankBlockEntity) be; kineticRotationTransform(handle, be, facing.getAxis(), - (crank.independentAngle + partialTicks * crank.chasingVelocity) / 360, light); + (be.independentAngle + partialTicks * be.chasingVelocity) / 360, light); handle.renderInto(ms, buffer.getBuffer(RenderType.solid())); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java index 6d4525f38..d09ee6ada 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java @@ -10,7 +10,6 @@ import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.materials.oriented.OrientedData; import com.mojang.math.Quaternion; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; @@ -20,9 +19,8 @@ import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; import net.minecraft.util.Mth; -public class DeployerInstance extends ShaftInstance implements DynamicInstance, TickableInstance { +public class DeployerInstance extends ShaftInstance implements DynamicInstance, TickableInstance { - final DeployerBlockEntity blockEntity; final Direction facing; final float yRot; final float xRot; @@ -35,10 +33,9 @@ public class DeployerInstance extends ShaftInstance implements DynamicInstance, PartialModel currentHand; float progress; - public DeployerInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public DeployerInstance(MaterialManager materialManager, DeployerBlockEntity blockEntity) { super(materialManager, blockEntity); - this.blockEntity = (DeployerBlockEntity) super.blockEntity; facing = blockState.getValue(FACING); boolean rotatePole = blockState.getValue(AXIS_ALONG_FIRST_COORDINATE) ^ facing.getAxis() == Direction.Axis.Z; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java index 89cd528d8..9cd168227 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java @@ -6,7 +6,6 @@ import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -19,14 +18,14 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; import net.minecraft.util.Mth; -public class EncasedFanRenderer extends KineticBlockEntityRenderer { +public class EncasedFanRenderer extends KineticBlockEntityRenderer { public EncasedFanRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(EncasedFanBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelInstance.java similarity index 93% rename from src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java rename to src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelInstance.java index d15f73ce6..e3bde94dc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelInstance.java @@ -12,13 +12,13 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; -public class FlyWheelInstance extends KineticBlockEntityInstance implements DynamicInstance { +public class FlywheelInstance extends KineticBlockEntityInstance implements DynamicInstance { protected final RotatingData shaft; protected final ModelData wheel; protected float lastAngle = Float.NaN; - public FlyWheelInstance(MaterialManager materialManager, FlywheelBlockEntity blockEntity) { + public FlywheelInstance(MaterialManager materialManager, FlywheelBlockEntity blockEntity) { super(materialManager, blockEntity); shaft = setup(getRotatingMaterial().getModel(shaft()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java index 48109bd36..8d6c3d271 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.flywheel; import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -14,14 +13,14 @@ import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class FlywheelRenderer extends KineticBlockEntityRenderer { +public class FlywheelRenderer extends KineticBlockEntityRenderer { public FlywheelRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(FlywheelBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); @@ -29,16 +28,15 @@ public class FlywheelRenderer extends KineticBlockEntityRenderer { return; BlockState blockState = be.getBlockState(); - FlywheelBlockEntity wte = (FlywheelBlockEntity) be; - float speed = wte.visualSpeed.getValue(partialTicks) * 3 / 10f; - float angle = wte.angle + speed * partialTicks; + float speed = be.visualSpeed.getValue(partialTicks) * 3 / 10f; + float angle = be.angle + speed * partialTicks; VertexConsumer vb = buffer.getBuffer(RenderType.solid()); renderFlywheel(be, ms, light, blockState, angle, vb); } - private void renderFlywheel(KineticBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle, + private void renderFlywheel(FlywheelBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle, VertexConsumer vb) { SuperByteBuffer wheel = CachedBufferer.block(blockState); kineticRotationTransform(wheel, be, getRotationAxisOf(be), AngleHelper.rad(angle), light); @@ -46,7 +44,7 @@ public class FlywheelRenderer extends KineticBlockEntityRenderer { } @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { + protected BlockState getRenderedBlockState(FlywheelBlockEntity be) { return shaft(getRotationAxisOf(be)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillStoneCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneCogInstance.java similarity index 71% rename from src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillStoneCogInstance.java rename to src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneCogInstance.java index bd1f0e681..a84ddd87f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillStoneCogInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneCogInstance.java @@ -3,13 +3,12 @@ package com.simibubi.create.content.contraptions.components.millstone; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -public class MillStoneCogInstance extends SingleRotatingInstance { +public class MillstoneCogInstance extends SingleRotatingInstance { - public MillStoneCogInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public MillstoneCogInstance(MaterialManager materialManager, MillstoneBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneRenderer.java index 42be20c26..3eaac36d5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneRenderer.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.millstone; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -9,14 +8,14 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class MillstoneRenderer extends KineticBlockEntityRenderer { +public class MillstoneRenderer extends KineticBlockEntityRenderer { public MillstoneRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(MillstoneBlockEntity be, BlockState state) { return CachedBufferer.partial(AllBlockPartials.MILLSTONE_COG, state); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java index 481052098..86796f54b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java @@ -4,7 +4,6 @@ import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -16,33 +15,32 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; -public class MechanicalMixerRenderer extends KineticBlockEntityRenderer { +public class MechanicalMixerRenderer extends KineticBlockEntityRenderer { public MechanicalMixerRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity be) { + public boolean shouldRenderOffScreen(MechanicalMixerBlockEntity be) { return true; } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(MechanicalMixerBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; BlockState blockState = be.getBlockState(); - MechanicalMixerBlockEntity mixer = (MechanicalMixerBlockEntity) be; VertexConsumer vb = buffer.getBuffer(RenderType.solid()); SuperByteBuffer superBuffer = CachedBufferer.partial(AllBlockPartials.SHAFTLESS_COGWHEEL, blockState); standardKineticRotationTransform(superBuffer, be, light).renderInto(ms, vb); - float renderedHeadOffset = mixer.getRenderedHeadOffset(partialTicks); - float speed = mixer.getRenderedHeadRotationSpeed(partialTicks); + float renderedHeadOffset = be.getRenderedHeadOffset(partialTicks); + float speed = be.getRenderedHeadRotationSpeed(partialTicks); float time = AnimationTickHolder.getRenderTime(be.getLevel()); float angle = ((time * speed * 6 / 10f) % 360) / 180 * (float) Math.PI; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorRenderer.java index eebc6c491..650749aaa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorRenderer.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.motor; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -9,14 +8,14 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class CreativeMotorRenderer extends KineticBlockEntityRenderer { +public class CreativeMotorRenderer extends KineticBlockEntityRenderer { public CreativeMotorRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(CreativeMotorBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllBlockPartials.SHAFT_HALF, state); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java index 793f4e597..0d3cf424b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java @@ -5,7 +5,6 @@ import static net.minecraft.world.level.block.state.properties.BlockStatePropert import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -15,19 +14,19 @@ import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class MechanicalPressRenderer extends KineticBlockEntityRenderer { +public class MechanicalPressRenderer extends KineticBlockEntityRenderer { public MechanicalPressRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity be) { + public boolean shouldRenderOffScreen(MechanicalPressBlockEntity be) { return true; } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(MechanicalPressBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); @@ -35,7 +34,7 @@ public class MechanicalPressRenderer extends KineticBlockEntityRenderer { return; BlockState blockState = be.getBlockState(); - PressingBehaviour pressingBehaviour = ((MechanicalPressBlockEntity) be).getPressingBehaviour(); + PressingBehaviour pressingBehaviour = be.getPressingBehaviour(); float renderedHeadOffset = pressingBehaviour.getRenderedHeadOffset(partialTicks) * pressingBehaviour.mode.headOffset; @@ -47,7 +46,7 @@ public class MechanicalPressRenderer extends KineticBlockEntityRenderer { } @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { + protected BlockState getRenderedBlockState(MechanicalPressBlockEntity be) { return shaft(getRotationAxisOf(be)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java index 1b84d746a..a240ecc47 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java @@ -11,14 +11,12 @@ import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; -public class PressInstance extends ShaftInstance implements DynamicInstance { +public class PressInstance extends ShaftInstance implements DynamicInstance { private final OrientedData pressHead; - private final MechanicalPressBlockEntity press; public PressInstance(MaterialManager materialManager, MechanicalPressBlockEntity blockEntity) { super(materialManager, blockEntity); - press = blockEntity; pressHead = materialManager.defaultSolid() .material(Materials.ORIENTED) @@ -39,7 +37,7 @@ public class PressInstance extends ShaftInstance implements DynamicInstance { } private void transformModels() { - float renderedHeadOffset = getRenderedHeadOffset(press); + float renderedHeadOffset = getRenderedHeadOffset(blockEntity); pressHead.setPosition(getInstancePosition()) .nudge(0, -renderedHeadOffset, 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawInstance.java index 85ba42a7b..44aa878ee 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawInstance.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.saw; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; @@ -12,9 +11,9 @@ import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class SawInstance extends SingleRotatingInstance { +public class SawInstance extends SingleRotatingInstance { - public SawInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public SawInstance(MaterialManager materialManager, SawBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java index 6212c3378..afee11ed2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java @@ -15,9 +15,7 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class BearingInstance extends BackHalfShaftInstance implements DynamicInstance { - final B bearing; - +public class BearingInstance extends BackHalfShaftInstance implements DynamicInstance { final OrientedData topInstance; final Vector3f rotationAxis; @@ -25,7 +23,6 @@ public class BearingInstance public BearingInstance(MaterialManager materialManager, B blockEntity) { super(materialManager, blockEntity); - this.bearing = blockEntity; Direction facing = blockState.getValue(BlockStateProperties.FACING); rotationAxis = Direction.get(Direction.AxisDirection.POSITIVE, axis).step(); @@ -33,7 +30,7 @@ public class BearingInstance blockOrientation = getBlockStateOrientation(facing); PartialModel top = - bearing.isWoodenTop() ? AllBlockPartials.BEARING_TOP_WOODEN : AllBlockPartials.BEARING_TOP; + blockEntity.isWoodenTop() ? AllBlockPartials.BEARING_TOP_WOODEN : AllBlockPartials.BEARING_TOP; topInstance = getOrientedMaterial().getModel(top, blockState).createInstance(); @@ -43,7 +40,7 @@ public class BearingInstance @Override public void beginFrame() { - float interpolatedAngle = bearing.getInterpolatedAngle(AnimationTickHolder.getPartialTicks() - 1); + float interpolatedAngle = blockEntity.getInterpolatedAngle(AnimationTickHolder.getPartialTicks() - 1); Quaternion rot = rotationAxis.rotationDegrees(interpolatedAngle); rot.mul(blockOrientation); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java index 6fadb3b93..386afeeb2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java @@ -17,28 +17,27 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class BearingRenderer extends KineticBlockEntityRenderer { +public class BearingRenderer extends KineticBlockEntityRenderer { public BearingRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(T be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; super.renderSafe(be, partialTicks, ms, buffer, light, overlay); - IBearingBlockEntity bearingBE = (IBearingBlockEntity) be; final Direction facing = be.getBlockState() .getValue(BlockStateProperties.FACING); PartialModel top = - bearingBE.isWoodenTop() ? AllBlockPartials.BEARING_TOP_WOODEN : AllBlockPartials.BEARING_TOP; + be.isWoodenTop() ? AllBlockPartials.BEARING_TOP_WOODEN : AllBlockPartials.BEARING_TOP; SuperByteBuffer superBuffer = CachedBufferer.partial(top, be.getBlockState()); - float interpolatedAngle = bearingBE.getInterpolatedAngle(partialTicks - 1); + float interpolatedAngle = be.getInterpolatedAngle(partialTicks - 1); kineticRotationTransform(superBuffer, be, facing.getAxis(), (float) (interpolatedAngle / 180 * Math.PI), light); if (facing.getAxis() diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyInstance.java index 6ac654ea8..bb99d58c1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyInstance.java @@ -3,13 +3,12 @@ package com.simibubi.create.content.contraptions.components.structureMovement.el import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.light.TickingLightListener; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; // TODO -public class ElevatorPulleyInstance extends ShaftInstance implements DynamicInstance, TickingLightListener { +public class ElevatorPulleyInstance extends ShaftInstance implements DynamicInstance, TickingLightListener { - public ElevatorPulleyInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public ElevatorPulleyInstance(MaterialManager materialManager, ElevatorPulleyBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyRenderer.java index 43fe9e1c9..02844c052 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorPulleyRenderer.java @@ -7,7 +7,6 @@ import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.AbstractPulleyRenderer; -import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlockEntity; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyRenderer; import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.render.CachedBufferer; @@ -21,14 +20,14 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; -public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer { +public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer { public ElevatorPulleyRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(ElevatorPulleyBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { // if (Backend.canUseInstancing(be.getLevel())) @@ -41,7 +40,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer { renderRotatingBuffer(be, getRotatedModel(be, state), ms, buffer.getBuffer(type), light); // - float offset = PulleyRenderer.getBlockEntityOffset(partialTicks, (PulleyBlockEntity) be); + float offset = PulleyRenderer.getBlockEntityOffset(partialTicks, be); boolean running = PulleyRenderer.isPulleyRunning(be); SpriteShiftEntry beltShift = AllSpriteShifts.ELEVATOR_BELT; @@ -100,7 +99,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer { } @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { + protected BlockState getRenderedBlockState(ElevatorPulleyBlockEntity be) { return shaft(getRotationAxisOf(be)); } @@ -116,7 +115,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer { } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity p_188185_1_) { + public boolean shouldRenderOffScreen(ElevatorPulleyBlockEntity p_188185_1_) { return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java index 4742c74cb..404bf6d2e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java @@ -4,7 +4,6 @@ import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; import com.simibubi.create.foundation.utility.AngleHelper; @@ -14,7 +13,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; -public class GantryCarriageInstance extends ShaftInstance implements DynamicInstance { +public class GantryCarriageInstance extends ShaftInstance implements DynamicInstance { private final ModelData gantryCogs; @@ -26,7 +25,7 @@ public class GantryCarriageInstance extends ShaftInstance implements DynamicInst private float lastAngle = Float.NaN; - public GantryCarriageInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public GantryCarriageInstance(MaterialManager materialManager, GantryCarriageBlockEntity blockEntity) { super(materialManager, blockEntity); gantryCogs = getTransformMaterial() @@ -56,7 +55,7 @@ public class GantryCarriageInstance extends ShaftInstance implements DynamicInst } private float getCogAngle() { - return GantryCarriageRenderer.getAngleForTe(blockEntity, visualPos, rotationAxis) * rotationMult; + return GantryCarriageRenderer.getAngleForBE(blockEntity, visualPos, rotationAxis) * rotationMult; } private void animateCogs(float cogAngle) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java index ab01a4989..f927715e0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java @@ -20,14 +20,14 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.world.level.block.state.BlockState; -public class GantryCarriageRenderer extends KineticBlockEntityRenderer { +public class GantryCarriageRenderer extends KineticBlockEntityRenderer { public GantryCarriageRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(GantryCarriageBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); @@ -40,7 +40,7 @@ public class GantryCarriageRenderer extends KineticBlockEntityRenderer { BlockPos visualPos = facing.getAxisDirection() == AxisDirection.POSITIVE ? be.getBlockPos() : be.getBlockPos() .relative(facing.getOpposite()); - float angleForBE = getAngleForTe(be, visualPos, rotationAxis); + float angleForBE = getAngleForBE(be, visualPos, rotationAxis); Axis gantryAxis = Axis.X; for (Axis axis : Iterate.axes) @@ -69,14 +69,14 @@ public class GantryCarriageRenderer extends KineticBlockEntityRenderer { } - public static float getAngleForTe(KineticBlockEntity be, final BlockPos pos, Axis axis) { + public static float getAngleForBE(KineticBlockEntity be, final BlockPos pos, Axis axis) { float time = AnimationTickHolder.getRenderTime(be.getLevel()); float offset = getRotationOffsetForPosition(be, pos, axis); return (time * be.getSpeed() * 3f / 20 + offset) % 360; } @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { + protected BlockState getRenderedBlockState(GantryCarriageBlockEntity be) { return shaft(getRotationAxisOf(be)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonRenderer.java index 1a3e537c2..9b36fc6d6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonRenderer.java @@ -1,19 +1,18 @@ package com.simibubi.create.content.contraptions.components.structureMovement.piston; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class MechanicalPistonRenderer extends KineticBlockEntityRenderer { +public class MechanicalPistonRenderer extends KineticBlockEntityRenderer { public MechanicalPistonRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { + protected BlockState getRenderedBlockState(MechanicalPistonBlockEntity be) { return shaft(getRotationAxisOf(be)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyInstance.java index 2cb4b329c..6a8bad079 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyInstance.java @@ -20,7 +20,7 @@ import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.LightLayer; -public abstract class AbstractPulleyInstance extends ShaftInstance implements DynamicInstance, TickingLightListener { +public abstract class AbstractPulleyInstance extends ShaftInstance implements DynamicInstance, TickingLightListener { final OrientedData coil; final SelectInstance magnet; @@ -34,7 +34,7 @@ public abstract class AbstractPulleyInstance extends ShaftInstance implements Dy private final GridAlignedBB volume = new GridAlignedBB(); private final LightVolume light; - public AbstractPulleyInstance(MaterialManager dispatcher, KineticBlockEntity blockEntity) { + public AbstractPulleyInstance(MaterialManager dispatcher, T blockEntity) { super(dispatcher, blockEntity); rotatingAbout = Direction.get(Direction.AxisDirection.POSITIVE, axis); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java index 77580525e..46c2e76ff 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java @@ -23,7 +23,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.state.BlockState; -public abstract class AbstractPulleyRenderer extends KineticBlockEntityRenderer { +public abstract class AbstractPulleyRenderer extends KineticBlockEntityRenderer { private PartialModel halfRope; private PartialModel halfMagnet; @@ -36,12 +36,12 @@ public abstract class AbstractPulleyRenderer extends KineticBlockEntityRenderer } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity p_188185_1_) { + public boolean shouldRenderOffScreen(T p_188185_1_) { return true; } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(T be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) @@ -89,24 +89,24 @@ public abstract class AbstractPulleyRenderer extends KineticBlockEntityRenderer .renderInto(ms, buffer); } - protected abstract Axis getShaftAxis(KineticBlockEntity be); + protected abstract Axis getShaftAxis(T be); protected abstract PartialModel getCoil(); - protected abstract SuperByteBuffer renderRope(KineticBlockEntity be); + protected abstract SuperByteBuffer renderRope(T be); - protected abstract SuperByteBuffer renderMagnet(KineticBlockEntity be); + protected abstract SuperByteBuffer renderMagnet(T be); - protected abstract float getOffset(KineticBlockEntity be, float partialTicks); + protected abstract float getOffset(T be, float partialTicks); - protected abstract boolean isRunning(KineticBlockEntity be); + protected abstract boolean isRunning(T be); @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { + protected BlockState getRenderedBlockState(T be) { return shaft(getShaftAxis(be)); } - protected SuperByteBuffer getRotatedCoil(KineticBlockEntity be) { + protected SuperByteBuffer getRotatedCoil(T be) { BlockState blockState = be.getBlockState(); return CachedBufferer.partialFacing(getCoil(), blockState, Direction.get(AxisDirection.POSITIVE, getShaftAxis(be))); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java index 00423907b..493942919 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java @@ -8,7 +8,7 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.fluids.actors.HosePulleyBlockEntity; import com.simibubi.create.foundation.utility.AnimationTickHolder; -public class HosePulleyInstance extends AbstractPulleyInstance { +public class HosePulleyInstance extends AbstractPulleyInstance { public HosePulleyInstance(MaterialManager dispatcher, HosePulleyBlockEntity blockEntity) { super(dispatcher, blockEntity); @@ -39,7 +39,7 @@ public class HosePulleyInstance extends AbstractPulleyInstance { } protected float getOffset() { - return ((HosePulleyBlockEntity) blockEntity).getInterpolatedOffset(AnimationTickHolder.getPartialTicks()); + return blockEntity.getInterpolatedOffset(AnimationTickHolder.getPartialTicks()); } protected boolean isRunning() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/PulleyRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/PulleyRenderer.java index fa0d39be7..1f0a330f5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/PulleyRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/PulleyRenderer.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.pu import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -12,14 +11,14 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction.Axis; import net.minecraft.util.Mth; -public class PulleyRenderer extends AbstractPulleyRenderer { +public class PulleyRenderer extends AbstractPulleyRenderer { public PulleyRenderer(BlockEntityRendererProvider.Context context) { super(context, AllBlockPartials.ROPE_HALF, AllBlockPartials.ROPE_HALF_MAGNET); } @Override - protected Axis getShaftAxis(KineticBlockEntity be) { + protected Axis getShaftAxis(PulleyBlockEntity be) { return be.getBlockState() .getValue(PulleyBlock.HORIZONTAL_AXIS); } @@ -30,29 +29,27 @@ public class PulleyRenderer extends AbstractPulleyRenderer { } @Override - protected SuperByteBuffer renderRope(KineticBlockEntity be) { + protected SuperByteBuffer renderRope(PulleyBlockEntity be) { return CachedBufferer.block(AllBlocks.ROPE.getDefaultState()); } @Override - protected SuperByteBuffer renderMagnet(KineticBlockEntity be) { + protected SuperByteBuffer renderMagnet(PulleyBlockEntity be) { return CachedBufferer.block(AllBlocks.PULLEY_MAGNET.getDefaultState()); } @Override - protected float getOffset(KineticBlockEntity be, float partialTicks) { - PulleyBlockEntity pulley = (PulleyBlockEntity) be; - return getBlockEntityOffset(partialTicks, pulley); + protected float getOffset(PulleyBlockEntity be, float partialTicks) { + return getBlockEntityOffset(partialTicks, be); } @Override - protected boolean isRunning(KineticBlockEntity be) { + protected boolean isRunning(PulleyBlockEntity be) { return isPulleyRunning(be); } - - public static boolean isPulleyRunning(KineticBlockEntity be) { - PulleyBlockEntity pte = (PulleyBlockEntity) be; - return pte.running || pte.mirrorParent != null || be.isVirtual(); + + public static boolean isPulleyRunning(PulleyBlockEntity be) { + return be.running || be.mirrorParent != null || be.isVirtual(); } public static float getBlockEntityOffset(float partialTicks, PulleyBlockEntity blockEntity) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java index 31fc83883..3b17a2d36 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java @@ -8,7 +8,7 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.utility.AnimationTickHolder; -public class RopePulleyInstance extends AbstractPulleyInstance { +public class RopePulleyInstance extends AbstractPulleyInstance { public RopePulleyInstance(MaterialManager materialManager, PulleyBlockEntity blockEntity) { super(materialManager, blockEntity); } @@ -35,7 +35,7 @@ public class RopePulleyInstance extends AbstractPulleyInstance { protected float getOffset() { float partialTicks = AnimationTickHolder.getPartialTicks(); - return PulleyRenderer.getBlockEntityOffset(partialTicks, (PulleyBlockEntity) blockEntity); + return PulleyRenderer.getBlockEntityOffset(partialTicks, blockEntity); } protected boolean isRunning() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java index 40bdc256a..2cbf9570f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java @@ -16,9 +16,8 @@ import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class PumpCogInstance extends SingleRotatingInstance implements DynamicInstance { +public class PumpCogInstance extends SingleRotatingInstance implements DynamicInstance { - private final PumpBlockEntity blockEntity = (PumpBlockEntity) super.blockEntity; private final ModelData[] arrows = new ModelData[2]; private final Direction direction = blockState.getValue(PumpBlock.FACING); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java index 6aca7f77e..fcae43027 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.fluids; import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -17,22 +16,20 @@ import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -public class PumpRenderer extends KineticBlockEntityRenderer { +public class PumpRenderer extends KineticBlockEntityRenderer { public PumpRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(PumpBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); if (Backend.canUseInstancing(be.getLevel())) return; - if (!(be instanceof PumpBlockEntity pump)) - return; Vec3 rotationOffset = new Vec3(.5, 14 / 16f, .5); BlockState blockState = be.getBlockState(); - float angle = Mth.lerp(pump.arrowDirection.getValue(partialTicks), 0, 90) - 90; + float angle = Mth.lerp(be.arrowDirection.getValue(partialTicks), 0, 90) - 90; SuperByteBuffer arrow = CachedBufferer.partial(AllBlockPartials.MECHANICAL_PUMP_ARROW, blockState); for (float yRot : new float[] { 0, 90 }) { Direction direction = blockState.getValue(PumpBlock.FACING); @@ -50,7 +47,7 @@ public class PumpRenderer extends KineticBlockEntityRenderer { } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(PumpBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllBlockPartials.MECHANICAL_PUMP_COG, state); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyRenderer.java index b76374920..043fd43fd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyRenderer.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.fluids.actors; import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.AbstractPulleyRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -10,14 +9,14 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction.Axis; -public class HosePulleyRenderer extends AbstractPulleyRenderer { +public class HosePulleyRenderer extends AbstractPulleyRenderer { public HosePulleyRenderer(BlockEntityRendererProvider.Context context) { super(context, AllBlockPartials.HOSE_HALF, AllBlockPartials.HOSE_HALF_MAGNET); } @Override - protected Axis getShaftAxis(KineticBlockEntity be) { + protected Axis getShaftAxis(HosePulleyBlockEntity be) { return be.getBlockState() .getValue(HosePulleyBlock.HORIZONTAL_FACING) .getClockWise() @@ -30,22 +29,22 @@ public class HosePulleyRenderer extends AbstractPulleyRenderer { } @Override - protected SuperByteBuffer renderRope(KineticBlockEntity be) { + protected SuperByteBuffer renderRope(HosePulleyBlockEntity be) { return CachedBufferer.partial(AllBlockPartials.HOSE, be.getBlockState()); } @Override - protected SuperByteBuffer renderMagnet(KineticBlockEntity be) { + protected SuperByteBuffer renderMagnet(HosePulleyBlockEntity be) { return CachedBufferer.partial(AllBlockPartials.HOSE_MAGNET, be.getBlockState()); } @Override - protected float getOffset(KineticBlockEntity be, float partialTicks) { - return ((HosePulleyBlockEntity) be).getInterpolatedOffset(partialTicks); + protected float getOffset(HosePulleyBlockEntity be, float partialTicks) { + return be.getInterpolatedOffset(partialTicks); } @Override - protected boolean isRunning(KineticBlockEntity be) { + protected boolean isRunning(HosePulleyBlockEntity be) { return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java index 0521ce9b1..55784315b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java @@ -5,7 +5,6 @@ import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.core.Materials; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; import com.simibubi.create.foundation.utility.AngleHelper; @@ -14,18 +13,16 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.util.Mth; -public class FluidValveInstance extends ShaftInstance implements DynamicInstance { +public class FluidValveInstance extends ShaftInstance implements DynamicInstance { - private final FluidValveBlockEntity blockEntity; protected ModelData pointer; protected final double xRot; protected final double yRot; protected final int pointerRotationOffset; - public FluidValveInstance(MaterialManager dispatcher, KineticBlockEntity blockEntity) { + public FluidValveInstance(MaterialManager dispatcher, FluidValveBlockEntity blockEntity) { super(dispatcher, blockEntity); - this.blockEntity = (FluidValveBlockEntity) blockEntity; Direction facing = blockState.getValue(FluidValveBlock.FACING); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java index fc216226b..f8bdaeaf4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.fluids.pipes; import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -17,14 +16,14 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -public class FluidValveRenderer extends KineticBlockEntityRenderer { +public class FluidValveRenderer extends KineticBlockEntityRenderer { public FluidValveRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(FluidValveBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; @@ -34,12 +33,9 @@ public class FluidValveRenderer extends KineticBlockEntityRenderer { SuperByteBuffer pointer = CachedBufferer.partial(AllBlockPartials.FLUID_VALVE_POINTER, blockState); Direction facing = blockState.getValue(FluidValveBlock.FACING); - if (!(be instanceof FluidValveBlockEntity valve)) - return; - - float pointerRotation = Mth.lerp(valve.pointer.getValue(partialTicks), 0, -90); + float pointerRotation = Mth.lerp(be.pointer.getValue(partialTicks), 0, -90); Axis pipeAxis = FluidValveBlock.getPipeAxis(blockState); - Axis shaftAxis = KineticBlockEntityRenderer.getRotationAxisOf(be); + Axis shaftAxis = getRotationAxisOf(be); int pointerRotationOffset = 0; if (pipeAxis.isHorizontal() && shaftAxis == Axis.X || pipeAxis.isVertical()) @@ -55,8 +51,8 @@ public class FluidValveRenderer extends KineticBlockEntityRenderer { } @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { - return KineticBlockEntityRenderer.shaft(KineticBlockEntityRenderer.getRotationAxisOf(be)); + protected BlockState getRenderedBlockState(FluidValveBlockEntity be) { + return shaft(getRotationAxisOf(be)); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityInstance.java index 8cec798ae..9be65a592 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityInstance.java @@ -6,7 +6,6 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; @@ -16,11 +15,11 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; -public class BracketedKineticBlockEntityInstance extends SingleRotatingInstance { +public class BracketedKineticBlockEntityInstance extends SingleRotatingInstance { protected RotatingData additionalShaft; - public BracketedKineticBlockEntityInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public BracketedKineticBlockEntityInstance(MaterialManager materialManager, BracketedKineticBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityRenderer.java index ff8de0e36..4d139300f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockEntityRenderer.java @@ -4,7 +4,6 @@ import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -18,14 +17,14 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; -public class BracketedKineticBlockEntityRenderer extends KineticBlockEntityRenderer { +public class BracketedKineticBlockEntityRenderer extends KineticBlockEntityRenderer { public BracketedKineticBlockEntityRenderer(Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(BracketedKineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java index 857b0c57d..169857fd5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java @@ -4,8 +4,8 @@ import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.IRotate; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticBlockEntity; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.Iterate; @@ -18,7 +18,7 @@ import net.minecraft.core.Direction.AxisDirection; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -public class EncasedCogRenderer extends KineticBlockEntityRenderer { +public class EncasedCogRenderer extends KineticBlockEntityRenderer { private boolean large; @@ -36,7 +36,7 @@ public class EncasedCogRenderer extends KineticBlockEntityRenderer { } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(SimpleKineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); if (Backend.canUseInstancing(be.getLevel())) @@ -57,7 +57,7 @@ public class EncasedCogRenderer extends KineticBlockEntityRenderer { } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(SimpleKineticBlockEntity be, BlockState state) { return CachedBufferer.partialFacingVertical( large ? AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL : AllBlockPartials.SHAFTLESS_COGWHEEL, state, Direction.fromAxisAndDirection(state.getValue(EncasedCogwheelBlock.AXIS), AxisDirection.POSITIVE)); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftInstance.java index e88295e77..9002a14a0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftInstance.java @@ -6,9 +6,9 @@ import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import net.minecraft.world.level.block.state.BlockState; -public class ShaftInstance extends SingleRotatingInstance { +public class ShaftInstance extends SingleRotatingInstance { - public ShaftInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public ShaftInstance(MaterialManager materialManager, T blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftRenderer.java index 3f506dd2d..f24aee62f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftRenderer.java @@ -6,7 +6,7 @@ import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class ShaftRenderer extends KineticBlockEntityRenderer { +public class ShaftRenderer extends KineticBlockEntityRenderer { public ShaftRenderer(BlockEntityRendererProvider.Context context) { super(context); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java index fdeca2837..a1a86181f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java @@ -4,7 +4,6 @@ import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.IRotate; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -19,14 +18,14 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.Block; -public class SplitShaftRenderer extends KineticBlockEntityRenderer { +public class SplitShaftRenderer extends KineticBlockEntityRenderer { public SplitShaftRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(SplitShaftBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; @@ -42,10 +41,7 @@ public class SplitShaftRenderer extends KineticBlockEntityRenderer { float offset = getRotationOffsetForPosition(be, pos, axis); float angle = (time * be.getSpeed() * 3f / 10) % 360; - float modifier = 1; - - if (be instanceof SplitShaftBlockEntity) - modifier = ((SplitShaftBlockEntity) be).getRotationSpeedModifier(direction); + float modifier = be.getRotationSpeedModifier(direction); angle *= modifier; angle += offset; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java index c37657056..f46ba930c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java @@ -9,7 +9,6 @@ import com.jozufozu.flywheel.core.materials.model.ModelData; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.Couple; @@ -18,18 +17,17 @@ import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.util.Mth; -public abstract class GaugeInstance extends ShaftInstance implements DynamicInstance { +public abstract class GaugeInstance extends ShaftInstance implements DynamicInstance { protected final ArrayList faces; protected PoseStack ms; - protected GaugeInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + protected GaugeInstance(MaterialManager materialManager, GaugeBlockEntity blockEntity) { super(materialManager, blockEntity); faces = new ArrayList<>(2); - GaugeBlockEntity gaugeBlockEntity = (GaugeBlockEntity) blockEntity; GaugeBlock gaugeBlock = (GaugeBlock) blockState.getBlock(); Instancer dialModel = getTransformMaterial().getModel(AllBlockPartials.GAUGE_DIAL, blockState); @@ -39,7 +37,7 @@ public abstract class GaugeInstance extends ShaftInstance implements DynamicInst TransformStack msr = TransformStack.cast(ms); msr.translate(getInstancePosition()); - float progress = Mth.lerp(AnimationTickHolder.getPartialTicks(), gaugeBlockEntity.prevDialState, gaugeBlockEntity.dialState); + float progress = Mth.lerp(AnimationTickHolder.getPartialTicks(), blockEntity.prevDialState, blockEntity.dialState); for (Direction facing : Iterate.directions) { if (!gaugeBlock.shouldRenderHeadOnFace(world, pos, blockState, facing)) @@ -144,7 +142,7 @@ public abstract class GaugeInstance extends ShaftInstance implements DynamicInst } public static class Speed extends GaugeInstance { - public Speed(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public Speed(MaterialManager materialManager, GaugeBlockEntity blockEntity) { super(materialManager, blockEntity); } @@ -155,7 +153,7 @@ public abstract class GaugeInstance extends ShaftInstance implements DynamicInst } public static class Stress extends GaugeInstance { - public Stress(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public Stress(MaterialManager materialManager, GaugeBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java index 6bd58bef2..1a504a459 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java @@ -6,7 +6,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticBlockEntity; -import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.contraptions.relays.encased.ShaftRenderer; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock.Type; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -19,7 +19,7 @@ import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -public class GaugeRenderer extends KineticBlockEntityRenderer { +public class GaugeRenderer extends ShaftRenderer { protected GaugeBlock.Type type; @@ -70,11 +70,6 @@ public class GaugeRenderer extends KineticBlockEntityRenderer { } } - @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { - return shaft(getRotationAxisOf(be)); - } - protected SuperByteBuffer rotateBufferTowards(SuperByteBuffer buffer, Direction target) { return buffer.rotateCentered(Direction.UP, (float) ((-target.toYRot() - 90) / 180 * Math.PI)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java index 4d2010b18..6b3fb4cec 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.relays.gearbox; import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -18,14 +17,14 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -public class GearboxRenderer extends KineticBlockEntityRenderer { +public class GearboxRenderer extends KineticBlockEntityRenderer { public GearboxRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(GearboxBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java index 6e0d52896..8aa7e3f63 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java @@ -2,13 +2,12 @@ package com.simibubi.create.content.curiosities.armor; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -public class BacktankInstance extends SingleRotatingInstance { +public class BacktankInstance extends SingleRotatingInstance { - public BacktankInstance(MaterialManager materialManager, KineticBlockEntity blockEntity) { + public BacktankInstance(MaterialManager materialManager, BacktankBlockEntity blockEntity) { super(materialManager, blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java index 34a0b49d1..a19cdbd30 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java @@ -4,7 +4,6 @@ import com.jozufozu.flywheel.core.PartialModel; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -17,13 +16,13 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; -public class BacktankRenderer extends KineticBlockEntityRenderer { +public class BacktankRenderer extends KineticBlockEntityRenderer { public BacktankRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(BacktankBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); @@ -41,7 +40,7 @@ public class BacktankRenderer extends KineticBlockEntityRenderer { } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(BacktankBlockEntity be, BlockState state) { return CachedBufferer.partial(getShaftModel(state), state); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java index 440762883..dbe86038f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java @@ -9,9 +9,7 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.util.Mth; -public class EjectorInstance extends ShaftInstance implements DynamicInstance { - - protected final EjectorBlockEntity blockEntity; +public class EjectorInstance extends ShaftInstance implements DynamicInstance { protected final ModelData plate; @@ -19,7 +17,6 @@ public class EjectorInstance extends ShaftInstance implements DynamicInstance { public EjectorInstance(MaterialManager dispatcher, EjectorBlockEntity blockEntity) { super(dispatcher, blockEntity); - this.blockEntity = blockEntity; plate = getTransformMaterial().getModel(AllBlockPartials.EJECTOR_TOP, blockState).createInstance(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java index ec1654c57..4da9dc9bb 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java @@ -8,7 +8,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticBlockEntity; -import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.contraptions.relays.encased.ShaftRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.AngleHelper; @@ -21,10 +21,9 @@ import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -public class EjectorRenderer extends KineticBlockEntityRenderer { +public class EjectorRenderer extends ShaftRenderer { static final Vec3 pivot = VecHelper.voxelSpace(0, 11.25, 0.75); @@ -33,18 +32,17 @@ public class EjectorRenderer extends KineticBlockEntityRenderer { } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity p_188185_1_) { + public boolean shouldRenderOffScreen(EjectorBlockEntity p_188185_1_) { return true; } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(EjectorBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); - EjectorBlockEntity ejector = (EjectorBlockEntity) be; VertexConsumer vertexBuilder = buffer.getBuffer(RenderType.solid()); - float lidProgress = ((EjectorBlockEntity) be).getLidProgress(partialTicks); + float lidProgress = be.getLidProgress(partialTicks); float angle = lidProgress * 70; if (!Backend.canUseInstancing(be.getLevel())) { @@ -57,18 +55,18 @@ public class EjectorRenderer extends KineticBlockEntityRenderer { TransformStack msr = TransformStack.cast(ms); float maxTime = - (float) (ejector.earlyTarget != null ? ejector.earlyTargetTime : ejector.launcher.getTotalFlyingTicks()); - for (IntAttached intAttached : ejector.launchedItems) { + (float) (be.earlyTarget != null ? be.earlyTargetTime : be.launcher.getTotalFlyingTicks()); + for (IntAttached intAttached : be.launchedItems) { float time = intAttached.getFirst() + partialTicks; if (time > maxTime) continue; ms.pushPose(); - Vec3 launchedItemLocation = ejector.getLaunchedItemLocation(time); + Vec3 launchedItemLocation = be.getLaunchedItemLocation(time); msr.translate(launchedItemLocation.subtract(Vec3.atLowerCornerOf(be.getBlockPos()))); Vec3 itemRotOffset = VecHelper.voxelSpace(0, 3, 0); msr.translate(itemRotOffset); - msr.rotateY(AngleHelper.horizontalAngle(ejector.getFacing())); + msr.rotateY(AngleHelper.horizontalAngle(be.getFacing())); msr.rotateX(time * 40); msr.translateBack(itemRotOffset); Minecraft.getInstance() @@ -105,9 +103,4 @@ public class EjectorRenderer extends KineticBlockEntityRenderer { .translateBack(rotationOffset); } - @Override - protected BlockState getRenderedBlockState(KineticBlockEntity be) { - return shaft(getRotationAxisOf(be)); - } - } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java index 7087b2684..766b30268 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java @@ -24,7 +24,7 @@ import net.minecraft.util.Mth; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; -public class ArmInstance extends SingleRotatingInstance implements DynamicInstance { +public class ArmInstance extends SingleRotatingInstance implements DynamicInstance { final ModelData base; final ModelData lowerBody; @@ -34,7 +34,6 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan private final ArrayList clawGrips; private final ArrayList models; - private final ArmBlockEntity arm; private final Boolean ceiling; private boolean firstRender = true; @@ -66,7 +65,6 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan clawGrips = Lists.newArrayList(clawGrip1, clawGrip2); models = Lists.newArrayList(base, lowerBody, upperBody, head, claw, clawGrip1, clawGrip2); - arm = blockEntity; ceiling = blockState.getValue(ArmBlock.CEILING); animateArm(false); @@ -74,7 +72,7 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan @Override public void beginFrame() { - if (arm.phase == ArmBlockEntity.Phase.DANCING && blockEntity.getSpeed() != 0) { + if (blockEntity.phase == ArmBlockEntity.Phase.DANCING && blockEntity.getSpeed() != 0) { animateArm(true); firstRender = true; return; @@ -82,10 +80,10 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan float pt = AnimationTickHolder.getPartialTicks(); - float baseAngleNow = arm.baseAngle.getValue(pt); - float lowerArmAngleNow = arm.lowerArmAngle.getValue(pt); - float upperArmAngleNow = arm.upperArmAngle.getValue(pt); - float headAngleNow = arm.headAngle.getValue(pt); + float baseAngleNow = blockEntity.baseAngle.getValue(pt); + float lowerArmAngleNow = blockEntity.lowerArmAngle.getValue(pt); + float upperArmAngleNow = blockEntity.upperArmAngle.getValue(pt); + float headAngleNow = blockEntity.headAngle.getValue(pt); boolean settled = Mth.equal(baseAngle, baseAngleNow) && Mth.equal(lowerArmAngle, lowerArmAngleNow) && Mth.equal(upperArmAngle, upperArmAngleNow) && Mth.equal(headAngle, headAngleNow); @@ -110,7 +108,7 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan int color; if (rave) { - float renderTick = AnimationTickHolder.getRenderTime(this.arm.getLevel()) + (blockEntity.hashCode() % 64); + float renderTick = AnimationTickHolder.getRenderTime(blockEntity.getLevel()) + (blockEntity.hashCode() % 64); baseAngle = (renderTick * 10) % 360; lowerArmAngle = Mth.lerp((Mth.sin(renderTick / 4) + 1) / 2, -45, 15); upperArmAngle = Mth.lerp((Mth.sin(renderTick / 8) + 1) / 4, -45, 95); @@ -150,7 +148,7 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan ArmRenderer.transformClaw(msr); claw.setTransform(msLocal); - ItemStack item = this.arm.heldItem; + ItemStack item = blockEntity.heldItem; ItemRenderer itemRenderer = Minecraft.getInstance() .getItemRenderer(); boolean hasItem = !item.isEmpty(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java index 8fb0060a9..815dab516 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java @@ -5,7 +5,6 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmBlockEntity.Phase; import com.simibubi.create.foundation.render.CachedBufferer; @@ -25,19 +24,18 @@ import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; -public class ArmRenderer extends KineticBlockEntityRenderer { +public class ArmRenderer extends KineticBlockEntityRenderer { public ArmRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float pt, PoseStack ms, MultiBufferSource buffer, int light, + protected void renderSafe(ArmBlockEntity be, float pt, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, pt, ms, buffer, light, overlay); - ArmBlockEntity arm = (ArmBlockEntity) be; - ItemStack item = arm.heldItem; + ItemStack item = be.heldItem; boolean hasItem = !item.isEmpty(); boolean usingFlywheel = Backend.canUseInstancing(be.getLevel()); @@ -63,7 +61,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer { float headAngle; int color; - boolean rave = arm.phase == Phase.DANCING && be.getSpeed() != 0; + boolean rave = be.phase == Phase.DANCING && be.getSpeed() != 0; if (rave) { float renderTick = AnimationTickHolder.getRenderTime(be.getLevel()) + (be.hashCode() % 64); baseAngle = (renderTick * 10) % 360; @@ -73,10 +71,10 @@ public class ArmRenderer extends KineticBlockEntityRenderer { color = Color.rainbowColor(AnimationTickHolder.getTicks() * 100) .getRGB(); } else { - baseAngle = arm.baseAngle.getValue(pt); - lowerArmAngle = arm.lowerArmAngle.getValue(pt) - 135; - upperArmAngle = arm.upperArmAngle.getValue(pt) - 90; - headAngle = arm.headAngle.getValue(pt); + baseAngle = be.baseAngle.getValue(pt); + lowerArmAngle = be.lowerArmAngle.getValue(pt) - 135; + upperArmAngle = be.upperArmAngle.getValue(pt) - 90; + headAngle = be.headAngle.getValue(pt); color = 0xFFFFFF; } @@ -197,12 +195,12 @@ public class ArmRenderer extends KineticBlockEntityRenderer { } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity be) { + public boolean shouldRenderOffScreen(ArmBlockEntity be) { return true; } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(ArmBlockEntity be, BlockState state) { return CachedBufferer.partial(AllBlockPartials.ARM_COG, state); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java index 36b65613e..a796c41f3 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java @@ -9,7 +9,6 @@ import com.mojang.blaze3d.vertex.PoseStack.Pose; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Matrix4f; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; @@ -34,14 +33,14 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -public class FlapDisplayRenderer extends KineticBlockEntityRenderer { +public class FlapDisplayRenderer extends KineticBlockEntityRenderer { public FlapDisplayRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(FlapDisplayBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { super.renderSafe(be, partialTicks, ms, buffer, light, overlay); @@ -50,13 +49,10 @@ public class FlapDisplayRenderer extends KineticBlockEntityRenderer { float scale = 1 / 32f; - if (!(be instanceof FlapDisplayBlockEntity flapTe)) + if (!be.isController) return; - if (!flapTe.isController) - return; - - List lines = flapTe.getLines(); + List lines = be.getLines(); ms.pushPose(); TransformStack.cast(ms) @@ -74,17 +70,17 @@ public class FlapDisplayRenderer extends KineticBlockEntityRenderer { for (int j = 0; j < lines.size(); j++) { List line = lines.get(j) .getSections(); - int color = flapTe.getLineColor(j); + int color = be.getLineColor(j); ms.pushPose(); float w = 0; for (FlapDisplaySection section : line) w += section.getSize() + (section.hasGap ? 8 : 1); - ms.translate(flapTe.xSize * 16 - w / 2 + 1, 4.5f, 0); + ms.translate(be.xSize * 16 - w / 2 + 1, 4.5f, 0); Pose transform = ms.last(); FlapDisplayRenderOutput renderOutput = new FlapDisplayRenderOutput(buffer, color, transform.pose(), light, - j, !be.isSpeedRequirementFulfilled(), be.getLevel(), flapTe.isLineGlowing(j)); + j, !be.isSpeedRequirementFulfilled(), be.getLevel(), be.isLineGlowing(j)); for (int i = 0; i < line.size(); i++) { FlapDisplaySection section = line.get(i); @@ -231,14 +227,14 @@ public class FlapDisplayRenderer extends KineticBlockEntityRenderer { } @Override - protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(FlapDisplayBlockEntity be, BlockState state) { return CachedBufferer.partialFacingVertical(AllBlockPartials.SHAFTLESS_COGWHEEL, state, state.getValue(FlapDisplayBlock.HORIZONTAL_FACING)); } @Override - public boolean shouldRenderOffScreen(KineticBlockEntity pBlockEntity) { - return ((FlapDisplayBlockEntity) pBlockEntity).isController; + public boolean shouldRenderOffScreen(FlapDisplayBlockEntity be) { + return be.isController; } }