aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java136
1 files changed, 101 insertions, 35 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java
index 96cb21d84a..a3a62aa7d5 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java
@@ -10,8 +10,11 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.CustomRecipeMap;
import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
+import gregtech.api.util.Recipe_GT;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
@@ -67,7 +70,62 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc
@Override
public boolean checkRecipe(final ItemStack aStack) {
-
+
+ ArrayList<FluidStack> tFluidList = getStoredFluids();
+ for (int i = 0; i < tFluidList.size() - 1; i++) {
+ for (int j = i + 1; j < tFluidList.size(); j++) {
+ if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) {
+ if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) {
+ tFluidList.remove(j--);
+ } else {
+ tFluidList.remove(i--);
+ break;
+ }
+ }
+ }
+ }
+
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+ FluidStack[] tFluids = tFluidList.toArray(new FluidStack[tFluidList.size()]);
+ if (tFluids.length > 0) {
+ Utils.LOG_INFO("Good Recipe. [1]");
+ for(int i = 0;i<tFluids.length;i++){
+ Utils.LOG_INFO("Good Recipe. [1-"+i+"]");
+ GT_Recipe tRecipe = CustomRecipeMap.sFissionFuelProcessing.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tFluids[i]}, new ItemStack[]{});
+ if (tRecipe != null) {
+ Utils.LOG_INFO("Good Recipe. [2]");
+ if (tRecipe.isRecipeInputEqual(true, tFluids, new ItemStack[]{})) {
+ Utils.LOG_INFO("Good Recipe. [3]");
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+ if (tRecipe.mEUt <= 16) {
+ this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
+ this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1));
+ } else {
+ this.mEUt = tRecipe.mEUt;
+ this.mMaxProgresstime = tRecipe.mDuration;
+ while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) {
+ this.mEUt *= 4;
+ this.mMaxProgresstime /= 2;
+ }
+ }
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+ this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0)};
+ this.mOutputFluids = tRecipe.mFluidOutputs.clone();
+ updateSlots();
+ return true;
+ }
+ }
+ else {
+ Utils.LOG_INFO("Could not find valid Recipe. [1]");
+ }
+ }
+ }
+ Utils.LOG_INFO("Bad Recipe. [1]");
return false;
}
@@ -83,55 +141,68 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc
if ((!this.addToMachineList(tTileEntity, TAE.GTPP_INDEX(18))) && (!this.addEnergyInputToMachineList(tTileEntity, TAE.GTPP_INDEX(18)))) {
if (aBaseMetaTileEntity.getBlockOffset(xDir + i, Y, zDir + j) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.");
+ Utils.LOG_INFO("1 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName());
return false;
}
if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, Y, zDir + j) != 2) {
- Utils.LOG_INFO("Wrong Meta 1.");
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName()+" | Expected Meta 2 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, Y, zDir));
return false;
}
}
else {
- Utils.LOG_INFO("Added Hatch. "+tTileEntity.getInventoryName());
+ //Utils.LOG_INFO("Added Hatch. "+tTileEntity.getInventoryName());
}
}
Y = 1;
- Utils.LOG_INFO("Checking at Y+1 as well.");
+ //Utils.LOG_INFO("Checking at Y+1 as well.");
final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, Y, zDir + j);
if ((!this.addToMachineList(tTileEntity2, TAE.GTPP_INDEX(18))) && (!this.addEnergyInputToMachineList(tTileEntity2, TAE.GTPP_INDEX(18)))) {
if (aBaseMetaTileEntity.getBlockOffset(xDir + i, Y, zDir + j) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.");
+ Utils.LOG_INFO("2 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName());
return false;
}
if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, Y, zDir + j) != 2) {
- Utils.LOG_INFO("Wrong Meta 1.");
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName()+" | Expected Meta 2 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, Y, zDir));
return false;
}
}
else {
- Utils.LOG_INFO("Added Hatch. "+tTileEntity2.getInventoryName());
+ //Utils.LOG_INFO("Added Hatch. "+tTileEntity2.getInventoryName());
}
}
}
- for (int y = 2; y < 6; y++) {
- if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir) != ModBlocks.blockCasings2Misc) { //Must Define meta for center blocks
- Utils.LOG_INFO("Wrong Block.");
- return false;
+ for (int y = 2; y < 7; y++) {
+ if (y<=6){
+ if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir) != ModBlocks.blockCasings2Misc) { //Must Define meta for center blocks
+ Utils.LOG_INFO("3 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName());
+ return false;
+ }
+ if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir) != 3) {
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 3 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir));
+ return false;
+ }
}
- if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir) != 3) {
- Utils.LOG_INFO("Wrong Meta. 2");
- return false;
+ if (y==6){
+ if (aBaseMetaTileEntity.getBlockOffset(xDir, y + 1, zDir) != ModBlocks.blockCasings2Misc) {
+ Utils.LOG_INFO("8 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y+1, zDir).getLocalizedName()+" | "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y+1, zDir));
+ return false;
+ }
+ if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y + 1, zDir) != 1) {
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y+1, zDir).getLocalizedName()+" | Expected Meta 1 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y + 1, zDir));
+ return false;
+ }
}
if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.1");
+ //Utils.LOG_INFO("4 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName());
if (y==3){
if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) {
if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) {
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir));
return false;
}
- Utils.LOG_INFO("Found Zeron-Casing.");
+ Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y));
}
}
else {
@@ -141,13 +212,14 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc
}
if (aBaseMetaTileEntity.getBlockOffset(xDir - 1, y, zDir) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.2");
+ //Utils.LOG_INFO("5 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName());
if (y==3){
if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) {
if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) {
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir));
return false;
}
- Utils.LOG_INFO("Found Zeron-Casing.");
+ Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y));
}
}
else {
@@ -157,13 +229,14 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc
}
if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir + 1) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.3");
+ //Utils.LOG_INFO("6 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName());
if (y==3){
if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) {
if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) {
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir));
return false;
}
- Utils.LOG_INFO("Found Zeron-Casing.");
+ Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y));
}
}
else {
@@ -172,33 +245,26 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc
}
}
if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir - 1) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.4");
+ //Utils.LOG_INFO("7 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName());
if (y==3){
if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) {
if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) {
+ Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir));
return false;
}
- Utils.LOG_INFO("Found Zeron-Casing.");
+ Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y));
}
}
else {
Utils.LOG_INFO("debug.4");
return false;
}
- }
- if (aBaseMetaTileEntity.getBlockOffset(xDir, y + 3, zDir) != ModBlocks.blockCasings2Misc) {
- Utils.LOG_INFO("Wrong Block.5");
- return false;
- }
- if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y + 3, zDir) != 3) {
- Utils.LOG_INFO("Wrong Meta. 3");
- return false;
- }
+ }
}
if ((this.mInputHatches.size() != 4) || (this.mOutputHatches.size() != 2) ||
(this.mOutputBusses.size() != 1) || (this.mMufflerHatches.size() != 1) ||
- (this.mMaintenanceHatches.size() != 2) || (this.mEnergyHatches.size() < 1)){
+ (this.mMaintenanceHatches.size() != 2) || (this.mEnergyHatches.size() != 1)){
Utils.LOG_INFO("Wrong Hatch count.");
return false;
}
@@ -206,8 +272,8 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc
if (this.mMufflerHatches.get(0).mTier < 7){
Utils.LOG_INFO("Your Muffler must be AT LEAST ZPM tier or higher.");
}
- }
- Utils.LOG_INFO("Multiblock Formed.");
+ }
+ Utils.LOG_INFO("Fission Fuel Production Plant Formed.");
return true;
}