From cdc41b18ccfaaedaa66b483eb189f42a3e2d1267 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Fri, 20 Sep 2024 19:35:16 -0700 Subject: [PATCH] Rolling over a bump - Bump flywheel version - Make all visuals use instancerProvider() method - Fix ModelCache usage - Use PosedInstance in BogeyRenderer --- gradle.properties | 2 +- .../contraptions/bearing/BearingVisual.java | 2 +- .../contraptions/chassis/StickerVisual.java | 2 +- .../gantry/GantryCarriageVisual.java | 2 +- .../contraptions/pulley/HosePulleyVisual.java | 10 +++++----- .../contraptions/pulley/RopePulleyVisual.java | 10 +++++----- .../contraptions/render/ContraptionVisual.java | 2 ++ .../equipment/toolbox/ToolBoxVisual.java | 4 ++-- .../fluids/pipes/valve/FluidValveVisual.java | 2 +- .../kinetics/base/SingleRotatingVisual.java | 2 +- .../content/kinetics/belt/BeltVisual.java | 4 ++-- .../kinetics/crank/HandCrankVisual.java | 4 ++-- .../kinetics/deployer/DeployerVisual.java | 6 +++--- .../create/content/kinetics/fan/FanVisual.java | 4 ++-- .../kinetics/flywheel/FlywheelVisual.java | 4 ++-- .../content/kinetics/gauge/GaugeVisual.java | 6 +++--- .../kinetics/gearbox/GearboxVisual.java | 2 +- .../kinetics/mechanicalArm/ArmVisual.java | 14 +++++++------- .../content/kinetics/mixer/MixerVisual.java | 4 ++-- .../content/kinetics/press/PressVisual.java | 2 +- .../BracketedKineticBlockEntityVisual.java | 2 +- .../simpleRelays/encased/EncasedCogVisual.java | 4 ++-- .../steamEngine/SteamEngineVisual.java | 6 +++--- .../transmission/SplitShaftVisual.java | 2 +- .../kinetics/waterwheel/WaterWheelVisual.java | 6 +++--- .../content/logistics/depot/EjectorVisual.java | 2 +- .../content/logistics/funnel/FunnelVisual.java | 2 +- .../logistics/tunnel/BeltTunnelVisual.java | 2 +- .../processing/burner/BlazeBurnerVisual.java | 14 +++++++------- .../analogLever/AnalogLeverVisual.java | 4 ++-- .../redstone/diodes/BrassDiodeVisual.java | 2 +- .../cannon/SchematicannonVisual.java | 4 ++-- .../content/trains/bogey/BogeyRenderer.java | 14 +++++++------- .../content/trains/track/TrackVisual.java | 18 +++++++++--------- .../foundation/render/VirtualRenderHelper.java | 4 ++-- 35 files changed, 88 insertions(+), 86 deletions(-) diff --git a/gradle.properties b/gradle.properties index a326ebea1..807df18dc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,7 +23,7 @@ use_parchment = true # dependency versions registrate_version = MC1.20-1.3.3 flywheel_minecraft_version = 1.20.1 -flywheel_version = 1.0.0-beta-113 +flywheel_version = 1.0.0-beta-134 jei_minecraft_version = 1.20.1 jei_version = 15.10.0.39 curios_minecraft_version = 1.20.1 diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingVisual.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingVisual.java index 67edcfe3d..e244c49cf 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingVisual.java @@ -38,7 +38,7 @@ public class BearingVisual e PartialModel top = blockEntity.isWoodenTop() ? AllPartialModels.BEARING_TOP_WOODEN : AllPartialModels.BEARING_TOP; - topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(top)) + topInstance = instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(top)) .createInstance(); topInstance.position(getVisualPosition()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java b/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java index d44a3e95d..e9c84956c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/chassis/StickerVisual.java @@ -29,7 +29,7 @@ public class StickerVisual extends AbstractBlockEntityVisual public StickerVisual(VisualizationContext context, StickerBlockEntity blockEntity, float partialTick) { super(context, blockEntity, partialTick); - head = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.STICKER_HEAD)).createInstance(); + head = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.STICKER_HEAD)).createInstance(); fakeWorld = blockEntity.getLevel() != Minecraft.getInstance().level; facing = blockState.getValue(StickerBlock.FACING); diff --git a/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryCarriageVisual.java b/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryCarriageVisual.java index 4f1821990..7174a79a4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryCarriageVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryCarriageVisual.java @@ -34,7 +34,7 @@ public class GantryCarriageVisual extends ShaftVisual public GantryCarriageVisual(VisualizationContext context, GantryCarriageBlockEntity blockEntity, float partialTick) { super(context, blockEntity, partialTick); - gantryCogs = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GANTRY_COGS)) + gantryCogs = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GANTRY_COGS)) .createInstance(); facing = blockState.getValue(GantryCarriageBlock.FACING); diff --git a/src/main/java/com/simibubi/create/content/contraptions/pulley/HosePulleyVisual.java b/src/main/java/com/simibubi/create/content/contraptions/pulley/HosePulleyVisual.java index 7857e22db..d530c063f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/pulley/HosePulleyVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/pulley/HosePulleyVisual.java @@ -16,27 +16,27 @@ public class HosePulleyVisual extends AbstractPulleyVisual getRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE)); } @Override protected Instancer getMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_MAGNET)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_MAGNET)); } @Override protected Instancer getHalfMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF_MAGNET)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF_MAGNET)); } @Override protected Instancer getCoilModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_COIL, rotatingAbout)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_COIL, rotatingAbout)); } @Override protected Instancer getHalfRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF)); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/pulley/RopePulleyVisual.java b/src/main/java/com/simibubi/create/content/contraptions/pulley/RopePulleyVisual.java index 6b13def27..ce9d0da49 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/pulley/RopePulleyVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/pulley/RopePulleyVisual.java @@ -18,27 +18,27 @@ public class RopePulleyVisual extends AbstractPulleyVisual { @Override protected Instancer getRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.ROPE.getDefaultState())); + return instancerProvider().instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.ROPE.getDefaultState())); } @Override protected Instancer getMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.PULLEY_MAGNET.getDefaultState())); + return instancerProvider().instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.PULLEY_MAGNET.getDefaultState())); } @Override protected Instancer getHalfMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF_MAGNET)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF_MAGNET)); } @Override protected Instancer getCoilModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_COIL, rotatingAbout)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_COIL, rotatingAbout)); } @Override protected Instancer getHalfRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF)); + return instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF)); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java index 6b3a038c9..b0d03ed6a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java @@ -93,6 +93,8 @@ public class ContraptionVisual extends Abst .instancer(InstanceTypes.TRANSFORMED, model) .createInstance(); + structure.setChanged(); + for (BlockEntity be : contraption.getRenderedBEs()) { setupVisualizer(be, partialTick); } diff --git a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java index c3d355740..f7bcd204f 100644 --- a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java +++ b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolBoxVisual.java @@ -28,10 +28,10 @@ public class ToolBoxVisual extends AbstractBlockEntityVisual facing = blockState.getValue(ToolboxBlock.FACING) .getOpposite(); - Instancer drawerModel = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.TOOLBOX_DRAWER)); + Instancer drawerModel = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.TOOLBOX_DRAWER)); drawers = new TransformedInstance[]{drawerModel.createInstance(), drawerModel.createInstance()}; - lid = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.TOOLBOX_LIDS.get(blockEntity.getColor()))) + lid = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.TOOLBOX_LIDS.get(blockEntity.getColor()))) .createInstance(); } diff --git a/src/main/java/com/simibubi/create/content/fluids/pipes/valve/FluidValveVisual.java b/src/main/java/com/simibubi/create/content/fluids/pipes/valve/FluidValveVisual.java index 120136561..538b7de3c 100644 --- a/src/main/java/com/simibubi/create/content/fluids/pipes/valve/FluidValveVisual.java +++ b/src/main/java/com/simibubi/create/content/fluids/pipes/valve/FluidValveVisual.java @@ -41,7 +41,7 @@ public class FluidValveVisual extends ShaftVisual impleme pointerRotationOffset = twist ? 90 : 0; settled = false; - pointer = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.FLUID_VALVE_POINTER)).createInstance(); + pointer = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.FLUID_VALVE_POINTER)).createInstance(); transformPointer(partialTick); } diff --git a/src/main/java/com/simibubi/create/content/kinetics/base/SingleRotatingVisual.java b/src/main/java/com/simibubi/create/content/kinetics/base/SingleRotatingVisual.java index ba5ec60ec..84cc91d04 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/base/SingleRotatingVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/base/SingleRotatingVisual.java @@ -15,7 +15,7 @@ public class SingleRotatingVisual extends KineticB public SingleRotatingVisual(VisualizationContext context, T blockEntity, float partialTick) { super(context, blockEntity, partialTick); - rotatingModel = instancerProvider.instancer(AllInstanceTypes.ROTATING, model()) + rotatingModel = instancerProvider().instancer(AllInstanceTypes.ROTATING, model()) .createInstance(); setup(rotatingModel); } diff --git a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java index 625c79092..0a95b470e 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltVisual.java @@ -65,7 +65,7 @@ public class BeltVisual extends KineticBlockEntityVisual { PartialModel beltPartial = BeltRenderer.getBeltPartial(diagonal, start, end, bottom); SpriteShiftEntry spriteShift = BeltRenderer.getSpriteShiftEntry(color, diagonal, bottom); - Instancer beltModel = instancerProvider.instancer(AllInstanceTypes.BELT, Models.partial(beltPartial)); + Instancer beltModel = instancerProvider().instancer(AllInstanceTypes.BELT, Models.partial(beltPartial)); keys.add(setup(beltModel.createInstance(), bottom, spriteShift)); @@ -138,7 +138,7 @@ public class BeltVisual extends KineticBlockEntityVisual { msr.uncenter(); }); - return instancerProvider.instancer(AllInstanceTypes.ROTATING, model); + return instancerProvider().instancer(AllInstanceTypes.ROTATING, model); } private Direction getOrientation() { diff --git a/src/main/java/com/simibubi/create/content/kinetics/crank/HandCrankVisual.java b/src/main/java/com/simibubi/create/content/kinetics/crank/HandCrankVisual.java index 1eebee84b..45f4ae30c 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/crank/HandCrankVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/crank/HandCrankVisual.java @@ -27,13 +27,13 @@ public class HandCrankVisual extends KineticBlockEntityVisual implements xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0; zRot = rotatePole ? 90 : 0; - pole = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.DEPLOYER_POLE)).createInstance(); + pole = instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.DEPLOYER_POLE)).createInstance(); currentHand = this.blockEntity.getHandPose(); - hand = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(currentHand)).createInstance(); + hand = instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(currentHand)).createInstance(); progress = getProgress(partialTick); updateRotation(pole, hand, yRot, xRot, zRot); @@ -69,7 +69,7 @@ public class DeployerVisual extends ShaftVisual implements if (currentHand != handPose) { currentHand = handPose; - instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(currentHand)) + instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(currentHand)) .stealInstance(hand); } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/fan/FanVisual.java b/src/main/java/com/simibubi/create/content/kinetics/fan/FanVisual.java index 2a1a030f7..57aa69a52 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/fan/FanVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/fan/FanVisual.java @@ -29,8 +29,8 @@ public class FanVisual extends KineticBlockEntityVisual { direction = blockState.getValue(FACING); opposite = direction.getOpposite(); - shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, opposite)).createInstance(); - fan = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.ENCASED_FAN_INNER, opposite)) + shaft = instancerProvider().instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, opposite)).createInstance(); + fan = instancerProvider().instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.ENCASED_FAN_INNER, opposite)) .createInstance(); setup(shaft); diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelVisual.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelVisual.java index 930f952d1..4512c0908 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelVisual.java @@ -27,9 +27,9 @@ public class FlywheelVisual extends KineticBlockEntityVisual implemen GaugeBlock gaugeBlock = (GaugeBlock) blockState.getBlock(); - Instancer dialModel = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_DIAL)); + Instancer dialModel = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_DIAL)); Instancer headModel = getHeadModel(); var msr = TransformStack.of(ms); @@ -157,7 +157,7 @@ public abstract class GaugeVisual extends ShaftVisual implemen @Override protected Instancer getHeadModel() { - return instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_SPEED)); + return instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_SPEED)); } } @@ -168,7 +168,7 @@ public abstract class GaugeVisual extends ShaftVisual implemen @Override protected Instancer getHeadModel() { - return instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_STRESS)); + return instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_STRESS)); } } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java b/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java index eaf39e215..e03c70e01 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/gearbox/GearboxVisual.java @@ -41,7 +41,7 @@ public class GearboxVisual extends KineticBlockEntityVisual if (boxAxis == axis) continue; - RotatingInstance key = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, direction)) + RotatingInstance key = instancerProvider().instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, direction)) .createInstance(); key.setRotationAxis(axis) diff --git a/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java b/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java index 47e1e40e1..91cb6cb81 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/mechanicalArm/ArmVisual.java @@ -49,18 +49,18 @@ public class ArmVisual extends SingleRotatingVisual implements S public ArmVisual(VisualizationContext context, ArmBlockEntity blockEntity, float partialTick) { super(context, blockEntity, partialTick); - base = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_BASE)) + base = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_BASE)) .createInstance(); - lowerBody = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_LOWER_BODY)) + lowerBody = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_LOWER_BODY)) .createInstance(); - upperBody = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_UPPER_BODY)) + upperBody = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_UPPER_BODY)) .createInstance(); - claw = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE)) + claw = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE)) .createInstance(); - TransformedInstance clawGrip1 = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_CLAW_GRIP_UPPER)) + TransformedInstance clawGrip1 = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_CLAW_GRIP_UPPER)) .createInstance(); - TransformedInstance clawGrip2 = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_CLAW_GRIP_LOWER)) + TransformedInstance clawGrip2 = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_CLAW_GRIP_LOWER)) .createInstance(); clawGrips = Lists.newArrayList(clawGrip1, clawGrip2); @@ -175,7 +175,7 @@ public class ArmVisual extends SingleRotatingVisual implements S super.update(pt); models.remove(claw); claw.delete(); - claw = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE)) + claw = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE)) .createInstance(); models.add(claw); updateLight(pt); diff --git a/src/main/java/com/simibubi/create/content/kinetics/mixer/MixerVisual.java b/src/main/java/com/simibubi/create/content/kinetics/mixer/MixerVisual.java index 74aeb1c4e..f229d9d87 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/mixer/MixerVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/mixer/MixerVisual.java @@ -27,12 +27,12 @@ public class MixerVisual extends EncasedCogVisual implements SimpleDynamicVisual super(context, blockEntity, false, partialTick); this.mixer = blockEntity; - mixerHead = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.MECHANICAL_MIXER_HEAD)) + mixerHead = instancerProvider().instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.MECHANICAL_MIXER_HEAD)) .createInstance(); mixerHead.setRotationAxis(Direction.Axis.Y); - mixerPole = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_MIXER_POLE)) + mixerPole = instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_MIXER_POLE)) .createInstance(); animate(partialTick); diff --git a/src/main/java/com/simibubi/create/content/kinetics/press/PressVisual.java b/src/main/java/com/simibubi/create/content/kinetics/press/PressVisual.java index e73394343..2a5faecc8 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/press/PressVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/press/PressVisual.java @@ -24,7 +24,7 @@ public class PressVisual extends ShaftVisual impleme public PressVisual(VisualizationContext context, MechanicalPressBlockEntity blockEntity, float partialTick) { super(context, blockEntity, partialTick); - pressHead = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_PRESS_HEAD)) + pressHead = instancerProvider().instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_PRESS_HEAD)) .createInstance(); Quaternionf q = Axis.YP diff --git a/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/BracketedKineticBlockEntityVisual.java b/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/BracketedKineticBlockEntityVisual.java index 35af391de..0b6b5b7fa 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/BracketedKineticBlockEntityVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/BracketedKineticBlockEntityVisual.java @@ -39,7 +39,7 @@ public class BracketedKineticBlockEntityVisual extends SingleRotatingVisual half = instancerProvider.instancer(AllInstanceTypes.ROTATING, model); + Instancer half = instancerProvider().instancer(AllInstanceTypes.ROTATING, model); additionalShaft = setup(half.createInstance(), speed); additionalShaft.setRotationOffset(offset) diff --git a/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/encased/EncasedCogVisual.java b/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/encased/EncasedCogVisual.java index 4f571885d..2fabcafcb 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/encased/EncasedCogVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/simpleRelays/encased/EncasedCogVisual.java @@ -49,7 +49,7 @@ public class EncasedCogVisual extends KineticBlockEntityVisual extends KineticBlockEntityVisual { - private static final ModelCache MODEL_CACHE = new ModelCache<>(WaterWheelVisual::createModel); + private static final ResourceReloadCache MODEL_CACHE = new ResourceReloadCache<>(WaterWheelVisual::createModel); protected final boolean large; protected BlockState lastMaterial; @@ -42,7 +42,7 @@ public class WaterWheelVisual extends KineticBl private void setupInstance() { lastMaterial = blockEntity.material; - rotatingModel = instancerProvider.instancer(AllInstanceTypes.ROTATING, MODEL_CACHE.get(new WaterWheelModelKey(large, blockState, blockEntity.material))) + rotatingModel = instancerProvider().instancer(AllInstanceTypes.ROTATING, MODEL_CACHE.get(new WaterWheelModelKey(large, blockState, blockEntity.material))) .createInstance(); setup(rotatingModel); } diff --git a/src/main/java/com/simibubi/create/content/logistics/depot/EjectorVisual.java b/src/main/java/com/simibubi/create/content/logistics/depot/EjectorVisual.java index c1df29c35..c1bcae3c2 100644 --- a/src/main/java/com/simibubi/create/content/logistics/depot/EjectorVisual.java +++ b/src/main/java/com/simibubi/create/content/logistics/depot/EjectorVisual.java @@ -22,7 +22,7 @@ public class EjectorVisual extends ShaftVisual implements Si public EjectorVisual(VisualizationContext dispatcher, EjectorBlockEntity blockEntity, float partialTick) { super(dispatcher, blockEntity, partialTick); - plate = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.EJECTOR_TOP)).createInstance(); + plate = instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.EJECTOR_TOP)).createInstance(); pivotPlate(getLidProgress(partialTick)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelVisual.java b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelVisual.java index 527d2d48b..3dd2bb7f8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelVisual.java +++ b/src/main/java/com/simibubi/create/content/logistics/funnel/FunnelVisual.java @@ -34,7 +34,7 @@ public class FunnelVisual extends AbstractBlockEntityVisual i PartialModel flapPartial = (blockState.getBlock() instanceof FunnelBlock ? AllPartialModels.FUNNEL_FLAP : AllPartialModels.BELT_FUNNEL_FLAP); - Instancer model = instancerProvider.instancer(AllInstanceTypes.FLAP, Models.partial(flapPartial)); + Instancer model = instancerProvider().instancer(AllInstanceTypes.FLAP, Models.partial(flapPartial)); int blockLight = level.getBrightness(LightLayer.BLOCK, pos); int skyLight = level.getBrightness(LightLayer.SKY, pos); diff --git a/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelVisual.java b/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelVisual.java index 288dbf54d..f4171b9c9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelVisual.java +++ b/src/main/java/com/simibubi/create/content/logistics/tunnel/BeltTunnelVisual.java @@ -34,7 +34,7 @@ public class BeltTunnelVisual extends AbstractBlockEntityVisual model = instancerProvider.instancer(AllInstanceTypes.FLAP, Models.partial(AllPartialModels.BELT_TUNNEL_FLAP)); + Instancer model = instancerProvider().instancer(AllInstanceTypes.FLAP, Models.partial(AllPartialModels.BELT_TUNNEL_FLAP)); int blockLight = level.getBrightness(LightLayer.BLOCK, pos); int skyLight = level.getBrightness(LightLayer.SKY, pos); diff --git a/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerVisual.java b/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerVisual.java index 32f6971b9..1bb3688a6 100644 --- a/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerVisual.java +++ b/src/main/java/com/simibubi/create/content/processing/burner/BlazeBurnerVisual.java @@ -55,7 +55,7 @@ public class BlazeBurnerVisual extends AbstractBlockEntityVisual instancer.createInstance()) .map(BogeyModelData::new) @@ -212,7 +212,7 @@ public abstract class BogeyRenderer { */ public void createModelInstance(VisualizationContext context, BlockState state, int count) { var instancer = context.instancerProvider() - .instancer(InstanceTypes.TRANSFORMED, VirtualRenderHelper.blockModel(state)); + .instancer(InstanceTypes.POSED, VirtualRenderHelper.blockModel(state)); BogeyModelData[] modelData = IntStream.range(0, count) .mapToObj(i -> instancer.createInstance()) .map(BogeyModelData::new) @@ -340,27 +340,27 @@ public abstract class BogeyRenderer { } public BogeyModelData setTransform(PoseStack ms) { - if (this.transform instanceof TransformedInstance model) + if (this.transform instanceof PosedInstance model) model.setTransform(ms) .setChanged(); return this; } public BogeyModelData setEmptyTransform() { - if (this.transform instanceof TransformedInstance model) + if (this.transform instanceof PosedInstance model) model.setZeroTransform() .setChanged(); return this; } public BogeyModelData delete() { - if (this.transform instanceof TransformedInstance model) + if (this.transform instanceof PosedInstance model) model.delete(); return this; } public BogeyModelData updateLight(int blockLight, int skyLight) { - if (this.transform instanceof TransformedInstance model) + if (this.transform instanceof PosedInstance model) model.light(blockLight, skyLight) .setChanged(); return this; diff --git a/src/main/java/com/simibubi/create/content/trains/track/TrackVisual.java b/src/main/java/com/simibubi/create/content/trains/track/TrackVisual.java index 5a1edb944..78c990a96 100644 --- a/src/main/java/com/simibubi/create/content/trains/track/TrackVisual.java +++ b/src/main/java/com/simibubi/create/content/trains/track/TrackVisual.java @@ -138,11 +138,11 @@ public class TrackVisual extends AbstractBlockEntityVisual { TrackMaterial.TrackModelHolder modelHolder = bc.getMaterial().getModelHolder(); - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.tie())) + instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.tie())) .createInstances(ties); - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.leftSegment())) + instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.leftSegment())) .createInstances(left); - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.rightSegment())) + instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.rightSegment())) .createInstances(right); SegmentAngles[] segments = bc.getBakedSegments(); @@ -151,14 +151,14 @@ public class TrackVisual extends AbstractBlockEntityVisual { var modelIndex = i - 1; ties[modelIndex].setTransform(pose) - .transform(segment.tieTransform) + .mul(segment.tieTransform) .setChanged(); tiesLightPos[modelIndex] = segment.lightPosition.offset(tePosition); for (boolean first : Iterate.trueAndFalse) { Pose transform = segment.railTransforms.get(first); (first ? this.left : this.right)[modelIndex].setTransform(pose) - .transform(transform) + .mul(transform) .setChanged(); (first ? leftLightPos : rightLightPos)[modelIndex] = segment.lightPosition.offset(tePosition); } @@ -218,10 +218,10 @@ public class TrackVisual extends AbstractBlockEntityVisual { beams = Couple.create(() -> new TransformedInstance[segCount]); beamCaps = Couple.create(() -> Couple.create(() -> new TransformedInstance[segCount])); lightPos = new BlockPos[segCount]; - beams.forEach(instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GIRDER_SEGMENT_MIDDLE))::createInstances); + beams.forEach(instancerProvider().instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GIRDER_SEGMENT_MIDDLE))::createInstances); beamCaps.forEachWithContext((c, top) -> { var partialModel = Models.partial(top ? AllPartialModels.GIRDER_SEGMENT_TOP : AllPartialModels.GIRDER_SEGMENT_BOTTOM); - c.forEach(instancerProvider.instancer(InstanceTypes.TRANSFORMED, partialModel)::createInstances); + c.forEach(instancerProvider().instancer(InstanceTypes.TRANSFORMED, partialModel)::createInstances); }); GirderAngles[] bakedGirders = bc.getBakedGirders(); @@ -233,14 +233,14 @@ public class TrackVisual extends AbstractBlockEntityVisual { for (boolean first : Iterate.trueAndFalse) { Pose beamTransform = segment.beams.get(first); beams.get(first)[modelIndex].setTransform(pose) - .transform(beamTransform) + .mul(beamTransform) .setChanged(); for (boolean top : Iterate.trueAndFalse) { Pose beamCapTransform = segment.beamCaps.get(top) .get(first); beamCaps.get(top) .get(first)[modelIndex].setTransform(pose) - .transform(beamCapTransform) + .mul(beamCapTransform) .setChanged(); } } diff --git a/src/main/java/com/simibubi/create/foundation/render/VirtualRenderHelper.java b/src/main/java/com/simibubi/create/foundation/render/VirtualRenderHelper.java index 7099e537d..3223f503a 100644 --- a/src/main/java/com/simibubi/create/foundation/render/VirtualRenderHelper.java +++ b/src/main/java/com/simibubi/create/foundation/render/VirtualRenderHelper.java @@ -7,10 +7,10 @@ import org.jetbrains.annotations.Nullable; import com.mojang.blaze3d.vertex.PoseStack; import dev.engine_room.flywheel.api.model.Model; -import dev.engine_room.flywheel.lib.model.ModelCache; import dev.engine_room.flywheel.lib.model.ModelUtil; import dev.engine_room.flywheel.lib.model.baked.ForgeBakedModelBuilder; import dev.engine_room.flywheel.lib.model.baked.VirtualEmptyBlockGetter; +import dev.engine_room.flywheel.lib.util.ResourceReloadCache; import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.block.ModelBlockRenderer; import net.minecraft.client.renderer.texture.OverlayTexture; @@ -25,7 +25,7 @@ public class VirtualRenderHelper { public static final ModelProperty VIRTUAL_PROPERTY = new ModelProperty<>(); public static final ModelData VIRTUAL_DATA = ModelData.builder().with(VIRTUAL_PROPERTY, true).build(); - private static final ModelCache VIRTUAL_BLOCKS = new ModelCache<>(state -> new ForgeBakedModelBuilder(ModelUtil.VANILLA_RENDERER.getBlockModel(state)).modelData(VIRTUAL_DATA).build()); + private static final ResourceReloadCache VIRTUAL_BLOCKS = new ResourceReloadCache<>(state -> new ForgeBakedModelBuilder(ModelUtil.VANILLA_RENDERER.getBlockModel(state)).modelData(VIRTUAL_DATA).build()); private static final ThreadLocal THREAD_LOCAL_OBJECTS = ThreadLocal.withInitial(ThreadLocalObjects::new); public static boolean isVirtual(ModelData data) {