package im.wayne.functions.impl.movement;
import com.google.common.eventbus.Subscribe;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import im.wayne.events.EventUpdate;
import im.wayne.functions.api.Function;
import im.wayne.functions.api.FunctionRegister;
import im.wayne.functions.api.Group;
import im.wayne.functions.settings.Setting;
import im.wayne.functions.settings.impl.BooleanSetting;
import im.wayne.functions.settings.impl.SliderSetting;
import im.wayne.utils.player.MoveUtils;
@FunctionRegister(name = "DragonFly", type = Group.Motion)
public class DragonFly extends Function {
private final BooleanSetting fly = new BooleanSetting("Включить", true);
private final SliderSetting speed = new SliderSetting("Скорость", 1.15F, 0.0F, 1.5F, 0.05F);
public DragonFly() {
this.addSettings(new Setting[]{this.fly, this.speed});
}
@Subscribe
public void onUpdate(EventUpdate e) {
if (e instanceof EventUpdate) {
this.dragonFly();
}
}
private void dragonFly() {
if ((Boolean)this.fly.get()) {
if (Minecraft.player.abilities.isFlying) {
Minecraft.player.motion.y = (double)0.0F;
ClientPlayerEntity player = Minecraft.player;
if (mc.gameSettings.keyBindJump.isKeyDown()) {
++player.motion.y;
}
if (mc.gameSettings.keyBindSneak.isKeyDown()) {
--player.motion.y;
}
if (MoveUtils.isMoving()) {
MoveUtils.setMotion((double)((Float)this.speed.get() - 0.2F));
}
}
}
}
}