mirror of
https://github.com/ViaVersion/ViaFabricPlus.git
synced 2024-10-07 05:57:39 +02:00
Fixed Issue 5 and 9 from https://github.com/ViaVersion/ViaFabricPlus/issues/178
This commit is contained in:
parent
ccba9f362d
commit
884e05f3d6
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.block;
|
package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.block;
|
||||||
|
|
||||||
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
import net.raphimc.vialoader.util.VersionEnum;
|
import net.raphimc.vialoader.util.VersionEnum;
|
||||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||||
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
|
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
|
||||||
@ -26,7 +27,9 @@ import net.minecraft.util.math.Direction;
|
|||||||
import net.minecraft.util.shape.VoxelShape;
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.util.shape.VoxelShapes;
|
import net.minecraft.util.shape.VoxelShapes;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.Unique;
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
@ -35,14 +38,27 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|||||||
@Mixin(PistonHeadBlock.class)
|
@Mixin(PistonHeadBlock.class)
|
||||||
public class MixinPistonHeadBlock extends FacingBlock {
|
public class MixinPistonHeadBlock extends FacingBlock {
|
||||||
|
|
||||||
|
@Shadow @Final public static BooleanProperty SHORT;
|
||||||
|
|
||||||
|
@Shadow @Final private static VoxelShape[] SHORT_HEAD_SHAPES;
|
||||||
|
|
||||||
|
@Shadow @Final private static VoxelShape[] HEAD_SHAPES;
|
||||||
|
|
||||||
public MixinPistonHeadBlock(Settings settings) {
|
public MixinPistonHeadBlock(Settings settings) {
|
||||||
super(settings);
|
super(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Unique
|
||||||
|
private boolean viafabricplus_skipOutlineChange;
|
||||||
|
|
||||||
@Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
|
||||||
public void injectGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
|
public void injectGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
|
||||||
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_12_2)) {
|
if (viafabricplus_skipOutlineChange) {
|
||||||
cir.setReturnValue(viafabricplus_getCoreShape_v1_8_x(state));
|
viafabricplus_skipOutlineChange = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_11)) {
|
||||||
|
cir.setReturnValue(viafabricplus_getHeadShape_v1_8_x(state));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,6 +68,7 @@ public class MixinPistonHeadBlock extends FacingBlock {
|
|||||||
return VoxelShapes.union(viafabricplus_getHeadShape_v1_8_x(state), viafabricplus_getCoreShape_v1_8_x(state));
|
return VoxelShapes.union(viafabricplus_getHeadShape_v1_8_x(state), viafabricplus_getCoreShape_v1_8_x(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viafabricplus_skipOutlineChange = true;
|
||||||
return super.getCollisionShape(state, world, pos, context);
|
return super.getCollisionShape(state, world, pos, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user