mirror of
https://github.com/ViaVersion/ViaFabricPlus.git
synced 2025-02-16 01:42:20 +01:00
Implemented Movement changes
This commit is contained in:
parent
efc94bf685
commit
89c41ffdc5
@ -40,9 +40,7 @@ import java.io.File;
|
||||
|
||||
/**
|
||||
* TODO | Port
|
||||
* - Sign interactions
|
||||
* - TakeItemEntityPacket isEmpty case
|
||||
* - Entity#move has changed
|
||||
* <p>
|
||||
* TODO | Protocol translation
|
||||
* - BucketItem#use canPlaceOn in <= 1.13 is missing
|
||||
|
@ -0,0 +1,21 @@
|
||||
package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.block;
|
||||
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
|
||||
import net.minecraft.block.AbstractSignBlock;
|
||||
import net.minecraft.block.entity.SignBlockEntity;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
@Mixin(AbstractSignBlock.class)
|
||||
public class MixinAbstractSignBlock {
|
||||
|
||||
@Redirect(method = "onUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/entity/SignBlockEntity;isWaxed()Z", ordinal = 1))
|
||||
public boolean removeCondition(SignBlockEntity instance) {
|
||||
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(ProtocolVersion.v1_19_4)) {
|
||||
return false;
|
||||
}
|
||||
return instance.isWaxed();
|
||||
}
|
||||
}
|
@ -20,10 +20,13 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
|
||||
import it.unimi.dsi.fastutil.objects.Object2DoubleMap;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.FenceGateBlock;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.fluid.Fluid;
|
||||
import net.minecraft.fluid.FluidState;
|
||||
import net.minecraft.registry.tag.BlockTags;
|
||||
import net.minecraft.registry.tag.TagKey;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Box;
|
||||
@ -67,8 +70,11 @@ public abstract class MixinEntity {
|
||||
|
||||
@Inject(method = "getVelocityAffectingPos", at = @At("HEAD"), cancellable = true)
|
||||
public void injectGetVelocityAffectingPos(CallbackInfoReturnable<BlockPos> cir) {
|
||||
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(ProtocolVersion.v1_14_4)) {
|
||||
cir.setReturnValue(BlockPos.ofFloored(pos.x, getBoundingBox().minY - 1, pos.z));
|
||||
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(ProtocolVersion.v1_19_4)) {
|
||||
cir.setReturnValue(BlockPos.ofFloored(pos.x, getBoundingBox().minY - 0.5000001, pos.z));
|
||||
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(ProtocolVersion.v1_14_4)) {
|
||||
cir.setReturnValue(BlockPos.ofFloored(pos.x, getBoundingBox().minY - 1, pos.z));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,4 +170,21 @@ public abstract class MixinEntity {
|
||||
instance.onLanding();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "getPosWithYOffset", at = @At("HEAD"), cancellable = true)
|
||||
public void changeLogic(float offset, CallbackInfoReturnable<BlockPos> cir) {
|
||||
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(ProtocolVersion.v1_19_4)) {
|
||||
final BlockPos blockPos = new BlockPos(MathHelper.floor(this.pos.x), MathHelper.floor(this.pos.y - (double)offset), MathHelper.floor(this.pos.z));
|
||||
|
||||
if (this.world.getBlockState(blockPos).isAir()) {
|
||||
final BlockPos downBlockPos = blockPos.down();
|
||||
BlockState blockState = this.world.getBlockState(downBlockPos);
|
||||
|
||||
if (blockState.isIn(BlockTags.FENCES) || blockState.isIn(BlockTags.WALLS) || blockState.getBlock() instanceof FenceGateBlock) {
|
||||
cir.setReturnValue(downBlockPos);
|
||||
}
|
||||
}
|
||||
cir.setReturnValue(blockPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -165,6 +165,7 @@
|
||||
"defaultRequire": 1
|
||||
},
|
||||
"mixins": [
|
||||
"fixes.minecraft.block.MixinAbstractSignBlock",
|
||||
"fixes.minecraft.entity.MixinBoatEntity",
|
||||
"fixes.minecraft.entity.MixinCamelEntity",
|
||||
"fixes.minecraft.item.MixinBrushItem"
|
||||
|
Loading…
Reference in New Issue
Block a user