aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-02-28 20:06:01 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-02-28 20:06:01 +0000
commit4f435ae75b176a9d90c7afa6b1ff40e9ba9c286a (patch)
treef9707c4551b6134030374580cacfd1aec4b0c9d7 /src/Java/gtPlusPlus/core
parent1c20e21e7678f9a546fff9bf873c80c35a841cf8 (diff)
downloadGT5-Unofficial-4f435ae75b176a9d90c7afa6b1ff40e9ba9c286a.tar.gz
GT5-Unofficial-4f435ae75b176a9d90c7afa6b1ff40e9ba9c286a.tar.bz2
GT5-Unofficial-4f435ae75b176a9d90c7afa6b1ff40e9ba9c286a.zip
+ Added a new debug tool.
+ Added support for Crops++. + Added Custom Crops & framework to support more in future. + Added basic support for all GT++ Materials within Tinkers Construct. [WIP] + Moderately bad attempt at generating custom Plasma Cooling recipes in the Adv. Vacuum Freezer. [WIP #424] % Reworked logic for Material.java handling Durability, Tool Quality & Harvest Level. % Adjusted frequency of structural checks on the Cyclotron, Now 100x less frequent. % Cleaned up ReflectionUtils.java and made all getters cache their results, for much faster access. % Attempted to adjust logic of FFPP, but I probably broke it. [WIP] % Moved static array of Element Names from IonParticles.java -> ELEMENT.java. $ Greatly improved reflective performance across the mod.
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java4
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java30
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java30
-rw-r--r--src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java2
-rw-r--r--src/Java/gtPlusPlus/core/common/CommonProxy.java6
-rw-r--r--src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java17
-rw-r--r--src/Java/gtPlusPlus/core/gui/item/GuiBaseGrindle.java2
-rw-r--r--src/Java/gtPlusPlus/core/gui/machine/GUI_ScrollTest.java7
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java13
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java9
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java11
-rw-r--r--src/Java/gtPlusPlus/core/item/general/books/ItemBaseBook.java5
-rw-r--r--src/Java/gtPlusPlus/core/item/general/capture/ItemEntityCatcher.java13
-rw-r--r--src/Java/gtPlusPlus/core/item/tool/misc/DebugScanner.java98
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java2
-rw-r--r--src/Java/gtPlusPlus/core/lib/LoadedMods.java6
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java6
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java30
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java2
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotToolBox.java18
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java2
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FoodUtils.java2
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java2
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MiningUtils.java22
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java26
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java32
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ProxyFinder.java4
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java438
28 files changed, 522 insertions, 317 deletions
diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
index 4d7478dbdd..e1bc3462be 100644
--- a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
+++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
@@ -113,7 +113,7 @@ public class BlockBaseOre extends BasicBlock implements ITexturedBlock {
hiddenTextureArray = new IIconContainer[6];
}
}
- catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
+ catch (IllegalArgumentException | IllegalAccessException e) {
hiddenTextureArray = new IIconContainer[6];
}
}
@@ -216,7 +216,7 @@ public class BlockBaseOre extends BasicBlock implements ITexturedBlock {
hiddenTextureArray = new IIconContainer[6];
}
}
- catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
+ catch (IllegalArgumentException | IllegalAccessException e) {
hiddenTextureArray = new IIconContainer[6];
}
}
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java
index eecc379290..fdb6b1a0a8 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java
@@ -133,34 +133,24 @@ public class Machine_ProjectTable extends BlockContainer implements ITileTooltip
}
@Optional.Method(modid = "EnderIO")
- private static boolean checkEnderIOWrench(final ItemStack item){
- if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")){
+ private static boolean checkEnderIOWrench(final ItemStack item) {
+ if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")) {
Class<?> wrenchClass;
- try {
- wrenchClass = Class.forName("crazypants.enderio.api.tool.ITool");
- if (wrenchClass.isInstance(item.getItem())){
- return true;
- }
- }
- catch (final ClassNotFoundException e1) {
- return false;
+ wrenchClass = ReflectionUtils.getClass("crazypants.enderio.api.tool.ITool");
+ if (wrenchClass.isInstance(item.getItem())) {
+ return true;
}
}
return false;
}
@Optional.Method(modid = "Buildcraft")
- private static boolean checkBuildcraftWrench(final ItemStack item){
- if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")){
+ private static boolean checkBuildcraftWrench(final ItemStack item) {
+ if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")) {
Class<?> wrenchClass;
- try {
- wrenchClass = Class.forName("buildcraft.api.tools.IToolWrench");
- if (wrenchClass.isInstance(item.getItem())){
- return true;
- }
- }
- catch (final ClassNotFoundException e1) {
- return false;
+ wrenchClass = ReflectionUtils.getClass("buildcraft.api.tools.IToolWrench");
+ if (wrenchClass.isInstance(item.getItem())) {
+ return true;
}
}
return false;
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java
index 675aeaaf2b..5c08612042 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java
@@ -121,34 +121,24 @@ public class Machine_Workbench extends BlockContainer
}
@Optional.Method(modid = "EnderIO")
- private static boolean checkEnderIOWrench(final ItemStack item){
- if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")){
+ private static boolean checkEnderIOWrench(final ItemStack item) {
+ if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")) {
Class<?> wrenchClass;
- try {
- wrenchClass = Class.forName("crazypants.enderio.api.tool.ITool");
- if (wrenchClass.isInstance(item.getItem())){
- return true;
- }
- }
- catch (final ClassNotFoundException e1) {
- return false;
+ wrenchClass = ReflectionUtils.getClass("crazypants.enderio.api.tool.ITool");
+ if (wrenchClass.isInstance(item.getItem())) {
+ return true;
}
}
return false;
}
@Optional.Method(modid = "Buildcraft")
- private static boolean checkBuildcraftWrench(final ItemStack item){
- if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")){
+ private static boolean checkBuildcraftWrench(final ItemStack item) {
+ if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")) {
Class<?> wrenchClass;
- try {
- wrenchClass = Class.forName("buildcraft.api.tools.IToolWrench");
- if (wrenchClass.isInstance(item.getItem())){
- return true;
- }
- }
- catch (final ClassNotFoundException e1) {
- return false;
+ wrenchClass = ReflectionUtils.getClass("buildcraft.api.tools.IToolWrench");
+ if (wrenchClass.isInstance(item.getItem())) {
+ return true;
}
}
return false;
diff --git a/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java b/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java
index 59621ef830..bc00db7ed1 100644
--- a/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java
+++ b/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java
@@ -21,7 +21,7 @@ public class RenderGiantChicken extends RenderChicken {
try {
mChicken = (ResourceLocation) ReflectionUtils.getField(RenderGiantChicken.class, "chickenTextures").get(null);
}
- catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+ catch (IllegalArgumentException | IllegalAccessException e) {
mChicken = new ResourceLocation("textures/entity/chicken.png");
}
chickenTexturesEx = mChicken;
diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java
index 140019f73b..03b643abdb 100644
--- a/src/Java/gtPlusPlus/core/common/CommonProxy.java
+++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java
@@ -82,7 +82,7 @@ public class CommonProxy {
ModBlocks.init();
CI.preInit();
- COMPAT_IntermodStaging.preInit();
+ COMPAT_IntermodStaging.preInit(e);
BookHandler.run();
// Registration of entities and renderers
Logger.INFO("[Proxy] Calling Entity registrator.");
@@ -152,7 +152,7 @@ public class CommonProxy {
// Compat Handling
COMPAT_HANDLER.registerMyModsOreDictEntries();
COMPAT_HANDLER.intermodOreDictionarySupport();
- COMPAT_IntermodStaging.init();
+ COMPAT_IntermodStaging.init(e);
}
public void postInit(final FMLPostInitializationEvent e) {
@@ -170,7 +170,7 @@ public class CommonProxy {
COMPAT_HANDLER.RemoveRecipesFromOtherMods();
COMPAT_HANDLER.InitialiseHandlerThenAddRecipes();
COMPAT_HANDLER.startLoadingGregAPIBasedRecipes();
- COMPAT_IntermodStaging.postInit();
+ COMPAT_IntermodStaging.postInit(e);
COMPAT_HANDLER.runQueuedRecipes();
}
diff --git a/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java b/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java
index bdc239b9ce..f6f397f59e 100644
--- a/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java
+++ b/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java
@@ -363,18 +363,15 @@ public class EntityStaballoyConstruct extends EntityIronGolem {
}
//Get a private field from a super class if it exists.
- try {
- if (mFirstUpdateField == null) {
- mFirstUpdateField = ReflectionUtils.getField(Class.forName("net.minecraft.entity.Entity"), "firstUpdate");
- }
- if (mFirstUpdateField != null && mReflectFirstUpdate == true){
- try {
- this.mReflectFirstUpdate = (boolean) mFirstUpdateField.get(this);
- }
- catch (IllegalArgumentException | IllegalAccessException e) {}
+ if (mFirstUpdateField == null) {
+ mFirstUpdateField = ReflectionUtils.getField(this.getClass(), "firstUpdate");
+ }
+ if (mFirstUpdateField != null && mReflectFirstUpdate == true){
+ try {
+ this.mReflectFirstUpdate = (boolean) mFirstUpdateField.get(this);
}
+ catch (IllegalArgumentException | IllegalAccessException e) {}
}
- catch (NoSuchFieldException | ClassNotFoundException e) {}
}
super.onEntityUpdate();
}
diff --git a/src/Java/gtPlusPlus/core/gui/item/GuiBaseGrindle.java b/src/Java/gtPlusPlus/core/gui/item/GuiBaseGrindle.java
index f4669bfe35..ed347e8d30 100644
--- a/src/Java/gtPlusPlus/core/gui/item/GuiBaseGrindle.java
+++ b/src/Java/gtPlusPlus/core/gui/item/GuiBaseGrindle.java
@@ -331,7 +331,7 @@ public class GuiBaseGrindle extends GuiContainer {
try {
r = (ResourceLocation) ReflectionUtils.getField(GuiScreenBook.class, "bookGuiTextures").get(null);
- } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+ } catch (IllegalArgumentException | IllegalAccessException e) {
r = new ResourceLocation("textures/gui/book.png");
}
mBookTexture = r;
diff --git a/src/Java/gtPlusPlus/core/gui/machine/GUI_ScrollTest.java b/src/Java/gtPlusPlus/core/gui/machine/GUI_ScrollTest.java
index 7a3a01b27c..8a1f7c3fe9 100644
--- a/src/Java/gtPlusPlus/core/gui/machine/GUI_ScrollTest.java
+++ b/src/Java/gtPlusPlus/core/gui/machine/GUI_ScrollTest.java
@@ -16,6 +16,7 @@ import com.google.common.collect.Lists;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiOptionButton;
import net.minecraft.client.gui.GuiResourcePackAvailable;
@@ -145,9 +146,9 @@ public class GUI_ScrollTest extends GuiScreen
try
{
- Class<?> oclass = Class.forName("java.awt.Desktop");
- Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
- oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {file1.toURI()});
+ Class<?> oclass = ReflectionUtils.getClass("java.awt.Desktop");
+ Object object = ReflectionUtils.getMethod(oclass, "getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
+ ReflectionUtils.getMethod(oclass, "browse", new Class[] {URI.class}).invoke(object, new Object[] {file1.toURI()});
}
catch (Throwable throwable)
{
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
index 79a2d2a6c0..0f689325a3 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
@@ -1,6 +1,10 @@
package gtPlusPlus.core.handler;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import gtPlusPlus.xmod.bartcrops.HANDLER_CropsPlusPlus;
import gtPlusPlus.xmod.bop.HANDLER_BiomesOPlenty;
import gtPlusPlus.xmod.computronics.HANDLER_Computronics;
import gtPlusPlus.xmod.forestry.HANDLER_FR;
@@ -15,7 +19,7 @@ import gtPlusPlus.xmod.tinkers.HANDLER_Tinkers;
public class COMPAT_IntermodStaging {
- public static void preInit(){
+ public static void preInit(FMLPreInitializationEvent preinit){
HANDLER_GT.preInit();
HANDLER_GC.preInit();
HANDLER_TF.preInit();
@@ -28,9 +32,10 @@ public class COMPAT_IntermodStaging {
HANDLER_Tinkers.preInit();
HANDLER_SC2.preInit();
HANDLER_GalactiCraft.preInit();
+ HANDLER_CropsPlusPlus.preInit(preinit);
}
- public static void init(){
+ public static void init(FMLInitializationEvent init){
HANDLER_GT.init();
HANDLER_GC.init();
HANDLER_TF.init();
@@ -43,9 +48,10 @@ public class COMPAT_IntermodStaging {
HANDLER_Tinkers.init();
HANDLER_SC2.init();
HANDLER_GalactiCraft.init();
+ HANDLER_CropsPlusPlus.init(init);
}
- public static void postInit(){
+ public static void postInit(FMLPostInitializationEvent postinit){
HANDLER_GT.postInit();
HANDLER_GC.postInit();
HANDLER_TF.postInit();
@@ -58,6 +64,7 @@ public class COMPAT_IntermodStaging {
HANDLER_Tinkers.postInit();
HANDLER_SC2.postInit();
HANDLER_GalactiCraft.postInit();
+ HANDLER_CropsPlusPlus.postInit(postinit);
}
public static void onLoadComplete(FMLLoadCompleteEvent event) {
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 8d7db4f40a..17aaf5e106 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -61,6 +61,7 @@ import gtPlusPlus.core.item.general.throwables.ItemHydrofluoricAcidPotion;
import gtPlusPlus.core.item.general.throwables.ItemSulfuricAcidPotion;
import gtPlusPlus.core.item.init.ItemsFoods;
import gtPlusPlus.core.item.materials.DustDecayable;
+import gtPlusPlus.core.item.tool.misc.DebugScanner;
import gtPlusPlus.core.item.tool.misc.GregtechPump;
import gtPlusPlus.core.item.tool.misc.SandstoneHammer;
import gtPlusPlus.core.item.tool.misc.box.AutoLunchBox;
@@ -87,6 +88,7 @@ import gtPlusPlus.core.util.data.StringUtils;
import gtPlusPlus.core.util.debug.DEBUG_INIT;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.everglades.GTplusplus_Everglades;
import gtPlusPlus.xmod.eio.material.MaterialEIO;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems;
@@ -328,6 +330,8 @@ public final class ModItems {
public static BatteryPackBaseBauble itemChargePack3;
public static BatteryPackBaseBauble itemChargePack4;
+ public static Item itemDebugScanner;
+
static {
Logger.INFO("Items!");
//Default item used when recipes fail, handy for debugging. Let's make sure they exist when this class is called upon.
@@ -336,6 +340,9 @@ public final class ModItems {
}
public static final void init(){
+
+ itemDebugScanner = new DebugScanner().setTextureName(CORE.MODID + ":itemStickyRubber");
+
itemAlkalusDisk = new BaseItemDamageable("itemAlkalusDisk", AddToCreativeTab.tabMisc, 1, 0, "Unknown Use", EnumRarity.rare, EnumChatFormatting.AQUA, false, null);
itemBigEgg = new ItemGiantEgg("itemBigEgg", "Ginourmous Chicken Egg", tabMisc, 64, 0, "I had best try disassemble this.. for science!", "fuelLargeChickenEgg", 5000, 0).setTextureName(CORE.MODID + ":itemBigEgg");
itemGenericToken = new ItemGenericToken();
@@ -1002,7 +1009,7 @@ public final class ModItems {
//Baubles Mod Test
try {
- final Class<?> baublesTest = Class.forName("baubles.api.IBauble");
+ final Class<?> baublesTest = ReflectionUtils.getClass("baubles.api.IBauble");
if (baublesTest != null){
COMPAT_Baubles.run();
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java b/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java
index 517a698e80..e08a509436 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java
@@ -6,6 +6,7 @@ import java.util.List;
import gregtech.api.enums.Materials;
import gtPlusPlus.core.item.base.misc.BaseItemParticle;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.util.Utils;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
@@ -22,18 +23,16 @@ public class IonParticles extends BaseItemParticle {
public IonParticles() {
- super("Ion", aElements.length, EnumRarity.rare);
+ super("Ion", ELEMENT.NAMES.length, EnumRarity.rare);
}
- private static final String[] aElements = new String[]{"Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminum", "Silicon", "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium", "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttrium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium", "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Cesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium", "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum", "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium", "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium", "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Nihonium", "Flerovium", "Moscovium", "Livermorium", "Tennessine", "Oganesson"};
-
- public static IIcon[] overlays = new IIcon[aElements.length];
+ public static IIcon[] overlays = new IIcon[ELEMENT.NAMES.length];
public static IIcon baseTexture;
static {
//Generate Ions
int key = 0;
- for (String s : aElements) {
+ for (String s : ELEMENT.NAMES) {
//Map names to Meta
NameToMetaMap.put(Utils.sanitizeString(s.toLowerCase()), key);
MetaToNameMap.put(key, Utils.sanitizeString(s.toLowerCase()));
@@ -62,7 +61,7 @@ public class IonParticles extends BaseItemParticle {
@Override
public String getUnlocalizedName(final ItemStack itemStack) {
- return "item.particle.ion" + "." + aElements[itemStack.getItemDamage()];
+ return "item.particle.ion" + "." + ELEMENT.NAMES[itemStack.getItemDamage()];
}
private static boolean createNBT(ItemStack rStack){
diff --git a/src/Java/gtPlusPlus/core/item/general/books/ItemBaseBook.java b/src/Java/gtPlusPlus/core/item/general/books/ItemBaseBook.java
index 7f6a52f135..2f49ac1287 100644
--- a/src/Java/gtPlusPlus/core/item/general/books/ItemBaseBook.java
+++ b/src/Java/gtPlusPlus/core/item/general/books/ItemBaseBook.java
@@ -27,6 +27,7 @@ import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.handler.BookHandler;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.NBTUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
public class ItemBaseBook extends ItemWritableBook{
@@ -113,11 +114,11 @@ public class ItemBaseBook extends ItemWritableBook{
if (player.worldObj.isRemote){
try {
- Class<?> clazz = Class.forName("net.minecraft.client.gui.GuiScreenBook");
+ Class<?> clazz = ReflectionUtils.getClass("net.minecraft.client.gui.GuiScreenBook");
Constructor<?> ctor = clazz.getConstructor(EntityPlayer.class, ItemStack.class, boolean.class);
Object object = ctor.newInstance(new Object[] { player, bookstack, false });
Minecraft.getMinecraft().displayGuiScreen((GuiScreen) object);
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
diff --git a/src/Java/gtPlusPlus/core/item/general/capture/ItemEntityCatcher.java b/src/Java/gtPlusPlus/core/item/general/capture/ItemEntityCatcher.java
index 592b68d06a..a95fab4b6c 100644
--- a/src/Java/gtPlusPlus/core/item/general/capture/ItemEntityCatcher.java
+++ b/src/Java/gtPlusPlus/core/item/general/capture/ItemEntityCatcher.java
@@ -21,6 +21,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.NBTUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
public class ItemEntityCatcher extends Item implements IEntityCatcher {
@@ -117,14 +118,10 @@ public class ItemEntityCatcher extends Item implements IEntityCatcher {
}
Class<? extends Entity> mEntityClass;
String mClassName;
- mClassName = NBTUtils.getString(aStack,"mClassName");
- try {
- mEntityClass = (Class<? extends Entity>) Class.forName(mClassName);
- if (mEntityClass != null) {
- return mEntityClass;
- }
- }
- catch (ClassNotFoundException e) {
+ mClassName = NBTUtils.getString(aStack, "mClassName");
+ mEntityClass = (Class<? extends Entity>) ReflectionUtils.getClass(mClassName);
+ if (mEntityClass != null) {
+ return mEntityClass;
}
return null;
}
diff --git a/src/Java/gtPlusPlus/core/item/tool/misc/DebugScanner.java b/src/Java/gtPlusPlus/core/item/tool/misc/DebugScanner.java
new file mode 100644
index 0000000000..bc252c95a9
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/tool/misc/DebugScanner.java
@@ -0,0 +1,98 @@
+package gtPlusPlus.core.item.tool.misc;
+
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.CoreItem;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+public class DebugScanner extends CoreItem {
+
+ public DebugScanner() {
+ super("gtpp.debug.scanner", AddToCreativeTab.tabTools, 1, 0,
+ new String[] {
+ "Used to obtain information from GT/GT++ content",
+ "Right Click to use",
+ },
+ EnumRarity.epic);
+ }
+
+ @Override
+ public boolean isDamageable() {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int p_77648_4_,
+ int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+ // TODO Auto-generated method stub
+ return super.onItemUse(aStack, aPlayer, aWorld, p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_8_,
+ p_77648_9_, p_77648_10_);
+ }
+
+ @Override
+ public boolean isRepairable() {
+ return false;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ // TODO Auto-generated method stub
+ return super.onItemRightClick(p_77659_1_, p_77659_2_, p_77659_3_);
+ }
+
+ @Override
+ public float getDigSpeed(ItemStack itemstack, Block block, int metadata) {
+ return 0f;
+ }
+
+ @Override
+ public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) {
+ if (entity != null && player != null) {
+ PlayerUtils.messagePlayer(player, "Entity ID: "+entity.getEntityId());
+ PlayerUtils.messagePlayer(player, "UUID: "+entity.getUniqueID());
+ PlayerUtils.messagePlayer(player, "Invulnerable? "+entity.isEntityInvulnerable());
+ PlayerUtils.messagePlayer(player, "Invisible? "+entity.isInvisible());
+ PlayerUtils.messagePlayer(player, "Age: "+entity.ticksExisted);
+
+ if (entity instanceof EntityLiving) {
+ EntityLiving g = (EntityLiving) entity;
+ PlayerUtils.messagePlayer(player, "Health: "+g.getHealth()+"/"+g.getMaxHealth());
+ PlayerUtils.messagePlayer(player, "On ground? "+g.onGround);
+ PlayerUtils.messagePlayer(player, "Can Loot? "+g.canPickUpLoot());
+ PlayerUtils.messagePlayer(player, "Child? "+g.isChild());
+ if (entity instanceof EntityPlayer) {
+ EntityPlayer y = (EntityPlayer) entity;
+ PlayerUtils.messagePlayer(player, "Experience: "+y.experience);
+ PlayerUtils.messagePlayer(player, "Name: "+y.getCommandSenderName());
+ }
+
+ }
+
+ }
+ return true;
+ }
+
+ @Override
+ public boolean doesSneakBypassUse(World world, int x, int y, int z, EntityPlayer player) {
+ return false;
+ }
+
+ @Override
+ public boolean showDurabilityBar(ItemStack stack) {
+ return true;
+ }
+
+ @Override
+ public int getHarvestLevel(ItemStack stack, String toolClass) {
+ return 0;
+ }
+
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java
index c7d09b959d..1f82e1cd17 100644
--- a/src/Java/gtPlusPlus/core/lib/CORE.java
+++ b/src/Java/gtPlusPlus/core/lib/CORE.java
@@ -52,7 +52,7 @@ public class CORE {
public static final String name = "GT++";
public static final String MODID = "miscutils";
- public static final String VERSION = "1.7.02.24";
+ public static final String VERSION = "1.7.02.89-debug";
public static String MASTER_VERSION = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase();
public static String USER_COUNTRY = GeoUtils.determineUsersCountry();
public static boolean isModUpToDate = Utils.isModUpToDate();
diff --git a/src/Java/gtPlusPlus/core/lib/LoadedMods.java b/src/Java/gtPlusPlus/core/lib/LoadedMods.java
index e749885dd6..5a2b75337b 100644
--- a/src/Java/gtPlusPlus/core/lib/LoadedMods.java
+++ b/src/Java/gtPlusPlus/core/lib/LoadedMods.java
@@ -54,6 +54,7 @@ public class LoadedMods {
public static boolean StevesCarts = false;
public static boolean Witchery = false;
public static boolean Waila = false;
+ public static boolean CropsPlusPlus = false; //Barts Crop Mod
@@ -96,6 +97,11 @@ public class LoadedMods {
Logger.INFO("Components enabled for: PlayerAPI");
totalMods++;
}
+ if (Loader.isModLoaded("berriespp")) {
+ CropsPlusPlus = true;
+ Logger.INFO("Components enabled for: Crops++");
+ totalMods++;
+ }
if (Loader.isModLoaded("TConstruct")){
TiCon = true;
Logger.INFO("Components enabled for: Tinkers Construct");
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index 99bc37444e..62e1163a39 100644
--- a/src/Java/gtPlusPlus/core/material/ELEMENT.java
+++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java
@@ -11,6 +11,8 @@ import gtPlusPlus.core.util.minecraft.MaterialUtils;
public final class ELEMENT {
+ public static final String[] NAMES = new String[]{"Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminum", "Silicon", "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium", "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttrium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium", "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Cesium", "Barium", "Lanthanum", "Cerium", "Pr