aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/item
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/item
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/item')
-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
5 files changed, 119 insertions, 17 deletions
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;
+ }
+
+
+
+}