From d6fc5f5752788bde8e4cf3d2efb2bf406cef301b Mon Sep 17 00:00:00 2001 From: jbredwards <47703524+jbredwards@users.noreply.github.com> Date: Sat, 3 Jan 2026 10:31:29 -0500 Subject: [PATCH] Fluidlogged API support --- build.gradle | 1 + .../com/deeperdepths/common/Constants.java | 2 +- .../common/DeeperDepthsEventHandler.java | 50 -------------- .../common/blocks/BlockCopperGrate.java | 51 +-------------- .../common/blocks/IFluidloggable.java | 39 ++--------- .../mixin/MixinBlockFluidRenderer.java | 32 --------- .../mixin/MixinBlockRenderDispatcher.java | 39 ----------- .../mixin/MixinDispenseFluidBehaviour.java | 65 ------------------- .../deeperdepths/mixin/MixinRenderChunk.java | 49 -------------- src/main/resources/mixins.deeperdepths.json | 6 +- 10 files changed, 10 insertions(+), 324 deletions(-) delete mode 100644 src/main/java/com/deeperdepths/mixin/MixinBlockFluidRenderer.java delete mode 100644 src/main/java/com/deeperdepths/mixin/MixinBlockRenderDispatcher.java delete mode 100644 src/main/java/com/deeperdepths/mixin/MixinDispenseFluidBehaviour.java delete mode 100644 src/main/java/com/deeperdepths/mixin/MixinRenderChunk.java diff --git a/build.gradle b/build.gradle index 9db3376..bbde2c8 100644 --- a/build.gradle +++ b/build.gradle @@ -84,6 +84,7 @@ configurations { dependencies { minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2860' + compileOnly "curse.maven:fluidlogged-api-485654:7212988" implementation "org.spongepowered:mixin:0.8" implementation "curse.maven:atlas-463826:6981034" implementation "curse.maven:raids-977633:5626565" diff --git a/src/main/java/com/deeperdepths/common/Constants.java b/src/main/java/com/deeperdepths/common/Constants.java index 229f169..8b4beb4 100644 --- a/src/main/java/com/deeperdepths/common/Constants.java +++ b/src/main/java/com/deeperdepths/common/Constants.java @@ -19,7 +19,7 @@ public class Constants { public static final String NAME = "Deeper Depths"; public static final String MODID = "deeperdepths"; public static final String VERSION = "1.1.1"; - public static final String DEPENDENCIES = "required-after:atlaslib@[1.1.9,)"; + public static final String DEPENDENCIES = "required-after:atlaslib@[1.1.9,);after:fluidlogged_api@[3.1.0,)"; public static final String PATH = "com.deeperdepths."; public static final String CLIENT = PATH + "client.ClientProxy"; public static final String SERVER = PATH + "common.CommonProxy"; diff --git a/src/main/java/com/deeperdepths/common/DeeperDepthsEventHandler.java b/src/main/java/com/deeperdepths/common/DeeperDepthsEventHandler.java index 2572567..5b2b50c 100644 --- a/src/main/java/com/deeperdepths/common/DeeperDepthsEventHandler.java +++ b/src/main/java/com/deeperdepths/common/DeeperDepthsEventHandler.java @@ -3,7 +3,6 @@ import com.deeperdepths.common.blocks.BlockCandle; import com.deeperdepths.common.blocks.BlockLightningRod; import com.deeperdepths.common.blocks.ICopperBlock; -import com.deeperdepths.common.blocks.IFluidloggable; import com.deeperdepths.common.blocks.tiles.TileTrialSpawner; import com.deeperdepths.common.blocks.tiles.TileVault; import com.deeperdepths.common.capabilities.CapabilityWindChargeFall; @@ -320,53 +319,4 @@ public void livingHurtEnd(LivingAttackEvent event) { public void addLoot(LootTableLoadEvent event) { for (LootTableEntry entry : LootTablesConfig.ENTRIES) if (entry.canApply(event.getName())) entry.addEntry(event.getTable()); } - - @SubscribeEvent(priority = EventPriority.HIGH) - public void fillBucket(FillBucketEvent event) { - World world = event.getWorld(); - RayTraceResult ray = event.getTarget(); - if (ray == null) return; - if (ray.typeOfHit != RayTraceResult.Type.BLOCK) return; - BlockPos pos = ray.getBlockPos(); - IBlockState state = world.getBlockState(pos); - Block block = state.getBlock(); - if (!(block instanceof IFluidloggable)) return; - ItemStack bucket = event.getEmptyBucket(); - if (!bucket.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) return; - IFluidloggable loggableBlock = (IFluidloggable) block; - IFluidHandlerItem cap = bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); - EntityPlayer player = event.getEntityPlayer(); - FluidStack fluidStack = FluidUtil.getFluidContained(bucket); - if (loggableBlock.isFluidLogged(world, pos, state)) { - if (fluidStack != null) return; - Optional optional = loggableBlock.getContainedFluid(world, pos, state); - if (!optional.isPresent()) return; - Fluid fluid = optional.get(); - fluidStack = new FluidStack(fluid, 1000); - if (cap.fill(fluidStack, false) < 1000) return; - player.playSound(fluid.getFillSound(fluidStack), 1, 1); - loggableBlock.empty(world, pos, state); - if (!player.isCreative()) cap.fill(fluidStack, true); - } else { - if (fluidStack == null) return; - if (fluidStack.amount < 1000 |! loggableBlock.canContainFluid(world, pos, state, fluidStack.getFluid())) return; - FluidStack drained = cap.drain(fluidStack, false); - if (drained == null) return; - if (drained.amount < 1000 || drained.getFluid() != fluidStack.getFluid()) return; - if (world.provider.doesWaterVaporize()) { - world.playSound(player, pos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5f, 2.6f + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8f); - for (int k = 0; k < 8; ++k) - world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, pos.getX() + Math.random(), pos.getY() + Math.random(), pos.getZ() + Math.random(), 0, 0, 0); - } else { - world.playSound(player, pos, fluidStack.getFluid().getEmptySound(fluidStack), SoundCategory.BLOCKS, 1, 1); - loggableBlock.fillWithFluid(world, pos, state, fluidStack.getFluid()); - } - if (!player.isCreative()) cap.drain(fluidStack, true); - } - player.addStat(StatList.getObjectUseStats(bucket.getItem())); - ItemStack container = cap.getContainer().copy(); - event.setFilledBucket(container); - event.setResult(Event.Result.ALLOW); - } - } diff --git a/src/main/java/com/deeperdepths/common/blocks/BlockCopperGrate.java b/src/main/java/com/deeperdepths/common/blocks/BlockCopperGrate.java index 6081d21..2127b87 100644 --- a/src/main/java/com/deeperdepths/common/blocks/BlockCopperGrate.java +++ b/src/main/java/com/deeperdepths/common/blocks/BlockCopperGrate.java @@ -1,17 +1,12 @@ package com.deeperdepths.common.blocks; import com.deeperdepths.common.DeeperDepthsSoundTypes; -import com.deeperdepths.common.blocks.enums.EnumWeatherStage; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -25,36 +20,7 @@ public BlockCopperGrate() { @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, WEATHER_STAGE, WAXED, WATERLOGGED); - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) { - return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand) - .withProperty(WATERLOGGED, world.getBlockState(pos).getBlock() == Blocks.WATER); - } - - @Override - public int getMetaFromState(IBlockState state) { - return super.getMetaFromState(state) + (state.getValue(WATERLOGGED) ? 8 : 0); - } - - @Override - public int damageDropped(IBlockState state) { - return super.damageDropped(state) % 8; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - return getDefaultState().withProperty(WEATHER_STAGE, EnumWeatherStage.values()[meta % 4]) - .withProperty(WAXED, meta % 8 >= 4).withProperty(WATERLOGGED, meta >= 8); - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) { - super.breakBlock(world, pos, state); - if (world.getBlockState(pos) != Blocks.AIR) return; - if (state.getValue(WATERLOGGED)) world.setBlockState(pos, Blocks.WATER.getDefaultState(), 3); + return new BlockStateContainer(this, WEATHER_STAGE, WAXED); } @Override @@ -72,21 +38,6 @@ public boolean isOpaqueCube(IBlockState state) { return false; } - /*@Override - public Material getMaterial(IBlockState state) { - return state.getValue(WATERLOGGED) ? Material.WATER : super.getMaterial(state); - } - - @Override - public boolean isReplaceable(IBlockAccess world, BlockPos pos) { - return false; - }*/ - - @Override - public String byState(IBlockState state) { - return byMeta(getMetaFromState(state) % getMaxMeta()); - } - @Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing facing) { diff --git a/src/main/java/com/deeperdepths/common/blocks/IFluidloggable.java b/src/main/java/com/deeperdepths/common/blocks/IFluidloggable.java index 9fe790f..3fc3426 100644 --- a/src/main/java/com/deeperdepths/common/blocks/IFluidloggable.java +++ b/src/main/java/com/deeperdepths/common/blocks/IFluidloggable.java @@ -1,37 +1,10 @@ package com.deeperdepths.common.blocks; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -import java.util.Optional; - -public interface IFluidloggable { - - PropertyBool WATERLOGGED = PropertyBool.create("waterlogged"); - - default boolean isFluidLogged(IBlockAccess world, BlockPos pos, IBlockState state) { - return state.getValue(WATERLOGGED); - } - - default Optional getContainedFluid(IBlockAccess world, BlockPos pos, IBlockState state) { - return state.getValue(WATERLOGGED) ? Optional.of(FluidRegistry.WATER) : Optional.empty(); - } - - default boolean canContainFluid(IBlockAccess world, BlockPos pos, IBlockState state, Fluid fluid) { - return fluid == FluidRegistry.WATER; - } - - default void fillWithFluid(World world, BlockPos pos, IBlockState state, Fluid fluid) { - world.setBlockState(pos, state.withProperty(WATERLOGGED, true), 3); - } - - default void empty(World world, BlockPos pos, IBlockState state) { - world.setBlockState(pos, state.withProperty(WATERLOGGED, false), 3); - } +/** + * Wrapper for Fluidlogged API. + */ +@net.minecraftforge.fml.common.Optional.Interface +(modid = "fluidlogged_api", iface = "git.jbredwards.fluidlogged_api.api.block.IFluidloggable") +public interface IFluidloggable extends git.jbredwards.fluidlogged_api.api.block.IFluidloggable { } diff --git a/src/main/java/com/deeperdepths/mixin/MixinBlockFluidRenderer.java b/src/main/java/com/deeperdepths/mixin/MixinBlockFluidRenderer.java deleted file mode 100644 index 72f9c22..0000000 --- a/src/main/java/com/deeperdepths/mixin/MixinBlockFluidRenderer.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.deeperdepths.mixin; - -import com.deeperdepths.common.blocks.IFluidloggable; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.BlockFluidRenderer; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fluids.Fluid; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -import java.util.Optional; - -@Mixin(BlockFluidRenderer.class) -public class MixinBlockFluidRenderer { - - private final IBlockState WATER = Blocks.WATER.getDefaultState(); - - @WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/IBlockAccess;getBlockState(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/state/IBlockState;"), method = "getFluidHeight") - private IBlockState deeperdepths$getFluidHeight$getBlockState(IBlockAccess world, BlockPos pos, Operation operation) { - IBlockState state = operation.call(world, pos); - Block block = state.getBlock(); - if (!(block instanceof IFluidloggable)) return state; - Optional optional = ((IFluidloggable) block).getContainedFluid(world, pos, state); - return optional.isPresent() ? optional.get().getBlock().getDefaultState() : state; - } - -} diff --git a/src/main/java/com/deeperdepths/mixin/MixinBlockRenderDispatcher.java b/src/main/java/com/deeperdepths/mixin/MixinBlockRenderDispatcher.java deleted file mode 100644 index f8b8068..0000000 --- a/src/main/java/com/deeperdepths/mixin/MixinBlockRenderDispatcher.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.deeperdepths.mixin; - -import com.deeperdepths.common.blocks.IFluidloggable; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.BlockFluidRenderer; -import net.minecraft.client.renderer.BlockRendererDispatcher; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.fluids.Fluid; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import java.util.Optional; - -@Mixin(BlockRendererDispatcher.class) -public class MixinBlockRenderDispatcher { - - @Shadow @Final private BlockFluidRenderer fluidRenderer; - - @Inject(at = @At(value = "HEAD"), method = "renderBlock", cancellable = true) - private void deeperdepths$renderBlock(IBlockState state, BlockPos pos, IBlockAccess world, BufferBuilder buffer, CallbackInfoReturnable callback) { - Block block = state.getBlock(); - if (MinecraftForgeClient.getRenderLayer() != BlockRenderLayer.TRANSLUCENT |! (block instanceof IFluidloggable)) return; - if (!((IFluidloggable) block).isFluidLogged(world, pos, state)) return; - Optional optional = ((IFluidloggable) block).getContainedFluid(world, pos, state); - if (!optional.isPresent()) return; - fluidRenderer.renderFluid(world, optional.get().getBlock().getDefaultState(), pos, buffer); - callback.setReturnValue(false); - } - -} diff --git a/src/main/java/com/deeperdepths/mixin/MixinDispenseFluidBehaviour.java b/src/main/java/com/deeperdepths/mixin/MixinDispenseFluidBehaviour.java deleted file mode 100644 index 116186c..0000000 --- a/src/main/java/com/deeperdepths/mixin/MixinDispenseFluidBehaviour.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.deeperdepths.mixin; - -import com.deeperdepths.common.blocks.IFluidloggable; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fluids.*; -import net.minecraftforge.fluids.capability.IFluidHandlerItem; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -import java.util.Optional; - -@Mixin(value = DispenseFluidContainer.class, remap = false) -public class MixinDispenseFluidBehaviour { - - @WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fluids/FluidUtil;tryPlaceFluid(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;)Lnet/minecraftforge/fluids/FluidActionResult;"), method = "dumpContainer") - public FluidActionResult deeperdepths$dumpContainer$tryPlaceFluid(EntityPlayer player, World world, BlockPos pos, ItemStack bucket, FluidStack fluidStack, Operation original) { - IBlockState state = world.getBlockState(pos); - Block block = state.getBlock(); - IFluidHandlerItem cap = FluidUtil.getFluidHandler(bucket); - if (!(block instanceof IFluidloggable) || cap == null) return original.call(player, world, pos, bucket, fluidStack); - IFluidloggable loggableBlock = (IFluidloggable) block; - if (fluidStack.amount < 1000 |! loggableBlock.canContainFluid(world, pos, state, fluidStack.getFluid())) return original.call(player, world, pos, bucket, fluidStack); - if (cap.drain(fluidStack, false).amount < 1000) return original.call(player, world, pos, bucket, fluidStack); - if (world.provider.doesWaterVaporize()) { - world.playSound(player, pos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5f, 2.6f + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8f); - for (int k = 0; k < 8; ++k) - world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, pos.getX() + Math.random(), pos.getY() + Math.random(), pos.getZ() + Math.random(), 0, 0, 0); - } else { - world.playSound(player, pos, fluidStack.getFluid().getEmptySound(fluidStack), SoundCategory.BLOCKS, 1, 1); - loggableBlock.fillWithFluid(world, pos, state, fluidStack.getFluid()); - } - cap.drain(fluidStack, true); - return new FluidActionResult(cap.getContainer().copy()); - } - - @WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fluids/FluidUtil;tryPickUpFluid(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;)Lnet/minecraftforge/fluids/FluidActionResult;"), method = "fillContainer") - public FluidActionResult deeperdepths$fillContainer$tryPickUpFluid(ItemStack bucket, EntityPlayer player, World world, BlockPos pos, EnumFacing facing, Operation original) { - IBlockState state = world.getBlockState(pos); - Block block = state.getBlock(); - IFluidHandlerItem cap = FluidUtil.getFluidHandler(bucket); - if (!(block instanceof IFluidloggable) || cap == null) return original.call(bucket, player, world, pos, facing); - IFluidloggable loggableBlock = (IFluidloggable) block; - Optional optional = loggableBlock.getContainedFluid(world, pos, state); - if (!optional.isPresent()) return original.call(bucket, player, world, pos, facing); - Fluid fluid = optional.get(); - FluidStack fluidStack = new FluidStack(fluid, 1000); - if (cap.fill(fluidStack, false) < 1000) return original.call(bucket, player, world, pos, facing); - world.playSound(player, pos, fluidStack.getFluid().getFillSound(fluidStack), SoundCategory.BLOCKS, 1, 1); - loggableBlock.empty(world, pos, state); - cap.fill(fluidStack, true); - return new FluidActionResult(cap.getContainer().copy()); - } - -} diff --git a/src/main/java/com/deeperdepths/mixin/MixinRenderChunk.java b/src/main/java/com/deeperdepths/mixin/MixinRenderChunk.java deleted file mode 100644 index 9d264df..0000000 --- a/src/main/java/com/deeperdepths/mixin/MixinRenderChunk.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.deeperdepths.mixin; - -import com.deeperdepths.common.blocks.IFluidloggable; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.BlockRendererDispatcher; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator; -import net.minecraft.client.renderer.chunk.CompiledChunk; -import net.minecraft.client.renderer.chunk.RenderChunk; -import net.minecraft.client.renderer.chunk.VisGraph; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ChunkCache; -import net.minecraftforge.client.ForgeHooksClient; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import java.util.HashSet; -import java.util.Iterator; - -@Mixin(RenderChunk.class) -public abstract class MixinRenderChunk { - - @Shadow private ChunkCache worldView; - - @Shadow protected abstract void preRenderBlocks(BufferBuilder bufferBuilderIn, BlockPos pos); - - @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;canRenderInLayer(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockRenderLayer;)Z"), method = "rebuildChunk", locals = LocalCapture.CAPTURE_FAILHARD) - private void deeperdepths$rebuildChunk$canRenderInLayer(float x, float y, float z, ChunkCompileTaskGenerator generator, CallbackInfo ci, CompiledChunk compiledchunk, int i, BlockPos blockpos, BlockPos blockpos1, VisGraph lvt_9_1_, HashSet lvt_10_1_, boolean[] aboolean, BlockRendererDispatcher blockrendererdispatcher, Iterator var13, BlockPos.MutableBlockPos blockpos$mutableblockpos, IBlockState iblockstate, Block block, BlockRenderLayer[] var17, int var18, int var19, BlockRenderLayer blockrenderlayer1) { - if (blockrenderlayer1 != BlockRenderLayer.TRANSLUCENT || iblockstate.getRenderType() == EnumBlockRenderType.INVISIBLE) return; - if (!(block instanceof IFluidloggable)) return; - if (!((IFluidloggable) block).isFluidLogged(worldView, blockpos$mutableblockpos, iblockstate)) return; - ForgeHooksClient.setRenderLayer(blockrenderlayer1); - BufferBuilder buffer = generator.getRegionRenderCacheBuilder().getWorldRendererByLayerId(blockrenderlayer1.ordinal()); - if (!compiledchunk.isLayerStarted(blockrenderlayer1)) { - compiledchunk.setLayerStarted(blockrenderlayer1); - preRenderBlocks(buffer, blockpos); - } - blockrendererdispatcher.renderBlock(iblockstate, blockpos$mutableblockpos, worldView, buffer); - aboolean[blockrenderlayer1.ordinal()] = true; - } - -} diff --git a/src/main/resources/mixins.deeperdepths.json b/src/main/resources/mixins.deeperdepths.json index b41dc98..4f70317 100644 --- a/src/main/resources/mixins.deeperdepths.json +++ b/src/main/resources/mixins.deeperdepths.json @@ -8,20 +8,16 @@ "MixinAISummonSilverfish", "MixinBlockSilverfish", "MixinContainer", - "MixinDispenseFluidBehaviour", "MixinEntity", "MixinEntityLiving", "MixinEntityLivingBase", "MixinWorldServer" ], "client": [ - "MixinBlockFluidRenderer", - "MixinBlockRenderDispatcher", "MixinEntityRenderer", "MixinInventoryEffectRenderer", "MixinLayerHeldItem", - "MixinModelBiped", - "MixinRenderChunk" + "MixinModelBiped" ], "server": [] } \ No newline at end of file