aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'main/java/gregtech/common')
-rw-r--r--main/java/gregtech/common/GT_RecipeAdder.java18
-rw-r--r--main/java/gregtech/common/GT_ThaumcraftCompat.java8
-rw-r--r--main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java2
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java5
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java15
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java63
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java51
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java59
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java51
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java78
10 files changed, 200 insertions, 150 deletions
diff --git a/main/java/gregtech/common/GT_RecipeAdder.java b/main/java/gregtech/common/GT_RecipeAdder.java
index 64b1625b89..719d517b6c 100644
--- a/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/main/java/gregtech/common/GT_RecipeAdder.java
@@ -669,6 +669,24 @@ public class GT_RecipeAdder
}
return false;
}
+
+ public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt)
+ {
+ if ((aInput == null) || (aOutputs == null)||aFluidInput==null) {
+ return false;
+ }
+ for (ItemStack tStack : aOutputs) {
+ if (tStack != null)
+ {
+ if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) {
+ return false;
+ }
+ GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[]{aFluidOutput}, Math.max(1, aDuration), Math.max(1, aEUt), 0);
+ return true;
+ }
+ }
+ return false;
+ }
public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt)
{
diff --git a/main/java/gregtech/common/GT_ThaumcraftCompat.java b/main/java/gregtech/common/GT_ThaumcraftCompat.java
index e850c0264c..aa00217020 100644
--- a/main/java/gregtech/common/GT_ThaumcraftCompat.java
+++ b/main/java/gregtech/common/GT_ThaumcraftCompat.java
@@ -199,6 +199,14 @@ public class GT_ThaumcraftCompat
return ThaumcraftApi.addCrucibleRecipe(aResearch, GT_Utility.copy(new Object[] { aOutput }), ((aInput instanceof ItemStack)) || ((aInput instanceof ArrayList)) ? aInput : aInput.toString(), getAspectList(aAspects));
}
+ public Object addInfusionRecipe(String aResearch, ItemStack aMainInput,ItemStack[] aSideInputs, ItemStack aOutput,int aInstability, List<TC_Aspects.TC_AspectStack> aAspects)
+ {
+ if ((GT_Utility.isStringInvalid(aResearch)) || (aMainInput == null)|| (aSideInputs==null) || (aOutput == null) || (aAspects == null) || (aAspects.isEmpty())) {
+ return null;
+ }
+ return ThaumcraftApi.addInfusionCraftingRecipe(aResearch, GT_Utility.copy(new Object[] { aOutput }), aInstability, getAspectList(aAspects), aMainInput, aSideInputs);
+ }
+
public boolean registerThaumcraftAspectsToItem(ItemStack aExampleStack, List<TC_Aspects.TC_AspectStack> aAspects, String aOreDict)
{
if (aAspects.isEmpty()) {
diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java b/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java
index 3550fffd4b..c6f588a34f 100644
--- a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java
+++ b/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java
@@ -31,7 +31,7 @@ public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machi
}
}
if(this.mContainer!=null){
- fontRendererObj.drawString(GT_Utility.formatNumbers(this.mContainer.mEnergy)+" EU", 50, 155, 0x00b0b000);
+ fontRendererObj.drawString(GT_Utility.formatNumbers(this.mContainer.mEnergy)+" EU", 50, 155, 0x00ff0000);
}
}
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java
index c48a2793bf..632cdcbd6f 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java
@@ -16,6 +16,7 @@ import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
+import scala.actors.threadpool.Arrays;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
@@ -152,6 +153,10 @@ public class GT_MetaTileEntity_DistillationTower
tmpHatches[hatchNumber]=this.mOutputHatches.get(i);
}else{return false;}
}
+ this.mOutputHatches.clear();
+ for(int i=0;i< tmpHatches.length;i++){
+ this.mOutputHatches.add(tmpHatches[i]);
+ }
return tAmount >= 26;
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
index 89b8c29e69..4443db4bf0 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
@@ -5,6 +5,7 @@ import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
@@ -43,6 +44,16 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc
{
return new String[] { "Controller Block for the Heat Exchanger", "Size: 3x3x4", "Controller (front middle at bottom)", "3x3x4 of Stable Titanium Casing (hollow, Min 24!)", "2 Titanium Pipe Casing Blocks inside the Hollow Casing", "1x Distillated Water Input (one of the Casings)","min 1 Steam Output (one of the Casings)", "1x Maintenance Hatch (one of the Casings)", "1x Hot Fluid Input (botton Center)", "1x Cold Fluid Output (top Center)" };
}
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ superheated = aNBT.getBoolean("superheated");
+ super.loadNBTData(aNBT);}
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setBoolean("superheated", superheated);
+ super.saveNBTData(aNBT);}
public GT_MetaTileEntity_Hatch_Input mInputHotFluidHatch;
public GT_MetaTileEntity_Hatch_Output mOutputColdFluidHatch;
@@ -111,7 +122,7 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc
}
public boolean onRunningTick(ItemStack aStack)
- {
+ {
if (this.mEUt > 0)
{
int tGeneratedEU = (int)(this.mEUt * 2L * this.mEfficiency / 10000L);
@@ -238,7 +249,7 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc
public int getPollutionPerTick(ItemStack aStack)
{
- return 10;
+ return 0;
}
public int getDamageToComponent(ItemStack aStack)
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
index 435d9feaf8..461bf159b5 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
@@ -34,8 +35,6 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
protected int baseEff=0;
protected int optFlow=0;
protected int counter=0;
- @Override
- public abstract boolean checkRecipe(ItemStack aStack);
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
@@ -111,6 +110,61 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
return ((addMaintenanceToMachineList(tTileEntity, getCasingTextureIndex())) || (addInputToMachineList(tTileEntity, getCasingTextureIndex())) || (addOutputToMachineList(tTileEntity, getCasingTextureIndex()))|| (addMufflerToMachineList(tTileEntity, getCasingTextureIndex())));
}
+ private int[] mLastTicks = new int[256];
+ private int mCurrentTick;
+ private long mOverall;
+
+ public int getAverage(int aCurrent){
+ ++mCurrentTick;
+ mCurrentTick = mCurrentTick % 256;
+ mOverall = mOverall - mLastTicks[mCurrentTick];
+ mOverall = mOverall + aCurrent;
+ mLastTicks[mCurrentTick] = aCurrent;
+ return (int) (mOverall/256);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ aNBT.setLong("mOverall", mOverall);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ mOverall = aNBT.getLong("mOverall");
+ mOverall = mOverall - mOverall%256;
+ int tAverage = (int) (mOverall <<7);
+ for(int i = 0;i<256;i++){
+ mLastTicks[i]=tAverage;
+ }
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ ArrayList<FluidStack> tFluids = getStoredFluids();
+ if (tFluids.size()>0){
+ if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
+ counter = 0;
+ baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
+ optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
+ }else{
+ counter++;}}
+ this.mEUt = fluidIntoPower(tFluids, optFlow, baseEff);
+ this.mMaxProgresstime = 1;
+ this.mEfficiencyIncrease = (10);
+ if(mEUt<=0){
+ mEfficiency=0;
+ mOverall=0;
+ mLastTicks = new int[256];
+ stopMachine();
+ return false;
+ }else{
+ return true;}
+ }
+
+ abstract int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff);
+
@Override
public int getDamageToComponent(ItemStack aStack) {
return 1;
@@ -126,10 +180,7 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
}
return 0;
}
-
-
- @Override
- public int getPollutionPerTick(ItemStack aStack) {return 0;}
+
@Override
public int getAmountOfOutputs() {return 0;}
@Override
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
index 8a4014fea0..010f05a08b 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
@@ -42,36 +42,6 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT
"Needs a Turbine Item (inside controller GUI)"};
}
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if(this.mMufflerHatches.size()==0){
- return false;
- }
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- }
- int tEU=0;
- for(int i=0;i<steams.size();i++){
- int fuelValue = getFuelValue(steams.get(i));
- if(fuelValue>0&&depleteInput(new FluidStack(steams.get(i),optFlow/(fuelValue*2)))){
- tEU += optFlow/2;}
- }
- this.mEUt = baseEff*tEU/10000;
- this.mMaxProgresstime = 1;
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
-
public int getFuelValue(FluidStack aLiquid) {
if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0;
FluidStack tLiquid;
@@ -94,6 +64,27 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 10;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ int tOptFlow = aOptFlow;
+ boolean b = false;
+ for(int i=0;i<aFluids.size();i++){
+ int fuelValue = getFuelValue(aFluids.get(i));
+ if(fuelValue>0&&depleteInput(new FluidStack(aFluids.get(i),Math.max(tOptFlow/(fuelValue*2),1)))){
+ tEU += tOptFlow/2;}
+ }
+ if(tEU>0)b=true;
+ tEU = getAverage(tEU);
+ if(b&&tEU<=0)tEU=3;
+ return tEU * aBaseEff / 10000;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
index 48bd34bf0c..4acae119df 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
@@ -36,42 +36,6 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (inside controller GUI)" };
}
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- }
- int tEU=0;
- int distOut=0;
- for(int i=0;i<steams.size();i++){
- if(steams.get(i).getFluid().getUnlocalizedName(steams.get(i)).equals("ic2.fluidSuperheatedSteam")){
- int out = Math.min((int)(optFlow*1.5f),steams.get(i).amount);
- depleteInput(new FluidStack(steams.get(i),out));
- distOut += out;
- tEU += steams.get(i).amount;
- }
- }
- if(tEU<optFlow/10){tEU=0;}
- if(tEU>optFlow) {tEU = optFlow;}
- float tEff = tEU/(optFlow);
- this.mEUt = (int) (tEff*tEU*baseEff/10000);
- this.mMaxProgresstime = 1;
-// System.out.println("Eff: "+baseEff+" optFlow: "+optFlow+" tEff: "+tEff+" eut: "+mEUt+" out: "+distOut);
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- addOutput(GT_ModHandler.getSteam(distOut));
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
@Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_HPSteam(mName);}
@@ -87,6 +51,29 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ for(int i=0;i<aFluids.size();i++){
+ if(aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("ic2.fluidSuperheatedSteam")){
+ tOut = Math.min((int)(aOptFlow*1.5f),aFluids.get(i).amount);
+ depleteInput(new FluidStack(aFluids.get(i),tOut));
+ }
+ }
+ tOut = getAverage(tOut);
+ tEU = Math.min(aOptFlow,tOut);
+ addOutput(GT_ModHandler.getSteam(tOut));
+ if(tOut>0&&tOut<aOptFlow){
+ tEU = tEU*(tOut*100/aOptFlow)+3;
+ }
+ return tEU * aBaseEff / 10000;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
index 25ec018e52..b1916b432f 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
@@ -40,35 +40,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (inside controller GUI)" };
}
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- optFlow *=40;
- }
- int tEU=0;
- for(int i=0;i<steams.size();i++){
- int fuelValue = getFuelValue(steams.get(i));
- if(fuelValue>0&&depleteInput(new FluidStack(steams.get(i),Math.max(optFlow/(fuelValue*2),1)))){
- tEU += optFlow/2;}
- }
- this.mEUt = baseEff*tEU/10000;
- this.mMaxProgresstime = 1;
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
-
+
public int getFuelValue(FluidStack aLiquid) {
if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0;
FluidStack tLiquid;
@@ -91,6 +63,27 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ int tOptFlow = aOptFlow * 40;
+ boolean b = false;
+ for(int i=0;i<aFluids.size();i++){
+ int fuelValue = getFuelValue(aFluids.get(i));
+ if(fuelValue>0&&depleteInput(new FluidStack(aFluids.get(i),Math.max(tOptFlow/(fuelValue*2),1)))){
+ tEU += tOptFlow/2;}
+ }
+ if(tEU>0)b=true;
+ tEU = getAverage(tEU);
+ if(b&&tEU<=0)tEU=3;
+ return tEU * aBaseEff / 10000;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
index e43070333a..19a7f6bad2 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
@@ -35,52 +35,7 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg
"1x Maintenance Hatch (side centered)",
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (inside controller GUI)" };
- }
-
- private float water;
- private int useWater(float input){
- water = water + input;
- int usage = (int)water;
- water = water - (int)usage;
- return usage;
- }
-
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- }
- int tEU=0;
- float distOut=0;
- for(int i=0;i<steams.size();i++){
- if(steams.get(i).getFluid().getUnlocalizedName(steams.get(i)).equals("fluid.steam")||steams.get(i).getFluid().getUnlocalizedName(steams.get(i)).equals("ic2.fluidSteam")){
- float out = Math.min((int)(optFlow*1.5f),steams.get(i).amount);
- depleteInput(new FluidStack(steams.get(i),(int)out));
- distOut += out/160;
- tEU += steams.get(i).amount/2;
- }
- }
- if(tEU<optFlow/20){tEU=0;}
- if(tEU>optFlow/2) {tEU = optFlow/2;}
- float tEff = tEU/(optFlow/2);
- this.mEUt = (int) (tEff*tEU*baseEff/10000);
- this.mMaxProgresstime = 1;
-// System.out.println("Eff: "+baseEff+" optFlow: "+optFlow+" tEff: "+tEff+" eut: "+mEUt+" out: "+distOut);
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- addOutput(GT_ModHandler.getDistilledWater(useWater(distOut)));
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
+ }
@Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Steam(mName);}
@@ -96,6 +51,37 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ private float water;
+ private int useWater(float input){
+ water = water + input;
+ int usage = (int)water;
+ water = water - (int)usage;
+ return usage;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ for(int i=0;i<aFluids.size();i++){
+ if(aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("fluid.steam")||aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("ic2.fluidSteam")){
+ tOut = Math.min((int)(aOptFlow*1.5f),aFluids.get(i).amount);
+ depleteInput(new FluidStack(aFluids.get(i), tOut));
+ }
+ }
+ tOut = getAverage(tOut);
+ tEU = Math.min(aOptFlow,tOut);
+ addOutput(GT_ModHandler.getDistilledWater(useWater(tOut/160.0f)));
+ if(tOut>0&&tOut<aOptFlow){
+ tEU = tEU*(tOut*100/aOptFlow)+3;
+ }
+ return tEU * aBaseEff / 20000;
+ }
}