diff options
author | Jason Mitchell <mitchej@gmail.com> | 2017-12-24 14:49:43 -0800 |
---|---|---|
committer | Jason Mitchell <mitchej@gmail.com> | 2017-12-24 14:52:38 -0800 |
commit | 1f54500dc1f4f258727315cd0b6fac7b6bb0fa56 (patch) | |
tree | 26ed0590ced9cae7cb5bb5f2ed4153279bb065e0 /src/main/java/gregtech/api/metatileentity | |
parent | 51dd74eb21b4c1bfe9659eb43f545281e52b8216 (diff) | |
download | GT5-Unofficial-1f54500dc1f4f258727315cd0b6fac7b6bb0fa56.tar.gz GT5-Unofficial-1f54500dc1f4f258727315cd0b6fac7b6bb0fa56.tar.bz2 GT5-Unofficial-1f54500dc1f4f258727315cd0b6fac7b6bb0fa56.zip |
Allow use of wire cutter/soldering item on the tile entity, as well as the wire, for a connect/disconnect
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
4 files changed, 47 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index fe92f313a7..565331555b 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -1317,10 +1317,22 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); - if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { + if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { mStrongRedstone ^= (1 << tSide); GT_Utility.sendChatToPlayer(aPlayer, trans("091","Redstone Output at Side ") + tSide + trans("092"," set to: ") + ((mStrongRedstone & (1 << tSide)) != 0 ? trans("093","Strong") : trans("094","Weak"))); GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); + } else if (mMetaTileEntity.onSolderingToolRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 500, aPlayer); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWireCutterList)) { + byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + if (mMetaTileEntity.onWireCutterRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); } return true; } diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index 23d89155a9..e5724bb653 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -204,10 +204,12 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { return false;
}
+ @Override
public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
return false;
}
+ @Override
public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
return false;
}
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index 040ad51828..1047a3396b 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -5,6 +5,7 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; @@ -19,6 +20,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -162,6 +164,33 @@ public abstract class MetaTileEntity implements IMetaTileEntity { } @Override + public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + byte tSide = GT_Utility.getOppositeSide(aWrenchingSide); + TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(aWrenchingSide); + + if(tTileEntity != null && (tTileEntity instanceof IGregTechTileEntity) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof GT_MetaPipeEntity_Cable)) + { + // The tile entity we're facing is a cable, let's try to connect to it + return ((GT_MetaPipeEntity_Cable)((IGregTechTileEntity) tTileEntity).getMetaTileEntity()).onWireCutterRightClick(aWrenchingSide, tSide, aPlayer, aX, aY, aZ); + } + + return true; + } + + @Override + public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + byte tSide = GT_Utility.getOppositeSide(aWrenchingSide); + TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(aWrenchingSide); + if(tTileEntity != null && (tTileEntity instanceof IGregTechTileEntity) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof GT_MetaPipeEntity_Cable)) + { + // The tile entity we're facing is a cable, let's try to connect to it + return ((GT_MetaPipeEntity_Cable)((IGregTechTileEntity) tTileEntity).getMetaTileEntity()).onSolderingToolRightClick(aWrenchingSide, tSide, aPlayer, aX, aY, aZ); + } + + return true; + } + + @Override public void onExplosion() {/*Do nothing*/} @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index 1b720c9503..a5bfa18016 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -318,14 +318,13 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile private boolean onConnectionToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
if (GT_Mod.gregtechproxy.gt6Cable) {
- byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ);
- if (!isConnectedAtSide(tSide)) {
+ if (!isConnectedAtSide(aWrenchingSide)) {
if (GT_Mod.gregtechproxy.costlyCableConnection && !GT_ModHandler.consumeSolderingMaterial(aPlayer)) return false;
- if (connect(tSide) > 0)
+ if (connect(aWrenchingSide) > 0)
GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected"));
}
else {
- disconnect(tSide);
+ disconnect(aWrenchingSide);
GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected"));
}
return true;
|