63 lines
1.8 KiB
Java
63 lines
1.8 KiB
Java
package com.legacy.aether.client;
|
|
|
|
import com.legacy.aether.entities.passive.mountable.EntitySwet;
|
|
import com.legacy.aether.entities.util.EntityMountable;
|
|
import com.legacy.aether.entities.util.EntitySaddleMount;
|
|
import com.legacy.aether.network.AetherNetwork;
|
|
import com.legacy.aether.network.packets.PacketSendSneaking;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.settings.GameSettings;
|
|
import net.minecraft.util.MovementInputFromOptions;
|
|
|
|
public class AetherMovementInput extends MovementInputFromOptions {
|
|
|
|
private Minecraft mc;
|
|
|
|
private GameSettings gameSettings;
|
|
|
|
private boolean currentSneak;
|
|
|
|
private boolean previousSneak;
|
|
|
|
public AetherMovementInput(Minecraft mc, GameSettings gameSettings) {
|
|
super(gameSettings);
|
|
|
|
this.mc = mc;
|
|
this.gameSettings = gameSettings;
|
|
}
|
|
|
|
@Override
|
|
public void updatePlayerMoveState() {
|
|
super.updatePlayerMoveState();
|
|
|
|
this.jump = this.gameSettings.keyBindJump.getIsKeyPressed();
|
|
|
|
boolean isSneaking = this.gameSettings.keyBindSneak.getIsKeyPressed();
|
|
|
|
this.sneak = isSneaking;
|
|
|
|
if (this.mc.thePlayer == null) {
|
|
return;
|
|
}
|
|
|
|
if (this.mc.thePlayer.ridingEntity instanceof EntitySaddleMount) {
|
|
if (this.mc.thePlayer.ridingEntity instanceof EntitySaddleMount) {
|
|
this.sneak = false;
|
|
this.currentSneak = isSneaking;
|
|
|
|
if (this.previousSneak != this.currentSneak) {
|
|
AetherNetwork.sendToServer(new PacketSendSneaking(this.mc.thePlayer.getEntityId(), this.currentSneak));
|
|
this.previousSneak = this.currentSneak;
|
|
}
|
|
|
|
if (((EntityMountable) this.mc.thePlayer.ridingEntity).isOnGround()) {
|
|
this.sneak = isSneaking;
|
|
}
|
|
}
|
|
} else if (this.mc.thePlayer.ridingEntity instanceof EntitySwet && !((EntitySwet) this.mc.thePlayer.ridingEntity).isFriendly()) {
|
|
this.sneak = false;
|
|
}
|
|
}
|
|
|
|
} |