aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
diff options
context:
space:
mode:
authorDreamMasterXXL <dream-master@gmx.net>2020-05-10 16:21:22 +0200
committerDreamMasterXXL <dream-master@gmx.net>2020-05-10 16:21:22 +0200
commit920e2eb543ce7fa413bee19c0626d3d89f9542fb (patch)
treef0175359b32bed488afd19373af3741c415e6e2f /src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
parent33ec8e37624aa9403d130ecbe4817c45c3a76a4f (diff)
parent87321491668b5b07801eaafb22390051c97fd9d8 (diff)
downloadGT5-Unofficial-920e2eb543ce7fa413bee19c0626d3d89f9542fb.tar.gz
GT5-Unofficial-920e2eb543ce7fa413bee19c0626d3d89f9542fb.tar.bz2
GT5-Unofficial-920e2eb543ce7fa413bee19c0626d3d89f9542fb.zip
Merge branch 'experimental' into HEE-Bees
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
index ae8fc7324d..b9c8641a86 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
@@ -462,6 +462,12 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
}
@Override
+ public void receiveCoverData(byte coverSide, int coverID, int coverData) {
+ if ((coverSide >= 0 && coverSide < 6) && (mCoverSides[coverSide] == coverID))
+ setCoverDataAtSide(coverSide, coverData);
+ }
+
+ @Override
public byte getStrongestRedstone() {
return (byte) Math.max(getInternalInputRedstoneSignal((byte) 0), Math.max(getInternalInputRedstoneSignal((byte) 1), Math.max(getInternalInputRedstoneSignal((byte) 2), Math.max(getInternalInputRedstoneSignal((byte) 3), Math.max(getInternalInputRedstoneSignal((byte) 4), getInternalInputRedstoneSignal((byte) 5))))));
}
@@ -826,7 +832,13 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
@Override
public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
if (isClientSide()) {
- if (getCoverBehaviorAtSide(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) return true;
+ //Configure Cover, sneak can also be: screwdriver, wrench, side cutter, soldering iron
+ if (aPlayer.isSneaking()) {
+ byte tSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) : aSide;
+ return (getCoverBehaviorAtSide(tSide).hasCoverGUI());
+ } else if (getCoverBehaviorAtSide(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) {
+ return true;
+ }
}
if (isServerSide()) {
ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem();
@@ -900,13 +912,15 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
return true;
}
- byte cSide = tSide;
- if (getCoverIDAtSide(aSide) != 0) cSide = aSide;
+ byte coverSide = aSide;
+ if (getCoverIDAtSide(aSide) == 0) coverSide = tSide;
- if (getCoverIDAtSide(cSide) == 0) {
+ if (getCoverIDAtSide(coverSide) == 0) {
if (GregTech_API.sCovers.containsKey(new GT_ItemStack(tCurrentItem))) {
- if (GregTech_API.getCoverBehavior(tCurrentItem).isCoverPlaceable(cSide, new GT_ItemStack(tCurrentItem), this) && mMetaTileEntity.allowCoverOnSide(cSide, new GT_ItemStack(tCurrentItem))) {
- setCoverItemAtSide(cSide, tCurrentItem);
+ if (GregTech_API.getCoverBehavior(tCurrentItem).isCoverPlaceable(coverSide, new GT_ItemStack(tCurrentItem), this) &&
+ mMetaTileEntity.allowCoverOnSide(coverSide, new GT_ItemStack(tCurrentItem)))
+ {
+ setCoverItemAtSide(coverSide, tCurrentItem);
if (!aPlayer.capabilities.isCreativeMode) tCurrentItem.stackSize--;
GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord);
}
@@ -916,12 +930,16 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCrowbarList)) {
if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) {
GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(0), 1.0F, -1, xCoord, yCoord, zCoord);
- dropCover(cSide, aSide, false);
+ dropCover(coverSide, aSide, false);
}
return true;
}
}
}
+ else if (aPlayer.isSneaking()) { //Sneak click, no tool -> open cover config or turn back.
+ aSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) : aSide;
+ return getCoverIDAtSide(aSide) > 0 && getCoverBehaviorAtSide(aSide).onCoverShiftRightclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer);
+ }
if (getCoverBehaviorAtSide(aSide).onCoverRightclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ))
return true;
@@ -931,7 +949,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
return false;
try {
- if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ);
+ if (!aPlayer.isSneaking() && hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);