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