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 }