blob: 2c87e0bc921f2ddac9cbd6c00c868afae6eaa70c [file] [log] [blame] [raw]
Kinod259dd92018-12-06 23:33:43 -05001package com.legacy.aether.client;
2
3import com.legacy.aether.entities.passive.mountable.EntitySwet;
4import com.legacy.aether.entities.util.EntityMountable;
5import com.legacy.aether.entities.util.EntitySaddleMount;
6import com.legacy.aether.network.AetherNetwork;
7import com.legacy.aether.network.packets.PacketSendSneaking;
8
9import net.minecraft.client.Minecraft;
10import net.minecraft.client.settings.GameSettings;
11import net.minecraft.util.MovementInputFromOptions;
12
Jon1eafbc12018-12-06 23:32:48 -060013public class AetherMovementInput extends MovementInputFromOptions {
Kinod259dd92018-12-06 23:33:43 -050014
15 private Minecraft mc;
16
Jon1eafbc12018-12-06 23:32:48 -060017 private GameSettings gameSettings;
Kinod259dd92018-12-06 23:33:43 -050018
Jon1eafbc12018-12-06 23:32:48 -060019 private boolean currentSneak;
Kinod259dd92018-12-06 23:33:43 -050020
Jon1eafbc12018-12-06 23:32:48 -060021 private boolean previousSneak;
22
23 public AetherMovementInput(Minecraft mc, GameSettings gameSettings) {
Kinod259dd92018-12-06 23:33:43 -050024 super(gameSettings);
25
26 this.mc = mc;
27 this.gameSettings = gameSettings;
28 }
29
30 @Override
Jon1eafbc12018-12-06 23:32:48 -060031 public void updatePlayerMoveState() {
Kinod259dd92018-12-06 23:33:43 -050032 super.updatePlayerMoveState();
33
Jon1eafbc12018-12-06 23:32:48 -060034 this.jump = this.gameSettings.keyBindJump.getIsKeyPressed();
Kinod259dd92018-12-06 23:33:43 -050035
Jon1eafbc12018-12-06 23:32:48 -060036 boolean isSneaking = this.gameSettings.keyBindSneak.getIsKeyPressed();
Kinod259dd92018-12-06 23:33:43 -050037
Jon1eafbc12018-12-06 23:32:48 -060038 this.sneak = isSneaking;
Kinod259dd92018-12-06 23:33:43 -050039
Jon1eafbc12018-12-06 23:32:48 -060040 if (this.mc.thePlayer == null) {
41 return;
42 }
Kinod259dd92018-12-06 23:33:43 -050043
Jon1eafbc12018-12-06 23:32:48 -060044 if (this.mc.thePlayer.ridingEntity instanceof EntitySaddleMount) {
45 if (this.mc.thePlayer.ridingEntity instanceof EntitySaddleMount) {
46 this.sneak = false;
47 this.currentSneak = isSneaking;
Kinod259dd92018-12-06 23:33:43 -050048
Jon1eafbc12018-12-06 23:32:48 -060049 if (this.previousSneak != this.currentSneak) {
50 AetherNetwork.sendToServer(new PacketSendSneaking(this.mc.thePlayer.getEntityId(), this.currentSneak));
51 this.previousSneak = this.currentSneak;
52 }
Kinod259dd92018-12-06 23:33:43 -050053
Jon1eafbc12018-12-06 23:32:48 -060054 if (((EntityMountable) this.mc.thePlayer.ridingEntity).isOnGround()) {
55 this.sneak = isSneaking;
56 }
57 }
58 } else if (this.mc.thePlayer.ridingEntity instanceof EntitySwet && !((EntitySwet) this.mc.thePlayer.ridingEntity).isFriendly()) {
59 this.sneak = false;
60 }
61 }
Kinod259dd92018-12-06 23:33:43 -050062
63}