blob: db0cb01f8d102a501e7bf5d349f883740b96c9e1 [file] [log] [blame] [raw]
package com.gildedgames.the_aether.client;
import com.gildedgames.the_aether.entities.passive.mountable.Swet;
import com.gildedgames.the_aether.entities.util.MountableEntity;
import com.gildedgames.the_aether.entities.util.EntitySaddleMount;
import com.gildedgames.the_aether.network.AetherNetwork;
import com.gildedgames.the_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 (((MountableEntity)this.mc.thePlayer.ridingEntity).isOnGround()) {
this.sneak = isSneaking;
}
}
} else if (this.mc.thePlayer.ridingEntity instanceof Swet && !((Swet)this.mc.thePlayer.ridingEntity).isFriendly()) {
this.sneak = false;
}
}
}