User Tools

Site Tools


tutorial:keybinds

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tutorial:keybinds [2020/12/05 18:07] – formatting majavahtutorial:keybinds [2021/02/28 17:23] – Fixed a minor formatting issue sailkite
Line 8: Line 8:
  
 Adding a key-bind is easy. You'll need to: Adding a key-bind is easy. You'll need to:
 +  * open or create a Client [[documentation:entrypoint]]
   * create a KeyBinding object   * create a KeyBinding object
   * react to the key being pressed   * react to the key being pressed
Line 13: Line 14:
  
 See [[https://github.com/FabricMC/fabric/blob/1.16/fabric-key-binding-api-v1/src/testmod/java/net/fabricmc/fabric/test/client/keybinding/KeyBindingsTest.java|here]] for an updated example. See [[https://github.com/FabricMC/fabric/blob/1.16/fabric-key-binding-api-v1/src/testmod/java/net/fabricmc/fabric/test/client/keybinding/KeyBindingsTest.java|here]] for an updated example.
 +
 +==== Preparing an Entrypoint ====
 +
 +If you already have a Client entrypoint created and you are familiar with how it works, you can safely proceed to the [[#Creating your Keybind|next section]]. Otherwise, stick around for a quick overview!
 +
 +In order to create a Client entrypoint, we'll need to do a couple of different things to let Fabric know that we intend to specify code that only needs to be executed by the physical client [[tutorial:side]]. We'll make a quick example class called ''ExampleClientEntrypoint'', but usually the common practice would be to name the class "YourModName" followed by "Client", e.g. ''YoYoDeleriumClient'' or ''HappySheepHammocksClient''. Let's take a look at the code, and then we'll explain what's happening:
 +
 +<code java[enable_line_numbers="true"]>
 +/* package */
 +/* imports */
 +
 +public class ExampleClientEntrypoint implements ClientModInitializer {
 +    
 +    // The KeyBinding declaration and registration are commonly executed here statically
 +    
 +    @Override
 +    public void onInitializeClient() {
 +        
 +        // Event registration will be executed inside this method
 +    }
 +}
 +</code>
 +
 +So, what are we doing here? Fabric entrypoints for most use cases are designated by implementing a special interface unique to the side or sides that the code in the entrypoint should be run on. For our Client, we simply have our class implement the ''ClientModInitializer'' interface. The interface requires us to ''@Override'' a single method, ''onInitializeClient''. It is in this method (and the equivalents from the other entrypoints respectively) that we will often call methods provided by the Fabric API for easily registering and adding some of the objects and behaviors that we may wish to have in our mod. Of course, we'll also need to update our ''fabric.mod.json'' to include our newly created entrypoint, so be sure to consult the [[documentation:entrypoint|entrypoints page]] if you need a refresher on that process.
  
 ==== Creating your Keybind ==== ==== Creating your Keybind ====
tutorial/keybinds.txt · Last modified: 2023/12/27 13:14 by 2601:188:cb7c:25a0:19fa:9122:4e5a:fad1