diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-05-07 13:34:21 +0100 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-05-07 13:34:21 +0100 |
| commit | c5e04f2c8e0c5393d9a5ef63a87ae4f0094af301 (patch) | |
| tree | 170a49181f336842c82cf6e12f63f7e4b8e2cad1 /src/main/java/darkknight/jewelrycraft/thirdparty | |
| parent | 208b1f1e0d5faf601b53818b04f6699b2e6cb6bc (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')
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 |
