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_Proxy.java3
-rw-r--r--main/java/gregtech/common/covers/GT_Cover_EUMeter.java53
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java5
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java33
4 files changed, 84 insertions, 10 deletions
diff --git a/main/java/gregtech/common/GT_Proxy.java b/main/java/gregtech/common/GT_Proxy.java
index 97edf9f6db..9260b2ce62 100644
--- a/main/java/gregtech/common/GT_Proxy.java
+++ b/main/java/gregtech/common/GT_Proxy.java
@@ -1825,6 +1825,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
}else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("appliedenergistics2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.CertusQuartz){
GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true);
+ }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("appliedenergistics2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.ChargedCertusQuartz){
+ GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
+ GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true);
}else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("appliedenergistics2")&&tOre.mPrefix==OrePrefixes.dust&&tOre.mMaterial==Materials.CertusQuartz){
GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false);
GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true);
diff --git a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java b/main/java/gregtech/common/covers/GT_Cover_EUMeter.java
index 68f19d9257..285fa4938c 100644
--- a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java
+++ b/main/java/gregtech/common/covers/GT_Cover_EUMeter.java
@@ -1,9 +1,18 @@
package gregtech.common.covers;
+import ic2.api.item.IElectricItem;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.ICoverable;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBatteryBuffer;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
+import gregtech.api.util.GT_BaseCrop;
import gregtech.api.util.GT_CoverBehavior;
+import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
public class GT_Cover_EUMeter
@@ -57,12 +66,46 @@ public class GT_Cover_EUMeter
aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15));
}
}
+ else if (aCoverVariable < 12)
+ {
+ tScale = aTileEntity.getEUCapacity();
+ long tStored = aTileEntity.getStoredEU();
+ if(aTileEntity instanceof IGregTechTileEntity){
+ IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aTileEntity;
+ IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity();
+ if(mTileEntity instanceof GT_MetaTileEntity_BasicBatteryBuffer){
+ GT_MetaTileEntity_BasicBatteryBuffer buffer = (GT_MetaTileEntity_BasicBatteryBuffer) mTileEntity;
+ if(buffer.mInventory!=null){
+ for(ItemStack aStack : buffer.mInventory){
+ if (GT_ModHandler.isElectricItem(aStack)) {
+
+ if(aStack.getItem() instanceof GT_MetaBase_Item){
+ Long[] stats = ((GT_MetaBase_Item)aStack.getItem()).getElectricStats(aStack);
+ if(stats!=null){
+ tScale = tScale + stats[0];
+ tStored = tStored + ((GT_MetaBase_Item)aStack.getItem()).getRealCharge(aStack);
+ }
+ }else if(aStack.getItem() instanceof IElectricItem){
+ tStored = tStored + (long)ic2.api.item.ElectricItem.manager.getCharge(aStack);
+ tScale = tScale + (long)((IElectricItem)aStack.getItem()).getMaxCharge(aStack);
+ }
+ }
+ }
+
+ }}}
+ tScale = tScale/15L;
+ if (tScale > 0L) {
+ aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(tStored / tScale) : (byte)(int)(15L - tStored / tScale));
+ } else {
+ aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15));
+ }
+ }
return aCoverVariable;
}
public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ)
{
- aCoverVariable = (aCoverVariable + 1) % 10;
+ aCoverVariable = (aCoverVariable + 1) % 12;
if (aCoverVariable == 0) {
GT_Utility.sendChatToPlayer(aPlayer, "Normal Universal Storage");
}
@@ -93,6 +136,12 @@ public class GT_Cover_EUMeter
if (aCoverVariable == 9) {
GT_Utility.sendChatToPlayer(aPlayer, "Inverted Average Electric Output");
}
+ if (aCoverVariable == 10) {
+ GT_Utility.sendChatToPlayer(aPlayer, "Normal Electricity Storage(Including Batterys)");
+ }
+ if (aCoverVariable == 11) {
+ GT_Utility.sendChatToPlayer(aPlayer, "Inverted Electricity Storage(Including Batterys)");
+ }
return aCoverVariable;
}
@@ -133,7 +182,7 @@ public class GT_Cover_EUMeter
public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
{
- return 5;
+ return 20;
}
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
index ef34923e27..d2ecf40a57 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
@@ -404,6 +404,11 @@ public boolean onRunningTick(ItemStack aStack) {
return false;
}
}
+ if(this.mEUStore<=0){
+ this.mLastRecipe=null;
+ stopMachine();
+ return false;
+ }
return true;
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
index fa9ee5e949..8096f48329 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
@@ -2,6 +2,9 @@ package gregtech.common.tileentities.machines.multi;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang3.ArrayUtils;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
@@ -101,6 +104,12 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl
return GT_Recipe.GT_Recipe_Map.sHammerRecipes;
}else if(tmp.startsWith("sifter")){
return GT_Recipe.GT_Recipe_Map.sSifterRecipes;
+ }else if(tmp.startsWith("extruder")){
+ return GT_Recipe.GT_Recipe_Map.sExtruderRecipes;
+ }else if(tmp.startsWith("laserengraver")){
+ return GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes;
+ }else if(tmp.startsWith("bender")){
+ return GT_Recipe.GT_Recipe_Map.sBenderRecipes;
}
return null;
}
@@ -176,13 +185,6 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl
for(;i<machines;i++){
if(!tRecipe.isRecipeInputEqual(true, tFluids, tInputs))break;
}
-// System.out.println("recipe:"+i+" "+tRecipe.mDuration+" "+tRecipe.mEUt);
-// if(tRecipe.mOutputs.length>0){
-// System.out.println(tRecipe.mOutputs[0].getUnlocalizedName());
-// }
-// if(tRecipe.mFluidOutputs.length>0){
-// System.out.println(tRecipe.mFluidOutputs[0].getUnlocalizedName());
-// }
if (tRecipe.mEUt <= 16)
{
this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
@@ -220,9 +222,24 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl
tFOut.amount = tSize * i;
}
this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ List<ItemStack> overStacks = new ArrayList<ItemStack>();
+ for(int f =0; f < tOut.length ; f++){
+ if(tOut[f].getMaxStackSize()<tOut[f].stackSize){
+ while(tOut[f].getMaxStackSize()<tOut[f].stackSize){
+ ItemStack tmp = tOut[f].copy();
+ tmp.stackSize = tmp.getMaxStackSize();
+ tOut[f].stackSize = tOut[f].stackSize - tOut[f].getMaxStackSize();
+ overStacks.add(tmp);
+ }
+ }
+ }
+ if(overStacks.size()>0){
+ ItemStack[] tmp = new ItemStack[overStacks.size()];
+ tmp = overStacks.toArray(tmp);
+ tOut = ArrayUtils.addAll(tOut, tmp);
+ }
this.mOutputItems = tOut;
this.mOutputFluids = new FluidStack[]{tFOut};
-// System.out.println("ArrayOut"+mOutputItems.length+" "+mOutputFluids.length+" "+(mOutputItems.length>0?mOutputItems[0].getUnlocalizedName():"")+" "+(mOutputFluids.length>0?mOutputFluids[0].getUnlocalizedName():" "));
updateSlots();
return true;
}