diff --git a/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java b/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java index 4d25b5aa..7984b654 100644 --- a/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java +++ b/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java @@ -5,13 +5,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ImposterProtoChunk; -import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.ProtoChunk; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyVariable; -@Mixin({ProtoChunk.class, LevelChunk.class, ImposterProtoChunk.class}) +@Mixin({ProtoChunk.class, ImposterProtoChunk.class}) public abstract class ChunkAccessDisabledBlockMixin { @ModifyVariable( method = "setBlockState(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Z)Lnet/minecraft/world/level/block/state/BlockState;", diff --git a/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java new file mode 100644 index 00000000..f5ef5b3a --- /dev/null +++ b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java @@ -0,0 +1,33 @@ +package io.github.jasonsimpart.mixin.minecraft; + +import io.github.jasonsimpart.disabled.DisabledContentManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.LevelChunk; +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.ModifyVariable; + +@Mixin(LevelChunk.class) +public abstract class LevelChunkDisabledBlockMixin { + @Shadow + @Final + Level level; + + @ModifyVariable( + method = "setBlockState(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Z)Lnet/minecraft/world/level/block/state/BlockState;", + at = @At("HEAD"), + argsOnly = true, + ordinal = 0 + ) + private BlockState createdelightcore$replaceDisabledBlock(BlockState state, BlockPos pos) { + if (this.level.isClientSide) { + return state; + } + + return DisabledContentManager.replacementFor(state, (LevelChunk) (Object) this, pos); + } +} diff --git a/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java index 29188c8a..8ca689d6 100644 --- a/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java +++ b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java @@ -17,6 +17,10 @@ public abstract class LevelDisabledBlockMixin { @ModifyVariable(method = "setBlock", at = @At("HEAD"), argsOnly = true, ordinal = 0) private BlockState createdelightcore$replaceDisabledBlock(BlockState state, BlockPos pos) { Level level = (Level) (Object) this; + if (level.isClientSide) { + return state; + } + return DisabledContentManager.replacementFor(keepEnceladusDeepWaterLiquid(state, level, pos), level, pos); } diff --git a/src/main/resources/createdelightcore.mixins.json b/src/main/resources/createdelightcore.mixins.json index 4d2d0487..d35debfa 100644 --- a/src/main/resources/createdelightcore.mixins.json +++ b/src/main/resources/createdelightcore.mixins.json @@ -29,6 +29,7 @@ "cmr.MixinSnowmanCoolerBlockEntity", "cmr.SnowmanCoolerAccessor", "minecraft.ChunkAccessDisabledBlockMixin", + "minecraft.LevelChunkDisabledBlockMixin", "minecraft.LevelDisabledBlockMixin", "minecraft.SimpleJsonResourceReloadListenerMixin", "minecraft.WorldGenRegionDisabledBlockMixin",