aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2022-02-09 18:39:02 +0800
committerGlodBlock <1356392126@qq.com>2022-02-09 18:39:02 +0800
commit54ace7e45a23591ec714ac263e83af2b73abfa7a (patch)
tree211c8e2a283306bf5df0e981e489d3152a26d8bc
parent0fe3dfecab732e937016845074c85410631df85c (diff)
downloadGT5-Unofficial-54ace7e45a23591ec714ac263e83af2b73abfa7a.tar.gz
GT5-Unofficial-54ace7e45a23591ec714ac263e83af2b73abfa7a.tar.bz2
GT5-Unofficial-54ace7e45a23591ec714ac263e83af2b73abfa7a.zip
fix essentia dupe
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java b/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java
index c8a4b1c713..ecd4f87ed8 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java
@@ -122,14 +122,23 @@ public class EssentiaHatch extends TileEntity implements IAspectContainer, IEsse
@Override
public boolean doesContainerAccept(Aspect aspect) {
- return mLocked == null || mLocked.equals(aspect);
+ int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect);
+ if (type != -1 && (mState & (1 << type)) == 0) return false;
+ return (mLocked == null || mLocked.equals(aspect)) && getEssentiaAmount(null) <= 1000;
}
@Override
public int addToContainer(Aspect aspect, int i) {
- current.add(aspect, i);
+ int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect);
+ if (type != -1 && (mState & (1 << type)) == 0) return i;
+ int ready = Math.min(1000 - getEssentiaAmount(null), i);
+ if ((mLocked == null || mLocked.equals(aspect)) && ready > 0) {
+ current.add(aspect, ready);
+ this.markDirty();
+ return i - ready;
+ }
this.markDirty();
- return 0;
+ return i;
}
@Override
@@ -195,12 +204,12 @@ public class EssentiaHatch extends TileEntity implements IAspectContainer, IEsse
@Override
public int addEssentia(Aspect aspect, int i, ForgeDirection forgeDirection) {
- current.add(aspect, i);
- return 0;
+ return i - addToContainer(aspect, i);
}
@Override
public Aspect getEssentiaType(ForgeDirection forgeDirection) {
+ if (current == null || current.size() < 1) return null;
return current.getAspects()[0];
}