[1.21.2] Support changes to the vehicle steer packet

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
This commit is contained in:
Irmo van den Berge committed 2024-10-27 00:04:36 +02:00
1 parent e084b31fc5
commit 271c579bbd
3 files changed
+104 -21

No files matched your search

@@ -20,23 +20,27 @@ public abstract class PacketPlayInSteerVehicleHandle extends PacketHandle {
/* ============================================================================== */
public abstract boolean isLeft();
public abstract boolean isRight();
public abstract boolean isForward();
public abstract boolean isBackward();
public abstract float getSideways();
public abstract void setSideways(float value);
public abstract float getForwards();
public abstract void setForwards(float value);
public abstract boolean isJump();
public abstract void setJump(boolean value);
public abstract boolean isUnmount();
public abstract void setUnmount(boolean value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInSteerVehicle</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInSteerVehicleClass extends Template.Class<PacketPlayInSteerVehicleHandle> {
public final Template.Field.Float sideways = new Template.Field.Float();
public final Template.Field.Float forwards = new Template.Field.Float();
public final Template.Field.Boolean jump = new Template.Field.Boolean();
public final Template.Field.Boolean unmount = new Template.Field.Boolean();
public final Template.Method<Boolean> isLeft = new Template.Method<Boolean>();
public final Template.Method<Boolean> isRight = new Template.Method<Boolean>();
public final Template.Method<Boolean> isForward = new Template.Method<Boolean>();
public final Template.Method<Boolean> isBackward = new Template.Method<Boolean>();
public final Template.Method<Float> getSideways = new Template.Method<Float>();
public final Template.Method<Float> getForwards = new Template.Method<Float>();
public final Template.Method<Boolean> isJump = new Template.Method<Boolean>();
public final Template.Method<Boolean> isUnmount = new Template.Method<Boolean>();
}
@@ -500,10 +500,50 @@ public class NMSPacketClasses {
public static class NMSPacketPlayInSteerVehicle extends NMSPacket {
public final FieldAccessor<Float> sideways = PacketPlayInSteerVehicleHandle.T.sideways.toFieldAccessor();
public final FieldAccessor<Float> forwards = PacketPlayInSteerVehicleHandle.T.forwards.toFieldAccessor();
public final FieldAccessor<Boolean> jump = PacketPlayInSteerVehicleHandle.T.jump.toFieldAccessor();
public final FieldAccessor<Boolean> unmount = PacketPlayInSteerVehicleHandle.T.unmount.toFieldAccessor();
public final FieldAccessor<Float> sideways = new FieldAccessor<Float>() {
@Override
public Float get(Object instance) {
return PacketPlayInSteerVehicleHandle.T.getSideways.invoke(instance);
}
@Override
public boolean set(Object instance, Float value) {
return false;
}
};
public final FieldAccessor<Float> forwards = new FieldAccessor<Float>() {
@Override
public Float get(Object instance) {
return PacketPlayInSteerVehicleHandle.T.getForwards.invoke(instance);
}
@Override
public boolean set(Object instance, Float value) {
return false;
}
};
public final FieldAccessor<Boolean> jump = new FieldAccessor<Boolean>() {
@Override
public Boolean get(Object instance) {
return PacketPlayInSteerVehicleHandle.T.isJump.invoke(instance);
}
@Override
public boolean set(Object instance, Boolean value) {
return false;
}
};
public final FieldAccessor<Boolean> unmount = new FieldAccessor<Boolean>() {
@Override
public Boolean get(Object instance) {
return PacketPlayInSteerVehicleHandle.T.isUnmount.invoke(instance);
}
@Override
public boolean set(Object instance, Boolean value) {
return false;
}
};
}
public static class NMSPacketPlayInTabComplete extends NMSPacket {
@@ -1861,16 +1861,55 @@ class PacketPlayOutCustomSoundEffect extends Packet {
}
class PacketPlayInSteerVehicle extends Packet {
#if version >= 1.17
private final float sideways:xxa;
private final float forwards:zza;
private final boolean jump:isJumping;
private final boolean unmount:isShiftKeyDown;
#if version >= 1.21.2
public boolean isLeft() { return instance.input().left(); }
public boolean isRight() { return instance.input().right(); }
public boolean isForward() { return instance.input().forward(); }
public boolean isBackward() { return instance.input().backward(); }
public float getSideways() {
net.minecraft.world.entity.player.Input input = instance.input();
if (input.left() != input.right()) {
return input.right() ? 1.0f : -1.0f;
} else {
return 0.0f;
}
}
public float getForwards() {
net.minecraft.world.entity.player.Input input = instance.input();
if (input.forward() != input.backward()) {
return input.forward() ? 1.0f : -1.0f;
} else {
return 0.0f;
}
}
public boolean isJump() { return instance.input().jump(); }
public boolean isUnmount() { return instance.input().shift(); }
#else
private float sideways:a;
private float forwards:b;
private boolean jump:c;
private boolean unmount:d;
#if version >= 1.17
#require PacketPlayInSteerVehicle private final float sideways:xxa;
#require PacketPlayInSteerVehicle private final float forwards:zza;
#require PacketPlayInSteerVehicle private final boolean jump:isJumping;
#require PacketPlayInSteerVehicle private final boolean unmount:isShiftKeyDown;
#else
#require PacketPlayInSteerVehicle private float sideways:a;
#require PacketPlayInSteerVehicle private float forwards:b;
#require PacketPlayInSteerVehicle private boolean jump:c;
#require PacketPlayInSteerVehicle private boolean unmount:d;
#endif
public boolean isLeft() { return instance#sideways < 0.0f; }
public boolean isRight() { return instance#sideways > 0.0f; }
public boolean isForward() { return instance#forwards > 0.0f; }
public boolean isBackward() { return instance#forwards < 0.0f; }
public float getSideways() { return instance#sideways; }
public float getForwards() { return instance#forwards; }
public boolean isJump() { return instance#jump; }
public boolean isUnmount() { return instance#unmount; }
#endif
}