aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java45
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java38
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java122
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtTools.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java75
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Electric_Lighter.java143
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Grinder.java94
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java24
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java29
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java18
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java61
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_AngelGrinder.java199
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricButcherKnife.java197
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricLighter.java198
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricSnips.java197
16 files changed, 1260 insertions, 191 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java b/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
index 6b4bab9e26..7505c2a808 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
@@ -5,7 +5,6 @@ import static gtPlusPlus.xmod.gregtech.common.covers.GTPP_Cover_Overflow.mOverfl
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -16,7 +15,6 @@ import java.util.TimerTask;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
@@ -24,11 +22,8 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Log;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
-import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map;
import gregtech.common.GT_Proxy;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
@@ -39,11 +34,8 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
-import gtPlusPlus.core.util.reflect.ProxyFinder;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.BaseCustomTileEntity;
import gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power.BaseCustomPower_MTE;
-import gtPlusPlus.xmod.gregtech.loaders.misc.AssLineAchievements;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
@@ -98,6 +90,9 @@ public class Meta_GT_Proxy {
GT_Log.out.println("GT++ Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft.");
throw new RuntimeException("");
}
+
+ //Gotta set it here so that we don't try call gregtech too early.
+ StaticFields59.mGT6StylePipes = (boolean) StaticFields59.getFieldFromGregtechProxy(true, "gt6Pipe");
GT_Log.out.println("GT++ Mod: Registering the BaseMetaTileEntity.");
GameRegistry.registerTileEntity(tBaseMetaTileEntity.getClass(), "BaseMetaTileEntity_GTPP");
@@ -375,37 +370,13 @@ public class Meta_GT_Proxy {
}
- private static GT_Proxy[] mProxies = new GT_Proxy[2];
+ static GT_Proxy[] mProxies = new GT_Proxy[2];
+ /**
+ * @deprecated Use {@link StaticFields59#getFieldFromGregtechProxy(boolean,String)} instead
+ */
public static Object getFieldFromGregtechProxy(boolean client, String fieldName) {
- Object proxyGT;
-
- if (mProxies[0] != null && client) {
- proxyGT = mProxies[0];
- } else if (mProxies[1] != null && !client) {
- proxyGT = mProxies[1];
- } else {
- try {
- proxyGT = (client ? ProxyFinder.getClientProxy(GT_Mod.instance)
- : ProxyFinder.getServerProxy(GT_Mod.instance));
- } catch (final ReflectiveOperationException e1) {
- proxyGT = null;
- Logger.INFO("Failed to obtain instance of GT " + (client ? "Client" : "Server") + " proxy.");
- }
- if (mProxies[0] == null && client) {
- mProxies[0] = (GT_Proxy) proxyGT;
- } else if (mProxies[1] == null && !client) {
- mProxies[1] = (GT_Proxy) proxyGT;
- }
- }
-
- if (proxyGT != null && proxyGT instanceof GT_Proxy) {
- try {
- return ReflectionUtils.getField(proxyGT.getClass(), fieldName).get(proxyGT);
- } catch (IllegalArgumentException | IllegalAccessException e) {
- }
- }
- return null;
+ return StaticFields59.getFieldFromGregtechProxy(client, fieldName);
}
public void setCustomGregtechTooltip(String aNbtTagName, FormattedTooltipString aData) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
index 1604cc5acd..2a3fd5e77c 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
@@ -9,6 +9,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
@@ -18,14 +19,19 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffl
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gregtech.common.GT_Proxy;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.reflect.ProxyFinder;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
public class StaticFields59 {
+
+ public static boolean mGT6StylePipes;
+
public static final Field mGtBlockCasings5;
public static final Field mPreventableComponents;
public static final Field mDisabledItems;
@@ -45,6 +51,7 @@ public class StaticFields59 {
static {
Logger.INFO("[SH] Creating Static Helper for various fields which require reflective access.");
+
mGtBlockCasings5 = getField(GregTech_API.class, "sBlockCasings5");
Logger.INFO("[SH] Got Field: sBlockCasings5");
mPreventableComponents = getField(OrePrefixes.class, "mPreventableComponents");
@@ -176,5 +183,36 @@ public class StaticFields59 {
return null;
}
+ public static Object getFieldFromGregtechProxy(boolean client, String fieldName) {
+ Object proxyGT;
+
+ if (Meta_GT_Proxy.mProxies[0] != null && client) {
+ proxyGT = Meta_GT_Proxy.mProxies[0];
+ } else if (Meta_GT_Proxy.mProxies[1] != null && !client) {
+ proxyGT = Meta_GT_Proxy.mProxies[1];
+ } else {
+ try {
+ proxyGT = (client ? ProxyFinder.getClientProxy(GT_Mod.instance)
+ : ProxyFinder.getServerProxy(GT_Mod.instance));
+ } catch (final ReflectiveOperationException e1) {
+ proxyGT = null;
+ Logger.INFO("Failed to obtain instance of GT " + (client ? "Client" : "Server") + " proxy.");
+ }
+ if (Meta_GT_Proxy.mProxies[0] == null && client) {
+ Meta_GT_Proxy.mProxies[0] = (GT_Proxy) proxyGT;
+ } else if (Meta_GT_Proxy.mProxies[1] == null && !client) {
+ Meta_GT_Proxy.mProxies[1] = (GT_Proxy) proxyGT;
+ }
+ }
+
+ if (proxyGT != null && proxyGT instanceof GT_Proxy) {
+ try {
+ return ReflectionUtils.getField(proxyGT.getClass(), fieldName).get(proxyGT);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ }
+ }
+ return null;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java
index cf6e484ff5..4fde2d6916 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java
@@ -1,16 +1,14 @@
package gtPlusPlus.xmod.gregtech.common.blocks.textures;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.IIcon;
-import net.minecraft.world.IBlockAccess;
-
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-
import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.GregtechMetaTileEntity_IndustrialCentrifuge;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
public class TexturesCentrifugeMultiblock {
@@ -92,103 +90,55 @@ public class TexturesCentrifugeMultiblock {
TileEntity tTileEntity;
IMetaTileEntity tMetaTileEntity;
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[0].getIcon();
- }
- return this.CENTRIFUGE[0].getIcon();
+ return getIconByIndex(tMetaTileEntity, 0);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[3].getIcon();
- }
- return this.CENTRIFUGE[3].getIcon();
+ return getIconByIndex(tMetaTileEntity, 3);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[6].getIcon();
- }
- return this.CENTRIFUGE[6].getIcon();
+ return getIconByIndex(tMetaTileEntity, 6);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[1].getIcon();
- }
- return this.CENTRIFUGE[1].getIcon();
+ return getIconByIndex(tMetaTileEntity, 1);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[7].getIcon();
- }
- return this.CENTRIFUGE[7].getIcon();
+ return getIconByIndex(tMetaTileEntity, 7);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[8].getIcon();
- }
- return this.CENTRIFUGE[8].getIcon();
+ return getIconByIndex(tMetaTileEntity, 8);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[5].getIcon();
- }
- return this.CENTRIFUGE[5].getIcon();
+ return getIconByIndex(tMetaTileEntity, 5);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[2].getIcon();
- }
- return this.CENTRIFUGE[2].getIcon();
+ return getIconByIndex(tMetaTileEntity, 2);
}
} else if ((aSide == 4) || (aSide == 5)) {
TileEntity tTileEntity;
Object tMetaTileEntity;
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[0].getIcon();
- }
- return this.CENTRIFUGE[0].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 0);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[3].getIcon();
- }
- return this.CENTRIFUGE[3].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 3);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[6].getIcon();
- }
- return this.CENTRIFUGE[6].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 6);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[1].getIcon();
- }
- return this.CENTRIFUGE[1].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 1);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[7].getIcon();
- }
- return this.CENTRIFUGE[7].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 7);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[8].getIcon();
- }
- return this.CENTRIFUGE[8].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 8);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[5].getIcon();
- }
- return this.CENTRIFUGE[5].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 5);
}
if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) {
- if (isUsingAnimatedTexture(tTileEntity)) {
- return this.CENTRIFUGE_ACTIVE[2].getIcon();
- }
- return this.CENTRIFUGE[2].getIcon();
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 2);
}
}
return TexturesGtBlock.Casing_Material_Centrifuge.getIcon();
@@ -440,15 +390,33 @@ public class TexturesCentrifugeMultiblock {
return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
}
- public boolean isUsingAnimatedTexture(TileEntity tTileEntity) {
- IGregTechTileEntity aTile;
- if (tTileEntity instanceof IGregTechTileEntity) {
- aTile = (IGregTechTileEntity) tTileEntity;
- if (aTile instanceof GregtechMetaTileEntity_IndustrialCentrifuge) {
- return ((GregtechMetaTileEntity_IndustrialCentrifuge) aTile).usingAnimations();
- }
- }
+ public boolean isCentrifugeRunning(IMetaTileEntity aTile) {
+ if (aTile == null) {
+ return false;
+ }
+ else {
+ return aTile.getBaseMetaTileEntity().isActive();
+ }
+
+
+ }
+
+ public boolean isUsingAnimatedTexture(IMetaTileEntity aMetaTileEntity) {
+ if (aMetaTileEntity != null) {
+ if (aMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge) {
+ return ((GregtechMetaTileEntity_IndustrialCentrifuge) aMetaTileEntity).usingAnimations();
+ }
+ }
return false;
}
+ public IIcon getIconByIndex(IMetaTileEntity aMetaTileEntity, int aIndex) {
+ if (isUsingAnimatedTexture(aMetaTileEntity)) {
+ if (isCentrifugeRunning(aMetaTileEntity)) {
+ return this.CENTRIFUGE_ACTIVE[aIndex].getIcon();
+ }
+ }
+ return this.CENTRIFUGE[aIndex].getIcon();
+ }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtTools.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtTools.java
index ca795e40d1..ee104eaca3 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtTools.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtTools.java
@@ -13,6 +13,10 @@ import gtPlusPlus.core.lib.CORE;
public final class TexturesGtTools {
public final static CustomIcon SKOOKUM_CHOOCHER = new CustomIcon("iconsets/SKOOKUMCHOOCHER");
+ public final static CustomIcon ANGLE_GRINDER = new CustomIcon("iconsets/ANGLE_GRINDER");
+ public final static CustomIcon ELECTRIC_SNIPS = new CustomIcon("iconsets/ELECTRIC_SNIPS");
+ public final static CustomIcon ELECTRIC_LIGHTER = new CustomIcon("iconsets/ELECTRIC_LIGHTER");
+ public final static CustomIcon ELECTRIC_BUTCHER_KNIFE = new CustomIcon("iconsets/ELECTRIC_BUTCHER_KNIFE");
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java
index d228fdc04a..dbae4fe194 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java
@@ -1,47 +1,68 @@
package gtPlusPlus.xmod.gregtech.common.items;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.concurrent.ConcurrentHashMap;
-
import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
import gregtech.api.enums.TC_Aspects;
import gregtech.api.enums.ToolDictNames;
-import gregtech.api.interfaces.IItemBehaviour;
-import gregtech.api.items.GT_MetaBase_Item;
import gregtech.api.items.GT_MetaGenerated_Tool;
-import gregtech.api.util.GT_Log;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechToolDictNames;
+import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_AngelGrinder;
import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_Choocher;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-import net.minecraftforge.fluids.FluidStack;
+import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_ElectricButcherKnife;
+import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_ElectricLighter;
+import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_ElectricSnips;
public class MetaGeneratedGregtechTools extends GT_MetaGenerated_Tool {
+ public static final short ELECTRIC_LIGHTER = 7534;
+ public static final short ELECTRIC_BUTCHER_KNIFE = 7634;
public static final short SKOOKUM_CHOOCHER = 7734;
+ public static final short ANGLE_GRINDER = 7834;
+ public static final short ELECTRIC_SNIPS = 7934;
public static GT_MetaGenerated_Tool INSTANCE;
public MetaGeneratedGregtechTools() {
super("plusplus.metatool.01");
INSTANCE = this;
- //Skookum Choocher
- GregTech_API.registerTool(
- this.addTool(
- SKOOKUM_CHOOCHER, "Skookum Choocher",
- "Can Really Chooch. Does a Skookum job at Hammering and Wrenching stuff.",
- new TOOL_Gregtech_Choocher(),
- new Object[]{GregtechToolDictNames.craftingToolSkookumChoocher,
- ToolDictNames.craftingToolHardHammer,
- ToolDictNames.craftingToolWrench,
- new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
- new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
- new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}),
+ // Skookum Choocher
+ GregTech_API.registerTool(this.addTool(SKOOKUM_CHOOCHER, "Skookum Choocher",
+ "Can Really Chooch. Does a Skookum job at Hammering and Wrenching stuff.", new TOOL_Gregtech_Choocher(),
+ new Object[] { GregtechToolDictNames.craftingToolSkookumChoocher, ToolDictNames.craftingToolHardHammer,
+ ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }),
GregTech_API.sWrenchList);
- }
+
+ // Electric File
+ this.addTool(ANGLE_GRINDER, "Angle Grinder", "Hand-held electric filing device",
+ new TOOL_Gregtech_AngelGrinder(),
+ new Object[] { GregtechToolDictNames.craftingToolAngleGrinder, ToolDictNames.craftingToolFile,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) });
+
+ // Electric Wire Cutter
+ this.addTool(ELECTRIC_SNIPS, "Automatic Snips", "Hand-held electric wire cutter",
+ new TOOL_Gregtech_ElectricSnips(),
+ new Object[] { GregtechToolDictNames.craftingToolElectricSnips, ToolDictNames.craftingToolWireCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) });
+
+ // Electric Lighter
+ this.addTool(ELECTRIC_LIGHTER, "Pyromatic 9k", "Electric Fire!",
+ new TOOL_Gregtech_ElectricLighter(),
+ new Object[] { GregtechToolDictNames.craftingToolElectricLighter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) });
+
+ // Electric Butcher Knife
+ this.addTool(ELECTRIC_BUTCHER_KNIFE, "Meat-o-matic", "Electric butcher knife",
+ new TOOL_Gregtech_ElectricButcherKnife(),
+ new Object[] { GregtechToolDictNames.craftingToolElectricButcherKnife, ToolDictNames.craftingToolKnife,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) });
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Electric_Lighter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Electric_Lighter.java
new file mode 100644
index 0000000000..278b556733
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Electric_Lighter.java
@@ -0,0 +1,143 @@
+package gtPlusPlus.xmod.gregtech.common.items.behaviours;
+
+import java.util.List;
+
+import codechicken.lib.math.MathHelper;
+import gregtech.api.GregTech_API;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.GT_Utility.ItemNBT;
+import gregtech.common.items.behaviors.Behaviour_None;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.common.helpers.ChargingHelper;
+import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
+import ic2.api.item.IElectricItemManager;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.monster.EntityCreeper;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+public class Behaviour_Electric_Lighter extends Behaviour_None {
+
+ private final ItemStack mLighter;
+
+ private final long mFuelAmount;
+
+ private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.lighter.tooltip",
+ "Can light things on Fire");
+ private final String mTooltipUses = GT_LanguageManager.addStringLocalization("gt.behaviour.lighter.uses",
+ "Remaining Uses:");
+ private final String mTooltipUnstackable = GT_LanguageManager.addStringLocalization("gt.behaviour.unstackable",
+ "Not usable when stacked!");
+
+ public Behaviour_Electric_Lighter(ItemStack aFullLighter, long aFuelAmount) {
+ this.mLighter = aFullLighter;
+ this.mFuelAmount = aFuelAmount;
+ }
+
+ public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
+ if (!aPlayer.worldObj.isRemote && aStack.stackSize == 1) {
+ boolean rOutput = false;
+ if (aEntity instanceof EntityCreeper) {
+ if (this.prepare(aStack) || aPlayer.capabilities.isCreativeMode) {
+ GT_Utility.sendSoundToPlayers(aPlayer.worldObj, (String) GregTech_API.sSoundList.get(6), 1.0F, 1.0F,
+ MathHelper.floor_double(aEntity.posX), MathHelper.floor_double(aEntity.posY),
+ MathHelper.floor_double(aEntity.posZ));
+ ((EntityCreeper) aEntity).func_146079_cb();
+ rOutput = true;
+ }
+ }
+ return rOutput;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ 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 && aStack.stackSize == 1) {
+ Logger.WARNING("Preparing Lighter a");
+ boolean rOutput = false;
+ ForgeDirection tDirection = ForgeDirection.getOrientation(aSide);
+ aX += tDirection.offsetX;
+ aY += tDirection.offsetY;
+ aZ += tDirection.offsetZ;
+ if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack)) {
+ Logger.WARNING("Preparing Lighter b");
+ if (this.prepare(aStack) || aPlayer.capabilities.isCreativeMode) {
+ Logger.WARNING("Preparing Lighter c");
+ GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(6), 1.0F, 1.0F, aX, aY,
+ aZ);
+ aWorld.setBlock(aX, aY, aZ, Blocks.fire);
+ rOutput = true;
+ // ItemNBT.setLighterFuel(aStack, tFuelAmount);
+ return rOutput;
+ }
+ }
+ }
+ Logger.WARNING("Preparing Lighter z");
+ return false;
+ }
+
+ private boolean prepare(ItemStack aStack) {
+ if (aStack != null) {
+ Logger.WARNING("Preparing Lighter 1");
+ if (aStack.getItem() instanceof MetaGeneratedGregtechTools) {
+ Logger.WARNING("Preparing Lighter 2");
+ if (ChargingHelper.isItemValid(aStack)) {
+ Logger.WARNING("Preparing Lighter 3");
+ if (aStack.getItem() instanceof IElectricItemManager) {
+ Logger.WARNING("Preparing Lighter 4");
+ IElectricItemManager aItemElec = (IElectricItemManager) aStack.getItem();
+ double aCharge = aItemElec.getCharge(aStack);
+ long aEuCost = 4096 * 2;
+ if (aCharge >= aEuCost) {
+ Logger.WARNING("Preparing Lighter 5");
+ aItemElec.discharge(aStack, aEuCost, 3, true, true, false);
+ return true;
+ }
+ }
+ }
+ }
+ }
+ Logger.WARNING("Preparing Lighter 0");
+ return false;
+ }
+
+ private void useUp(ItemStack aStack) {
+
+ }
+
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ int aUses = 0;
+
+ if (aStack != null) {
+ if (aStack.getItem() instanceof MetaGeneratedGregtechTools) {
+ if (ChargingHelper.isItemValid(aStack)) {
+ if (aStack.getItem() instanceof IElectricItemManager) {
+ IElectricItemManager aItemElec = (IElectricItemManager) aStack.getItem();
+ double aCharge = aItemElec.getCharge(aStack);
+ long aEuCost = 4096 * 2;
+ aUses = (int) (aCharge / aEuCost);
+ }
+ }
+ }
+ }
+
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ aList.add(this.mTooltipUses + " " + aUses);
+ aList.add(this.mTooltipUnstackable);
+ return aList;
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Grinder.java b/src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Grinder.java
new file mode 100644
index 0000000000..9012bb8cd8
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/items/behaviours/Behaviour_Grinder.java
@@ -0,0 +1,94 @@
+package gtPlusPlus.xmod.gregtech.common.items.behaviours;
+
+import java.util.List;
+
+import gregtech.api.enums.SubTag;
+import gregtech.api.interfaces.IItemBehaviour;
+import gregtech.api.items.GT_MetaBase_Item;
+import net.minecraft.dispenser.IBlockSource;
+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.world.World;
+
+public class Behaviour_Grinder implements IItemBehaviour<GT_MetaBase_Item> {
+
+ @Override
+ public boolean onLeftClickEntity(GT_MetaBase_Item var1, ItemStack var2, EntityPlayer var3, Entity var4) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean onItemUse(GT_MetaBase_Item var1, ItemStack var2, EntityPlayer var3, World var4, int var5, int var6,
+ int var7, int var8, float var9, float var10, float var11) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item var1, ItemStack var2, EntityPlayer var3, World var4, int var5,
+ int var6, int var7, int var8, float var9, float var10, float var11) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(GT_MetaBase_Item var1, ItemStack var2, World var3, EntityPlayer var4) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item var1, List<String> var2, ItemStack var3) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void onUpdate(GT_MetaBase_Item var1, ItemStack var2, World var3, Entity var4, int var5, boolean var6) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isItemStackUsable(GT_MetaBase_Item var1, ItemStack var2) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean canDispense(GT_MetaBase_Item var1, IBlockSource var2, ItemStack var3) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public ItemStack onDispense(GT_MetaBase_Item var1, IBlockSource var2, ItemStack var3) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean hasProjectile(GT_MetaBase_Item var1, SubTag var2, ItemStack var3) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public EntityArrow getProjectile(GT_MetaBase_Item var1, SubTag var2, ItemStack var3, World var4, double var5,
+ double var7, double var9) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public EntityArrow getProjectile(GT_MetaBase_Item var1, SubTag var2, ItemStack var3, World var4,
+ EntityLivingBase var5, float var6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
index 45a73f9e35..ef3e06086e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
@@ -18,9 +18,11 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power.GTPP_MTE_BasicLosslessGenerator;
-public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_BasicGenerator{
+public class GT_MetaTileEntity_SemiFluidGenerator extends GTPP_MTE_BasicLosslessGenerator{
public static final int BASE_POLLUTION = 2;
public int mEfficiency;
@@ -48,7 +50,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public int getCapacity() {
- return 8000;
+ return 4000 * this.mTier;
}
public void onConfigLoad() {
@@ -63,6 +65,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public GT_Recipe.GT_Recipe_Map getRecipes() {
+ //Logger.INFO("Fuel Count: "+Gregtech_Recipe_Map.sSemiFluidLiquidFuels.mRecipeList.size());
return Gregtech_Recipe_Map.sSemiFluidLiquidFuels;
}
@@ -91,12 +94,15 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public int getFuelValue(ItemStack aStack) {
- if ((GT_Utility.isStackInvalid(aStack)) || (getRecipes() == null))
+ if ((GT_Utility.isStackInvalid(aStack)) || (getRecipes() == null)) {
+ Logger.INFO("Bad Fuel?");
return 0;
+ }
int rValue = Math.max(GT_ModHandler.getFuelCanValue(aStack) * 6 / 5, super.getFuelValue(aStack));
if (ItemList.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) {
rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3);
}
+ Logger.INFO("Good Fuel: "+rValue);
return rValue;
}
@@ -110,7 +116,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public ITexture[] getBack(byte aColor) {
return new ITexture[] { super.getBack(aColor)[0],
- new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BACK) };
+ new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP) };
}
@Override
@@ -122,13 +128,13 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public ITexture[] getTop(byte aColor) {
return new ITexture[] { super.getTop(aColor)[0],
- new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP) };
+ new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE) };
}
@Override
public ITexture[] getSides(byte aColor) {
return new ITexture[] { super.getSides(aColor)[0],
- new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE) };
+ new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP) };
}
@Override
@@ -141,7 +147,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public ITexture[] getBackActive(byte aColor) {
return new ITexture[] { super.getBackActive(aColor)[0],
- new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BACK_ACTIVE) };
+ new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP_ACTIVE) };
}
@Override
@@ -153,13 +159,13 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public ITexture[] getTopActive(byte aColor) {
return new ITexture[] { super.getTopActive(aColor)[0],
- new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP_ACTIVE) };
+ new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE_ACTIVE) };
}
@Override
public ITexture[] getSidesActive(byte aColor) {
return new ITexture[] { super.getSidesActive(aColor)[0],
- new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE_ACTIVE) };
+ new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP_ACTIVE) };
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java
index 81f594bc7e..c07fa2e927 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java
@@ -1,7 +1,5 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic;
-import net.minecraft.item.ItemStack;
-
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -10,8 +8,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.Recipe_GT;
-
-import gtPlusPlus.core.lib.CORE;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class GregtechMetaTileEntity_BasicWasher extends GT_MetaTileEntity_BasicMachine {
@@ -67,7 +64,7 @@ public class GregtechMetaTileEntity_BasicWasher extends GT_MetaTileEntity_BasicM
@Override
public int getCapacity() {
- return 8000;
+ return 8000 * Math.max(1, this.mTier);
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java
index e3c05a8388..3f3a276f0c 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java
@@ -1,13 +1,10 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing;
-import gregtech.api.GregTech_API;
import gregtech.api.enums.TAE;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
@@ -27,7 +24,7 @@ import net.minecraftforge.common.util.ForgeDirection;
public class GregtechMetaTileEntity_IndustrialCentrifuge
extends GregtechMeta_MultiBlockBase {
- private boolean mIsAnimated = true;
+ private boolean mIsAnimated;
private static ITexture frontFace;
private static ITexture frontFaceActive;
private static CustomIcon GT9_5_Active = new CustomIcon("iconsets/LARGECENTRIFUGE_ACTIVE5");
@@ -38,10 +35,12 @@ extends GregtechMeta_MultiBlockBase {
super(aID, aName, aNameRegional);
frontFaceActive = new GT_RenderedTexture(GT9_5_Active);
frontFace = new GT_RenderedTexture(GT9_5);
+ mIsAnimated = true;
}
public GregtechMetaTileEntity_IndustrialCentrifuge(final String aName) {
super(aName);
+ mIsAnimated = true;
}
@Override
@@ -59,6 +58,7 @@ extends GregtechMeta_MultiBlockBase {
return new String[]{
"Controller Block for the Industrial Centrifuge",
"125% faster than using single block machines of the same voltage",
+ "Disable animations with a screwdriver",
"Only uses 90% of the eu/t normally required",
"Processes six items per voltage tier",
"Size: 3x3x3 (Hollow)",
@@ -179,13 +179,14 @@ extends GregtechMeta_MultiBlockBase {
@Override
public void onModeChangeByScrewdriver(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- this.mIsAnimated = Utils.invertBoolean(mIsAnimated);
+ this.mIsAnimated = !mIsAnimated;
+ Logger.INFO("Is Centrifuge animated "+this.mIsAnimated);
if (this.mIsAnimated) {
- PlayerUtils.messagePlayer(aPlayer, "Using Animated Turbine Texture.");
+ PlayerUtils.messagePlayer(aPlayer, "Using Animated Turbine Texture. ");
}
else {
- PlayerUtils.messagePlayer(aPlayer, "Using Static Turbine Texture.");
- }
+ PlayerUtils.messagePlayer(aPlayer, "Using Static Turbine Texture. ");
+ }
}
@Override
@@ -196,12 +197,18 @@ extends GregtechMeta_MultiBlockBase {
@Override
public void loadNBTData(NBTTagCompound aNBT) {
- super.loadNBTData(aNBT);
- mIsAnimated = aNBT.getBoolean("mIsAnimated");
+ super.loadNBTData(aNBT);
+ if (aNBT.hasKey("mIsAnimated")) {
+ mIsAnimated = aNBT.getBoolean("mIsAnimated");
+ }
+ else {
+ mIsAnimated = true;
+ }
}
public boolean usingAnimations() {
- return mIsAnimated;
+ //Logger.INFO("Is animated? "+this.mIsAnimated);
+ return this.mIsAnimated;
}
private ITexture getFrontFacingTurbineTexture(boolean isActive) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java
index 61cfbcc5c7..7c57f799d7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java
@@ -170,7 +170,7 @@ extends GregtechMeta_MultiBlockBase {
}
else {
- if (!isValidBlockForStructure(tTileEntity, TAE.GTPP_INDEX(21), false, aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j), ModBlocks.blockCasings2Misc, 5)) {
+ if (!isValidBlockForStructure(tTileEntity, TAE.GTPP_INDEX(21), true, aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j), ModBlocks.blockCasings2Misc, 5)) {
log("Sifter Casing(s) Missing from one of the "+sHeight+" layers inner 3x3.");
log("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName());
return false;
@@ -181,16 +181,9 @@ extends GregtechMeta_MultiBlockBase {
else {
//Dealt with inner 5x5, now deal with the exterior.
//Deal with all 4 sides (Sifter walls)
- boolean checkController = false;
- if (((xDir + i) != 0) || (((zDir + j) != 0) && (h == 0))) {//no controller
- checkController = true;
- }
- else {
- checkController = false;
- }
- if (!this.addToMachineList(tTileEntity, TAE.GTPP_INDEX(21))) {
+ boolean checkController = false;
if (!checkController){
- if (!isValidBlockForStructure(null, TAE.GTPP_INDEX(21), false, aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j), ModBlocks.blockCasings2Misc, 5)) {
+ if (!isValidBlockForStructure(tTileEntity, TAE.GTPP_INDEX(21), true, aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j), ModBlocks.blockCasings2Misc, 5)) {
if ((tTileEntity instanceof GregtechMetaTileEntity_IndustrialSifter) || (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) == GregTech_API.sBlockMachines)){
if (h != 0){
log("Found a secondary controller at the wrong Y level.");
@@ -205,10 +198,7 @@ extends GregtechMeta_MultiBlockBase {
}
}
tAmount++;
- }
- else {
- tAmount++;
- }
+
}
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java
index b77529220f..86d02eae9a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java
@@ -26,10 +26,7 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
- /*
- * public GregtechMetaEnergyBuffer() { super.this
- * setCreativeTab(GregTech_API.TAB_GREGTECH); }
- */
+ private byte aCurrentOutputAmperage = 4;
public GregtechMetaEnergyBuffer(final int aID, final String aName, final String aNameRegional, final int aTier, final String aDescription, final int aSlotCount) {
super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription);
@@ -41,7 +38,7 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, "Accepts/Outputs 4Amp",};
+ return new String[] {this.mDescription, "Defaults 4A In/Out", "Change output Amperage with a screwdriver", "Now Portable!"};
}
@Override
@@ -200,12 +197,12 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
@Override
public long maxAmperesIn() {
- return 4;
+ return aCurrentOutputAmperage;
}
@Override
public long maxAmperesOut() {
- return 4;
+ return aCurrentOutputAmperage;
}
@Override public int rechargerSlotStartIndex() {return 0;}
@Override public int dechargerSlotStartIndex() {return 0;}
@@ -216,13 +213,25 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
@Override public boolean isAccessAllowed(final EntityPlayer aPlayer) {return true;}
@Override
- public void saveNBTData(final NBTTagCompound aNBT) {
- //
+ public void saveNBTData(final NBTTagCompound aNBT) {
+ aNBT.setByte("aCurrentOutputAmperage", aCurrentOutputAmperage);
+ if (CORE.NBT_PERSISTENCY_PATCH_APPLIED) {
+ long aEU = this.getBaseMetaTileEntity().getStoredEU();
+ if (aEU > 0){
+ aNBT.setLong("aStoredEU", aEU);
+ if (aNBT.hasKey("aStoredEU")) {
+ Logger.WARNING("Set aStoredEU to NBT.");
+ }
+ }
+ }
}
@Override
- public void loadNBTData(final NBTTagCompound aNBT) {
- //
+ public void loadNBTData(final NBTTagCompound aNBT) {
+ aCurrentOutputAmperage = aNBT.getByte("aCurrentOutputAmperage");
+ if (aNBT.hasKey("aStoredEU")) {
+ this.setEUVar(aNBT.getLong("aStoredEU"));
+ }
}
@Override
@@ -244,6 +253,7 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
final double c = ((double) tempStorage / this.maxEUStore()) * 100;
final double roundOff = Math.round(c * 100.00) / 100.00;
PlayerUtils.messagePlayer(playerIn, "Energy: " + GT_Utility.formatNumbers(tempStorage) + " EU at "+V[this.mTier]+"v ("+roundOff+"%)");
+ PlayerUtils.messagePlayer(playerIn, "Amperage: " + GT_Utility.formatNumbers(maxAmperesIn())+"A");
}
//Utils.LOG_WARNING("Begin Show Energy");
@@ -373,6 +383,35 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
@Override
public boolean isItemValidForSlot(final int p_94041_1_, final ItemStack p_94041_2_) {
return false;
+ }
+
+ @Override
+ public void setItemNBT(NBTTagCompound aNBT) {
+ if (CORE.NBT_PERSISTENCY_PATCH_APPLIED) {
+ aNBT.setByte("aCurrentOutputAmperage", aCurrentOutputAmperage);
+ long aEU = this.getBaseMetaTileEntity().getStoredEU();
+ if (aEU > 0){
+ aNBT.setLong("aStoredEU", aEU);
+ if (aNBT.hasKey("aStoredEU")) {
+ Logger.WARNING("Set aStoredEU to NBT.");
+ }
+ }
+ }
}
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ byte aTest = (byte) (aCurrentOutputAmperage + 1);
+ if (aTest > 16 || aTest <= 0 ) {
+ aTest = 1;
+ }
+ aCurrentOutputAmperage = aTest;
+ PlayerUtils.messagePlayer(aPlayer, "Now handling "+aCurrentOutputAmperage+" Amps.");
+ }
+
+
+
+
+
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_AngelGrinder.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_AngelGrinder.java
new file mode 100644
index 0000000000..905164802c
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_AngelGrinder.java
@@ -0,0 +1,199 @@
+package gtPlusPlus.xmod.gregtech.common.tools;
+
+import java.util.Arrays;
+import java.util.List;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.Textures.ItemIcons;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.common.items.behaviors.Behaviour_None;
+import gregtech.common.tools.GT_Tool;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
+import gtPlusPlus.xmod.gregtech.common.items.behaviours.Behaviour_Choocher;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.monster.EntityIronGolem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.AchievementList;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IChatComponent;
+import net.minecraftforge.event.world.BlockEvent;
+
+public class TOOL_Gregtech_AngelGrinder
+extends GT_Tool {
+
+ public static final List<String> mEffectiveList = Arrays.asList(new String[]{EntityIronGolem.class.getName(), "EntityTowerGuardian"});
+
+
+ @Override
+ public float getNormalDamageAgainstEntity(final float aOriginalDamage, final Entity aEntity, final ItemStack aStack, final EntityPlayer aPlayer) {
+ String tName = aEntity.getClass().getName();
+ tName = tName.substring(tName.lastIndexOf(".") + 1);
+ return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage;
+ }
+
+ @Override
+ public int getToolDamagePerBlockBreak() {
+ return 50;
+ }
+
+ @Override
+ public int getToolDamagePerDropConversion() {
+ return 100;
+ }
+
+ @Override
+ public int getToolDamagePerContainerCraft() {
+ return 400;
+ }
+
+ @Override
+ public int getToolDamagePerEntityAttack() {
+ return 100;
+ }
+
+ @Override
+ public int getBaseQuality() {
+ return 0;
+ }
+
+ @Override
+ public float getBaseDamage() {
+ return 8.0F;
+ }
+
+ @Override
+ public float getSpeedMultiplier() {
+ return 2F;
+ }
+
+ @Override
+ public float getMaxDurabilityMultiplier() {
+ return 1.8F;
+ }
+
+ @Override
+ public String getCraftingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(1));
+ }
+
+ @Override
+ public String getEntityHitSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(2));
+ }
+
+ @Override
+ public String getBreakingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(0));
+ }
+
+ @Override
+ public String getMiningSound() {
+ return null;
+ }
+
+ @Override
+ public boolean canBlock() {
+ return false;
+ }
+
+ public boolean isWrench(){
+ return false;
+ }
+
+ @Override
+ public boolean isCrowbar() {
+ return false;
+ }
+
+ @Override
+ public boolean isWeapon() {
+ return true;
+ }
+
+ @Override
+ public boolean isMinableBlock(final Block aBlock, final byte aMetaData) {
+ final String tTool = aBlock.getHarvestTool(aMetaData);
+ return (tTool != null) && (tTool.equals("sword") || tTool.equals("file"));
+ }
+
+
+ @Override
+ public int convertBlockDrops(final List<ItemStack> aDrops, final ItemStack aStack, final EntityPlayer aPlayer, final Block aBlock, final int aX, final int aY, final int aZ, final byte aMetaData, final int aFortune, final boolean aSilkTouch, final BlockEvent.HarvestDropsEvent aEvent) {
+ int rConversions = 0;
+ /*GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{new ItemStack(aBlock, 1, aMetaData)});
+ if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) {
+ for (final ItemStack tDrop : aDrops) {
+ tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{tDrop})});
+ if (tRecipe != null) {
+ final ItemStack tHammeringOutput = tRecipe.getOutput(0);
+ if (tHammeringOutput != null) {
+ rConversions += tDrop.stackSize;
+ tDrop.stackSize *= tHammeringOutput.stackSize;
+ tHammeringOutput.stackSize = tDrop.stackSize;
+ GT_Utility.setStack(tDrop, tHammeringOutput);
+ }
+ }
+ }
+ } else {
+ aDrops.clear();
+ aDrops.add(tRecipe.getOutput(0));
+ rConversions++;
+ }*/
+ return rConversions;
+ }
+
+ @Override
+ public ItemStack getBrokenItem(final ItemStack aStack) {
+ return null;
+ }
+
+ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) {
+ return (IIconContainer) (aIsToolHead
+ ? TexturesGtTools.ANGLE_GRINDER
+ : ItemIcons.POWER_UNIT_HV);
+ }
+
+ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) {
+ return !aIsToolHead
+ ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa
+ : Materials.TungstenSteel.mRGBa;
+ }
+
+
+
+
+ @Override
+ public void onToolCrafted(final ItemStack aStack, final EntityPlayer aPlayer) {
+ super.onToolCrafted(aStack, aPlayer);
+ aPlayer.triggerAchievement(AchievementList.buildSword);
+ try {
+ GT_Mod.achievements.issueAchievement(aPlayer, "tools");
+ GT_Mod.achievements.issueAchievement(aPlayer, "unitool");
+ } catch (final Exception e) {
+ }
+ }
+
+ @Override
+ public IChatComponent getDeathMessage(final EntityLivingBase aPlayer, final EntityLivingBase aEntity) {
+ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been Ground out of existence by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+ }
+
+ @Override
+ public void onStatsAddedToTool(final GT_MetaGenerated_Tool aItem, final int aID) {
+ aItem.addItemBehavior(aID, new Behaviour_None());
+ }
+
+ @Override
+ public boolean isGrafter() {
+ return false;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricButcherKnife.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricButcherKnife.java
new file mode 100644
index 0000000000..ff4be9dd93
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricButcherKnife.java
@@ -0,0 +1,197 @@
+package gtPlusPlus.xmod.gregtech.common.tools;
+
+import java.util.Arrays;
+import java.util.List;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures.ItemIcons;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.common.items.behaviors.Behaviour_None;
+import gregtech.common.tools.GT_Tool;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.monster.EntityIronGolem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.AchievementList;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IChatComponent;
+import net.minecraftforge.event.world.BlockEvent;
+
+public class TOOL_Gregtech_ElectricButcherKnife
+extends GT_Tool {
+
+ public static final List<String> mEffectiveList = Arrays.asList(new String[]{EntityIronGolem.class.getName(), "EntityTowerGuardian"});
+
+
+ @Override
+ public float getNormalDamageAgainstEntity(final float aOriginalDamage, final Entity aEntity, final ItemStack aStack, final EntityPlayer aPlayer) {
+ String tName = aEntity.getClass().getName();
+ tName = tName.substring(tName.lastIndexOf(".") + 1);
+ return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage;
+ }
+
+ @Override
+ public int getToolDamagePerBlockBreak() {
+ return 50;
+ }
+
+ @Override
+ public int getToolDamagePerDropConversion() {
+ return 100;
+ }
+
+ @Override
+ public int getToolDamagePerContainerCraft() {
+ return 400;
+ }
+
+ @Override
+ public int getToolDamagePerEntityAttack() {
+ return 100;
+ }
+
+ @Override
+ public int getBaseQuality() {
+ return 0;
+ }
+
+ @Override
+ public float getBaseDamage() {
+ return 8.0F;
+ }
+
+ @Override
+ public float getSpeedMultiplier() {
+ return 2F;
+ }
+
+ @Override
+ public float getMaxDurabilityMultiplier() {
+ return 1.8F;
+ }
+
+ @Override
+ public String getCraftingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(1));
+ }
+
+ @Override
+ public String getEntityHitSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(2));
+ }
+
+ @Override
+ public String getBreakingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(0));
+ }
+
+ @Override
+ public String getMiningSound() {
+ return null;
+ }
+
+ @Override
+ public boolean canBlock() {
+ return false;
+ }
+
+ public boolean isWrench(){
+ return false;
+ }
+
+ @Override
+ public boolean isCrowbar() {
+ return false;
+ }
+
+ @Override
+ public boolean isWeapon() {
+ return true;
+ }
+
+ @Override
+ public boolean isMinableBlock(final Block aBlock, final byte aMetaData) {
+ final String tTool = aBlock.getHarvestTool(aMetaData);
+ return (tTool != null) && (tTool.equals("sword") || tTool.equals("file"));
+ }
+
+
+ @Override
+ public int convertBlockDrops(final List<ItemStack> aDrops, final ItemStack aStack, final EntityPlayer aPlayer, final Block aBlock, final int aX, final int aY, final int aZ, final byte aMetaData, final int aFortune, final boolean aSilkTouch, final BlockEvent.HarvestDropsEvent aEvent) {
+ int rConversions = 0;
+ /*GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{new ItemStack(aBlock, 1, aMetaData)});
+ if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) {
+ for (final ItemStack tDrop : aDrops) {
+ tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{tDrop})});
+ if (tRecipe != null) {
+ final ItemStack tHammeringOutput = tRecipe.getOutput(0);
+ if (tHammeringOutput != null) {
+ rConversions += tDrop.stackSize;
+ tDrop.stackSize *= tHammeringOutput.stackSize;
+ tHammeringOutput.stackSize = tDrop.stackSize;
+ GT_Utility.setStack(tDrop, tHammeringOutput);
+ }
+ }
+ }
+ } else {
+ aDrops.clear();
+ aDrops.add(tRecipe.getOutput(0));
+ rConversions++;
+ }*/
+ return rConversions;
+ }
+
+ @Override
+ public ItemStack getBrokenItem(final ItemStack aStack) {
+ return null;
+ }
+
+ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) {
+ return (IIconContainer) (aIsToolHead
+ ? TexturesGtTools.ELECTRIC_BUTCHER_KNIFE
+ : ItemIcons.POWER_UNIT_HV);
+ }
+
+ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) {
+ return aIsToolHead
+ ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa
+ : Materials.RedSteel.mRGBa;
+ }
+
+
+
+
+ @Override
+ public void onToolCrafted(final ItemStack aStack, final EntityPlayer aPlayer) {
+ super.onToolCrafted(aStack, aPlayer);
+ aPlayer.triggerAchievement(AchievementList.buildSword);
+ try {
+ GT_Mod.achievements.issueAchievement(aPlayer, "tools");
+ GT_Mod.achievements.issueAchievement(aPlayer, "unitool");
+ } catch (final Exception e) {
+ }
+ }
+
+ @Override
+ public IChatComponent getDeathMessage(final EntityLivingBase aPlayer, final EntityLivingBase aEntity) {
+ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been Sliced out of existence by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+ }
+
+ @Override
+ public void onStatsAddedToTool(final GT_MetaGenerated_Tool aItem, final int aID) {
+ aItem.addItemBehavior(aID, new Behaviour_None());
+ }
+
+ @Override
+ public boolean isGrafter() {
+ return false;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricLighter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricLighter.java
new file mode 100644
index 0000000000..cf6f33cc36
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricLighter.java
@@ -0,0 +1,198 @@
+package gtPlusPlus.xmod.gregtech.common.tools;
+
+import java.util.Arrays;
+import java.util.List;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures.ItemIcons;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.common.items.behaviors.Behaviour_None;
+import gregtech.common.tools.GT_Tool;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
+import gtPlusPlus.xmod.gregtech.common.items.behaviours.Behaviour_Electric_Lighter;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.monster.EntityIronGolem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.AchievementList;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IChatComponent;
+import net.minecraftforge.event.world.BlockEvent;
+
+public class TOOL_Gregtech_ElectricLighter
+extends GT_Tool {
+
+ public static final List<String> mEffectiveList = Arrays.asList(new String[]{EntityIronGolem.class.getName(), "EntityTowerGuardian"});
+
+
+ @Override
+ public float getNormalDamageAgainstEntity(final float aOriginalDamage, final Entity aEntity, final ItemStack aStack, final EntityPlayer aPlayer) {
+ String tName = aEntity.getClass().getName();
+ tName = tName.substring(tName.lastIndexOf(".") + 1);
+ return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage;
+ }
+
+ @Override
+ public int getToolDamagePerBlockBreak() {
+ return 50;
+ }
+
+ @Override
+ public int getToolDamagePerDropConversion() {
+ return 100;
+ }
+
+ @Override
+ public int getToolDamagePerContainerCraft() {
+ return 400;
+ }
+
+ @Override
+ public int getToolDamagePerEntityAttack() {
+ return 100;
+ }
+
+ @Override
+ public int getBaseQuality() {
+ return 0;
+ }
+
+ @Override
+ public float getBaseDamage() {
+ return 8.0F;
+ }
+
+ @Override
+ public float getSpeedMultiplier() {
+ return 2F;
+ }
+
+ @Override
+ public float getMaxDurabilityMultiplier() {
+ return 1.8F;
+ }
+
+ @Override
+ public String getCraftingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(1));
+ }
+
+ @Override
+ public String getEntityHitSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(2));
+ }
+
+ @Override
+ public String getBreakingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(0));
+ }
+
+ @Override
+ public String getMiningSound() {
+ return null;
+ }
+
+ @Override
+ public boolean canBlock() {
+ return false;
+ }
+
+ public boolean isWrench(){
+ return false;
+ }
+
+ @Override
+ public boolean isCrowbar() {
+ return false;
+ }
+
+ @Override
+ public boolean isWeapon() {
+ return true;
+ }
+
+ @Override
+ public boolean isMinableBlock(final Block aBlock, final byte aMetaData) {
+ final String tTool = aBlock.getHarvestTool(aMetaData);
+ return (tTool != null) && (tTool.equals("sword") || tTool.equals("file"));
+ }
+
+
+ @Override
+ public int convertBlockDrops(final List<ItemStack> aDrops, final ItemStack aStack, final EntityPlayer aPlayer, final Block aBlock, final int aX, final int aY, final int aZ, final byte aMetaData, final int aFortune, final boolean aSilkTouch, final BlockEvent.HarvestDropsEvent aEvent) {
+ int rConversions = 0;
+ /*GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{new ItemStack(aBlock, 1, aMetaData)});
+ if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) {
+ for (final ItemStack tDrop : aDrops) {
+ tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{tDrop})});
+ if (tRecipe != null) {
+ final ItemStack tHammeringOutput = tRecipe.getOutput(0);
+ if (tHammeringOutput != null) {
+ rConversions += tDrop.stackSize;
+ tDrop.stackSize *= tHammeringOutput.stackSize;
+ tHammeringOutput.stackSize = tDrop.stackSize;
+ GT_Utility.setStack(tDrop, tHammeringOutput);
+ }
+ }
+ }
+ } else {
+ aDrops.clear();
+ aDrops.add(tRecipe.getOutput(0));
+ rConversions++;
+ }*/
+ return rConversions;
+ }
+
+ @Override
+ public ItemStack getBrokenItem(final ItemStack aStack) {
+ return null;
+ }
+
+ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) {
+ return (IIconContainer) (aIsToolHead
+ ? TexturesGtTools.ELECTRIC_LIGHTER
+ : ItemIcons.POWER_UNIT_HV);
+ }
+
+ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) {
+ return !aIsToolHead
+ ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa
+ : Materials.Silver.mRGBa;
+ }
+
+
+
+
+ @Override
+ public void onToolCrafted(final ItemStack aStack, final EntityPlayer aPlayer) {
+ super.onToolCrafted(aStack, aPlayer);
+ aPlayer.triggerAchievement(AchievementList.buildSword);
+ try {
+ GT_Mod.achievements.issueAchievement(aPlayer, "tools");
+ GT_Mod.achievements.issueAchievement(aPlayer, "unitool");
+ } catch (final Exception e) {
+ }
+ }
+
+ @Override
+ public IChatComponent getDeathMessage(final EntityLivingBase aPlayer, final EntityLivingBase aEntity) {
+ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been Ground out of existence by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+ }
+
+ @Override
+ public void onStatsAddedToTool(final GT_MetaGenerated_Tool aItem, final int aID) {
+ aItem.addItemBehavior(aID, new Behaviour_Electric_Lighter(null, 32000));
+ }
+
+ @Override
+ public boolean isGrafter() {
+ return false;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricSnips.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricSnips.java
new file mode 100644
index 0000000000..bc0c821478
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tools/TOOL_Gregtech_ElectricSnips.java
@@ -0,0 +1,197 @@
+package gtPlusPlus.xmod.gregtech.common.tools;
+
+import java.util.Arrays;
+import java.util.List;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures.ItemIcons;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.common.items.behaviors.Behaviour_None;
+import gregtech.common.tools.GT_Tool;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.monster.EntityIronGolem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.AchievementList;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IChatComponent;
+import net.minecraftforge.event.world.BlockEvent;
+
+public class TOOL_Gregtech_ElectricSnips
+extends GT_Tool {
+
+ public static final List<String> mEffectiveList = Arrays.asList(new String[]{EntityIronGolem.class.getName(), "EntityTowerGuardian"});
+
+
+ @Override
+ public float getNormalDamageAgainstEntity(final float aOriginalDamage, final Entity aEntity, final ItemStack aStack, final EntityPlayer aPlayer) {
+ String tName = aEntity.getClass().getName();
+ tName = tName.substring(tName.lastIndexOf(".") + 1);
+ return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage;
+ }
+
+ @Override
+ public int getToolDamagePerBlockBreak() {
+ return 50;
+ }
+
+ @Override
+ public int getToolDamagePerDropConversion() {
+ return 100;
+ }
+
+ @Override
+ public int getToolDamagePerContainerCraft() {
+ return 400;
+ }
+
+ @Override
+ public int getToolDamagePerEntityAttack() {
+ return 100;
+ }
+
+ @Override
+ public int getBaseQuality() {
+ return 0;
+ }
+
+ @Override
+ public float getBaseDamage() {
+ return 4.0F;
+ }
+
+ @Override
+ public float getSpeedMultiplier() {
+ return 1F;
+ }
+
+ @Override
+ public float getMaxDurabilityMultiplier() {
+ return 1.4F;
+ }
+
+ @Override
+ public String getCraftingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(1));
+ }
+
+ @Override
+ public String getEntityHitSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(2));
+ }
+
+ @Override
+ public String getBreakingSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(0));
+ }
+
+ @Override
+ public String getMiningSound() {
+ return null;
+ }
+
+ @Override
+ public boolean canBlock() {
+ return false;
+ }
+
+ public boolean isWrench(){
+ return false;
+ }
+
+ @Override
+ public boolean isCrowbar() {
+ return false;
+ }
+
+ @Override
+ public boolean isWeapon() {
+ return true;
+ }
+
+ @Override
+ public boolean isMinableBlock(final Block aBlock, final byte aMetaData) {
+ final String tTool = aBlock.getHarvestTool(aMetaData);
+ return (tTool != null) && (tTool.equals("sword") || tTool.equals("cutter"));
+ }
+
+
+ @Override
+ public int convertBlockDrops(final List<ItemStack> aDrops, final ItemStack aStack, final EntityPlayer aPlayer, final Block aBlock, final int aX, final int aY, final int aZ, final byte aMetaData, final int aFortune, final boolean aSilkTouch, final BlockEvent.HarvestDropsEvent aEvent) {
+ int rConversions = 0;
+ /*GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{new ItemStack(aBlock, 1, aMetaData)});
+ if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) {
+ for (final ItemStack tDrop : aDrops) {
+ tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{tDrop})});
+ if (tRecipe != null) {
+ final ItemStack tHammeringOutput = tRecipe.getOutput(0);
+ if (tHammeringOutput != null) {
+ rConversions += tDrop.stackSize;
+ tDrop.stackSize *= tHammeringOutput.stackSize;
+ tHammeringOutput.stackSize = tDrop.stackSize;
+ GT_Utility.setStack(tDrop, tHammeringOutput);
+ }
+ }
+ }
+ } else {
+ aDrops.clear();
+ aDrops.add(tRecipe.getOutput(0));
+ rConversions++;
+ }*/
+ return rConversions;
+ }
+
+ @Override
+ public ItemStack getBrokenItem(final ItemStack aStack) {
+ return null;
+ }
+
+ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) {
+ return (IIconContainer) (aIsToolHead
+ ? TexturesGtTools.ELECTRIC_SNIPS
+ : ItemIcons.POWER_UNIT_MV);
+ }
+
+ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) {
+ return !aIsToolHead
+ ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa
+ : GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa;
+ }
+
+
+
+
+ @Override
+ public void onToolCrafted(final ItemStack aStack, final EntityPlayer aPlayer) {
+ super.onToolCrafted(aStack, aPlayer);
+ aPlayer.triggerAchievement(AchievementList.buildSword);
+ try {
+ GT_Mod.achievements.issueAchievement(aPlayer, "tools");
+ GT_Mod.achievements.issueAchievement(aPlayer, "unitool");
+ } catch (final Exception e) {
+ }
+ }
+
+ @Override
+ public IChatComponent getDeathMessage(final EntityLivingBase aPlayer, final EntityLivingBase aEntity) {
+ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been Snipped out of existence by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+ }
+
+ @Override
+ public void onStatsAddedToTool(final GT_MetaGenerated_Tool aItem, final int aID) {
+ aItem.addItemBehavior(aID, new Behaviour_None());
+ }
+
+ @Override
+ public boolean isGrafter() {
+ return false;
+ }
+
+}