summaryrefslogtreecommitdiff
path: root/src/api/java/modwarriors
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/java/modwarriors')
-rw-r--r--src/api/java/modwarriors/notenoughkeys/api/Api.java40
-rw-r--r--src/api/java/modwarriors/notenoughkeys/api/KeyBindingPressedEvent.java43
-rw-r--r--src/api/java/modwarriors/notenoughkeys/api/package-info.java5
3 files changed, 88 insertions, 0 deletions
diff --git a/src/api/java/modwarriors/notenoughkeys/api/Api.java b/src/api/java/modwarriors/notenoughkeys/api/Api.java
new file mode 100644
index 0000000..390d28a
--- /dev/null
+++ b/src/api/java/modwarriors/notenoughkeys/api/Api.java
@@ -0,0 +1,40 @@
+package modwarriors.notenoughkeys.api;
+
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+/**
+ * Center of the API. Main api methods can be found in this class.
+ *
+ * @author TheTemportalist
+ */
+@SideOnly(Side.CLIENT)
+public class Api {
+
+ /**
+ * Checks if NotEnoughKeys is loaded in the current environment
+ *
+ * @return 'true' if loaded
+ */
+ public static boolean isLoaded() {
+ return Loader.isModLoaded("notenoughkeys");
+ }
+
+ /**
+ * Registers a mod's keys with NEK
+ *
+ * @param modname The NAME of the mod registering the key
+ * @param keyDecriptions A String[] (Array[String]) of the key descriptions. i.e. new String[]{"key.hotbar1"}
+ */
+ public static void registerMod(String modname, String[] keyDecriptions) {
+ try {
+ Class.forName("modwarriors.notenoughkeys.keys.KeyHelper").getMethod(
+ "registerMod", String.class, String[].class
+ ).invoke(null, modname, keyDecriptions);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/src/api/java/modwarriors/notenoughkeys/api/KeyBindingPressedEvent.java b/src/api/java/modwarriors/notenoughkeys/api/KeyBindingPressedEvent.java
new file mode 100644
index 0000000..d17b808
--- /dev/null
+++ b/src/api/java/modwarriors/notenoughkeys/api/KeyBindingPressedEvent.java
@@ -0,0 +1,43 @@
+package modwarriors.notenoughkeys.api;
+
+import cpw.mods.fml.common.eventhandler.Cancelable;
+import cpw.mods.fml.common.eventhandler.Event;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.settings.KeyBinding;
+
+/**
+ * Called when a keybinding is triggered with the passed with valid modifiers
+ *
+ * @author TheTemportalist
+ */
+@SideOnly(Side.CLIENT)
+@Cancelable
+public class KeyBindingPressedEvent extends Event {
+
+ /**
+ * The KeyBinding being triggered
+ */
+ public KeyBinding keyBinding = null;
+ /**
+ * Tells whether a modifier was required AND was down when triggered
+ */
+ public boolean shiftRequired = false, ctrlRequired = false, altRequired = false;
+
+ /**
+ * Called with the passed keyBinding and modifiers.
+ * Subscribe to this event so activate a keybinding when triggered.
+ *
+ * @param keyBinding The KeyBinding being triggered. Stores the key's description and keycode
+ * @param modifiers The modifiers (SHIFT, CTRL, ALT) that determine when a compatible key is pressed
+ */
+ public KeyBindingPressedEvent(KeyBinding keyBinding, boolean[] modifiers) {
+ super();
+ this.keyBinding = keyBinding;
+ this.shiftRequired = modifiers[0];
+ this.ctrlRequired = modifiers[1];
+ this.altRequired = modifiers[2];
+
+ }
+
+}
diff --git a/src/api/java/modwarriors/notenoughkeys/api/package-info.java b/src/api/java/modwarriors/notenoughkeys/api/package-info.java
new file mode 100644
index 0000000..d53b000
--- /dev/null
+++ b/src/api/java/modwarriors/notenoughkeys/api/package-info.java
@@ -0,0 +1,5 @@
+
+@API(owner = "Not Enough Keys", provides = "API_NEK",
+ apiVersion = "1.0.0") package modwarriors.notenoughkeys.api;
+
+import cpw.mods.fml.common.API;