Java 类cpw.mods.fml.client.registry.KeyBindingRegistry 实例源码

项目:FantasyCraft-Mod    文件:KeybindHelper.java   
/** This initializes and registers all the key bindings */
public static void init()
{
    boolean[] repeat = new boolean[desc.length];
    // just use a for loop to run through all the values
    for (int i = 0; i < desc.length; ++i) {
        keys[i] = new KeyBinding(desc[i], keyValues[i]);
        repeat[i] = false;
    }

    KeyBindingRegistry.registerKeyBinding(new KeybindHandler(keys, repeat));
}
项目:RuneCraftery    文件:FMLClientHandler.java   
/**
 * Called a bit later on during initialization to finish loading mods
 * Also initializes key bindings
 *
 */
@SuppressWarnings("deprecation")
public void finishMinecraftLoading()
{
    if (modsMissing != null || wrongMC != null || customError!=null || dupesFound!=null || modSorting!=null)
    {
        return;
    }
    try
    {
        Loader.instance().initializeMods();
    }
    catch (CustomModLoadingErrorDisplayException custom)
    {
        FMLLog.log(Level.SEVERE, custom, "A custom exception was thrown by a mod, the game will now halt");
        customError = custom;
        return;
    }
    catch (LoaderException le)
    {
        haltGame("There was a severe problem during mod loading that has caused the game to fail", le);
        return;
    }

    client.field_71416_A.LOAD_SOUND_SYSTEM = true;
    // Reload resources
    client.func_110436_a();
    RenderingRegistry.instance().loadEntityRenderers((Map<Class<? extends Entity>, Render>)RenderManager.field_78727_a.field_78729_o);

    loading = false;
    KeyBindingRegistry.instance().uploadKeyBindingsToGame(client.field_71474_y);
}
项目:RuneCraftery    文件:ModLoaderClientHelper.java   
public static void registerKeyBinding(BaseModProxy mod, KeyBinding keyHandler, boolean allowRepeat)
{
    ModLoaderModContainer mlmc = (ModLoaderModContainer) Loader.instance().activeModContainer();
    ModLoaderKeyBindingHandler handler = Iterables.getOnlyElement(keyBindingContainers.get(mlmc));
    handler.setModContainer(mlmc);
    handler.addKeyBinding(keyHandler, allowRepeat);
    KeyBindingRegistry.registerKeyBinding(handler);
}
项目:RuneCraftery    文件:FMLClientHandler.java   
/**
 * Called a bit later on during initialization to finish loading mods
 * Also initializes key bindings
 *
 */
@SuppressWarnings("deprecation")
public void finishMinecraftLoading()
{
    if (modsMissing != null || wrongMC != null || customError!=null || dupesFound!=null || modSorting!=null)
    {
        return;
    }
    try
    {
        Loader.instance().initializeMods();
    }
    catch (CustomModLoadingErrorDisplayException custom)
    {
        FMLLog.log(Level.SEVERE, custom, "A custom exception was thrown by a mod, the game will now halt");
        customError = custom;
        return;
    }
    catch (LoaderException le)
    {
        haltGame("There was a severe problem during mod loading that has caused the game to fail", le);
        return;
    }

    client.sndManager.LOAD_SOUND_SYSTEM = true;
    // Reload resources
    client.refreshResources();
    RenderingRegistry.instance().loadEntityRenderers((Map<Class<? extends Entity>, Render>)RenderManager.instance.entityRenderMap);

    loading = false;
    KeyBindingRegistry.instance().uploadKeyBindingsToGame(client.gameSettings);
}
项目:RuneCraftery    文件:ModLoaderClientHelper.java   
public static void registerKeyBinding(BaseModProxy mod, KeyBinding keyHandler, boolean allowRepeat)
{
    ModLoaderModContainer mlmc = (ModLoaderModContainer) Loader.instance().activeModContainer();
    ModLoaderKeyBindingHandler handler = Iterables.getOnlyElement(keyBindingContainers.get(mlmc));
    handler.setModContainer(mlmc);
    handler.addKeyBinding(keyHandler, allowRepeat);
    KeyBindingRegistry.registerKeyBinding(handler);
}
项目:BetterNutritionMod    文件:FMLClientHandler.java   
/**
 * Called a bit later on during initialization to finish loading mods
 * Also initializes key bindings
 *
 */
