    001    package net.minecraft.util;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import net.minecraft.client.settings.GameSettings;
    006
    007    @SideOnly(Side.CLIENT)
    008    public class MovementInputFromOptions extends MovementInput
    009    {
    010        private GameSettings gameSettings;
    011
    012        public MovementInputFromOptions(GameSettings par1GameSettings)
    013        {
    014            this.gameSettings = par1GameSettings;
    015        }
    016
    017        public void updatePlayerMoveState()
    018        {
    019            this.moveStrafe = 0.0F;
    020            this.moveForward = 0.0F;
    021
    022            if (this.gameSettings.keyBindForward.pressed)
    023            {
    024                ++this.moveForward;
    025            }
    026
    027            if (this.gameSettings.keyBindBack.pressed)
    028            {
    029                --this.moveForward;
    030            }
    031
    032            if (this.gameSettings.keyBindLeft.pressed)
    033            {
    034                ++this.moveStrafe;
    035            }
    036
    037            if (this.gameSettings.keyBindRight.pressed)
    038            {
    039                --this.moveStrafe;
    040            }
    041
    042            this.jump = this.gameSettings.keyBindJump.pressed;
    043            this.sneak = this.gameSettings.keyBindSneak.pressed;
    044
    045            if (this.sneak)
    046            {
    047                this.moveStrafe = (float)((double)this.moveStrafe * 0.3D);
    048                this.moveForward = (float)((double)this.moveForward * 0.3D);
    049            }
    050        }
    051    }