diff options
author | Blood-Asp <Blood@Asp> | 2015-08-02 13:00:23 +0200 |
---|---|---|
committer | Blood-Asp <Blood@Asp> | 2015-08-02 13:00:23 +0200 |
commit | c71e7473d6fa42abee3db76371c16e433b133f7a (patch) | |
tree | 6a386f62dc1450ae8d47b37461da74ac17fe6f4f /main/java/gregtech/common/tileentities/machines | |
parent | 080a4c21172a4015418b92bac9f70332a4a1cf75 (diff) | |
download | GT5-Unofficial-c71e7473d6fa42abee3db76371c16e433b133f7a.tar.gz GT5-Unofficial-c71e7473d6fa42abee3db76371c16e433b133f7a.tar.bz2 GT5-Unofficial-c71e7473d6fa42abee3db76371c16e433b133f7a.zip |
Update 5.08.26
Diffstat (limited to 'main/java/gregtech/common/tileentities/machines')
7 files changed, 173 insertions, 149 deletions
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; + } } |