From d71b10cf72f5a02c4991ebc794c110ad83aa2a82 Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:43:23 -0800 Subject: [PATCH 1/3] Update to Flywheel 0.6.1 - Make SchematicWorld use plains instead of forest biome --- gradle.properties | 2 +- .../render/ContraptionInstanceManager.java | 46 +++++++++---------- .../content/schematics/SchematicWorld.java | 2 +- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index b162ae818..17d861a56 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ parchment_version = 2022.01.23 # dependency versions registrate_version = MC1.18-1.0.21 -flywheel_version = 1.18-0.6.0.50 +flywheel_version = 1.18-0.6.1.56 jei_minecraft_version = 1.18.1 jei_version = 9.2.1.69 diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java index d1d138bfc..2454e13f0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.tuple.Pair; import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.backend.instancing.TaskEngine; import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstanceManager; import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; @@ -15,52 +16,51 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import net.minecraft.client.Camera; -import net.minecraft.core.BlockPos; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; public class ContraptionInstanceManager extends BlockEntityInstanceManager { - protected ArrayList actors = new ArrayList<>(); + protected ArrayList actors = new ArrayList<>(); - private final VirtualRenderWorld renderWorld; + private final VirtualRenderWorld renderWorld; - ContraptionInstanceManager(MaterialManager materialManager, VirtualRenderWorld contraption) { + ContraptionInstanceManager(MaterialManager materialManager, VirtualRenderWorld contraption) { super(materialManager); this.renderWorld = contraption; } - public void tick() { - actors.forEach(ActorInstance::tick); - } + public void tick() { + actors.forEach(ActorInstance::tick); + } - @Override + @Override public void beginFrame(TaskEngine taskEngine, Camera info) { super.beginFrame(taskEngine, info); actors.forEach(ActorInstance::beginFrame); } - @Override - protected boolean shouldFrameUpdate(BlockPos worldPos, float lookX, float lookY, float lookZ, int cX, int cY, int cZ) { - return true; + @Override + protected void updateInstance(DynamicInstance dyn, float lookX, float lookY, float lookZ, int cX, int cY, int cZ) { + dyn.beginFrame(); } - @Nullable - public ActorInstance createActor(Pair actor) { - StructureBlockInfo blockInfo = actor.getLeft(); - MovementContext context = actor.getRight(); + @Nullable + public ActorInstance createActor(Pair actor) { + StructureBlockInfo blockInfo = actor.getLeft(); + MovementContext context = actor.getRight(); - MovementBehaviour movementBehaviour = AllMovementBehaviours.of(blockInfo.state); + MovementBehaviour movementBehaviour = AllMovementBehaviours.of(blockInfo.state); - if (movementBehaviour != null && movementBehaviour.hasSpecialInstancedRendering()) { - ActorInstance instance = movementBehaviour.createInstance(materialManager, renderWorld, context); + if (movementBehaviour != null && movementBehaviour.hasSpecialInstancedRendering()) { + ActorInstance instance = movementBehaviour.createInstance(materialManager, renderWorld, context); - actors.add(instance); + actors.add(instance); - return instance; - } + return instance; + } - return null; - } + return null; + } } diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java index e65fc6864..8104244c3 100644 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java +++ b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java @@ -138,7 +138,7 @@ public class SchematicWorld extends WrappedWorld implements ServerLevelAccessor @Override public Biome getBiome(BlockPos pos) { - return ForgeRegistries.BIOMES.getValue(Biomes.FOREST.location()); + return ForgeRegistries.BIOMES.getValue(Biomes.PLAINS.location()); } @Override From 00555ff572ae95c03a1b6619a9ab67032d752615 Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:45:47 -0800 Subject: [PATCH 2/3] Bump Flywheel version dependency --- src/main/resources/META-INF/mods.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index a09543314..4936aa7de 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -32,6 +32,6 @@ Technology that empowers the player.''' [[dependencies.create]] modId="flywheel" mandatory=true - versionRange="[1.18-0.6.0,1.18-0.6.1)" + versionRange="[1.18-0.6.1,1.18-0.6.2)" ordering="AFTER" side="CLIENT" From 9c42988135301dcf11980a59b8e05969a2d237f4 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Sat, 5 Feb 2022 12:43:28 -0800 Subject: [PATCH 3/3] Portable clipping interface - Fix PSI z-fighting --- .../actors/PortableStorageInterfaceRenderer.java | 3 +++ .../components/flywheel/engine/EngineInstance.java | 7 +++---- .../components/flywheel/engine/FurnaceEngineBlock.java | 3 +-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java index 39ff32874..87bcb8836 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java @@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.actors; import java.util.function.Consumer; +import com.jozufozu.flywheel.backend.Backend; import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; import com.mojang.blaze3d.vertex.PoseStack; @@ -34,6 +35,8 @@ public class PortableStorageInterfaceRenderer extends SafeTileEntityRenderer { Block block = blockState .getBlock(); - if (!(block instanceof EngineBlock)) + if (!(block instanceof EngineBlock engineBlock)) return; - EngineBlock engineBlock = (EngineBlock) block; - PartialModel frame = engineBlock.getFrameModel(); + PartialModel frame = engineBlock.getFrameModel(); Direction facing = blockState.getValue(BlockStateProperties.HORIZONTAL_FACING); @@ -33,7 +32,7 @@ public class EngineInstance extends BlockEntityInstance { this.frame.loadIdentity() .translate(getInstancePosition()) - .nudge(tile.hashCode()) + .nudge(pos.hashCode()) .centre() .rotate(Direction.UP, angle) .unCentre() diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java index a470f3de7..be69f1a3e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java @@ -66,9 +66,8 @@ public class FurnaceEngineBlock extends EngineBlock implements ITE