summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/thirdparty
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-05-07 13:34:21 +0100
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-05-07 13:34:21 +0100
commitc5e04f2c8e0c5393d9a5ef63a87ae4f0094af301 (patch)
tree170a49181f336842c82cf6e12f63f7e4b8e2cad1 /src/main/java/darkknight/jewelrycraft/thirdparty
parent208b1f1e0d5faf601b53818b04f6699b2e6cb6bc (diff)
- Added EE3 EMC values, thank you to MineMarteen for providing the ThirdPartyManager code :)
- Working on making it possible to translate every part of the mod - Created an interface modders can use to make an item wearable in the jewelry inventory and have special effects
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/thirdparty')
-rw-r--r--src/main/java/darkknight/jewelrycraft/thirdparty/EE3.java36
-rw-r--r--src/main/java/darkknight/jewelrycraft/thirdparty/IRegistryListener.java12
-rw-r--r--src/main/java/darkknight/jewelrycraft/thirdparty/IThirdParty.java23
-rw-r--r--src/main/java/darkknight/jewelrycraft/thirdparty/ModIds.java28
-rw-r--r--src/main/java/darkknight/jewelrycraft/thirdparty/ThirdPartyManager.java144
5 files changed, 243 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/thirdparty/EE3.java b/src/main/java/darkknight/jewelrycraft/thirdparty/EE3.java
new file mode 100644
index 0000000..1222d7c
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/thirdparty/EE3.java
@@ -0,0 +1,36 @@
+package darkknight.jewelrycraft.thirdparty;
+
+import java.util.Arrays;
+import java.util.List;
+import net.minecraft.item.ItemStack;
+import com.pahimar.ee3.api.EnergyValueRegistryProxy;
+import darkknight.jewelrycraft.block.BlockList;
+import darkknight.jewelrycraft.item.ItemList;
+
+public class EE3 implements IThirdParty
+{
+ @Override
+ public void preInit()
+ {
+ EnergyValueRegistryProxy.addPostAssignedEnergyValue(new ItemStack(BlockList.shadowOre), 4096);
+ EnergyValueRegistryProxy.addPostAssignedEnergyValue(new ItemStack(ItemList.shadowIngot), 4096);
+ EnergyValueRegistryProxy.addPostAssignedEnergyValue(new ItemStack(ItemList.clayMolds), 128);
+ EnergyValueRegistryProxy.addPostAssignedEnergyValue(new ItemStack(ItemList.molds), 128);}
+
+ @Override
+ public void init()
+ {}
+
+ @Override
+ public void postInit()
+ {
+ }
+
+ @Override
+ public void clientSide()
+ {}
+
+ @Override
+ public void clientInit()
+ {}
+} \ No newline at end of file
diff --git a/src/main/java/darkknight/jewelrycraft/thirdparty/IRegistryListener.java b/src/main/java/darkknight/jewelrycraft/thirdparty/IRegistryListener.java
new file mode 100644
index 0000000..703a226
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/thirdparty/IRegistryListener.java
@@ -0,0 +1,12 @@
+package darkknight.jewelrycraft.thirdparty;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+/**
+ * @author MineMarteen from Pneumaticraft
+ */
+public interface IRegistryListener{
+ public void onItemRegistry(Item item);
+
+ public void onBlockRegistry(Block block);
+} \ No newline at end of file
diff --git a/src/main/java/darkknight/jewelrycraft/thirdparty/IThirdParty.java b/src/main/java/darkknight/jewelrycraft/thirdparty/IThirdParty.java
new file mode 100644
index 0000000..8aaba72
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/thirdparty/IThirdParty.java
@@ -0,0 +1,23 @@
+package darkknight.jewelrycraft.thirdparty;
+
+/**
+ * @author MineMarteen from Pneumaticraft
+ */
+public interface IThirdParty{
+
+ public void preInit();
+
+ public void init();
+
+ public void postInit();
+
+ /**
+ * Gets called from the ClientProxy in the preInit.
+ */
+ public void clientSide();
+
+ /**
+ * Gets called from the ClientProxy in the Init.
+ */
+ public void clientInit();
+} \ No newline at end of file
diff --git a/src/main/java/darkknight/jewelrycraft/thirdparty/ModIds.java b/src/main/java/darkknight/jewelrycraft/thirdparty/ModIds.java
new file mode 100644
index 0000000..61fcf99
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/thirdparty/ModIds.java
@@ -0,0 +1,28 @@
+package darkknight.jewelrycraft.thirdparty;
+
+/**
+ * @author MineMarteen from Pneumaticraft
+ */
+public class ModIds{
+ public static final String BUILDCRAFT = "BuildCraft|Core";
+ public static final String COMPUTERCRAFT = "ComputerCraft";
+ public static final String INDUSTRIALCRAFT = "IC2";
+ public static final String IGWMOD = "IGWMod";
+ public static final String FMP = "ForgeMultipart";
+ public static final String WAILA = "Waila";
+ public static final String TE = "ThermalExpansion";
+ public static final String HC = "HydCraft";
+ public static final String NEI = "NotEnoughItems";
+ public static final String THAUMCRAFT = "Thaumcraft";
+ public static final String BLOOD_MAGIC = "AWWayofTime";
+ public static final String AE2 = "appliedenergistics2";
+ public static final String CHISEL = "chisel";
+ public static final String FORESTRY = "Forestry";
+ public static final String MFR = "MineFactoryReloaded";
+ public static final String OPEN_BLOCKS = "OpenBlocks";
+ public static final String COFH_CORE = "CoFHCore";
+ public static final String NOT_ENOUGH_KEYS = "notenoughkeys";
+ public static final String OPEN_COMPUTERS = "OpenComputers|Core";
+ public static final String EE3 = "EE3";
+ public static final String PENUMATICRAFT = "PneumaticCraft";
+} \ No newline at end of file
diff --git a/src/main/java/darkknight/jewelrycraft/thirdparty/ThirdPartyManager.java b/src/main/java/darkknight/jewelrycraft/thirdparty/ThirdPartyManager.java
new file mode 100644
index 0000000..5bc45b6
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/thirdparty/ThirdPartyManager.java
@@ -0,0 +1,144 @@
+package darkknight.jewelrycraft.thirdparty;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.world.World;
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.Optional;
+import cpw.mods.fml.common.network.IGuiHandler;
+import darkknight.jewelrycraft.JewelrycraftMod;
+import darkknight.jewelrycraft.config.ConfigHandler;
+
+/**
+ * @author MineMarteen from Pneumaticraft
+ */
+public class ThirdPartyManager implements IGuiHandler{
+
+ private static ThirdPartyManager INSTANCE = new ThirdPartyManager();
+ private final List<IThirdParty> thirdPartyMods = new ArrayList<IThirdParty>();
+
+ public static ThirdPartyManager instance(){
+ return INSTANCE;
+ }
+
+ public void index(){
+ Map<String, Class<? extends IThirdParty>> thirdPartyClasses = new HashMap<String, Class<? extends IThirdParty>>();
+ thirdPartyClasses.put(ModIds.EE3, EE3.class);
+
+ List<String> enabledThirdParty = new ArrayList<String>();
+ ConfigHandler.config.addCustomCategoryComment("third_party_enabling", "With these options you can disable third party content by mod. Useful if something in the mod changes and causes crashes.");
+ for(String modid : thirdPartyClasses.keySet()) {
+ if(ConfigHandler.config.get("Third_Party_Enabling", modid, true).getBoolean()) {
+ enabledThirdParty.add(modid);
+ }
+ }
+ ConfigHandler.config.save();
+
+ for(Map.Entry<String, Class<? extends IThirdParty>> entry : thirdPartyClasses.entrySet()) {
+ if(enabledThirdParty.contains(entry.getKey()) && Loader.isModLoaded(entry.getKey())) {
+ try {
+ thirdPartyMods.add(entry.getValue().newInstance());
+ } catch(Exception e) {
+ JewelrycraftMod.logger.log(Level.SEVERE, "Failed to instantiate third party handler!");
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ public void onItemRegistry(Item item){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ if(thirdParty instanceof IRegistryListener) ((IRegistryListener)thirdParty).onItemRegistry(item);
+ }
+ }
+
+ public void onBlockRegistry(Block block){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ if(thirdParty instanceof IRegistryListener) ((IRegistryListener)thirdParty).onBlockRegistry(block);
+ }
+ }
+
+ public void preInit(){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ try {
+ thirdParty.preInit();
+ } catch(Throwable e) {
+ JewelrycraftMod.logger.log(Level.SEVERE, "Jewelrycraft wasn't able to load third party content from the third party class " + thirdParty.getClass() + " in the PreInit phase!");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void init(){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ try {
+ thirdParty.init();
+ } catch(Throwable e) {
+ JewelrycraftMod.logger.log(Level.SEVERE, "Jewelrycraft wasn't able to load third party content from the third party class " + thirdParty.getClass() + " in the Init phase!");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void postInit(){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ try {
+ thirdParty.postInit();
+ } catch(Throwable e) {
+ JewelrycraftMod.logger.log(Level.SEVERE, "Jewelrycraft wasn't able to load third party content from the third party class " + thirdParty.getClass() + " in the PostInit phase!");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void clientSide(){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ try {
+ thirdParty.clientSide();
+ } catch(Throwable e) {
+ JewelrycraftMod.logger.log(Level.SEVERE, "Jewelrycraft wasn't able to load third party content from the third party class " + thirdParty.getClass() + " client side!");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void clientInit(){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ try {
+ thirdParty.clientInit();
+ } catch(Throwable e) {
+ JewelrycraftMod.logger.log(Level.SEVERE, "Jewelrycraft wasn't able to load third party content from the third party class " + thirdParty.getClass() + " client side on the init!");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ if(thirdParty instanceof IGuiHandler) {
+ Object obj = ((IGuiHandler)thirdParty).getServerGuiElement(ID, player, world, x, y, z);
+ if(obj != null) return obj;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z){
+ for(IThirdParty thirdParty : thirdPartyMods) {
+ if(thirdParty instanceof IGuiHandler) {
+ Object obj = ((IGuiHandler)thirdParty).getClientGuiElement(ID, player, world, x, y, z);
+ if(obj != null) return obj;
+ }
+ }
+ return null;
+ }
+
+} \ No newline at end of file