001    package net.minecraft.client.settings;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import java.util.ArrayList;
006    import java.util.Iterator;
007    import java.util.List;
008    import net.minecraft.util.IntHashMap;
009    
010    @SideOnly(Side.CLIENT)
011    public class KeyBinding
012    {
013        public static List keybindArray = new ArrayList();
014        public static IntHashMap hash = new IntHashMap();
015        public String keyDescription;
016        public int keyCode;
017    
018        /** because _303 wanted me to call it that(Caironater) */
019        public boolean pressed;
020        public int pressTime = 0;
021    
022        public static void onTick(int par0)
023        {
024            KeyBinding var1 = (KeyBinding)hash.lookup(par0);
025    
026            if (var1 != null)
027            {
028                ++var1.pressTime;
029            }
030        }
031    
032        public static void setKeyBindState(int par0, boolean par1)
033        {
034            KeyBinding var2 = (KeyBinding)hash.lookup(par0);
035    
036            if (var2 != null)
037            {
038                var2.pressed = par1;
039            }
040        }
041    
042        public static void unPressAllKeys()
043        {
044            Iterator var0 = keybindArray.iterator();
045    
046            while (var0.hasNext())
047            {
048                KeyBinding var1 = (KeyBinding)var0.next();
049                var1.unpressKey();
050            }
051        }
052    
053        public static void resetKeyBindingArrayAndHash()
054        {
055            hash.clearMap();
056            Iterator var0 = keybindArray.iterator();
057    
058            while (var0.hasNext())
059            {
060                KeyBinding var1 = (KeyBinding)var0.next();
061                hash.addKey(var1.keyCode, var1);
062            }
063        }
064    
065        public KeyBinding(String par1Str, int par2)
066        {
067            this.keyDescription = par1Str;
068            this.keyCode = par2;
069            keybindArray.add(this);
070            hash.addKey(par2, this);
071        }
072    
073        public boolean isPressed()
074        {
075            if (this.pressTime == 0)
076            {
077                return false;
078            }
079            else
080            {
081                --this.pressTime;
082                return true;
083            }
084        }
085    
086        private void unpressKey()
087        {
088            this.pressTime = 0;
089            this.pressed = false;
090        }
091    }