summaryrefslogtreecommitdiff
path: root/src/api/java/mcp
diff options
context:
space:
mode:
authorLance5057 <Lance5057@gmail.com>2015-01-21 20:04:34 -0600
committerLance5057 <Lance5057@gmail.com>2015-01-21 20:04:34 -0600
commitb4eb8f2d65c62afccc898808b44fdddfde0c15d1 (patch)
treeee3a9f47a22418a6778c299cc96b4fedc2265afe /src/api/java/mcp
parent39642dce74d23f025b71d5766c1ac8489a41a802 (diff)
Startup
I hope I'm doing this right...
Diffstat (limited to 'src/api/java/mcp')
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaBlock.java34
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java9
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java28
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java33
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java33
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java24
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java16
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java27
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java7
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java12
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java44
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java21
-rw-r--r--src/api/java/mcp/mobius/waila/api/SpecialChars.java40
-rw-r--r--src/api/java/mcp/mobius/waila/api/package-info.java3
14 files changed, 331 insertions, 0 deletions
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaBlock.java b/src/api/java/mcp/mobius/waila/api/IWailaBlock.java
new file mode 100644
index 0000000..8b4dd13
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaBlock.java
@@ -0,0 +1,34 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+@Deprecated
+public interface IWailaBlock {
+ /*
+ * Use this method to return an item stack in case the default lookup system fails.
+ * Return null if you want to use the default lookup system.
+ * You get the world, the player and the location of the block. With that, it is easy to gather information & tile entities
+ */
+ ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config);
+
+ /* Waila HUD is divided into 3 zones. The head corresponds to the item name,
+ * body to where you mostly want to put informations, and I reserve the tail for modname display
+ */
+
+ /* Those 2 methods works exactly the same way, except they are related to a different zone in Waila HUD.
+ * You get in input world, player and the block location. You also get the itemstack as returned by the default lookup system or getWailaStack().
+ * ConfigHandler provides the current Waila config state so you can show/hide elements depending on the configuration. Refer the ConfigHandler class for more info.
+ * currenttip represents the current list of text lines in the tooltip zone.
+ * For example, getWailaHead() will have the current item name as currenttip.
+ * You can modify the tips, add more, remove some, etc.
+ * When you are done, just returns the currenttip and it will display in Waila.
+ *
+ * Always return the currenttip is you don't want to modify the current zone.
+ */
+
+ List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java b/src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java
new file mode 100644
index 0000000..935d475
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java
@@ -0,0 +1,9 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaBlockDecorator {
+
+ void decorateBlock(ItemStack itemStack, IWailaDataAccessor accessor, IWailaConfigHandler config);
+
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java b/src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java
new file mode 100644
index 0000000..faede63
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java
@@ -0,0 +1,28 @@
+package mcp.mobius.waila.api;
+
+import java.util.HashMap;
+import java.util.Set;
+
+public interface IWailaConfigHandler {
+ /* Returns a set of all the currently loaded modules in the config handler */
+ public Set<String> getModuleNames();
+
+ /* Returns all the currently available options for a given module */
+ public HashMap<String, String> getConfigKeys(String modName);
+
+ /* Add a new option to a given module
+ *
+ * modName is the name of the module to add the option to (ie : Buildcraft, IndustrialCraft2, etc)
+ * key is the config key (ie : bc.tankcontent, ic2.inputvalue)
+ * name is the human readable name of the option (ie : "Tank content", "Max EU Input")
+ * */
+ //public void addConfig(String modName, String key, String name);
+
+ /* Returns the current value of an option (true/false) with a default value defvalue if not set*/
+ public boolean getConfig(String key, boolean defvalue);
+
+ /* Returns the current value of an option (true/false) with a default value true if not set*/
+ public boolean getConfig(String key);
+
+ //public void setConfig(String key, boolean value);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java b/src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java
new file mode 100644
index 0000000..0288624
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java
@@ -0,0 +1,33 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+/* The Accessor is used to get some basic data out of the game without having to request
+ * direct access to the game engine.
+ * It will also return things that are unmodified by the overriding systems (like getWailaStack).
+ */
+
+public interface IWailaDataAccessor {
+
+ World getWorld();
+ EntityPlayer getPlayer();
+ Block getBlock();
+ int getBlockID();
+ int getMetadata();
+ TileEntity getTileEntity();
+ MovingObjectPosition getPosition();
+ Vec3 getRenderingPosition();
+ NBTTagCompound getNBTData();
+ int getNBTInteger(NBTTagCompound tag, String keyname);
+ double getPartialFrame();
+ ForgeDirection getSide();
+ ItemStack getStack();
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java
new file mode 100644
index 0000000..4859d9c
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java
@@ -0,0 +1,33 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaDataProvider{
+ /*
+ * Use this method to return an item stack in case the default lookup system fails.
+ * Return null if you want to use the default lookup system.
+ * You get the world, the player and the location of the block. With that, it is easy to gather information & tile entities
+ */
+ ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config);
+
+ /* Waila HUD is divided into 3 zones. The head corresponds to the item name,
+ * body to where you mostly want to put informations, and I reserve the tail for modname display
+ */
+
+ /* Those 2 methods works exactly the same way, except they are related to a different zone in Waila HUD.
+ * You get in input world, player and the block location. You also get the itemstack as returned by the default lookup system or getWailaStack().
+ * ConfigHandler provides the current Waila config state so you can show/hide elements depending on the configuration. Refer the ConfigHandler class for more info.
+ * currenttip represents the current list of text lines in the tooltip zone.
+ * For example, getWailaHead() will have the current item name as currenttip.
+ * You can modify the tips, add more, remove some, etc.
+ * When you are done, just returns the currenttip and it will display in Waila.
+ *
+ * Always return the currenttip is you don't want to modify the current zone.
+ */
+
+ List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java b/src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java
new file mode 100644
index 0000000..788067a
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java
@@ -0,0 +1,24 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+
+/* The Accessor is used to get some basic data out of the game without having to request
+ * direct access to the game engine.
+ * It will also return things that are unmodified by the overriding systems (like getWailaStack).
+ */
+
+public interface IWailaEntityAccessor {
+ World getWorld();
+ EntityPlayer getPlayer();
+ Entity getEntity();
+ MovingObjectPosition getPosition();
+ Vec3 getRenderingPosition();
+ NBTTagCompound getNBTData();
+ int getNBTInteger(NBTTagCompound tag, String keyname);
+ double getPartialFrame();
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java
new file mode 100644
index 0000000..9548289
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java
@@ -0,0 +1,16 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.entity.Entity;
+
+public interface IWailaEntityProvider {
+
+ /* A way to get an override on the entity returned by the raytracing */
+ Entity getWailaOverride(IWailaEntityAccessor accessor, IWailaConfigHandler config);
+
+ /* The classical HEAD/BODY/TAIL text getters */
+ List<String> getWailaHead(Entity entity, List<String> currenttip, IWailaEntityAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(Entity entity, List<String> currenttip, IWailaEntityAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(Entity entity, List<String> currenttip, IWailaEntityAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java b/src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java
new file mode 100644
index 0000000..19e01fa
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java
@@ -0,0 +1,27 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+
+/* The Accessor is used to get some basic data out of the game without having to request
+ * direct access to the game engine.
+ * It will also return things that are unmodified by the overriding systems (like getWailaStack).
+ */
+
+public interface IWailaFMPAccessor {
+ World getWorld();
+ EntityPlayer getPlayer();
+ TileEntity getTileEntity();
+ MovingObjectPosition getPosition();
+ NBTTagCompound getNBTData();
+ NBTTagCompound getFullNBTData();
+ int getNBTInteger(NBTTagCompound tag, String keyname);
+ double getPartialFrame();
+ Vec3 getRenderingPosition();
+ String getID();
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java b/src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java
new file mode 100644
index 0000000..839af31
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java
@@ -0,0 +1,7 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaFMPDecorator {
+ void decorateBlock(ItemStack itemStack, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java
new file mode 100644
index 0000000..232c83e
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java
@@ -0,0 +1,12 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaFMPProvider {
+ /* The classical HEAD/BODY/TAIL text getters */
+ List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java b/src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java
new file mode 100644
index 0000000..162aeb6
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java
@@ -0,0 +1,44 @@
+package mcp.mobius.waila.api;
+
+public interface IWailaRegistrar {
+ /* Add a config option in the section modname with displayed text configtext and access key keyname */
+ public void addConfig(String modname, String keyname, String configtext);
+ public void addConfigRemote(String modname, String keyname, String configtext);
+ public void addConfig(String modname, String keyname);
+ public void addConfigRemote(String modname, String keyname);
+
+ /* Register a stack overrider for the given blockID */
+ public void registerStackProvider(IWailaDataProvider dataProvider, Class block);
+
+ /* Same thing, but works on a class hierarchy instead */
+ public void registerHeadProvider (IWailaDataProvider dataProvider, Class block);
+ public void registerBodyProvider (IWailaDataProvider dataProvider, Class block);
+ public void registerTailProvider (IWailaDataProvider dataProvider, Class block);
+
+ /* Entity text registration methods */
+ public void registerHeadProvider (IWailaEntityProvider dataProvider, Class entity);
+ public void registerBodyProvider (IWailaEntityProvider dataProvider, Class entity);
+ public void registerTailProvider (IWailaEntityProvider dataProvider, Class entity);
+ public void registerOverrideEntityProvider (IWailaEntityProvider dataProvider, Class entity);
+
+ /* FMP Providers */
+ public void registerHeadProvider(IWailaFMPProvider dataProvider, String name);
+ public void registerBodyProvider(IWailaFMPProvider dataProvider, String name);
+ public void registerTailProvider(IWailaFMPProvider dataProvider, String name);
+
+ /* The block decorators */
+ public void registerDecorator (IWailaBlockDecorator decorator, Class block);
+ public void registerDecorator (IWailaFMPDecorator decorator, String name);
+
+ /* Selective NBT key syncing. Will register a key to sync over the network for the given class (block, te or ent).
+ * Accept * as a ending wildcard
+ * registerNBTKey("bob.*", MyBlock.class)
+ * registerNBTKey("data.life", MyEntity.class)
+ * registerNBTKey("*", MyTileEntity.class) will reproduce the full tag syncing from 1.4.5
+ * */
+ public void registerSyncedNBTKey(String key, Class target);
+
+ /* UNUSED FOR NOW (Will be used for the ingame wiki */
+ public void registerDocTextFile (String filename);
+ public void registerShortDataProvider (IWailaSummaryProvider dataProvider, Class item);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java
new file mode 100644
index 0000000..f790649
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java
@@ -0,0 +1,21 @@
+package mcp.mobius.waila.api;
+
+import java.util.LinkedHashMap;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaSummaryProvider {
+ /* This interface is used to control the display data in the description screen */
+
+ /* BASIC TOOLS & ITEMS DATA */
+ //EnumToolMaterial getMaterial(ItemStack stack);
+ //String getMaterialName(ItemStack stack);
+ //String getEffectiveBlock(ItemStack stack);
+ //int getHarvestLevel(ItemStack stack);
+ //float getEfficiencyOnProperMaterial(ItemStack stack);
+ //int getEnchantability(ItemStack stack);
+ //int getDamageVsEntity(ItemStack stack);
+ //int getDurability(ItemStack stack);
+
+ LinkedHashMap<String, String> getSummary(ItemStack stack, LinkedHashMap<String, String> currentSummary, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/SpecialChars.java b/src/api/java/mcp/mobius/waila/api/SpecialChars.java
new file mode 100644
index 0000000..5bd92a8
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/SpecialChars.java
@@ -0,0 +1,40 @@
+package mcp.mobius.waila.api;
+
+public class SpecialChars {
+
+ public static String MCStyle = "\u00A7";
+
+ public static String BLACK = MCStyle + "0";
+ public static String DBLUE = MCStyle + "1";
+ public static String DGREEN = MCStyle + "2";
+ public static String DAQUA = MCStyle + "3";
+ public static String DRED = MCStyle + "4";
+ public static String DPURPLE = MCStyle + "5";
+ public static String GOLD = MCStyle + "6";
+ public static String GRAY = MCStyle + "7";
+ public static String DGRAY = MCStyle + "8";
+ public static String BLUE = MCStyle + "9";
+ public static String GREEN = MCStyle + "a";
+ public static String AQUA = MCStyle + "b";
+ public static String RED = MCStyle + "c";
+ public static String LPURPLE = MCStyle + "d";
+ public static String YELLOW = MCStyle + "e";
+ public static String WHITE = MCStyle + "f";
+
+ public static String OBF = MCStyle + "k";
+ public static String BOLD = MCStyle + "l";
+ public static String STRIKE = MCStyle + "m";
+ public static String UNDER = MCStyle + "n";
+ public static String ITALIC = MCStyle + "o";
+ public static String RESET = MCStyle + "r";
+
+ public static String WailaStyle = "\u00A4";
+ public static String WailaIcon = "\u00A5";
+ public static String TAB = WailaStyle + WailaStyle +"a";
+ public static String ALIGNRIGHT = WailaStyle + WailaStyle +"b";
+ public static String ALIGNCENTER = WailaStyle + WailaStyle +"c";
+ public static String HEART = WailaStyle + WailaIcon +"a";
+ public static String HHEART = WailaStyle + WailaIcon +"b";
+ public static String EHEART = WailaStyle + WailaIcon +"c";
+
+}
diff --git a/src/api/java/mcp/mobius/waila/api/package-info.java b/src/api/java/mcp/mobius/waila/api/package-info.java
new file mode 100644
index 0000000..9b5e663
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/package-info.java
@@ -0,0 +1,3 @@
+@API(apiVersion="1.0",owner="Waila",provides="WailaAPI")
+package mcp.mobius.waila.api;
+import cpw.mods.fml.common.API; \ No newline at end of file