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 }