diff --git a/build.gradle b/build.gradle index f35ace9..e55016e 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ repositories { } archivesBaseName = "LibMultiPart" -version = "0.4.6" +version = "0.4.7-pre.1" license { header = project.file('misc/LICENSE_HEADER.txt'); diff --git a/gradle.properties b/gradle.properties index ae626a1..0f43a75 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ libblockattributes_version=0.8.6 -libnetworkstack_version=0.4.4 +libnetworkstack_version=0.4.7-pre.1 diff --git a/src/main/java/alexiil/mc/lib/multipart/impl/MultipartBlockEntity.java b/src/main/java/alexiil/mc/lib/multipart/impl/MultipartBlockEntity.java index a3694da..c6e3421 100644 --- a/src/main/java/alexiil/mc/lib/multipart/impl/MultipartBlockEntity.java +++ b/src/main/java/alexiil/mc/lib/multipart/impl/MultipartBlockEntity.java @@ -30,22 +30,24 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import alexiil.mc.lib.attributes.AttributeList; -import alexiil.mc.lib.multipart.api.event.NeighbourUpdateEvent; -import alexiil.mc.lib.multipart.api.render.PartModelKey; -import alexiil.mc.lib.multipart.impl.client.PartModelData; -import alexiil.mc.lib.multipart.mixin.api.IUnloadableBlockEntity; import alexiil.mc.lib.net.NetIdDataK; import alexiil.mc.lib.net.NetIdDataK.IMsgDataWriterK; import alexiil.mc.lib.net.NetIdTyped; import alexiil.mc.lib.net.ParentNetIdSingle; import alexiil.mc.lib.net.impl.ActiveMinecraftConnection; +import alexiil.mc.lib.net.impl.BlockEntityInitialData; import alexiil.mc.lib.net.impl.CoreMinecraftNetUtil; import alexiil.mc.lib.net.impl.McNetworkStack; -import alexiil.mc.lib.net.mixin.api.IBlockEntityInitialData; + +import alexiil.mc.lib.attributes.AttributeList; + +import alexiil.mc.lib.multipart.api.event.NeighbourUpdateEvent; +import alexiil.mc.lib.multipart.api.render.PartModelKey; +import alexiil.mc.lib.multipart.impl.client.PartModelData; +import alexiil.mc.lib.multipart.mixin.api.IUnloadableBlockEntity; public class MultipartBlockEntity extends BlockEntity - implements Tickable, IUnloadableBlockEntity, RenderAttachmentBlockEntity, IBlockEntityInitialData + implements Tickable, IUnloadableBlockEntity, RenderAttachmentBlockEntity, BlockEntityInitialData { static final ParentNetIdSingle NET_KEY; diff --git a/src/main/java/alexiil/mc/lib/multipart/mixin/impl/WorldRendererMixin.java b/src/main/java/alexiil/mc/lib/multipart/mixin/impl/WorldRendererMixin.java index ccbc049..14ad219 100644 --- a/src/main/java/alexiil/mc/lib/multipart/mixin/impl/WorldRendererMixin.java +++ b/src/main/java/alexiil/mc/lib/multipart/mixin/impl/WorldRendererMixin.java @@ -32,13 +32,12 @@ @Mixin(WorldRenderer.class) public class WorldRendererMixin implements IWorldRendererMixin { -// FIXME: Test this! - private static final String WORLD_RENDERER = "Lnet/minecraft/client/render/WorldRenderer;"; private static final String MATRIX_STACK = "Lnet/minecraft/client/util/math/MatrixStack;"; private static final String VERTEX_CONSUMER = "Lnet/minecraft/client/render/VertexConsumer;"; private static final String ENTITY = "Lnet/minecraft/entity/Entity;"; + private static final String VOXEL_SHAPE = "Lnet/minecraft/util/shape/VoxelShape;"; private static final String BLOCK_POS = "Lnet/minecraft/util/math/BlockPos;"; private static final String BLOCK_STATE = "Lnet/minecraft/block/BlockState;"; @@ -50,19 +49,24 @@ public class WorldRendererMixin implements IWorldRendererMixin { private static final String _M_DRAW_BLOCK_OUTLINE = "drawBlockOutline(" + MATRIX_STACK + VERTEX_CONSUMER + ENTITY + "DDD" + BLOCK_POS + BLOCK_STATE + ")V"; + private static final String _M_DRAW_SHAPE_OUTLINE + = "drawShapeOutline(" + MATRIX_STACK + VERTEX_CONSUMER + VOXEL_SHAPE + "DDDFFFF)V"; + @Shadow private ClientWorld world; @Unique + @Deprecated private boolean drawingBlockOutline; @Override + @Deprecated public boolean libmultipart_isDrawingBlockOutline() { return drawingBlockOutline; } - @ModifyArg(at = @At(value = "INVOKE", target = WORLD_RENDERER + _M_DRAW_BLOCK_OUTLINE), method = WORLD_RENDERER - + "render(" + MATRIX_STACK + "FJZ" + CAMERA + GAME_RENDERER + LIGHTMAP_TEXTURE_MANAGER + MATRIX4F + ")V") + @ModifyArg(at = @At(value = "INVOKE", target = WORLD_RENDERER + _M_DRAW_SHAPE_OUTLINE), + method = WORLD_RENDERER + _M_DRAW_BLOCK_OUTLINE) private VoxelShape modifyShape(VoxelShape shape) { MinecraftClient mc = MinecraftClient.getInstance(); if (mc.crosshairTarget != null && mc.crosshairTarget.getType() == Type.BLOCK) {