Skip to content

Commit

Permalink
Theoretical fix for #25.
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexIIL committed Feb 25, 2021
1 parent 595640c commit 05c5b66
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 13 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -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');
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
@@ -1,2 +1,2 @@
libblockattributes_version=0.8.6
libnetworkstack_version=0.4.4
libnetworkstack_version=0.4.7-pre.1
Expand Up @@ -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<MultipartBlockEntity> NET_KEY;

Expand Down
Expand Up @@ -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;";

Expand All @@ -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) {
Expand Down

0 comments on commit 05c5b66

Please sign in to comment.