From 7df37f7bff9c6a028413ba64d1fe5746a7d206d7 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Sat, 2 Mar 2024 21:27:48 -0800 Subject: [PATCH] Unlit - Remove last bits of FlwContraption rendering - Remove ContraptionLighter --- .../content/contraptions/Contraption.java | 14 +- .../contraptions/bearing/AnchoredLighter.java | 19 -- .../bearing/BearingContraption.java | 8 - .../bearing/ClockworkContraption.java | 8 - .../bearing/StabilizedContraption.java | 9 - .../gantry/GantryContraption.java | 9 - .../mounted/MountedContraption.java | 11 +- .../piston/PistonContraption.java | 8 - .../contraptions/piston/PistonLighter.java | 35 ---- .../pulley/PulleyContraption.java | 13 +- .../contraptions/pulley/PulleyLighter.java | 30 --- .../render/ContraptionLighter.java | 53 ----- .../contraptions/render/EmptyLighter.java | 16 -- .../contraptions/render/FlwContraption.java | 194 ------------------ .../render/FlwContraptionManager.java | 89 -------- .../render/NonStationaryLighter.java | 38 ---- .../trains/entity/CarriageContraption.java | 12 +- 17 files changed, 6 insertions(+), 560 deletions(-) delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/bearing/AnchoredLighter.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/piston/PistonLighter.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyLighter.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/render/ContraptionLighter.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/render/EmptyLighter.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/render/FlwContraption.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/render/FlwContraptionManager.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/render/NonStationaryLighter.java diff --git a/src/main/java/com/simibubi/create/content/contraptions/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/Contraption.java index 562c21881..2deadc35e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/Contraption.java @@ -54,8 +54,6 @@ import com.simibubi.create.content.contraptions.pulley.PulleyBlock; import com.simibubi.create.content.contraptions.pulley.PulleyBlock.MagnetBlock; import com.simibubi.create.content.contraptions.pulley.PulleyBlock.RopeBlock; import com.simibubi.create.content.contraptions.pulley.PulleyBlockEntity; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; -import com.simibubi.create.content.contraptions.render.EmptyLighter; import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorBlock; import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity; import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour; @@ -122,8 +120,6 @@ import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -1157,14 +1153,14 @@ public abstract class Contraption { if (behaviour != null) behaviour.startMoving(context); pair.setRight(context); - if (behaviour instanceof ContraptionControlsMovement) + if (behaviour instanceof ContraptionControlsMovement) disableActorOnStart(context); } for (ItemStack stack : disabledActors) setActorsActive(stack, false); } - + protected void disableActorOnStart(MovementContext context) { if (!ContraptionControlsMovement.isDisabledInitially(context)) return; @@ -1303,12 +1299,6 @@ public abstract class Contraption { return interactors; } - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - // TODO: move lighters to registry - return new EmptyLighter(this); - } - public void invalidateColliders() { simplifiedEntityColliders = Optional.empty(); gatherBBsOffThread(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/AnchoredLighter.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/AnchoredLighter.java deleted file mode 100644 index 25b7e17ae..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/AnchoredLighter.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.simibubi.create.content.contraptions.bearing; - -import com.jozufozu.flywheel.lib.box.MutableBox; -import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; - -public class AnchoredLighter extends ContraptionLighter { - - public AnchoredLighter(Contraption contraption) { - super(contraption); - } - - @Override - public MutableBox getContraptionBounds() { - MutableBox bb = MutableBox.from(contraption.bounds); - bb.translate(contraption.anchor); - return bb; - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingContraption.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingContraption.java index 37d35bd26..ce4f40be7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/bearing/BearingContraption.java @@ -7,7 +7,6 @@ import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.ContraptionType; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; import com.simibubi.create.content.decoration.copycat.CopycatBlockEntity; import com.simibubi.create.infrastructure.config.AllConfigs; @@ -18,8 +17,6 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; public class BearingContraption extends Contraption { @@ -104,9 +101,4 @@ public class BearingContraption extends Contraption { return facing.getAxis() == this.facing.getAxis(); } - @OnlyIn(Dist.CLIENT) - @Override - public ContraptionLighter makeLighter() { - return new AnchoredLighter(this); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/ClockworkContraption.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/ClockworkContraption.java index 1ab8f97af..8ceca23c0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/ClockworkContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/bearing/ClockworkContraption.java @@ -9,15 +9,12 @@ import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.ContraptionType; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; public class ClockworkContraption extends Contraption { @@ -132,9 +129,4 @@ public class ClockworkContraption extends Contraption { HOUR, MINUTE } - @Override - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - return new AnchoredLighter(this); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedContraption.java b/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedContraption.java index c4ef7cf30..67c994624 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/bearing/StabilizedContraption.java @@ -3,15 +3,11 @@ package com.simibubi.create.content.contraptions.bearing; import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.ContraptionType; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; -import com.simibubi.create.content.contraptions.render.NonStationaryLighter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; public class StabilizedContraption extends Contraption { @@ -66,9 +62,4 @@ public class StabilizedContraption extends Contraption { return facing; } - @Override - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - return new NonStationaryLighter<>(this); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryContraption.java b/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryContraption.java index 5ec56c80e..447ff7bf8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/gantry/GantryContraption.java @@ -4,16 +4,12 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.ContraptionType; import com.simibubi.create.content.contraptions.TranslatingContraption; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; -import com.simibubi.create.content.contraptions.render.NonStationaryLighter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; public class GantryContraption extends TranslatingContraption { @@ -65,9 +61,4 @@ public class GantryContraption extends TranslatingContraption { return super.shouldUpdateAfterMovement(info) && !AllBlocks.GANTRY_CARRIAGE.has(info.state()); } - @Override - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - return new NonStationaryLighter<>(this); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/mounted/MountedContraption.java b/src/main/java/com/simibubi/create/content/contraptions/mounted/MountedContraption.java index 620b47097..0c2052a3d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/mounted/MountedContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/mounted/MountedContraption.java @@ -11,8 +11,6 @@ import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.ContraptionType; import com.simibubi.create.content.contraptions.mounted.CartAssemblerBlockEntity.CartMovementMode; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; -import com.simibubi.create.content.contraptions.render.NonStationaryLighter; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; @@ -32,8 +30,6 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.RailShape; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import net.minecraft.world.phys.AABB; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.items.wrapper.InvWrapper; public class MountedContraption extends Contraption { @@ -159,10 +155,5 @@ public class MountedContraption extends Contraption { if (cart instanceof Container container) storage.attachExternal(new ContraptionInvWrapper(true, new InvWrapper(container))); } - - @Override - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - return new NonStationaryLighter<>(this); - } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/piston/PistonContraption.java b/src/main/java/com/simibubi/create/content/contraptions/piston/PistonContraption.java index 859cf4064..3072c3604 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/piston/PistonContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/piston/PistonContraption.java @@ -19,7 +19,6 @@ import com.simibubi.create.content.contraptions.BlockMovementChecks; import com.simibubi.create.content.contraptions.ContraptionType; import com.simibubi.create.content.contraptions.TranslatingContraption; import com.simibubi.create.content.contraptions.piston.MechanicalPistonBlock.PistonState; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.infrastructure.config.AllConfigs; @@ -36,8 +35,6 @@ import net.minecraft.world.level.block.state.properties.PistonType; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import net.minecraft.world.level.material.PushReaction; import net.minecraft.world.phys.AABB; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; public class PistonContraption extends TranslatingContraption { @@ -244,9 +241,4 @@ public class PistonContraption extends TranslatingContraption { return tag; } - @OnlyIn(Dist.CLIENT) - @Override - public ContraptionLighter makeLighter() { - return new PistonLighter(this); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/piston/PistonLighter.java b/src/main/java/com/simibubi/create/content/contraptions/piston/PistonLighter.java deleted file mode 100644 index f3a1013a8..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/piston/PistonLighter.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.simibubi.create.content.contraptions.piston; - -import com.jozufozu.flywheel.lib.box.MutableBox; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; - -import net.minecraft.core.Vec3i; - -public class PistonLighter extends ContraptionLighter { - public PistonLighter(PistonContraption contraption) { - super(contraption); - } - - @Override - public MutableBox getContraptionBounds() { - MutableBox bounds = MutableBox.from(contraption.bounds); - bounds.translate(contraption.anchor); - - int length = contraption.extensionLength; - Vec3i direction = contraption.orientation.getNormal(); - - int shift = length / 2; - int shiftX = direction.getX() * shift; - int shiftY = direction.getY() * shift; - int shiftZ = direction.getZ() * shift; - bounds.translate(shiftX, shiftY, shiftZ); - - int grow = (length + 1) / 2; - int extendX = Math.abs(direction.getX() * grow); - int extendY = Math.abs(direction.getY() * grow); - int extendZ = Math.abs(direction.getZ() * grow); - bounds.grow(extendX, extendY, extendZ); - - return bounds; - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyContraption.java b/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyContraption.java index cc4eb19a4..8310a4cae 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyContraption.java @@ -3,18 +3,15 @@ package com.simibubi.create.content.contraptions.pulley; import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.ContraptionType; import com.simibubi.create.content.contraptions.TranslatingContraption; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; public class PulleyContraption extends TranslatingContraption { int initialOffset; - + @Override public ContraptionType getType() { return ContraptionType.PULLEY; @@ -57,13 +54,7 @@ public class PulleyContraption extends TranslatingContraption { super.readNBT(world, nbt, spawnData); } - @Override - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - return new PulleyLighter(this); - } - - public int getInitialOffset() { + public int getInitialOffset() { return initialOffset; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyLighter.java b/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyLighter.java deleted file mode 100644 index 82d400161..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyLighter.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.simibubi.create.content.contraptions.pulley; - -import com.jozufozu.flywheel.lib.box.MutableBox; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; - -public class PulleyLighter extends ContraptionLighter { - public PulleyLighter(PulleyContraption contraption) { - super(contraption); - } - - @Override - public MutableBox getContraptionBounds() { - - MutableBox bounds = MutableBox.from(contraption.bounds); - - Level world = contraption.entity.level(); - - BlockPos.MutableBlockPos pos = contraption.anchor.mutable(); - while (!AllBlocks.ROPE_PULLEY.has(world.getBlockState(pos)) && pos.getY() < world.getMaxBuildHeight()) - pos.move(0, 1, 0); - - bounds.translate(pos); - bounds.setMinY(world.getMinBuildHeight()); - return bounds; - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionLighter.java b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionLighter.java deleted file mode 100644 index e3033709f..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionLighter.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.simibubi.create.content.contraptions.render; - -import com.jozufozu.flywheel.lib.box.Box; -import com.jozufozu.flywheel.lib.box.MutableBox; -import com.jozufozu.flywheel.lib.light.GPULightVolume; -import com.simibubi.create.content.contraptions.Contraption; - -import net.minecraft.core.SectionPos; -import net.minecraft.world.level.LightLayer; - -public abstract class ContraptionLighter { - protected final C contraption; - public final GPULightVolume lightVolume; - - protected final MutableBox bounds; - - protected boolean scheduleRebuild; - - protected ContraptionLighter(C contraption) { - this.contraption = contraption; - - bounds = getContraptionBounds(); - growBoundsForEdgeData(bounds); - - lightVolume = new GPULightVolume(contraption.entity.level(), bounds); - - lightVolume.initialize(); - scheduleRebuild = true; - } - - public abstract MutableBox getContraptionBounds(); - - public boolean isInvalid() { - return lightVolume.isInvalid(); - } - - public void onLightUpdate(LightLayer type, SectionPos pos) { - lightVolume.onLightUpdate(type, pos); - } - - protected static void growBoundsForEdgeData(MutableBox bounds) { - // so we have at least enough data on the edges to avoid artifacts and have smooth lighting - bounds.grow(2); - } - - public Box getVolume() { - return bounds; - } - - public void delete() { - lightVolume.delete(); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/EmptyLighter.java b/src/main/java/com/simibubi/create/content/contraptions/render/EmptyLighter.java deleted file mode 100644 index 0b4e02b5d..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/render/EmptyLighter.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.simibubi.create.content.contraptions.render; - -import com.jozufozu.flywheel.lib.box.MutableBox; -import com.simibubi.create.content.contraptions.Contraption; - -// so other contraptions don't crash before they have a lighter -public class EmptyLighter extends ContraptionLighter { - public EmptyLighter(Contraption contraption) { - super(contraption); - } - - @Override - public MutableBox getContraptionBounds() { - return new MutableBox(0, 0, 0, 1, 1, 1); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/FlwContraption.java b/src/main/java/com/simibubi/create/content/contraptions/render/FlwContraption.java deleted file mode 100644 index a852e8619..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/render/FlwContraption.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.simibubi.create.content.contraptions.render; - -import org.joml.Matrix4f; - -import com.jozufozu.flywheel.api.event.BeginFrameEvent; -import com.jozufozu.flywheel.api.event.RenderStageEvent; -import com.jozufozu.flywheel.backend.gl.GlStateTracker; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.content.contraptions.AbstractContraptionEntity; -import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; - -import net.minecraft.util.Mth; -import net.minecraft.world.phys.AABB; - -public class FlwContraption extends ContraptionRenderInfo { - - private final ContraptionLighter lighter; - - // private final Map renderLayers = new HashMap<>(); - - private final Matrix4f modelViewPartial = new Matrix4f(); - private final ContraptionInstanceWorld instanceWorld; - private boolean modelViewPartialReady; - // floats because we upload this to the gpu - private AABB lightBox; - - public FlwContraption(Contraption contraption, VirtualRenderWorld renderWorld) { - super(contraption, renderWorld); - this.lighter = contraption.makeLighter(); - - instanceWorld = new ContraptionInstanceWorld(this); - - var restoreState = GlStateTracker.getRestoreState(); - buildLayers(); - if (ContraptionRenderDispatcher.canInstance()) { - // buildInstancedBlockEntities(); - buildActors(); - } - restoreState.restore(); - } - - public ContraptionLighter getLighter() { - return lighter; - } - -// public void renderStructureLayer(RenderType layer, ContraptionProgram shader) { -// ArrayModelRenderer structure = renderLayers.get(layer); -// if (structure != null) { -// setup(shader); -// structure.draw(); -// } -// } - - public void renderInstanceLayer(RenderStageEvent event) { - -// event.stack.pushPose(); -// float partialTicks = AnimationTickHolder.getPartialTicks(); -// AbstractContraptionEntity entity = contraption.entity; -// double x = Mth.lerp(partialTicks, entity.xOld, entity.getX()); -// double y = Mth.lerp(partialTicks, entity.yOld, entity.getY()); -// double z = Mth.lerp(partialTicks, entity.zOld, entity.getZ()); -// event.stack.translate(x - event.camX, y - event.camY, z - event.camZ); -// ContraptionMatrices.transform(event.stack, getMatrices().getModel()); -// instanceWorld.engine.render(SerialTaskEngine.INSTANCE, event); -// -// event.stack.popPose(); - } - - public void beginFrame(BeginFrameEvent event) { -// super.beginFrame(event); -// -// modelViewPartial.identity(); -// modelViewPartialReady = false; -// -// if (!isVisible()) return; -// -// instanceWorld.blockEntityInstanceManager.beginFrame(SerialTaskEngine.INSTANCE, event.getCamera()); -// -// Vec3 cameraPos = event.getCameraPos(); -// -// lightBox = lighter.lightVolume.toAABB() -// .move(-cameraPos.x, -cameraPos.y, -cameraPos.z); - } - - @Override - public void setupMatrices(PoseStack viewProjection, double camX, double camY, double camZ) { - super.setupMatrices(viewProjection, camX, camY, camZ); - - if (!modelViewPartialReady) { - setupModelViewPartial(modelViewPartial, getMatrices().getModel().last().pose(), contraption.entity, camX, camY, camZ, AnimationTickHolder.getPartialTicks()); - modelViewPartialReady = true; - } - } - -// void setup(ContraptionProgram shader) { -// if (!modelViewPartialReady || lightBox == null) return; -// shader.bind(modelViewPartial, lightBox); -// lighter.lightVolume.bind(); -// } - - public void invalidate() { -// for (ArrayModelRenderer renderer : renderLayers.values()) { -// renderer.delete(); -// renderer.getModel().delete(); -// } -// renderLayers.clear(); -// -// lighter.delete(); -// -// instanceWorld.delete(); - } - - private void buildLayers() { -// for (ArrayModelRenderer renderer : renderLayers.values()) { -// renderer.delete(); -// renderer.getModel().delete(); -// } -// -// renderLayers.clear(); -// -// List blockLayers = RenderType.chunkBufferLayers(); -// Collection renderedBlocks = contraption.getRenderedBlocks(); -// -// for (RenderType layer : blockLayers) { -// Model layerModel = new WorldModelBuilder(layer).withRenderWorld(renderWorld) -// .withModelData(contraption.modelData) -// .withBlocks(renderedBlocks) -// .toModel(layer + "_" + contraption.entity.getId()); -// renderLayers.put(layer, new ArrayModelRenderer(layerModel)); -// } - } - -// private void buildInstancedBlockEntities() { -// for (BlockEntity be : contraption.maybeInstancedBlockEntities) { -// if (!InstancedRenderRegistry.canInstance(be.getType())) { -// continue; -// } -// -// Level world = be.getLevel(); -// be.setLevel(renderWorld); -// instanceWorld.blockEntityInstanceManager.add(be); -// be.setLevel(world); -// } -// } - - private void buildActors() { -// contraption.getActors().forEach(instanceWorld.blockEntityInstanceManager::createActor); - } - - public static void setupModelViewPartial(Matrix4f matrix, Matrix4f modelMatrix, AbstractContraptionEntity entity, double camX, double camY, double camZ, float pt) { - float x = (float) (Mth.lerp(pt, entity.xOld, entity.getX()) - camX); - float y = (float) (Mth.lerp(pt, entity.yOld, entity.getY()) - camY); - float z = (float) (Mth.lerp(pt, entity.zOld, entity.getZ()) - camZ); - matrix.setTranslation(x, y, z); - matrix.mul(modelMatrix); - } - - public void tick() { -// instanceWorld.blockEntityInstanceManager.tick(); - } - - public static class ContraptionInstanceWorld { - -// private final Engine engine; -// private final ContraptionInstanceManager blockEntityInstanceManager; - - public ContraptionInstanceWorld(FlwContraption parent) { -// switch (Backend.getBackendType()) { -// case INSTANCING -> { -// InstancingEngine engine = InstancingEngine.builder(CreateContexts.CWORLD) -// .setGroupFactory(ContraptionGroup.forContraption(parent)) -// .setIgnoreOriginCoordinate(true) -// .build(); -// blockEntityInstanceManager = new ContraptionInstanceManager(engine, parent.renderWorld, parent.contraption); -// engine.addListener(blockEntityInstanceManager); -// -// this.engine = engine; -// } -// case BATCHING -> { -// engine = new BatchingEngine(); -// blockEntityInstanceManager = new ContraptionInstanceManager(engine, parent.renderWorld, parent.contraption); -// } -// default -> throw new IllegalArgumentException("Unknown engine type"); -// } - } - - public void delete() { -// engine.delete(); -// blockEntityInstanceManager.invalidate(); - } - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/FlwContraptionManager.java b/src/main/java/com/simibubi/create/content/contraptions/render/FlwContraptionManager.java deleted file mode 100644 index 9b2d3139e..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/render/FlwContraptionManager.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.simibubi.create.content.contraptions.render; - -import com.jozufozu.flywheel.api.event.RenderStageEvent; -import com.simibubi.create.content.contraptions.Contraption; - -import net.minecraft.world.level.LevelAccessor; - -public class FlwContraptionManager extends ContraptionRenderingWorld { - - public FlwContraptionManager(LevelAccessor world) { - super(world); - } - - @Override - public void tick() { - super.tick(); - - for (FlwContraption contraption : visible) { - contraption.tick(); - } - } - - @Override - public void renderLayer(RenderStageEvent event) { -// super.renderLayer(event); -// -// if (visible.isEmpty()) return; -// -// GlStateTracker.State restoreState = GlStateTracker.getRestoreState(); -// GlTextureUnit active = GlTextureUnit.getActive(); -// -// var backendType = Backend.getBackendType(); -// if (backendType != BackendType.OFF) { -// renderStructures(event); -// } -// -// if (backendType != BackendType.BATCHING && event.getLayer() != null) { -// for (FlwContraption renderer : visible) { -// renderer.renderInstanceLayer(event); -// } -// } -// -// // clear the light volume state -// GlTextureUnit.T4.makeActive(); -// glBindTexture(GL_TEXTURE_3D, 0); -// -// event.type.clearRenderState(); -// active.makeActive(); -// restoreState.restore(); - } - - private void renderStructures(RenderStageEvent event) { - -// event.type.setupRenderState(); -// Textures.bindActiveTextures(); -// -// ContraptionProgram structureShader = CreateContexts.STRUCTURE.getProgram(ProgramContext.create(Materials.Names.PASSTHRU, Formats.BLOCK, RenderLayer.getLayer(event.type))); -// -// structureShader.bind(); -// structureShader.uploadViewProjection(event.viewProjection); -// structureShader.uploadCameraPos(event.camX, event.camY, event.camZ); -// -// for (FlwContraption flwContraption : visible) { -// flwContraption.renderStructureLayer(event.type, structureShader); -// } - } - - @Override - protected FlwContraption create(Contraption c) { -// VirtualRenderWorld renderWorld = ContraptionRenderDispatcher.setupRenderWorld(world, c); -// return new FlwContraption(c, renderWorld); - return null; - } - - @Override - public void removeDeadRenderers() { - boolean removed = renderInfos.values() - .removeIf(renderer -> { - if (renderer.isDead()) { - renderer.invalidate(); - return true; - } - return false; - }); - - // we use visible in #tick() so we have to re-evaluate it if any were removed - if (removed) collectVisible(); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/NonStationaryLighter.java b/src/main/java/com/simibubi/create/content/contraptions/render/NonStationaryLighter.java deleted file mode 100644 index d3a229444..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/render/NonStationaryLighter.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.simibubi.create.content.contraptions.render; - -import com.jozufozu.flywheel.lib.box.Box; -import com.jozufozu.flywheel.lib.box.MutableBox; -import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.infrastructure.config.AllConfigs; - -public class NonStationaryLighter extends ContraptionLighter { - public NonStationaryLighter(C contraption) { - super(contraption); - } - - public boolean tickLightListener() { - if (getVolume().volume() > AllConfigs.client().maxContraptionLightVolume.get()) - return false; - - Box contraptionBounds = getContraptionBounds(); - - if (bounds.sameAs(contraptionBounds, 2)) { - return false; - } - bounds.assign(contraptionBounds); - growBoundsForEdgeData(bounds); - - lightVolume.move(bounds); - - return true; - } - - @Override - public MutableBox getContraptionBounds() { - MutableBox bb = MutableBox.from(contraption.bounds); - - bb.translate(contraption.entity.blockPosition()); - - return bb; - } -} diff --git a/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraption.java b/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraption.java index 050ec7cd3..6c343cbba 100644 --- a/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraption.java +++ b/src/main/java/com/simibubi/create/content/trains/entity/CarriageContraption.java @@ -17,8 +17,6 @@ import com.simibubi.create.content.contraptions.ContraptionType; import com.simibubi.create.content.contraptions.MountedStorageManager; import com.simibubi.create.content.contraptions.actors.trainControls.ControlsBlock; import com.simibubi.create.content.contraptions.minecart.TrainCargoManager; -import com.simibubi.create.content.contraptions.render.ContraptionLighter; -import com.simibubi.create.content.contraptions.render.NonStationaryLighter; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.trains.bogey.AbstractBogeyBlock; @@ -41,8 +39,6 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import net.minecraft.world.phys.AABB; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; @@ -242,13 +238,7 @@ public class CarriageContraption extends Contraption { return ContraptionType.CARRIAGE; } - @Override - @OnlyIn(Dist.CLIENT) - public ContraptionLighter makeLighter() { - return new NonStationaryLighter<>(this); - } - - public Direction getAssemblyDirection() { + public Direction getAssemblyDirection() { return assemblyDirection; }