aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines/multi
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-08-02 17:34:54 +0900
committerGitHub <noreply@github.com>2022-08-02 10:34:54 +0200
commit50a5f9f5df5fc7d3690d9c8b3bfff67e69f4df73 (patch)
treefed6ac3684989ef619876e99159e5467caece595 /src/main/java/gregtech/common/tileentities/machines/multi
parent89bf9ba2b6fe2e7c8217f78389318ec5140be0c5 (diff)
downloadGT5-Unofficial-50a5f9f5df5fc7d3690d9c8b3bfff67e69f4df73.tar.gz
GT5-Unofficial-50a5f9f5df5fc7d3690d9c8b3bfff67e69f4df73.tar.bz2
GT5-Unofficial-50a5f9f5df5fc7d3690d9c8b3bfff67e69f4df73.zip
Fusion fixes (#1181)
* Allow storing `long` energy * Fix hardcoded voltage limit for searching recipe * Fix reactor might run without consuming energy * Fix weird charging rate limit
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines/multi')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
index c203e49346..e917f7b1a6 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
@@ -106,7 +106,7 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
}
};
public GT_Recipe mLastRecipe;
- public int mEUStore;
+ public long mEUStore;
static {
Textures.BlockIcons.setCasingTextureForId(52,
@@ -280,9 +280,9 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]);
GT_Recipe tRecipe;
- tRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids);
+ tRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[tier()], tFluids);
if (tRecipe == null) {
- tRecipe = GT_Recipe.GT_Recipe_Map.sComplexFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids);
+ tRecipe = GT_Recipe.GT_Recipe_Map.sComplexFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[tier()], tFluids);
}
if ((tRecipe == null && !mRunningOnLoad) || (maxEUStore() < tRecipe.mSpecialValue)) {
@@ -331,7 +331,7 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
if (mEfficiency < 0)
mEfficiency = 0;
if (mRunningOnLoad && checkMachine(aBaseMetaTileEntity, mInventory[1])) {
- this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU();
+ this.mEUStore = aBaseMetaTileEntity.getStoredEU();
checkRecipe(mInventory[1]);
}
if (--mUpdate == 0 || --mStartUpCheck == 0) {
@@ -339,12 +339,14 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
}
if (mStartUpCheck < 0) {
if (mMachine) {
+ this.mEUStore = aBaseMetaTileEntity.getStoredEU();
if (this.mEnergyHatches != null) {
for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches)
if (isValidMetaTileEntity(tHatch)) {
- if (aBaseMetaTileEntity.getStoredEU() + (2048 * tierOverclock()) < maxEUStore()
- && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(2048 * tierOverclock(), false)) {
- aBaseMetaTileEntity.increaseStoredEnergyUnits(2048 * tierOverclock(), true);
+ long energyToMove = GT_Values.V[tier()] / 16;
+ if (aBaseMetaTileEntity.getStoredEU() + energyToMove < maxEUStore()
+ && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(energyToMove, false)) {
+ aBaseMetaTileEntity.increaseStoredEnergyUnits(energyToMove, true);
}
}
}
@@ -369,7 +371,7 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
} catch (Exception ignored) {
}
}
- this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU();
+ this.mEUStore = aBaseMetaTileEntity.getStoredEU();
if (aBaseMetaTileEntity.isAllowedToWork())
checkRecipe(mInventory[1]);
}
@@ -377,7 +379,7 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) {
turnCasingActive(mMaxProgresstime > 0);
if (aBaseMetaTileEntity.isAllowedToWork()) {
- this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU();
+ this.mEUStore = aBaseMetaTileEntity.getStoredEU();
if (checkRecipe(mInventory[1])) {
if (this.mEUStore < this.mLastRecipe.mSpecialValue - this.mEUt) {
criticalStopMachine();