@SuppressWarnings("deprecation")
public void finishMinecraftLoading()
{
    if (modsMissing != null || wrongMC != null || customError!=null || dupesFound!=null || modSorting!=null)
    {
        return;
    }
    try
    {
        Loader.instance().initializeMods();
    }
    catch (CustomModLoadingErrorDisplayException custom)
    {
        FMLLog.log(Level.SEVERE, custom, "A custom exception was thrown by a mod, the game will now halt");
        customError = custom;
        return;
    }
    catch (LoaderException le)
    {
        haltGame("There was a severe problem during mod loading that has caused the game to fail", le);
        return;
    }

    client.sndManager.LOAD_SOUND_SYSTEM = true;
    // Reload resources
    client.refreshResources();
    RenderingRegistry.instance().loadEntityRenderers((Map<Class<? extends Entity>, Render>)RenderManager.instance.entityRenderMap);

    loading = false;
    KeyBindingRegistry.instance().uploadKeyBindingsToGame(client.gameSettings);
}
项目:BetterNutritionMod    文件:ModLoaderClientHelper.java   
public static void registerKeyBinding(BaseModProxy mod, KeyBinding keyHandler, boolean allowRepeat)
{
    ModLoaderModContainer mlmc = (ModLoaderModContainer) Loader.instance().activeModContainer();
    ModLoaderKeyBindingHandler handler = Iterables.getOnlyElement(keyBindingContainers.get(mlmc));
    handler.setModContainer(mlmc);
    handler.addKeyBinding(keyHandler, allowRepeat);
    KeyBindingRegistry.registerKeyBinding(handler);
}
项目:minecraft-dynamic-lights    文件:DynamicLights.java   
@EventHandler
public void load(FMLInitializationEvent evt)
{
    TickRegistry.registerTickHandler(new TickHandler(), Side.CLIENT);

    KeyBinding[] key = {new KeyBinding("Dynamic Lights toggle", Keyboard.KEY_L)};
    boolean[] repeat = {false};
    KeyBindingRegistry.registerKeyBinding(new LightsOnOffKey(key, repeat));
}
项目:StructureGenerationMod    文件:SGTKeyBindings.java   
public static void init() {
    boolean[] repeat = new boolean[desc.length];
    for (int i = 0; i < desc.length; ++i) {
        keys[i] = new KeyBinding(desc[i], keyValues[i]);
        repeat[i] = false;
    }
       KeyBindingRegistry.registerKeyBinding(new SGTKeyHandler(keys, repeat));
}
项目:HudPlus    文件:HudPlus_ModBase.java   
@EventHandler
public void init(FMLInitializationEvent e) {
       KeyBindingRegistry.registerKeyBinding(new HPKeyHandler());
       TickRegistry.registerTickHandler(new HPTickHandler(), Side.CLIENT);
       NetworkRegistry.instance().registerConnectionHandler(new HPUpdateHandler());

       proxy.registerComponents();
}
项目:SkillCraft    文件:SCClientProxy.java   
@Override
public void registerRenderInformation() {
    //register client tick handler
    //TickRegistry.registerTickHandler(SkillCraft.instance.tickHandlerClient, Side.CLIENT);

    //register key handler
    KeyBindingRegistry.registerKeyBinding(new SCKeyHandler());
}
项目:WeaponsMod    文件:ClientProxy.java   
@Override
public void registerKeyBindingHandler()
{
    keyHandler = new KeyHandeler();
    KeyBindingRegistry.registerKeyBinding(keyHandler);

}
项目:secri    文件:ClientProxy.java   
@Override
public void registerKeyBindings() {
    MinecraftForge.EVENT_BUS.register(this);

    KeyBindingRegistry.registerKeyBinding(new SendPokemonKey());
    KeyBindingRegistry.registerKeyBinding(new NextPokemonKey());
    KeyBindingRegistry.registerKeyBinding(new PreviousPokemonKey());
    KeyBindingRegistry.registerKeyBinding(new MinimizeMaximizeOverlayKey());
    TickRegistry.registerTickHandler(new MovementHandler(), Side.CLIENT);
}
项目:HighlightTips    文件:HighlightTips.java   
@Mod.PreInit
public void preInit(FMLPreInitializationEvent event) {
    Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());

    try {
        cfg.load();

        enable = cfg.get(Configuration.CATEGORY_GENERAL, "enable", true).getBoolean(true);
        keyToggle = cfg.get(Configuration.CATEGORY_GENERAL, "key.toggle", DEFAULT_KEY_TOGGLE).getInt(DEFAULT_KEY_TOGGLE);
        range = cfg.get(Configuration.CATEGORY_GENERAL, "range", DEFAULT_RANGE).getDouble(DEFAULT_RANGE);
        x = cfg.get(Configuration.CATEGORY_GENERAL, "x", DEFAULT_X).getInt(DEFAULT_X);
        y = cfg.get(Configuration.CATEGORY_GENERAL, "y", DEFAULT_Y).getInt(DEFAULT_Y);
        color = cfg.get(Configuration.CATEGORY_GENERAL, "color", DEFAULT_COLOR).getInt(DEFAULT_COLOR);
    } catch (Exception e) {
        FMLLog.log(Level.SEVERE, e, "HighlightTips had a problem loading it's configuration");
    } finally {
        cfg.save();
    }

    if (!FMLRelauncher.side().equals("CLIENT")) {
        // gracefully disable on non-client (= server) instead of crashing
        enable = false;
    }

    if (!enable) {
        FMLLog.log(Level.INFO, "HighlightTips disabled");
        return;
    }

    TickRegistry.registerTickHandler(this, Side.CLIENT);
    KeyBindingRegistry.registerKeyBinding(toggleKeyHandler = new ToggleKeyHandler(keyToggle));
}
项目:ZeroQuest    文件:ClientProxy.java   
public void registerAdvanced(){
       KeyBindingRegistry.registerKeyBinding(new DragonKeyHandler());
       TickRegistry.registerTickHandler(new DragonTickHandler(), Side.CLIENT);
}
项目:Kingdom-Keys    文件:ClientProxy.java   
@Override
   public void registerRenderers() {
    //3D Model renders
     MinecraftForgeClient.registerItemRenderer(AddedItems.K111.itemID, new ItemRenderKingdomKey());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K112.itemID, new ItemRenderOathKeeper());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K113.itemID, new ItemRenderKingdomKeyD());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K114.itemID, new ItemRenderOblivion());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K110.itemID, new ItemRenderWaywardWind());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K109.itemID, new ItemRenderEarthShaker());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K108.itemID, new ItemRenderRainFell());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K107.itemID, new ItemRenderStarLight());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K106.itemID, new ItemRenderSoulEater());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K50.itemID, new ItemRenderLunarEclipse());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K52.itemID, new ItemRenderTotalEclipse());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K69.itemID, new ItemRenderFenrir());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K41.itemID, new ItemRenderZeroOne());
        MinecraftForgeClient.registerItemRenderer(AddedItems.BookOfRetribution.itemID, new ItemRenderBookOfRetribution());
        MinecraftForgeClient.registerItemRenderer(AddedItems.Interdiction.itemID, new ItemRenderInterdiction());
        MinecraftForgeClient.registerItemRenderer(AddedItems.K103.itemID, new ItemRenderUltimaWeapon());
        MinecraftForgeClient.registerItemRenderer(AddedItems.EternalFlames.itemID, new ItemRenderEternalFlames());

        TickRegistry.registerTickHandler(new TickerClient(), Side.CLIENT);

        //Entities
        RenderingRegistry.registerEntityRenderingHandler(EntityEternalFlames.class, new EntityRenderEternalFlames());

        RenderingRegistry.registerEntityRenderingHandler(EntityBlastBlox.class, new BlockRenderBlastBlox());
        RenderingRegistry.registerEntityRenderingHandler(EntitySharpshooterShot.class, new RenderSharpshooterShot2(AddedItems.EternalFlames));
        RenderingRegistry.registerEntityRenderingHandler(EntityRedNocturne.class, new EntityRenderRedNocturne(new ModelRedNocturne(), 0.5F));
       // EntityRegistry.registerGlobalEntityID(EntityRedNocturne.class, "Red Nocturne", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);

        new SoundManager();

        //Capes
        //DevCapesUtil.addFileUrl("https://raw.github.com/Wehavecookies56/Kingdom-Keys/master/Capes.txt");

        KeyBinding[] key = {new KeyBinding("Summon Keyblade", Keyboard.KEY_G)};
        boolean[] repeat = {false};
        KeyBindingRegistry.registerKeyBinding(new KeyBind(key, repeat));



}
项目:HotbarPlus    文件:HotbarPlus_ModBase.java   
@EventHandler
public void init(FMLInitializationEvent e) {
       KeyBindingRegistry.registerKeyBinding(new HBPKeyHandler());
       TickRegistry.registerTickHandler(new HBPTickHandler(), Side.CLIENT);
}
项目:BL2    文件:BL2ProxyClient.java   
@Override
public void registerKeyBinding() {
    KeyBindingRegistry
            .registerKeyBinding(new BL2.core.handlers.BL2KeyHandler());
}
项目:HexxitGear    文件:ClientProxy.java   
@Override
public void registerHandlers() {
    super.registerHandlers();
    TickRegistry.registerTickHandler(new PlayerTickHandler(), Side.CLIENT);
    KeyBindingRegistry.registerKeyBinding(new HGKeyHandler());
}
项目:Gems    文件:MagneticModule.java   
public static void Config(int ID) {
  ConfigHelper.file("MagneticModule", ID);
  //Items
  positiveID = ConfigHelper.item("positiveID");
  negativeID = ConfigHelper.item("negativeID");
  repelPlayerLvl1ID = ConfigHelper.item("repelPlayerLvl1ID");
  repelPlayerLvl2ID = ConfigHelper.item("repelPlayerLvl2ID");
  repelPlayerLvl3ID = ConfigHelper.item("repelPlayerLvl3ID");
  repelPlayerLvl4ID = ConfigHelper.item("repelPlayerLvl4ID");
  repelPlayerLvl5ID = ConfigHelper.item("repelPlayerLvl5ID");
  magneticPowderID = ConfigHelper.item("magneticPowderID");
  magneticIngotID = ConfigHelper.item("magneticIngotID");
  magnetID = ConfigHelper.item("magnetID");
  jetpackID = ConfigHelper.item("jetpackID");
  creativeJetpackID = ConfigHelper.item("creativeJetpackID");
  longFallID = ConfigHelper.item("longFallID");
  ringID = ConfigHelper.item("ringID");
  flightRingID = ConfigHelper.item("flightRingID");
  explosionRingID = ConfigHelper.item("explosionRingID");
  teleportRingID = ConfigHelper.item("teleportRingID");
  itemRingID = ConfigHelper.item("itemRingID");
  heatRingID = ConfigHelper.item("heatRingID");
  chillRingID = ConfigHelper.item("chillRingID");

  blockPositiveID = ConfigHelper.block("blockPositiveID");
  blockNegativeID = ConfigHelper.block("blockNegativeID");
  orePositiveID = ConfigHelper.block("orePositiveID");
  oreNegativeID = ConfigHelper.block("oreNegativeID");
  magneticBlockID = ConfigHelper.block("magneticBlockID");
  TNTlvl1ID = ConfigHelper.block("TNTlvl1ID");

  flightPower = ConfigHelper.other("Flight Ring", "Max Magnetic Jump Level", 5);
  explosionPower = ConfigHelper.other("Explosion Ring", "Max Explosion Level", 8);
  teleportPower = ConfigHelper.other("Teleport Ring", "Range for Teleport", 10);
  itemPower = ConfigHelper.other("Item Ring", "Range", 10);
  heatPower = ConfigHelper.other("Heat Ring", "Range", 3);
  chillPower = ConfigHelper.other("Chill Ring", "Range", 3);
  ConfigHelper.save();

  //Define World Gen
  worldPositive = new Dim0WorldGenerator(orePositiveID, 40, 5, 4, 8);
  worldNegative = new Dim0WorldGenerator(oreNegativeID, 40, 5, 4, 8);


  //For Jetpack
  if (Core.isClient()) {
    KeyBinding[] up = {new KeyBinding("Jetpack Up", Keyboard.KEY_Z)};
    boolean[] repeat = {false};
    KeyBindingRegistry.registerKeyBinding(new JetpackKeybind(up, repeat));
    TickRegistry.registerTickHandler(new JetpackTickHandler(EnumSet.of(TickType.PLAYER)), Side.CLIENT);
  }
}
项目:Necromancy    文件:ClientProxy.java   
@Override
@SideOnly(Side.CLIENT)
public void init() {
    super.init();
    mc = FMLClientHandler.instance().getClient();

    RenderingRegistry.registerEntityRenderingHandler(EntityMinion.class, new RenderMinion());
    RenderingRegistry.registerEntityRenderingHandler(EntityTeddy.class, new RenderTeddy(new ModelTeddy(), 0.3F));
    RenderingRegistry.registerEntityRenderingHandler(EntityNightCrawler.class, new RenderNightCrawler(new ModelNightCrawler(), 0.3F));
    RenderingRegistry.registerEntityRenderingHandler(EntityIsaacNormal.class, new RenderIsaac(new ModelIsaacNormal(), 0.3F));
    RenderingRegistry.registerEntityRenderingHandler(EntityIsaacBlood.class, new RenderIsaacBlood(new ModelIsaacNormal(), 0.3F));
    RenderingRegistry.registerEntityRenderingHandler(EntityIsaacBody.class, new RenderIsaacBlood(new ModelIsaacSevered(), 0.3F));
    RenderingRegistry.registerEntityRenderingHandler(EntityIsaacHead.class, new RenderIsaacBlood(new ModelIsaacHead(), 0.3F));
    RenderingRegistry.registerEntityRenderingHandler(EntityTear.class, new RenderTear());
    RenderingRegistry.registerEntityRenderingHandler(EntityTearBlood.class, new RenderTearBlood());

    ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAltar.class, new TileEntityAltarRenderer());
    ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySewing.class, new TileEntitySewingRenderer());
    ClientRegistry.bindTileEntitySpecialRenderer(TileEntityScentBurner.class, new TileEntityScentBurnerRenderer());
    //ClientRegistry.bindTileEntitySpecialRenderer(TileEntityScent.class, new RenderScent());

    RenderingRegistry.registerBlockHandler(new RenderScent());

    MinecraftForgeClient.registerItemRenderer(BlockNecromancy.altar.blockID, new TileEntityAltarRenderer());
    MinecraftForgeClient.registerItemRenderer(BlockNecromancy.sewing.blockID, new TileEntitySewingRenderer());
    MinecraftForgeClient.registerItemRenderer(BlockNecromancy.scentBurner.blockID, new TileEntityScentBurnerRenderer());
    MinecraftForgeClient.registerItemRenderer(ItemNecromancy.scythe.itemID, new ItemScytheRenderer());
    MinecraftForgeClient.registerItemRenderer(ItemNecromancy.scytheBone.itemID, new ItemScytheBoneRenderer());
    MinecraftForgeClient.registerItemRenderer(ItemNecromancy.necronomicon.itemID, new ItemNecronomiconRenderer());

    FluidRegistry.registerFluid(BlockNecromancy.fluidBlood);

    KeyBindingRegistry.registerKeyBinding(new KeyHandlerNecro());

    VillagerRegistry.instance().registerVillagerSkin(ConfigurationNecromancy.NecroVillagerID, ReferenceNecromancy.TEXTURES_ENTITIES_NECROMANCER);
    VillagerRegistry.instance().registerVillageTradeHandler(ConfigurationNecromancy.NecroVillagerID, Necromancy.PacketHandler);

    try {
        int vertShader = loadShader("/assets/necromancy/shaders/scent/scentFragment.shader",GL20.GL_VERTEX_SHADER);
        int fragShader = loadShader("/assets/necromancy/shaders/scent/scentVertex.shader",GL20.GL_FRAGMENT_SHADER);
        int scentProgram = GL20.glCreateProgram();
        GL20.glAttachShader(scentProgram, vertShader);
        GL20.glAttachShader(scentProgram, fragShader);
        GL20.glLinkProgram(scentProgram);
        GL20.glValidateProgram(scentProgram);
    } catch (Exception e1) {
        e1.printStackTrace();
        System.exit(-1);
    }
}
项目:secri    文件:mod_HDSkins.java   
@PostInit
public void modsLoaded(FMLPostInitializationEvent event) {
    KeyBindingRegistry.registerKeyBinding(new HDKeyHandler());
    HDSkinHandler.initSkins();
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}
项目:ShoulderSurfing    文件:ShoulderKeybindings.java   
/**
 * Registers the ShoulderSurfing keybindings with minecraft.
 * Should only be called once!
 * 
 * @return Returns a {@link ShoulderKeyHandler} 
 */
public static ShoulderKeyHandler registerKeybindings(){
    ShoulderKeyHandler skh = new ShoulderKeyHandler(keyBindings, isKeyBindingRepeat);
    KeyBindingRegistry.registerKeyBinding(skh);
    return skh;
}