aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/miscutil/core')
-rw-r--r--src/Java/miscutil/core/handler/COMPAT_HANDLER.java1
-rw-r--r--src/Java/miscutil/core/item/ModItems.java3
-rw-r--r--src/Java/miscutil/core/lib/LoadedMods.java6
-rw-r--r--src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java4
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/HANDLER_GT.java2
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOrePrefixes.java4
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextureSet.java2
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextures.java94
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechToolDictNames.java7
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_IconContainer.java21
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_Texture.java20
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ToolStats.java5
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Base.java84
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_HardHammer.java127
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Wrench.java149
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/objects/GregtechRenderedTexture.java14
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/recipe/ProcessingSkookumChoocherToolRecipes.java19
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java19
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java8
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tools/TOOL_Gregtech_Choocher.java198
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/loaders/Processing_Textures_Items.java10
21 files changed, 732 insertions, 65 deletions
diff --git a/src/Java/miscutil/core/handler/COMPAT_HANDLER.java b/src/Java/miscutil/core/handler/COMPAT_HANDLER.java
index 5ca2ea5c4a..3a9d687057 100644
--- a/src/Java/miscutil/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/miscutil/core/handler/COMPAT_HANDLER.java
@@ -81,7 +81,6 @@ public class COMPAT_HANDLER {
if (Gregtech) {
new MetaGeneratedGregtechItems();
new RECIPES_LaserEngraver();
- //new MetaGeneratedGregtechTools();
GregtechEnergyBuffer.run();
GregtechConduits.run();
GregtechSteamCondenser.run();
diff --git a/src/Java/miscutil/core/item/ModItems.java b/src/Java/miscutil/core/item/ModItems.java
index 566a90015e..0760bd12c8 100644
--- a/src/Java/miscutil/core/item/ModItems.java
+++ b/src/Java/miscutil/core/item/ModItems.java
@@ -243,8 +243,7 @@ Gold Tool: 22*/
}
-
- UtilsItems.generateSpawnEgg("minecraft", "villager", Utils.generateSingularRandomHexValue(), Utils.generateSingularRandomHexValue());
+ UtilsItems.generateSpawnEgg("ic2", "boatcarbon", Utils.generateSingularRandomHexValue(), Utils.generateSingularRandomHexValue());
diff --git a/src/Java/miscutil/core/lib/LoadedMods.java b/src/Java/miscutil/core/lib/LoadedMods.java
index b1b95a6af3..40862648a8 100644
--- a/src/Java/miscutil/core/lib/LoadedMods.java
+++ b/src/Java/miscutil/core/lib/LoadedMods.java
@@ -1,6 +1,7 @@
package miscutil.core.lib;
import miscutil.core.util.Utils;
+import miscutil.core.xmod.gregtech.api.enums.GregtechTextures;
import miscutil.core.xmod.gregtech.recipes.GregtechRecipeAdder;
import cpw.mods.fml.common.Loader;
@@ -39,7 +40,10 @@ public class LoadedMods {
if (Gregtech){
try {
CORE.sRecipeAdder = CORE.RA = new GregtechRecipeAdder();
- Utils.LOG_INFO("Created a Gregtech recipe handler.");
+ Utils.LOG_INFO("Created Gregtech recipe handler.");
+ GregtechTextures.BlockIcons.VOID.name();
+ GregtechTextures.ItemIcons.VOID.name();
+ Utils.LOG_INFO("Created Gregtech texture handler.");
} catch (NullPointerException e){
Utils.LOG_INFO("Could NOT create a Gregtech recipe handler.");
}
diff --git a/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java b/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java
index 33d2250bd1..300b66fa88 100644
--- a/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java
@@ -126,4 +126,8 @@ public class RECIPES_GREGTECH {
//CORE.RA.addFuel(GT_ModHandler.getModItem("EnderIO", "bucketFire_water", 1L, 1), null, 2800, 0);
//System.exit(1);
}
+
+ private static void registerSkookumChoocher(){
+ //GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), tBits, new Object[]{"fX", Character.valueOf('X'), OrePrefixes.toolHeadShovel.get(aMaterial)});
+ }
} \ No newline at end of file
diff --git a/src/Java/miscutil/core/xmod/gregtech/HANDLER_GT.java b/src/Java/miscutil/core/xmod/gregtech/HANDLER_GT.java
index 7e027636fc..be30c8e9b7 100644
--- a/src/Java/miscutil/core/xmod/gregtech/HANDLER_GT.java
+++ b/src/Java/miscutil/core/xmod/gregtech/HANDLER_GT.java
@@ -3,6 +3,7 @@ package miscutil.core.xmod.gregtech;
import gregtech.api.util.GT_Config;
import miscutil.core.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
import miscutil.core.xmod.gregtech.common.blocks.fluid.GregtechFluidHandler;
+import miscutil.core.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
public class HANDLER_GT {
@@ -12,6 +13,7 @@ public class HANDLER_GT {
if (mMaterialProperties != null){
GT_Materials.init(mMaterialProperties);
GregtechFluidHandler.run();
+ new MetaGeneratedGregtechTools();
//new Processing_Ingot1();
//new Processing_Plate1();
//new Processing_Block();
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOrePrefixes.java b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOrePrefixes.java
index 29621f7a23..67a3ff4332 100644
--- a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOrePrefixes.java
+++ b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOrePrefixes.java
@@ -67,6 +67,10 @@ public enum GregtechOrePrefixes {
gemExquisite("Exquisite Gemstones", "Exquisite ", "", true, true, true, false, false, false, true, true, false, false, B[2], M * 4, 16, 62), // A regular Gem worth four Dusts. Introduced by TerraFirmaCraft
stick("Sticks/Rods", "", " Rod", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 2, 64, 23), // Stick made of half an Ingot. Introduced by Eloraam
+
+ toolSkookumChoocher("Skookum Choocher", "", " Skookum Choocher", true, true, false, false, false, false, true, true, false, false, B[6], M * 6, 16, 37), // consisting out of 6 Ingots.
+
+
batterySingleuse("Single Use Batteries", "", "", false, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
battery("Reusable Batteries", "", "", false, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Introduced by Calclavia
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextureSet.java b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextureSet.java
index 5f2f8b5236..c5473ea958 100644
--- a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextureSet.java
+++ b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextureSet.java
@@ -13,7 +13,7 @@ public class GregtechTextureSet {
public GregtechTextureSet(String aSetName) {
mSetName = aSetName;
mTextures[0] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/turbineBlade");
- mTextures[1] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void");
+ mTextures[1] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadSkookumChoocher");
mTextures[2] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void");
mTextures[3] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void");
mTextures[4] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void");
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextures.java b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextures.java
index eaa76c36e7..c927fea1a3 100644
--- a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextures.java
+++ b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextures.java
@@ -1,18 +1,18 @@
package miscutil.core.xmod.gregtech.api.enums;
-import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK;
import gregtech.api.GregTech_API;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.objects.GT_RenderedTexture;
import miscutil.core.lib.CORE;
+import miscutil.core.xmod.gregtech.api.interfaces.internal.Interface_IconContainer;
+import miscutil.core.xmod.gregtech.api.interfaces.internal.Interface_Texture;
+import miscutil.core.xmod.gregtech.api.objects.GregtechRenderedTexture;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
public class GregtechTextures {
- public enum BlockIcons implements IIconContainer, Runnable {
+ public enum BlockIcons implements Interface_IconContainer, Runnable {
+ VOID,
LARGECENTRIFUGE1, LARGECENTRIFUGE2, LARGECENTRIFUGE3,
LARGECENTRIFUGE4, LARGECENTRIFUGE5, LARGECENTRIFUGE6,
@@ -21,9 +21,9 @@ public class GregtechTextures {
LARGECENTRIFUGE_ACTIVE4, LARGECENTRIFUGE_ACTIVE5, LARGECENTRIFUGE_ACTIVE6,
LARGECENTRIFUGE_ACTIVE7, LARGECENTRIFUGE_ACTIVE8, LARGECENTRIFUGE_ACTIVE9;
- public static final IIconContainer[]
+ public static final Interface_IconContainer[]
- CENTRIFUGE = new IIconContainer[]{
+ CENTRIFUGE = new Interface_IconContainer[]{
LARGECENTRIFUGE1,
LARGECENTRIFUGE2,
LARGECENTRIFUGE3,
@@ -34,7 +34,7 @@ public class GregtechTextures {
LARGECENTRIFUGE8,
LARGECENTRIFUGE9
},
- CENTRIFUGE_ACTIVE = new IIconContainer[]{
+ CENTRIFUGE_ACTIVE = new Interface_IconContainer[]{
LARGECENTRIFUGE_ACTIVE1,
LARGECENTRIFUGE_ACTIVE2,
LARGECENTRIFUGE_ACTIVE3,
@@ -46,8 +46,8 @@ public class GregtechTextures {
LARGECENTRIFUGE_ACTIVE9
};
- public static ITexture[]
- GT_CASING_BLOCKS = new ITexture[64];
+ public static Interface_Texture[]
+ GT_CASING_BLOCKS = new Interface_Texture[64];
protected IIcon mIcon;
@@ -67,7 +67,7 @@ public class GregtechTextures {
@Override
public void run() {
- mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "iconsets/" + this);
+ mIcon = GregTech_API.sBlockIcons.registerIcon(CORE.MODID + ":" + "iconsets/" + this);
}
@Override
@@ -75,7 +75,7 @@ public class GregtechTextures {
return TextureMap.locationBlocksTexture;
}
- public static class CustomIcon implements IIconContainer, Runnable {
+ public static class CustomIcon implements Interface_IconContainer, Runnable {
protected IIcon mIcon;
protected String mIconName;
@@ -96,7 +96,7 @@ public class GregtechTextures {
@Override
public void run() {
- mIcon = CORE.GT_BlockIcons.registerIcon(CORE.RES_PATH_BLOCK + mIconName);
+ mIcon = CORE.GT_BlockIcons.registerIcon(CORE.MODID + ":" + mIconName);
}
@Override
@@ -107,11 +107,35 @@ public class GregtechTextures {
}
- public enum ItemIcons implements IIconContainer, Runnable {
- VOID, RENDERING_ERROR, // The Empty Texture
- TURBINE, TURBINE_SMALL, TURBINE_LARGE, TURBINE_HUGE;
-
- public static final ITexture[] ERROR_RENDERING = new ITexture[]{new GT_RenderedTexture(RENDERING_ERROR)};
+ public enum ItemIcons implements Interface_IconContainer, Runnable {
+ VOID // The Empty Texture
+ , RENDERING_ERROR, SKOOKUMCHOOCHER, DURABILITY_BAR_0, DURABILITY_BAR_1, DURABILITY_BAR_2, DURABILITY_BAR_3, DURABILITY_BAR_4, DURABILITY_BAR_5, DURABILITY_BAR_6, DURABILITY_BAR_7, DURABILITY_BAR_8, ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, ENERGY_BAR_3, ENERGY_BAR_4, ENERGY_BAR_5, ENERGY_BAR_6, ENERGY_BAR_7, ENERGY_BAR_8, TURBINE, TURBINE_SMALL, TURBINE_LARGE, TURBINE_HUGE;
+
+ public static final Interface_IconContainer[]
+ DURABILITY_BAR = new Interface_IconContainer[]{
+ DURABILITY_BAR_0,
+ DURABILITY_BAR_1,
+ DURABILITY_BAR_2,
+ DURABILITY_BAR_3,
+ DURABILITY_BAR_4,
+ DURABILITY_BAR_5,
+ DURABILITY_BAR_6,
+ DURABILITY_BAR_7,
+ DURABILITY_BAR_8,
+ },
+ ENERGY_BAR = new Interface_IconContainer[]{
+ ENERGY_BAR_0,
+ ENERGY_BAR_1,
+ ENERGY_BAR_2,
+ ENERGY_BAR_3,
+ ENERGY_BAR_4,
+ ENERGY_BAR_5,
+ ENERGY_BAR_6,
+ ENERGY_BAR_7,
+ ENERGY_BAR_8,
+ };
+
+ public static final Interface_Texture[] ERROR_RENDERING = new Interface_Texture[]{new GregtechRenderedTexture(RENDERING_ERROR)};
protected IIcon mIcon, mOverlay;
@@ -136,35 +160,11 @@ public class GregtechTextures {
@Override
public void run() {
- mIcon = GregTech_API.sItemIcons.registerIcon(CORE.MODID+":" + "iconsets/" + this);
- if (mIcon != null){
- //Utils.LOG_INFO("Found Texture at "+CORE.MODID+":" + "iconsets/" + this);
- }
- else if (mIcon == null){
- mIcon = GregTech_API.sItemIcons.registerIcon(CORE.RES_PATH_ITEM + "iconsets/" + this);
- if (mIcon != null){
- //Utils.LOG_INFO("Found Texture at "+CORE.RES_PATH_ITEM + "iconsets/" + this);
- }
- else {
- //Utils.LOG_INFO("Did not find Texture at "+CORE.RES_PATH_ITEM + "iconsets/" + this);
- }
- }
- mOverlay = GregTech_API.sItemIcons.registerIcon(CORE.MODID+":" + "iconsets/" + this + "_OVERLAY");
- if (mOverlay != null){
- //Utils.LOG_INFO("Found Texture at "+CORE.MODID+":" + "iconsets/" + this+ "_OVERLAY");
- }
- else if (mOverlay == null){
- mOverlay = GregTech_API.sItemIcons.registerIcon(CORE.RES_PATH_ITEM + "iconsets/" + this+ "_OVERLAY");
- if (mOverlay != null){
- //Utils.LOG_INFO("Found Texture at "+CORE.RES_PATH_ITEM + "iconsets/" + this+ "_OVERLAY");
- }
- else {
- //Utils.LOG_INFO("Did not find Texture at "+CORE.RES_PATH_ITEM + "iconsets/" + this+ "_OVERLAY");
- }
- }
+ mIcon = GregTech_API.sItemIcons.registerIcon(CORE.MODID+ ":" + "iconsets/" + this);
+ mOverlay = GregTech_API.sItemIcons.registerIcon(CORE.MODID+ ":" + "iconsets/" + this + "_OVERLAY");
}
- public static class CustomIcon implements IIconContainer, Runnable {
+ public static class CustomIcon implements Interface_IconContainer, Runnable {
protected IIcon mIcon, mOverlay;
protected String mIconName;
@@ -185,8 +185,8 @@ public class GregtechTextures {
@Override
public void run() {
- mIcon = GregTech_API.sItemIcons.registerIcon(CORE.MODID+":" + mIconName);
- mOverlay = GregTech_API.sItemIcons.registerIcon(CORE.MODID+":" + mIconName + "_OVERLAY");
+ mIcon = GregTech_API.sItemIcons.registerIcon(CORE.MODID+ ":" + mIconName);
+ mOverlay = GregTech_API.sItemIcons.registerIcon(CORE.MODID+ ":" + mIconName + "_OVERLAY");
}
@Override
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechToolDictNames.java b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechToolDictNames.java
new file mode 100644
index 0000000000..25831f9a48
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechToolDictNames.java
@@ -0,0 +1,7 @@
+package miscutil.core.xmod.gregtech.api.enums;
+
+public enum GregtechToolDictNames {
+
+ craftingToolSkookumChoocher;
+
+} \ No newline at end of file
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_IconContainer.java b/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_IconContainer.java
new file mode 100644
index 0000000000..4609a981dc
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_IconContainer.java
@@ -0,0 +1,21 @@
+package miscutil.core.xmod.gregtech.api.interfaces.internal;
+
+import net.minecraft.util.IIcon;
+import net.minecraft.util.ResourceLocation;
+
+public interface Interface_IconContainer {
+ /**
+ * @return A regular Icon.
+ */
+ public IIcon getIcon();
+
+ /**
+ * @return Icon of the Overlay (or null if there is no Icon)
+ */
+ public IIcon getOverlayIcon();
+
+ /**
+ * @return the Default Texture File for this Icon.
+ */
+ public ResourceLocation getTextureFile();
+} \ No newline at end of file
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_Texture.java b/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_Texture.java
new file mode 100644
index 0000000000..5e70e9b2b2
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_Texture.java
@@ -0,0 +1,20 @@
+package miscutil.core.xmod.gregtech.api.interfaces.internal;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.RenderBlocks;
+
+public interface Interface_Texture {
+ public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
+
+ public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
+
+ public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
+
+ public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
+
+ public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
+
+ public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
+
+ public boolean isValidTexture();
+} \ No newline at end of file
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ToolStats.java b/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ToolStats.java
index ff3952ba96..e2a7c4b5cf 100644
--- a/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ToolStats.java
+++ b/src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ToolStats.java
@@ -152,4 +152,9 @@ public interface Interface_ToolStats {
public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack);
public short[] getRGBa(boolean aIsToolHead, ItemStack aStack);
+
+ /**
+ * Called when this gets added to a Tool Item
+ */
+ //public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID);
} \ No newline at end of file
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Base.java b/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Base.java
new file mode 100644
index 0000000000..e0899d22c0
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Base.java
@@ -0,0 +1,84 @@
+package miscutil.core.xmod.gregtech.api.items.types;
+
+import gregtech.api.enums.SubTag;
+
+import java.util.List;
+
+import miscutil.core.xmod.gregtech.api.interfaces.internal.Interface_ItemBehaviour;
+import miscutil.core.xmod.gregtech.api.items.Gregtech_MetaItem_Base;
+import net.minecraft.block.BlockDispenser;
+import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
+import net.minecraft.dispenser.IBlockSource;
+import net.minecraft.dispenser.IPosition;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumFacing;
+import net.minecraft.world.World;
+
+public class ToolType_Base implements Interface_ItemBehaviour<Gregtech_MetaItem_Base> {
+ @Override
+ public boolean onLeftClickEntity(Gregtech_MetaItem_Base aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUse(Gregtech_MetaItem_Base aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUseFirst(Gregtech_MetaItem_Base aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(Gregtech_MetaItem_Base aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ return aStack;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(Gregtech_MetaItem_Base aItem, List<String> aList, ItemStack aStack) {
+ return aList;
+ }
+
+ @Override
+ public void onUpdate(Gregtech_MetaItem_Base aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) {
+ }
+
+ @Override
+ public boolean isItemStackUsable(Gregtech_MetaItem_Base aItem, ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public boolean canDispense(Gregtech_MetaItem_Base aItem, IBlockSource aSource, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public ItemStack onDispense(Gregtech_MetaItem_Base aItem, IBlockSource aSource, ItemStack aStack) {
+ EnumFacing enumfacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata());
+ IPosition iposition = BlockDispenser.func_149939_a(aSource);
+ ItemStack itemstack1 = aStack.splitStack(1);
+ BehaviorDefaultDispenseItem.doDispense(aSource.getWorld(), itemstack1, 6, enumfacing, iposition);
+ return aStack;
+ }
+
+ @Override
+ public boolean hasProjectile(Gregtech_MetaItem_Base aItem, SubTag aProjectileType, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public EntityArrow getProjectile(Gregtech_MetaItem_Base aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) {
+ return null;
+ }
+
+ @Override
+ public EntityArrow getProjectile(Gregtech_MetaItem_Base aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) {
+ return null;
+ }
+}
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_HardHammer.java b/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_HardHammer.java
new file mode 100644
index 0000000000..ff9ef0a208
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_HardHammer.java
@@ -0,0 +1,127 @@
+package miscutil.core.xmod.gregtech.api.items.types;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.objects.ItemData;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.blocks.GT_Block_Ores;
+import gregtech.common.blocks.GT_TileEntity_Ores;
+
+import java.util.List;
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.IFluidBlock;
+
+public class ToolType_HardHammer
+ extends ToolType_Base {
+ private final int mVanillaCosts;
+ private final int mEUCosts;
+ private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.prospecting", "Usable for Prospecting");
+
+ public ToolType_HardHammer(int aVanillaCosts, int aEUCosts) {
+ this.mVanillaCosts = aVanillaCosts;
+ this.mEUCosts = aEUCosts;
+ }
+
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ);
+
+
+ ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(aBlock, 1, aMeta));
+ if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) {
+ GT_Utility.sendChatToPlayer(aPlayer, "This is " + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + " Ore.");
+ GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), 1.0F, -1.0F, aX, aY, aZ);
+ return true;
+ }
+ if ((aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockGranites)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone))) {
+ if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) {
+ GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), 1.0F, -1.0F, aX, aY, aZ);
+ int tX = aX;
+ int tY = aY;
+ int tZ = aZ;
+ int tMetaID = 0;
+ int tQuality = (aItem instanceof GT_MetaGenerated_Tool) ? ((GT_MetaGenerated_Tool) aItem).getHarvestLevel(aStack, "") : 0;
+
+ int i = 0;
+ for (int j = 6 + tQuality; i < j; i++) {
+ tX -= ForgeDirection.getOrientation(aSide).offsetX;
+ tY -= ForgeDirection.getOrientation(aSide).offsetY;
+ tZ -= ForgeDirection.getOrientation(aSide).offsetZ;
+
+ Block tBlock = aWorld.getBlock(tX, tY, tZ);
+ if ((tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava)) {
+ GT_Utility.sendChatToPlayer(aPlayer, "There is Lava behind this Rock.");
+ break;
+ }
+ if ((tBlock == Blocks.water) || (tBlock == Blocks.flowing_water) || ((tBlock instanceof IFluidBlock))) {
+ GT_Utility.sendChatToPlayer(aPlayer, "There is a Liquid behind this Rock.");
+ break;
+ }
+ if ((tBlock == Blocks.monster_egg) || (!GT_Utility.hasBlockHitBox(aWorld, tX, tY, tZ))) {
+ GT_Utility.sendChatToPlayer(aPlayer, "There is an Air Pocket behind this Rock.");
+ break;
+ }
+ if (tBlock != aBlock) {
+ if (i >= 4) {
+ break;
+ }
+ GT_Utility.sendChatToPlayer(aPlayer, "Material is changing behind this Rock.");
+ break;
+ }
+ }
+ Random tRandom = new Random(aX ^ aY ^ aZ ^ aSide);
+ i = 0;
+ for (int j = 9 + 2 * tQuality; i < j; i++) {
+ tX = aX - 4 - tQuality + tRandom.nextInt(j);
+ tY = aY - 4 - tQuality + tRandom.nextInt(j);
+ tZ = aZ - 4 - tQuality + tRandom.nextInt(j);
+ Block tBlock = aWorld.getBlock(tX, tY, tZ);
+ if ((tBlock instanceof GT_Block_Ores)) {
+ TileEntity tTileEntity = aWorld.getTileEntity(tX, tY, tZ);
+ if ((tTileEntity instanceof GT_TileEntity_Ores)) {
+ Materials tMaterial = GregTech_API.sGeneratedMaterials[(((GT_TileEntity_Ores) tTileEntity).mMetaData % 1000)];
+ if ((tMaterial != null) && (tMaterial != Materials._NULL)) {
+ GT_Utility.sendChatToPlayer(aPlayer, "Found traces of " + tMaterial.mDefaultLocalName + " Ore.");
+ return true;
+ }
+ }
+ } else {
+ tMetaID = aWorld.getBlockMetadata(tX, tY, tZ);
+ tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
+ if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) {
+ GT_Utility.sendChatToPlayer(aPlayer, "Found traces of " + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + " Ore.");
+ return true;
+ }
+ }
+ }
+ GT_Utility.sendChatToPlayer(aPlayer, "No Ores found.");
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Wrench.java b/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Wrench.java
new file mode 100644
index 0000000000..ade388b894
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/items/types/ToolType_Wrench.java
@@ -0,0 +1,149 @@
+package miscutil.core.xmod.gregtech.api.items.types;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Utility;
+import ic2.api.tile.IWrenchable;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+public class ToolType_Wrench
+ extends ToolType_Base {
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.wrench", "Rotates Blocks on Rightclick");
+
+ public ToolType_Wrench(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ);
+ byte aTargetSide = GT_Utility.determineWrenchingSide((byte) aSide, hitX, hitY, hitZ);
+ TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ try {
+ if ((aTileEntity != null) && ((aTileEntity instanceof IWrenchable))) {
+ if (((IWrenchable) aTileEntity).wrenchCanSetFacing(aPlayer, aTargetSide)) {
+ if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ ((IWrenchable) aTileEntity).setFacing((short) aTargetSide);
+ GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if (((IWrenchable) aTileEntity).wrenchCanRemove(aPlayer)) {
+ int tDamage = ((IWrenchable) aTileEntity).getWrenchDropRate() < 1.0