diff --git a/build.gradle b/build.gradle index 6f78f52bd..42beba0b1 100644 --- a/build.gradle +++ b/build.gradle @@ -33,8 +33,9 @@ println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getPro mixin { add sourceSets.main, 'create.refmap.json' - config 'flywheel.mixins.json' - config 'flywheel.sodium.mixins.json' + config 'flywheel.backend.mixins.json' + config 'flywheel.impl.mixins.json' + config 'flywheel.impl.sodium.mixins.json' config 'create.mixins.json' debug.verbose = true @@ -160,23 +161,6 @@ repositories { } } - -// Fix for loading non-mod libraries in dev-env, used for Miniball. -// https://gist.github.com/SizableShrimp/66b22f1b24c255e1491c8d98d3f11f83 -// v--------------------------------------------------------------------v -configurations { - library - implementation.extendsFrom library -} - -minecraft.runs.configureEach { - lazyToken('minecraft_classpath') { - configurations.library.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator) - } -} -// ^--------------------------------------------------------------------^ - - dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" @@ -187,8 +171,6 @@ dependencies { jarJar.ranged(it, '[1.0,2.0)') } - library 'com.dreizak:miniball:1.0.3' - implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") if (flywheelInWorkspace) { diff --git a/gradle.properties b/gradle.properties index 6dc0154e5..dd78f8660 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,7 +23,7 @@ use_parchment = true # dependency versions registrate_version = MC1.20-1.3.3 flywheel_minecraft_version = 1.20.1 -flywheel_version = 1.0.0-alpha-32 +flywheel_version = 1.0.0-alpha-43 jei_minecraft_version = 1.20.1 jei_version = 15.2.0.22 curios_minecraft_version = 1.20.1 diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterActorVisual.java b/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterActorVisual.java index 5c69dfac0..c94783088 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterActorVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterActorVisual.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.contraptions.actors.harvester; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.InstanceTypes; import com.jozufozu.flywheel.lib.instance.TransformedInstance; @@ -38,7 +37,7 @@ public class HarvesterActorVisual extends ActorVisual { facing = state.getValue(BlockStateProperties.HORIZONTAL_FACING); - harvester = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(getRollingPartial()), RenderStage.AFTER_BLOCK_ENTITIES) + harvester = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(getRollingPartial())) .createInstance(); horizontalAngle = facing.toYRot() + ((facing.getAxis() == Direction.Axis.X) ? 180 : 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java index 1863084fa..c06450979 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/psi/PIInstance.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.actors.psi; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.InstancerProvider; import com.jozufozu.flywheel.lib.instance.InstanceTypes; @@ -36,9 +35,9 @@ public class PIInstance { public void init(boolean lit) { this.lit = lit; - middle = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(PortableStorageInterfaceRenderer.getMiddleForState(blockState, lit)), RenderStage.AFTER_BLOCK_ENTITIES) + middle = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(PortableStorageInterfaceRenderer.getMiddleForState(blockState, lit))) .createInstance(); - top = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(PortableStorageInterfaceRenderer.getTopForState(blockState)), RenderStage.AFTER_BLOCK_ENTITIES) + top = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(PortableStorageInterfaceRenderer.getTopForState(blockState))) .createInstance(); } @@ -65,7 +64,7 @@ public class PIInstance { public void tick(boolean lit) { if (this.lit != lit) { this.lit = lit; - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(PortableStorageInterfaceRenderer.getMiddleForState(blockState, lit)), RenderStage.AFTER_BLOCK_ENTITIES) + instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(PortableStorageInterfaceRenderer.getMiddleForState(blockState, lit))) .stealInstance(middle); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/roller/RollerActorVisual.java b/src/main/java/com/simibubi/create/content/contraptions/actors/roller/RollerActorVisual.java index a88e00172..73189c93c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/roller/RollerActorVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/roller/RollerActorVisual.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.contraptions.actors.roller; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.InstanceTypes; import com.jozufozu.flywheel.lib.instance.TransformedInstance; @@ -21,7 +20,7 @@ public class RollerActorVisual extends HarvesterActorVisual { MovementContext movementContext) { super(visualizationContext, simulationWorld, movementContext); - frame = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ROLLER_FRAME), RenderStage.AFTER_BLOCK_ENTITIES) + frame = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ROLLER_FRAME)) .createInstance(); frame.setBlockLight(localBlockLight()); } 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 7b54f97b4..fa4881b7e 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 @@ -4,7 +4,6 @@ import java.util.function.Consumer; import org.joml.Quaternionf; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -40,7 +39,7 @@ public class BearingVisual e PartialModel top = blockEntity.isWoodenTop() ? AllPartialModels.BEARING_TOP_WOODEN : AllPartialModels.BEARING_TOP; - topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(top), RenderStage.AFTER_BLOCK_ENTITIES) + topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(top)) .createInstance(); topInstance.setPosition(getVisualPosition()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingVisual.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingVisual.java index 81a0e6f7c..967c7f8b7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedBearingVisual.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.bearing; import org.joml.Quaternionf; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.InstanceTypes; import com.jozufozu.flywheel.lib.instance.OrientedInstance; @@ -39,7 +38,7 @@ public class StabilizedBearingVisual extends ActorVisual { blockOrientation = BearingVisual.getBlockStateOrientation(facing); - topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.BEARING_TOP), RenderStage.AFTER_BLOCK_ENTITIES) + topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.BEARING_TOP)) .createInstance(); int blockLight = localBlockLight(); @@ -47,7 +46,7 @@ public class StabilizedBearingVisual extends ActorVisual { .setRotation(blockOrientation) .setBlockLight(blockLight); - shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, blockState.getValue(BlockStateProperties.FACING).getOpposite()), RenderStage.AFTER_BLOCK_ENTITIES) + shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, blockState.getValue(BlockStateProperties.FACING).getOpposite())) .createInstance(); // not rotating so no need to set speed, axis, etc. 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 893a82939..68485903e 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.chassis; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -30,7 +29,7 @@ public class StickerVisual extends AbstractBlockEntityVisual public StickerVisual(VisualizationContext context, StickerBlockEntity blockEntity) { super(context, blockEntity); - head = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.STICKER_HEAD), RenderStage.AFTER_BLOCK_ENTITIES).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 c7f257598..c6435745f 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.gantry; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -35,7 +34,7 @@ public class GantryCarriageVisual extends ShaftVisual public GantryCarriageVisual(VisualizationContext context, GantryCarriageBlockEntity blockEntity) { super(context, blockEntity); - gantryCogs = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GANTRY_COGS), RenderStage.AFTER_BLOCK_ENTITIES) + 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 3076ace2e..df4391f18 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 @@ -1,6 +1,5 @@ package com.simibubi.create.content.contraptions.pulley; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.InstanceTypes; @@ -17,23 +16,23 @@ public class HosePulleyVisual extends AbstractPulleyVisual getRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE)); } protected Instancer getMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_MAGNET), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_MAGNET)); } protected Instancer getHalfMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF_MAGNET), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF_MAGNET)); } protected Instancer getCoilModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_COIL, rotatingAbout), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_COIL, rotatingAbout)); } protected Instancer getHalfRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.HOSE_HALF)); } protected float getOffset() { 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 965824ed6..b403dd32a 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 @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.pulley; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.InstanceTypes; @@ -18,23 +17,23 @@ public class RopePulleyVisual extends AbstractPulleyVisual { } protected Instancer getRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.ROPE.getDefaultState()), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.ROPE.getDefaultState())); } protected Instancer getMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.PULLEY_MAGNET.getDefaultState()), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, VirtualRenderHelper.blockModel(AllBlocks.PULLEY_MAGNET.getDefaultState())); } protected Instancer getHalfMagnetModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF_MAGNET), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF_MAGNET)); } protected Instancer getCoilModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_COIL, rotatingAbout), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_COIL, rotatingAbout)); } protected Instancer getHalfRopeModel() { - return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.ROPE_HALF)); } protected float getOffset() { 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 43ec91198..0d92b444d 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.equipment.toolbox; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.visual.DynamicVisual; @@ -32,10 +31,10 @@ public class ToolBoxVisual extends AbstractBlockEntityVisual @Override public void init(float pt) { - Instancer drawerModel = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.TOOLBOX_DRAWER), RenderStage.AFTER_BLOCK_ENTITIES); + 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())), RenderStage.AFTER_BLOCK_ENTITIES) + lid = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.TOOLBOX_LIDS.get(blockEntity.getColor()))) .createInstance(); super.init(pt); 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 4128ee9b1..c9f1bbbb4 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.fluids.pipes.valve; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -43,7 +42,7 @@ public class FluidValveVisual extends ShaftVisual impleme pointerRotationOffset = twist ? 90 : 0; settled = false; - pointer = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.FLUID_VALVE_POINTER), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); + pointer = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.FLUID_VALVE_POINTER)).createInstance(); transformPointer(); } 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 cb00ea20c..1dbed3981 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.kinetics.base; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.model.Model; import com.jozufozu.flywheel.api.visualization.VisualizationContext; @@ -19,7 +18,7 @@ public class SingleRotatingVisual extends KineticB @Override public void init(float pt) { - rotatingModel = instancerProvider.instancer(AllInstanceTypes.ROTATING, model(), RenderStage.AFTER_BLOCK_ENTITIES) + rotatingModel = instancerProvider.instancer(AllInstanceTypes.ROTATING, model()) .createInstance(); setup(rotatingModel); super.init(pt); 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 2307d21b7..15c156de6 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 @@ -5,7 +5,6 @@ import java.util.function.Consumer; import org.joml.Quaternionf; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.visualization.VisualizationContext; @@ -65,7 +64,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.BELTS, Models.partial(beltPartial), RenderStage.AFTER_BLOCK_ENTITIES); + Instancer beltModel = instancerProvider.instancer(AllInstanceTypes.BELTS, Models.partial(beltPartial)); keys.add(setup(beltModel.createInstance(), bottom, spriteShift)); @@ -138,7 +137,7 @@ public class BeltVisual extends KineticBlockEntityVisual { msr.uncenter(); }); - return instancerProvider.instancer(AllInstanceTypes.ROTATING, model, RenderStage.AFTER_BLOCK_ENTITIES); + 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 854d8490b..bae8235b4 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.kinetics.crank; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.model.Model; import com.jozufozu.flywheel.api.visual.DynamicVisual; @@ -25,7 +24,7 @@ public class HandCrankVisual extends SingleRotatingVisual super(modelManager, blockEntity); facing = blockState.getValue(BlockStateProperties.FACING); Model model = blockEntity.getRenderedHandleInstance(); - crank = instancerProvider.instancer(InstanceTypes.TRANSFORMED, model, RenderStage.AFTER_BLOCK_ENTITIES) + crank = instancerProvider.instancer(InstanceTypes.TRANSFORMED, model) .createInstance(); rotateCrank(); } diff --git a/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerActorVisual.java b/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerActorVisual.java index e0c265612..e0db38b91 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerActorVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerActorVisual.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.kinetics.deployer; import static com.simibubi.create.content.kinetics.base.DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE; import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.InstanceTypes; import com.jozufozu.flywheel.lib.instance.TransformedInstance; @@ -59,11 +58,11 @@ public class DeployerActorVisual extends ActorVisual { xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0; zRot = rotatePole ? 90 : 0; - pole = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.DEPLOYER_POLE), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); - hand = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(handPose), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); + pole = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.DEPLOYER_POLE)).createInstance(); + hand = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(handPose)).createInstance(); Direction.Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state); - shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, VirtualRenderHelper.blockModel(KineticBlockEntityVisual.shaft(axis)), RenderStage.AFTER_BLOCK_ENTITIES) + shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, VirtualRenderHelper.blockModel(KineticBlockEntityVisual.shaft(axis))) .createInstance(); int blockLight = localBlockLight(); diff --git a/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerVisual.java b/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerVisual.java index 3b93b1dae..20150c01b 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerVisual.java @@ -7,7 +7,6 @@ import java.util.function.Consumer; import org.joml.Quaternionf; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.TickableVisual; @@ -54,11 +53,11 @@ public class DeployerVisual extends ShaftVisual 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), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); + pole = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.DEPLOYER_POLE)).createInstance(); currentHand = this.blockEntity.getHandPose(); - hand = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(currentHand), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); + hand = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(currentHand)).createInstance(); progress = getProgress(AnimationTickHolder.getPartialTicks()); updateRotation(pole, hand, yRot, xRot, zRot); @@ -71,7 +70,7 @@ public class DeployerVisual extends ShaftVisual implements if (currentHand != handPose) { currentHand = handPose; - instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(currentHand), RenderStage.AFTER_BLOCK_ENTITIES) + instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(currentHand)) .stealInstance(hand); } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/drill/DrillActorVisual.java b/src/main/java/com/simibubi/create/content/kinetics/drill/DrillActorVisual.java index cb135d611..4eb8dab7c 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/drill/DrillActorVisual.java +++ b/src/main/java/com/simibubi/create/content/kinetics/drill/DrillActorVisual.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.kinetics.drill; import org.joml.Quaternionf; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.model.Models; import com.simibubi.create.AllPartialModels; @@ -39,7 +38,7 @@ public class DrillActorVisual extends ActorVisual { else eulerY = facing.toYRot() + ((axis == Direction.Axis.X) ? 180 : 0); - drillHead = instancerProvider.instancer(AllInstanceTypes.ACTORS, Models.partial(AllPartialModels.DRILL_HEAD), RenderStage.AFTER_BLOCK_ENTITIES) + drillHead = instancerProvider.instancer(AllInstanceTypes.ACTORS, Models.partial(AllPartialModels.DRILL_HEAD)) .createInstance(); drillHead.setPosition(context.localPos) 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 261db244e..ecf69d58e 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 @@ -4,7 +4,6 @@ import static net.minecraft.world.level.block.state.properties.BlockStatePropert import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.model.Models; @@ -30,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), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); - fan = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.ENCASED_FAN_INNER, opposite), RenderStage.AFTER_BLOCK_ENTITIES) + 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 b5bb46d78..dba60d3b8 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.kinetics.flywheel; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -29,9 +28,9 @@ public class FlywheelVisual extends KineticBlockEntityVisual implemen GaugeBlock gaugeBlock = (GaugeBlock) blockState.getBlock(); - Instancer dialModel = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_DIAL), RenderStage.AFTER_BLOCK_ENTITIES); + Instancer dialModel = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_DIAL)); Instancer headModel = getHeadModel(); ms = new PoseStack(); @@ -160,7 +159,7 @@ public abstract class GaugeVisual extends ShaftVisual implemen @Override protected Instancer getHeadModel() { - return instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_SPEED), RenderStage.AFTER_BLOCK_ENTITIES); + return instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_SPEED)); } } @@ -171,7 +170,7 @@ public abstract class GaugeVisual extends ShaftVisual implemen @Override protected Instancer getHeadModel() { - return instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GAUGE_HEAD_STRESS), RenderStage.AFTER_BLOCK_ENTITIES); + 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 94da91fdc..cb80a247f 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 @@ -4,7 +4,6 @@ import java.util.EnumMap; import java.util.Map; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.instance.AbstractInstance; @@ -41,7 +40,7 @@ public class GearboxVisual extends KineticBlockEntityVisual if (boxAxis == axis) continue; - RotatingInstance key = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF), RenderStage.AFTER_BLOCK_ENTITIES) + RotatingInstance key = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF)) .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 828635a2d..9220fe77c 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 @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.function.Consumer; import com.google.common.collect.Lists; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.model.Model; import com.jozufozu.flywheel.api.visual.DynamicVisual; @@ -49,18 +48,18 @@ public class ArmVisual extends SingleRotatingVisual implements D public ArmVisual(VisualizationContext context, ArmBlockEntity blockEntity) { super(context, blockEntity); - base = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_BASE), RenderStage.AFTER_BLOCK_ENTITIES) + base = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_BASE)) .createInstance(); - lowerBody = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_LOWER_BODY), RenderStage.AFTER_BLOCK_ENTITIES) + lowerBody = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_LOWER_BODY)) .createInstance(); - upperBody = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_UPPER_BODY), RenderStage.AFTER_BLOCK_ENTITIES) + 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), RenderStage.AFTER_BLOCK_ENTITIES) + 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), RenderStage.AFTER_BLOCK_ENTITIES) + 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), RenderStage.AFTER_BLOCK_ENTITIES) + TransformedInstance clawGrip2 = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_CLAW_GRIP_LOWER)) .createInstance(); clawGrips = Lists.newArrayList(clawGrip1, clawGrip2); @@ -181,7 +180,7 @@ public class ArmVisual extends SingleRotatingVisual implements D 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), RenderStage.AFTER_BLOCK_ENTITIES) + claw = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE)) .createInstance(); models.add(claw); updateLight(); 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 b1941a55d..ce2ca8ca0 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.kinetics.mixer; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.model.Model; import com.jozufozu.flywheel.api.visual.DynamicVisual; @@ -29,12 +28,12 @@ public class MixerVisual extends EncasedCogVisual implements DynamicVisual { super(context, blockEntity, false); this.mixer = blockEntity; - mixerHead = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.MECHANICAL_MIXER_HEAD), RenderStage.AFTER_BLOCK_ENTITIES) + 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), RenderStage.AFTER_BLOCK_ENTITIES) + mixerPole = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_MIXER_POLE)) .createInstance(); 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 c6e487552..981fc83b4 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 @@ -4,7 +4,6 @@ import java.util.function.Consumer; import org.joml.Quaternionf; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -25,7 +24,7 @@ public class PressVisual extends ShaftVisual impleme public PressVisual(VisualizationContext context, MechanicalPressBlockEntity blockEntity) { super(context, blockEntity); - pressHead = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_PRESS_HEAD), RenderStage.AFTER_BLOCK_ENTITIES) + 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 38cecb5b6..3d729640d 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.kinetics.simpleRelays; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.model.Model; @@ -40,7 +39,7 @@ public class BracketedKineticBlockEntityVisual extends SingleRotatingVisual half = instancerProvider.instancer(AllInstanceTypes.ROTATING, model, RenderStage.AFTER_BLOCK_ENTITIES); + 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 8ab02e00c..0ec188d30 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 @@ -3,7 +3,6 @@ package com.simibubi.create.content.kinetics.simpleRelays.encased; import java.util.Optional; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.model.Model; import com.jozufozu.flywheel.api.visualization.VisualizationContext; @@ -51,7 +50,7 @@ public class EncasedCogVisual extends KineticBlockEntityVisual implements Dy public EjectorVisual(VisualizationContext dispatcher, EjectorBlockEntity blockEntity) { super(dispatcher, blockEntity); - plate = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.EJECTOR_TOP), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); + plate = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.EJECTOR_TOP)).createInstance(); pivotPlate(); } 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 5f6744ed8..df3fc4156 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 @@ -3,7 +3,6 @@ package com.simibubi.create.content.logistics.funnel; import java.util.ArrayList; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.visual.DynamicVisual; @@ -34,7 +33,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.FLAPS, Models.partial(flapPartial), RenderStage.AFTER_BLOCK_ENTITIES); + Instancer model = instancerProvider.instancer(AllInstanceTypes.FLAPS, 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 a306349b2..ce0711bc1 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 @@ -6,7 +6,6 @@ import java.util.EnumMap; import java.util.Map; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.Instancer; import com.jozufozu.flywheel.api.visual.DynamicVisual; @@ -33,7 +32,7 @@ public class BeltTunnelVisual extends AbstractBlockEntityVisual(Direction.class); - Instancer model = instancerProvider.instancer(AllInstanceTypes.FLAPS, Models.partial(AllPartialModels.BELT_TUNNEL_FLAP), RenderStage.AFTER_BLOCK_ENTITIES); + Instancer model = instancerProvider.instancer(AllInstanceTypes.FLAPS, 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/redstone/analogLever/AnalogLeverVisual.java b/src/main/java/com/simibubi/create/content/redstone/analogLever/AnalogLeverVisual.java index b9fb9001d..37d831102 100644 --- a/src/main/java/com/simibubi/create/content/redstone/analogLever/AnalogLeverVisual.java +++ b/src/main/java/com/simibubi/create/content/redstone/analogLever/AnalogLeverVisual.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.redstone.analogLever; import java.util.function.Consumer; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.VisualFrameContext; @@ -32,9 +31,9 @@ public class AnalogLeverVisual extends AbstractBlockEntityVisual instancer.createInstance()) .map(BogeyModelData::new) @@ -213,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), RenderStage.AFTER_BLOCK_ENTITIES); + .instancer(InstanceTypes.TRANSFORMED, VirtualRenderHelper.blockModel(state)); BogeyModelData[] modelData = IntStream.range(0, count) .mapToObj(i -> instancer.createInstance()) .map(BogeyModelData::new) 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 e2f62dc78..84b9e6558 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 @@ -7,7 +7,6 @@ import java.util.function.Consumer; import javax.annotation.Nullable; -import com.jozufozu.flywheel.api.event.RenderStage; import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.lib.box.Box; @@ -114,11 +113,11 @@ public class TrackVisual extends AbstractBlockEntityVisual { TrackMaterial.TrackModelHolder modelHolder = bc.getMaterial().getModelHolder(); - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.tie()), RenderStage.AFTER_BLOCK_ENTITIES) + instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.tie())) .createInstances(ties); - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.segment_left()), RenderStage.AFTER_BLOCK_ENTITIES) + instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.segment_left())) .createInstances(left); - instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.segment_right()), RenderStage.AFTER_BLOCK_ENTITIES) + instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(modelHolder.segment_right())) .createInstances(right); SegmentAngles[] segments = bc.getBakedSegments(); @@ -194,10 +193,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), RenderStage.AFTER_BLOCK_ENTITIES)::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, RenderStage.AFTER_BLOCK_ENTITIES)::createInstances); + c.forEach(instancerProvider.instancer(InstanceTypes.TRANSFORMED, partialModel)::createInstances); }); GirderAngles[] bakedGirders = bc.getBakedGirders(); diff --git a/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java b/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java index 11a055ffd..dbddc143a 100644 --- a/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java +++ b/src/main/java/com/simibubi/create/foundation/render/AllInstanceTypes.java @@ -124,6 +124,8 @@ public class AllInstanceTypes { MemoryUtil.memPutFloat(ptr + 42, instance.speed); }) .register(); + + // TODO: remove public static final InstanceType FLAPS = SimpleInstanceType.builder(FlapInstance::new) .cullShader(asResource("instance/cull/flap.glsl")) .vertexShader(asResource("instance/flap.vert")) diff --git a/src/main/resources/assets/create/flywheel/instance/cull/belt.glsl b/src/main/resources/assets/create/flywheel/instance/cull/belt.glsl index 80778eef4..f16aeef0f 100644 --- a/src/main/resources/assets/create/flywheel/instance/cull/belt.glsl +++ b/src/main/resources/assets/create/flywheel/instance/cull/belt.glsl @@ -1,6 +1,4 @@ -#include "flywheel:util/quaternion.glsl" - void flw_transformBoundingSphere(in FlwInstance instance, inout vec3 center, inout float radius) { - // FIXME: this is incorrect, but it compiles - center = rotateByQuaternion(center - .5, instance.rotation) + instance.pos + .5; + radius += length(center - 0.5); + center += instance.pos; } diff --git a/src/main/resources/assets/create/flywheel/instance/cull/contraption_actor.glsl b/src/main/resources/assets/create/flywheel/instance/cull/contraption_actor.glsl index c830f69ea..6a0b1d857 100644 --- a/src/main/resources/assets/create/flywheel/instance/cull/contraption_actor.glsl +++ b/src/main/resources/assets/create/flywheel/instance/cull/contraption_actor.glsl @@ -1,11 +1,8 @@ -#include "flywheel:util/quaternion.glsl" - void flw_transformBoundingSphere(in FlwInstance instance, inout vec3 center, inout float radius) { - // FIXME: this is incorrect, but it compiles - float degrees = instance.offset + flw_renderSeconds * instance.speed; + // The instance will spin about the rotation center, so we need to expand the radius to account for that + float extraForKinetic = length(center - instance.rotationCenter); + float extraForModel = length(center - 0.5); - vec4 kineticRot = quaternion(instance.axis, degrees); - vec3 rotated = rotateByQuaternion(center - instance.rotationCenter, kineticRot) + instance.rotationCenter; - - center = rotateByQuaternion(rotated - .5, instance.rotation) + instance.pos + .5; + radius += extraForKinetic + extraForModel; + center += instance.pos; } diff --git a/src/main/resources/assets/create/flywheel/instance/cull/rotating.glsl b/src/main/resources/assets/create/flywheel/instance/cull/rotating.glsl index 2825ed2f9..da6118e15 100644 --- a/src/main/resources/assets/create/flywheel/instance/cull/rotating.glsl +++ b/src/main/resources/assets/create/flywheel/instance/cull/rotating.glsl @@ -1,15 +1,5 @@ -#include "flywheel:util/matrix.glsl" - -mat3 kineticRotation(float offset, float speed, vec3 axis) { - float degrees = offset + flw_renderTicks * speed * 3./10.; - - return rotationDegrees(axis, degrees); -} - void flw_transformBoundingSphere(in FlwInstance instance, inout vec3 center, inout float radius) { - // FIXME: this is incorrect, but it compiles - mat3 spin = kineticRotation(instance.offset, instance.speed, instance.axis); - - vec3 worldPos = spin * (center - .5); - center = worldPos + instance.pos + .5; + // The instance will spin about (0.5, 0.5, 0.5), so we need to expand the radius to account for that + radius += length(center - 0.5); + center += instance.pos; }