aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java39
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java676
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java63
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java48
5 files changed, 487 insertions, 345 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index 3878583b60..9aff009ec5 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -7,6 +7,7 @@ import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.gui.GT_Container_MultiMachine;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.IToolStats;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords;
@@ -30,6 +31,7 @@ import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.preloader.CORE_Preloader;
import gtPlusPlus.preloader.asm.AsmConfig;
@@ -51,6 +53,8 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
import org.apache.commons.lang3.ArrayUtils;
import java.lang.reflect.InvocationTargetException;
@@ -2392,20 +2396,43 @@ public abstract class GregtechMeta_MultiBlockBase<T extends GT_MetaTileEntity_En
@Override
public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX,
float aY, float aZ) {
- //Do Super
- boolean aSuper = super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);
// Do Things
if (this.getBaseMetaTileEntity().isServerSide()) {
+ //Logger.INFO("Right Clicked Controller.");
ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem();
- if (tCurrentItem != null) {
- if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)) {
-
- }
+ if (tCurrentItem != null) {
+ //Logger.INFO("Holding Item.");
+ if (tCurrentItem.getItem() instanceof GT_MetaGenerated_Tool) {
+ //Logger.INFO("Is GT_MetaGenerated_Tool.");
+ int[] aOreID = OreDictionary.getOreIDs(tCurrentItem);
+ for (int id : aOreID) {
+ // Plunger
+ if (OreDictionary.getOreName(id).equals("craftingToolPlunger")) {
+ //Logger.INFO("Is Plunger.");
+ return onPlungerRightClick(aPlayer, aSide, aX, aY, aZ);
+ }
+ }
+ }
}
}
+ //Do Super
+ boolean aSuper = super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);
return aSuper;
}
+ public boolean onPlungerRightClick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
+ int aHatchIndex = 0;
+ PlayerUtils.messagePlayer(aPlayer, "Trying to clear "+mOutputHatches.size()+" output hatches.");
+ for (GT_MetaTileEntity_Hatch_Output hatch : this.mOutputHatches) {
+ if (hatch.mFluid != null) {
+ PlayerUtils.messagePlayer(aPlayer, "Clearing "+hatch.mFluid.amount+"L of "+hatch.mFluid.getLocalizedName()+" from hatch "+aHatchIndex+".");
+ hatch.mFluid = null;
+ }
+ aHatchIndex++;
+ }
+ return aHatchIndex > 0;
+ }
+
@Override
public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
boolean tSuper = super.onSolderingToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java
index 57c5aab480..a75b148442 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java
@@ -30,286 +30,414 @@ import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.GasSpargingRecipe;
import gregtech.api.util.GasSpargingRecipeMap;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.minecraft.MaterialUtils;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.core.util.minecraft.RecipeUtils;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
-public class GregtechMetaTileEntity_SpargeTower extends GT_MetaTileEntity_EnhancedMultiBlockBase<GregtechMetaTileEntity_SpargeTower> {
-
- protected static final String STRUCTURE_PIECE_BASE = "base";
- protected static final String STRUCTURE_PIECE_LAYER = "layer";
- protected static final String STRUCTURE_PIECE_LAYER_HINT = "layerHint";
- protected static final String STRUCTURE_PIECE_TOP_HINT = "topHint";
- private static final IStructureDefinition<GregtechMetaTileEntity_SpargeTower> STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntity_SpargeTower>builder()
- .addShape(STRUCTURE_PIECE_BASE, transpose(new String[][]{
- {"b~b", "bbb", "bbb"},
- }))
- .addShape(STRUCTURE_PIECE_LAYER, transpose(new String[][]{
- {"lll", "lcl", "lll"}
- }))
- .addShape(STRUCTURE_PIECE_LAYER_HINT, transpose(new String[][]{
- {"lll", "l-l", "lll"}
- }))
- .addShape(STRUCTURE_PIECE_TOP_HINT, transpose(new String[][]{
- {"lll", "lll", "lll"}
- }))
- .addElement('b', ofChain(
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addEnergyInputToMachineList, getCasingIndex(), 1),
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addOutputToMachineList, getCasingIndex(), 1),
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addInputToMachineList, getCasingIndex(), 1),
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addMaintenanceToMachineList, getCasingIndex(), 1),
- onElementPass(GregtechMetaTileEntity_SpargeTower::onCasingFound, ofBlock(ModBlocks.blockCasings5Misc, 4))
- ))
- .addElement('l', ofChain(
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addEnergyInputToMachineList, getCasingIndex(), 2),
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addLayerOutputHatch, getCasingIndex(), 2),
- ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addMaintenanceToMachineList, getCasingIndex(), 2),
- onElementPass(GregtechMetaTileEntity_SpargeTower::onCasingFound, ofBlock(ModBlocks.blockCasings5Misc, 4))
- ))
- .addElement('c', ofChain(
- onElementPass(t -> t.onTopLayerFound(false), ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addOutputToMachineList, getCasingIndex(), 3)),
- onElementPass(t -> t.onTopLayerFound(false), ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addMaintenanceToMachineList, getCasingIndex(), 3)),
- onElementPass(t -> t.onTopLayerFound(true), ofBlock(ModBlocks.blockCasings5Misc, 4)),
- isAir()
- ))
- .build();
-
- protected final List<List<GT_MetaTileEntity_Hatch_Output>> mOutputHatchesByLayer = new ArrayList<>();
- protected int mHeight;
- protected int mCasing;
- protected boolean mTopLayerFound;
-
- public GregtechMetaTileEntity_SpargeTower(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- public GregtechMetaTileEntity_SpargeTower(String aName) {
- super(aName);
- }
-
- public static int getCasingIndex() {
- return 68;
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GregtechMetaTileEntity_SpargeTower(this.mName);
- }
-
- @Override
- protected GT_Multiblock_Tooltip_Builder createTooltip() {
- final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
- tt.addMachineType("Gas Sparge Tower")
- .addInfo("Controller block for the Sparging Tower")
- .addInfo("Fluids are only put out at the correct height")
- .addInfo("The correct height equals the slot number in the NEI recipe")
- .addSeparator()
- .beginVariableStructureBlock(3, 3, 7, 7, 3, 3, true)
- .addController("Front bottom")
- .addOtherStructurePart("Sparge Tower Exterior Casing", "45 (minimum)")
- .addEnergyHatch("Any casing", 1, 2)
- .addMaintenanceHatch("Any casing", 1, 2, 3)
- .addInputHatch("Any bottom layer casing", 1)
- .addOutputHatch("6x Output Hatches (At least one per layer except bottom layer)", 2, 3)
- .toolTipFinisher(CORE.GT_Tooltip_Builder);
- return tt;
- }
-
- @Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- if (aSide == aFacing) {
- if (aActive)
- return new ITexture[]{
- BlockIcons.getCasingTextureForId(getCasingIndex()),
- TextureFactory.builder().addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced_Active).extFacing().build()};
- return new ITexture[]{
- BlockIcons.getCasingTextureForId(getCasingIndex()),
- TextureFactory.builder().addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced).extFacing().build()};
- }
- return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(getCasingIndex())};
- }
-
- @Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "DistillationTower.png");
- }
-
- @Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- if (GTPP_Recipe_Map.sSpargeTowerRecipes.mRecipeList.isEmpty()) {
- generateRecipes();
- }
+public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_SpargeTower> {
+
+ protected static final String STRUCTURE_PIECE_BASE = "base";
+ protected static final String STRUCTURE_PIECE_LAYER = "layer";
+ protected static final String STRUCTURE_PIECE_LAYER_HINT = "layerHint";
+ protected static final String STRUCTURE_PIECE_TOP_HINT = "topHint";
+ private static final IStructureDefinition<GregtechMetaTileEntity_SpargeTower> STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntity_SpargeTower>builder()
+ .addShape(STRUCTURE_PIECE_BASE, transpose(new String[][]{
+ {"b~b", "bbb", "bbb"},
+ }))
+ .addShape(STRUCTURE_PIECE_LAYER, transpose(new String[][]{
+ {"lll", "lcl", "lll"}
+ }))
+ .addShape(STRUCTURE_PIECE_LAYER_HINT, transpose(new String[][]{
+ {"lll", "l-l", "lll"}
+ }))
+ .addShape(STRUCTURE_PIECE_TOP_HINT, transpose(new String[][]{
+ {"lll", "lll", "lll"}
+ }))
+ .addElement('b', ofChain(
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addEnergyInputToMachineList, getCasingIndex(), 1),
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addOutputToMachineList, getCasingIndex(), 1),
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addInputToMachineList, getCasingIndex(), 1),
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addMaintenanceToMachineList, getCasingIndex(), 1),
+ onElementPass(GregtechMetaTileEntity_SpargeTower::onCasingFound, ofBlock(ModBlocks.blockCasings5Misc, 4))
+ ))
+ .addElement('l', ofChain(
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addEnergyInputToMachineList, getCasingIndex(), 2),
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addLayerOutputHatch, getCasingIndex(), 2),
+ ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addMaintenanceToMachineList, getCasingIndex(), 2),
+ onElementPass(GregtechMetaTileEntity_SpargeTower::onCasingFound, ofBlock(ModBlocks.blockCasings5Misc, 4))
+ ))
+ .addElement('c', ofChain(
+ onElementPass(t -> t.onTopLayerFound(false), ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addOutputToMachineList, getCasingIndex(), 3)),
+ onElementPass(t -> t.onTopLayerFound(false), ofHatchAdder(GregtechMetaTileEntity_SpargeTower::addMaintenanceToMachineList, getCasingIndex(), 3)),
+ onElementPass(t -> t.onTopLayerFound(true), ofBlock(ModBlocks.blockCasings5Misc, 4)),
+ isAir()
+ ))
+ .build();
+
+ protected final List<List<GT_MetaTileEntity_Hatch_Output>> mOutputHatchesByLayer = new ArrayList<>();
+ protected int mHeight;
+ protected int mCasing;
+ protected boolean mTopLayerFound;
+
+ public GregtechMetaTileEntity_SpargeTower(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GregtechMetaTileEntity_SpargeTower(String aName) {
+ super(aName);
+ }
+
+ public static int getCasingIndex() {
+ return 68;
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GregtechMetaTileEntity_SpargeTower(this.mName);
+ }
+
+ @Override
+ protected GT_Multiblock_Tooltip_Builder createTooltip() {
+ final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
+ tt.addMachineType("Gas Sparge Tower")
+ .addInfo("Controller block for the Sparging Tower")
+ .addInfo("Fluids are only put out at the correct height")
+ .addInfo("The correct height equals the slot number in the NEI recipe")
+ .addSeparator()
+ .beginStructureBlock(3, 8, 3, true)
+ .addController("Front bottom")
+ .addOtherStructurePart("Sparge Tower Exterior Casing", "45 (minimum)")
+ .addEnergyHatch("Any casing", 1, 2)
+ .addMaintenanceHatch("Any casing", 1, 2, 3)
+ .addInputHatch("2x Input Hatches (Any bottom layer casing)", 1)
+ .addOutputHatch("6x Output Hatches (At least one per layer except bottom layer)", 2, 3)
+ .toolTipFinisher(CORE.GT_Tooltip_Builder);
+ return tt;
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ if (aActive)
+ return new ITexture[]{
+ BlockIcons.getCasingTextureForId(getCasingIndex()),
+ TextureFactory.builder().addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced_Active).extFacing().build()};
+ return new ITexture[]{
+ BlockIcons.getCasingTextureForId(getCasingIndex()),
+ TextureFactory.builder().addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced).extFacing().build()};
+ }
+ return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(getCasingIndex())};
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "DistillationTower.png");
+ }
+
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ GTPP_Recipe_Map.sSpargeTowerRecipes.mRecipeList.clear();
+ if (GTPP_Recipe_Map.sSpargeTowerRecipes.mRecipeList.isEmpty()) {
+ generateRecipes();
+ }
return GTPP_Recipe_Map.sSpargeTowerRecipes;
- }
-
- private static boolean generateRecipes() {
- for (GasSpargingRecipe aRecipe : GasSpargingRecipeMap.mRecipes) {
- GTPP_Recipe newRecipe = new GTPP_Recipe(
- false,
- new ItemStack[] {},
- new ItemStack[] {},
- null,
- aRecipe.mMaxOutputQuantity,
- aRecipe.mFluidInputs,
- aRecipe.mFluidOutputs,
- aRecipe.mDuration,
- aRecipe.mEUt,
- 0);
- GTPP_Recipe_Map.sSpargeTowerRecipes.add(newRecipe);
- }
-
-
-
- return false;
- }
-
- @Override
- public boolean isCorrectMachinePart(ItemStack aStack) {
- return true;
- }
-
- @Override
- public boolean checkRecipe(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(tFluidList.get(i), tFluidList.get(j))) {
- if (tFluidList.get(i).amount >= tFluidList.get(j).amount) {
- tFluidList.remove(j--);
- } else {
- tFluidList.remove(i--);
- break;
- }
- }
- }
- }
-
- long tVoltage = getMaxInputVoltage();
- byte tTier = (byte) Math.max(0, GT_Utility.getTier(tVoltage));
- FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]);
- if (tFluids.length > 0) {
- for (FluidStack tFluid : tFluids) {
- GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistillationRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tFluid});
- if (tRecipe != null) {
- if (tRecipe.isRecipeInputEqual(true, tFluids)) {
- this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
- this.mEfficiencyIncrease = 10000;
- calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage);
- //In case recipe is too OP for that machine
- if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
- return false;
- 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;
- }
- }
- }
- }
-
- return false;
- }
-
- protected void onCasingFound() {
- mCasing++;
- }
-
- protected void onTopLayerFound(boolean aIsCasing) {
- mTopLayerFound = true;
- if (aIsCasing)
- onCasingFound();
- }
-
- protected boolean addLayerOutputHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
- if (aTileEntity == null || aTileEntity.isDead() || !(aTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Output))
- return false;
- while (mOutputHatchesByLayer.size() < mHeight)
- mOutputHatchesByLayer.add(new ArrayList<>());
- GT_MetaTileEntity_Hatch_Output tHatch = (GT_MetaTileEntity_Hatch_Output) aTileEntity.getMetaTileEntity();
- tHatch.updateTexture(aBaseCasingIndex);
- return mOutputHatchesByLayer.get(mHeight - 1).add(tHatch);
- }
-
- @Override
- protected IAlignmentLimits getInitialAlignmentLimits() {
- // don't rotate a freaking tower, it won't work
- return (d, r, f) -> d.offsetY == 0 && r.isNotRotated() && !f.isVerticallyFliped();
- }
-
- @Override
- public IStructureDefinition<GregtechMetaTileEntity_SpargeTower> getStructureDefinition() {
- return STRUCTURE_DEFINITION;
- }
-
- @Override
- public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- // reset
- mOutputHatchesByLayer.forEach(List::clear);
- mHeight = 1;
- mTopLayerFound = false;
- mCasing = 0;
-
- // check base
- if (!checkPiece(STRUCTURE_PIECE_BASE, 1, 0, 0))
- return false;
-
- // check each layer
- while (mHeight < 7 && checkPiece(STRUCTURE_PIECE_LAYER, 1, mHeight, 0) && !mTopLayerFound) {
- if (mOutputHatchesByLayer.get(mHeight - 1).isEmpty())
- // layer without output hatch
- return false;
- // not top
- mHeight++;
- }
-
- // validate final invariants...
- return mCasing >= 7 * mHeight - 5 && mHeight >= 2 && mTopLayerFound && mMaintenanceHatches.size() == 1;
- }
-
- @Override
- public int getMaxEfficiency(ItemStack aStack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack aStack) {
- return 0;
- }
-
- @Override
- public int getDamageToComponent(ItemStack aStack) {
- return 0;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack aStack) {
- return false;
- }
-
- @Override
- protected void addFluidOutputs(FluidStack[] mOutputFluids2) {
- for (int i = 0; i < mOutputFluids2.length && i < mOutputHatchesByLayer.size(); i++) {
- FluidStack tStack = mOutputFluids2[i].copy();
- if (!dumpFluid(mOutputHatchesByLayer.get(i), tStack, true))
- dumpFluid(mOutputHatchesByLayer.get(i), tStack, false);
- }
- }
-
- @Override
- public void construct(ItemStack stackSize, boolean hintsOnly) {
- buildPiece(STRUCTURE_PIECE_BASE, stackSize, hintsOnly, 1, 0, 0);
- int tTotalHeight = 7; // min 2 output layer, so at least 1 + 2 height
- for (int i = 1; i < tTotalHeight - 1; i++) {
- buildPiece(STRUCTURE_PIECE_LAYER_HINT, stackSize, hintsOnly, 1, i, 0);
- }
- buildPiece(STRUCTURE_PIECE_TOP_HINT, stackSize, hintsOnly, 1, tTotalHeight - 1, 0);
- }
+ }
+
+ private static boolean generateRecipes() {
+ for (GasSpargingRecipe aRecipe : GasSpargingRecipeMap.mRecipes) {
+ GTPP_Recipe newRecipe = new GTPP_Recipe(
+ false,
+ new ItemStack[] {},
+ new ItemStack[] {},
+ null,
+ null,
+ aRecipe.mFluidInputs.clone(),
+ new FluidStack[] {},
+ aRecipe.mDuration,
+ aRecipe.mEUt,
+ 0);
+ GTPP_Recipe_Map.sSpargeTowerRecipes.add(newRecipe);
+ }
+ if (GTPP_Recipe_Map.sSpargeTowerRecipes.mRecipeList.isEmpty()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ ArrayList<FluidStack> tFluidList = getStoredFluids();
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(0, GT_Utility.getTier(tVoltage));
+ FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]);
+ if (tFluids.length > 0) {
+ Logger.INFO("Found "+tFluids.length+" input fluids. Searching "+GTPP_Recipe_Map.sSpargeTowerRecipes.mRecipeList.size()+" recipes.");
+ GT_Recipe tRecipe = getRecipeMap().findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluids);
+ if (tRecipe != null) {
+ Logger.INFO("Found recipe!");
+ try {
+ String[] aRecipeInfo = RecipeUtils.getRecipeInfo(tRecipe);
+ for (String info : aRecipeInfo) {
+ Logger.INFO(" "+info);
+ }
+ }
+ catch (Throwable e) {
+ e.printStackTrace();
+ }
+ if (tRecipe.isRecipeInputEqual(true, tFluids)) {
+ Logger.INFO("Found recipe that matches!");
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+
+ // Reset outputs and progress stats
+ this.mEUt = 0;
+ this.mProgresstime = 0;
+ this.mMaxProgresstime = 0;
+ this.mOutputItems = new ItemStack[]{};
+ this.mOutputFluids = new FluidStack[]{};
+ this.mLastRecipe = tRecipe;
+
+ // Deplete Inputs
+ if (tRecipe.mFluidInputs.length > 0) {
+ for (FluidStack aInputToConsume : tRecipe.mFluidInputs) {
+ Logger.INFO("Depleting "+aInputToConsume.getLocalizedName()+" - "+aInputToConsume.amount+"L");
+ this.depleteInput(aInputToConsume);
+ }
+ }
+ else {
+ this.mEUt = 0;
+ this.mEfficiency = 0;
+ return false;
+ }
+
+ calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage);
+ int aDevProgress = this.mMaxProgresstime / 10;
+ this.mMaxProgresstime = Math.max(1, aDevProgress);
+ this.mOutputItems = new ItemStack[]{};
+ ArrayList<FluidStack> aFluidOutputs = getByproductsOfSparge(tRecipe.mFluidInputs[0], tRecipe.mFluidInputs[1]);
+ this.mOutputFluids = (FluidStack[]) aFluidOutputs.toArray(new FluidStack[0]).clone();
+ updateSlots();
+ Logger.INFO("Done!");
+ return true;
+ }
+ }
+ else {
+ Logger.INFO("Did not find recipe!");
+ }
+ }
+ this.mEUt = 0;
+ this.mEfficiency = 0;
+ Logger.INFO("Did not find recipe! (2)");
+ return false;
+ }
+
+ private static ArrayList<FluidStack> getByproductsOfSparge(final FluidStack aSpargeGas, final FluidStack aSpentFuel){
+ GasSpargingRecipe aSpargeRecipe = GasSpargingRecipeMap.findRecipe(aSpargeGas, aSpentFuel);
+ ArrayList<FluidStack> aOutputGases = new ArrayList<FluidStack>();
+ if (aSpargeRecipe == null) {
+ Logger.INFO("Did not find sparge recipe!");
+ return aOutputGases;
+ }
+ else {
+ Logger.INFO("Found sparge recipe!");
+ try {
+ String[] aRecipeInfo = aSpargeRecipe.getRecipeInfo();
+ for (String info : aRecipeInfo) {
+ Logger.INFO(" "+info);
+ }
+ }
+ catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ int aSpargeGasAmount = aSpargeRecipe.mInputGas.amount;
+
+ aOutputGases.add(aSpargeRecipe.mOutputSpargedFuel.copy());
+ ArrayList<FluidStack> aTempMap = new ArrayList<FluidStack>();
+ for (int i=2;i<aSpargeRecipe.mFluidOutputs.length;i++) {
+ int aGasAmount = MathUtils.randInt(0, (aSpargeRecipe.mMaxOutputQuantity[i-2]/100));
+ FluidStack aOutput = aSpargeRecipe.mFluidOutputs[i].copy();
+ aSpargeGasAmount -= aGasAmount;
+ FluidStack aSpargeOutput = null;
+ if (aGasAmount > 0) {
+ aSpargeOutput = new FluidStack(aOutput.getFluid(), aGasAmount);
+ }
+ aTempMap.add(aSpargeOutput);
+ }
+ Logger.INFO("Sparge gas left: "+aSpargeGasAmount);
+ if (aSpargeGasAmount > 0) {
+ aOutputGases.add(new FluidStack(aSpargeRecipe.mInputGas.getFluid(), aSpargeGasAmount));
+ }
+ Logger.INFO("Sparge Outputs: "+ItemUtils.getArrayStackNames(aTempMap));
+ aOutputGases.addAll(aTempMap);
+ Logger.INFO("Sparge output size: "+aOutputGases.size());
+ Logger.INFO("Output of sparging: "+ItemUtils.getArrayStackNames(aOutputGases));
+ return aOutputGases;
+ }
+
+ protected void onCasingFound() {
+ mCasing++;
+ }
+
+ protected void onTopLayerFound(boolean aIsCasing) {
+ mTopLayerFound = true;
+ if (aIsCasing) {
+ onCasingFound();
+ }
+ }
+
+ protected boolean addLayerOutputHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity == null || aTileEntity.isDead() || !(aTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Output))
+ return false;
+ while (mOutputHatchesByLayer.size() < mHeight) {
+ mOutputHatchesByLayer.add(new ArrayList<>());
+ }
+ GT_MetaTileEntity_Hatch_Output tHatch = (GT_MetaTileEntity_Hatch_Output) aTileEntity.getMetaTileEntity();
+ tHatch.updateTexture(aBaseCasingIndex);
+ return mOutputHatchesByLayer.get(mHeight - 1).add(tHatch);
+ }
+
+ @Override
+ protected IAlignmentLimits getInitialAlignmentLimits() {
+ // don't rotate a freaking tower, it won't work
+ return (d, r, f) -> d.offsetY == 0 && r.isNotRotated() && !f.isVerticallyFliped();
+ }
+
+ @Override
+ public IStructureDefinition<GregtechMetaTileEntity_SpargeTower> getStructureDefinition() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ @Override
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ // reset
+ mOutputHatchesByLayer.forEach(List::clear);
+ mHeight = 1;
+ mTopLayerFound = false;
+ mCasing = 0;
+
+ // check base
+ if (!checkPiece(STRUCTURE_PIECE_BASE, 1, 0, 0)) {
+ return false;
+ }
+
+ // check each layer
+ while (mHeight < 8 && checkPiece(STRUCTURE_PIECE_LAYER, 1, mHeight, 0) && !mTopLayerFound) {
+ if (mOutputHatchesByLayer.get(mHeight - 1).isEmpty()) {
+ // layer without output hatch
+ return false;
+ }
+ // not top
+ mHeight++;
+ }
+
+ // validate final invariants...
+ Logger.INFO("Height: "+mHeight);
+ Logger.INFO("Casings: "+mCasing);
+ Logger.INFO("Required: "+(7 * mHeight - 5));
+ Logger.INFO("Found Top: "+mTopLayerFound);
+ return mCasing >= 7 * mHeight - 5 && mTopLayerFound && mMaintenanceHatches.size() == 1;
+ }
+
+ @Override
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ protected void addFluidOutputs(FluidStack[] mOutputFluids2) {
+ for (int i = 0; i < mOutputFluids2.length && i < mOutputHatchesByLayer.size(); i++) {
+ FluidStack tStack = mOutputFluids2[i] != null ? mOutputFluids2[i].copy() : null;
+ if (tStack == null) {
+ continue;
+ }
+ if (!dumpFluid(mOutputHatchesByLayer.get(i), tStack, true)) {
+ dumpFluid(mOutputHatchesByLayer.get(i), tStack, false);
+ }
+ }
+ }
+
+ @Override
+ public void construct(ItemStack stackSize, boolean hintsOnly) {
+ buildPiece(STRUCTURE_PIECE_BASE, stackSize, hintsOnly, 1, 0, 0);
+ int tTotalHeight = 8; // min 2 output layer, so at least 1 + 2 height
+ for (int i = 1; i < tTotalHeight - 1; i++) {
+ buildPiece(STRUCTURE_PIECE_LAYER_HINT, stackSize, hintsOnly, 1, i, 0);
+ }
+ buildPiece(STRUCTURE_PIECE_TOP_HINT, stackSize, hintsOnly, 1, tTotalHeight - 1, 0);
+ }
+
+ @Override
+ public boolean hasSlotInGUI() {
+ return false;
+ }
+
+ @Override
+ public String getCustomGUIResourceName() {
+ return null;
+ }
+
+ @Override
+ public String getMachineType() {
+ return "Gas Sparger";
+ }
+
+ @Override
+ public int getMaxParallelRecipes() {
+ return 1;
+ }
+
+ @Override
+ public int getEuDiscountForParallelism() {
+ return 0;
+ }
+
+ @Override
+ public boolean onPlungerRightClick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
+ int aLayerIndex = 0;
+ PlayerUtils.messagePlayer(aPlayer, "Trying to clear "+mOutputHatchesByLayer.size()+" layers of output hatches.");
+ for (List<GT_MetaTileEntity_Hatch_Output> layer : this.mOutputHatchesByLayer) {
+ int aHatchIndex = 0;
+ for (GT_MetaTileEntity_Hatch_Output hatch : layer) {
+ if (hatch.mFluid != null) {
+ PlayerUtils.messagePlayer(aPlayer, "Clearing "+hatch.mFluid.amount+"L of "+hatch.mFluid.getLocalizedName()+" from hatch "+aHatchIndex+" on layer "+aLayerIndex+".");
+ hatch.mFluid = null;
+ }
+ aHatchIndex++;
+ }
+ aLayerIndex++;
+ }
+ return aLayerIndex > 0;
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java
index 7833129cf9..7d5c47e185 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java
@@ -391,7 +391,7 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase {
// Warm up for 4~ minutes
Logger.WARNING("Checking LFTR recipes.");
if (mEfficiency < this.getMaxEfficiency(null)) {
- this.mProgresstime = 1;
+ this.mProgresstime = 0;
this.mMaxProgresstime = 1;
this.mEfficiencyIncrease = 2;
Logger.WARNING("Warming Up! "+this.mEfficiency+"/"+this.getMaxEfficiency(null));
@@ -636,8 +636,8 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase {
if (this.mSpargeTicks >= this.mSpargeTime) {
this.mSpargeTime = 0;
this.mSpargeTicks = 0;
- Logger.WARNING("Sparging!");
- trySparge();
+ //Logger.WARNING("Sparging!");
+ //trySparge();
}
}
super.onPostTick(aBaseMetaTileEntity, aTick);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java
index f5b20966d5..a09cbcce0d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_LFTR.java
@@ -53,7 +53,7 @@ public class RecipeLoader_LFTR {
//1l/10t= 1000l/2.5hr LiFBeF2ZrF4U235
configureSparging();
- FluidStack Li2BeF4 = NUCLIDE.Li2BeF4.getFluidStack(36);
+ FluidStack Li2BeF4 = NUCLIDE.Li2BeF4.getFluidStack(200);
//LiFBeF2ThF4UF4 - T3
GT_Recipe LFTR1 = new GTPP_Recipe(
@@ -62,16 +62,16 @@ public class RecipeLoader_LFTR {
new ItemStack[] {},
null, new int[] {10000, 10000, 5000, 2500},
new FluidStack[] {
- NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(18),
+ NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(100),
Li2BeF4
},
new FluidStack[] {
- NUCLIDE.LiFBeF2UF4FP.getFluidStack(18),
- NUCLIDE.LiFBeF2ThF4.getFluidStack(36),
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10),
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(5)
+ NUCLIDE.LiFBeF2UF4FP.getFluidStack(100),
+ NUCLIDE.LiFBeF2ThF4.getFluidStack(200),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(20),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10)
},
- 9000,//time
+ 400 * 20,//time
0,//cost
8192*4//fuel value
);
@@ -83,16 +83,16 @@ public class RecipeLoader_LFTR {
new ItemStack[] {},
null, new int[] {10000, 10000, 2500, 1250},
new FluidStack[] {
- NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(18),
+ NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(100),
Li2BeF4
},
new FluidStack[] {
- NUCLIDE.LiFBeF2UF4FP.getFluidStack(12),
- NUCLIDE.LiFBeF2ThF4.getFluidStack(24),
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(4),
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(2)
+ NUCLIDE.LiFBeF2UF4FP.getFluidStack(50),
+ NUCLIDE.LiFBeF2ThF4.getFluidStack(100),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(10),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(5)
},
- 6000,//time
+ 400 * 20,//time
0,//cost
8192//fuel value
);
@@ -104,16 +104,16 @@ public class RecipeLoader_LFTR {
new ItemStack[] {},
null, new int[] {10000, 10000, 1000, 500},
new FluidStack[] {
- NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(18),
+ NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(100),
Li2BeF4
},
new FluidStack[] {
- NUCLIDE.LiFBeF2UF4FP.getFluidStack(6),
- NUCLIDE.LiFThF4.getFluidStack(12),
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(2),
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(1)
+ NUCLIDE.LiFBeF2UF4FP.getFluidStack(25),
+ NUCLIDE.LiFThF4.getFluidStack(50),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(4),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(2)
},
- 3000,//time
+ 100 *20,//time
0,//cost
8192//fuel value
);
@@ -122,9 +122,8 @@ public class RecipeLoader_LFTR {
GasSpargingRecipeMap.addRecipe(
new FluidStack(mSpargeGases.get(0), 50),
NUCLIDE.LiFBeF2UF4FP.getFluidStack(50),
+ NUCLIDE.Sparged_LiFBeF2UF4FP.getFluidStack(50),
new FluidStack[] {
- NUCLIDE.Sparged_LiFBeF2UF4FP.getFluidStack(50),
- new FluidStack(mNobleGases.get(0), 50),
new FluidStack(mNobleGases.get(1), 10),
new FluidStack(mNobleGases.get(2), 10),
new FluidStack(mNobleGases.get(3), 10),
@@ -132,31 +131,29 @@ public class RecipeLoader_LFTR {
new FluidStack(mNobleGases.get(5), 10)
},
new int[] {
- 10000, 5000, 1000, 1000, 1000, 1000, 1000
+ 1000, 1000, 1000, 1000, 1000
});
GasSpargingRecipeMap.addRecipe(
new FluidStack(mSpargeGases.get(1), 50),
NUCLIDE.LiFThF4.getFluidStack(50),
+ NUCLIDE.Sparged_LiFThF4.getFluidStack(50),
new FluidStack[] {
- NUCLIDE.Sparged_LiFThF4.getFluidStack(50),
- new FluidStack(mFluorideGases.get(0), 50),
- new FluidStack(mFluorideGases.get(1), 10),
- new FluidStack(mFluorideGases.get(2), 10),
- new FluidStack(mFluorideGases.get(3), 10),
- new FluidStack(mFluorideGases.get(4), 10),
- new FluidStack(mFluorideGases.get(5), 10)
+ new FluidStack(mFluorideGases.get(1), 5),
+ new FluidStack(mFluorideGases.get(2), 5),
+ new FluidStack(mFluorideGases.get(3), 5),
+ new FluidStack(mFluorideGases.get(4), 5),
+ new FluidStack(mFluorideGases.get(5), 5)
},
new int[] {
- 10000, 5000, 1000, 1000, 1000, 1000, 1000
+ 500, 500, 500, 500, 500
});
GasSpargingRecipeMap.addRecipe(
new FluidStack(mSpargeGases.get(1), 50),
NUCLIDE.LiFBeF2ThF4.getFluidStack(50),
+ NUCLIDE.Sparged_LiFBeF2ThF4.getFluidStack(50),
new FluidStack[] {
- NUCLIDE.Sparged_LiFBeF2ThF4.getFluidStack(50),
- new FluidStack(mFluorideGases.get(0), 50),
new FluidStack(mFluorideGases.get(1), 10),
new FluidStack(mFluorideGases.get(2), 10),
new FluidStack(mFluorideGases.get(3), 10),
@@ -164,7 +161,7 @@ public class RecipeLoader_LFTR {
new FluidStack(mFluorideGases.get(5), 10)
},
new int[] {
- 10000, 5000, 1000, 1000, 1000, 1000, 1000
+ 1000, 1000, 1000, 1000, 1000
});
GTPP_Recipe.GTPP_Recipe_Map.sLiquidFluorineThoriumReactorRecipes.add(LFTR1);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
index 2eedd4e85a..94a5627882 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
@@ -1,7 +1,6 @@
package gtPlusPlus.xmod.gregtech.loaders.recipe;
import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Materials;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.item.chemistry.NuclearChem;
import gtPlusPlus.core.lib.CORE;
@@ -41,7 +40,7 @@ public class RecipeLoader_NuclearFuelProcessing {
FluidUtils.getFluidStack(aLiFBeF2ZrF4U235, 1000),
null,
90 * 60 * 20, // Duration
- MaterialUtils.getVoltageForTier(5)
+ MaterialUtils.getVoltageForTier(4)
);
// 7LiF - BeF2 - ZrF4 - UF4 - 650C
@@ -73,24 +72,15 @@ public class RecipeLoader_NuclearFuelProcessing {
// Reprocess Fuels
- final FluidStack aBurntLiFBeF2ZrF4U235 = new FluidStack(NuclearChem.Burnt_LiFBeF2ZrF4U235, 17);
- final FluidStack aBurntLiFBeF2ZrF4UF4 = new FluidStack(NuclearChem.Burnt_LiFBeF2ZrF4UF4, 17);
- final FluidStack aBurntLiFBeF2ThF4UF4 = new FluidStack(NuclearChem.Burnt_LiFBeF2ThF4UF4, 17);
- final FluidStack aHelium = Materials.Helium.getGas(1000);
- final FluidStack aFluorine = Materials.Fluorine.getGas(1000);
-
-
-
-
// Reactor Blanket step 1 - Fluorination
CORE.RA.addReactorProcessingUnitRecipe(
CI.getNumberedAdvancedCircuit(17),
- ELEMENT.getInstance().FLUORINE.getCell(5),
+ ELEMENT.getInstance().FLUORINE.getCell(6),
NUCLIDE.LiFThF4.getFluidStack(10000),
new ItemStack[] {
CI.emptyCells(4),
- ELEMENT.getInstance().LITHIUM.getCell(1),
+ FLUORIDES.LITHIUM_FLUORIDE.getCell(1),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
@@ -98,17 +88,17 @@ public class RecipeLoader_NuclearFuelProcessing {
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233)
},
- new int[] {10000, 10000, 1000, 1000, 1000, 500, 500, 500},
- NUCLIDE.UF6F2.getFluidStack(5000),
+ new int[] {10000, 10000, 500, 500, 500, 250, 250, 250},
+ NUCLIDE.UF6F2.getFluidStack(1500),
20 * 60 * 10,
MaterialUtils.getVoltageForTier(5));
CORE.RA.addReactorProcessingUnitRecipe(
CI.getNumberedAdvancedCircuit(18),
- ELEMENT.getInstance().FLUORINE.getCell(5),
+ ELEMENT.getInstance().FLUORINE.getCell(6),
NUCLIDE.LiFBeF2ThF4.getFluidStack(10000),
new ItemStack[] {
CI.emptyCells(3),
- ELEMENT.getInstance().LITHIUM.getCell(1),
+ FLUORIDES.LITHIUM_FLUORIDE.getCell(1),
FLUORIDES.BERYLLIUM_FLUORIDE.getCell(1),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
@@ -118,18 +108,18 @@ public class RecipeLoader_NuclearFuelProcessing {
ItemUtils.getSimpleStack(ModItems.dustProtactinium233)
},
new int[] {10000, 10000, 10000, 1000, 1000, 1000, 500, 500, 500},
- NUCLIDE.UF6F2.getFluidStack(10000),
+ NUCLIDE.UF6F2.getFluidStack(3000),
20 * 60 * 10,
MaterialUtils.getVoltageForTier(5));
// Reactor Blanket step 1 - Fluorination
CORE.RA.addReactorProcessingUnitRecipe(
CI.getNumberedAdvancedCircuit(7),
- ELEMENT.getInstance().FLUORINE.getCell(10),
+ ELEMENT.getInstance().FLUORINE.getCell(6),
NUCLIDE.Sparged_LiFThF4.getFluidStack(10000),
new ItemStack[] {
- CI.emptyCells(8),
- ELEMENT.getInstance().LITHIUM.getCell(2),
+ CI.emptyCells(4),
+ FLUORIDES.LITHIUM_FLUORIDE.getCell(2),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
@@ -137,17 +127,17 @@ public class RecipeLoader_NuclearFuelProcessing {
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233)
},
- new int[] {10000, 10000, 2000, 2000, 2000, 2000, 2000, 2000},
- NUCLIDE.UF6F2.getFluidStack(10000),
+ new int[] {10000, 10000, 1000, 1000, 1000, 1000, 1000, 1000},
+ NUCLIDE.UF6F2.getFluidStack(3000),
20 * 60 * 5,
MaterialUtils.getVoltageForTier(5));
CORE.RA.addReactorProcessingUnitRecipe(
CI.getNumberedAdvancedCircuit(8),
- ELEMENT.getInstance().FLUORINE.getCell(10),
+ ELEMENT.getInstance().FLUORINE.getCell(6),
NUCLIDE.Sparged_LiFBeF2ThF4.getFluidStack(10000),
new ItemStack[] {
- CI.emptyCells(6),
- ELEMENT.getInstance().LITHIUM.getCell(2),
+ CI.emptyCells(2),
+ FLUORIDES.LITHIUM_FLUORIDE.getCell(2),
FLUORIDES.BERYLLIUM_FLUORIDE.getCell(2),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
@@ -157,7 +147,7 @@ public class RecipeLoader_NuclearFuelProcessing {
ItemUtils.getSimpleStack(ModItems.dustProtactinium233)
},
new int[] {10000, 10000, 10000, 2000, 2000, 2000, 2000, 2000, 2000},
- NUCLIDE.UF6F2.getFluidStack(10000),
+ NUCLIDE.UF6F2.getFluidStack(6000),
20 * 60 * 5,
MaterialUtils.getVoltageForTier(5));
@@ -332,7 +322,7 @@ public class RecipeLoader_NuclearFuelProcessing {
null, null, null, null, null,
NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(10000),
null,
- 20 * 60 * 15, // Duration
+ 20 * 60 * 120, // Duration
MaterialUtils.getVoltageForTier(5)
);
@@ -370,7 +360,7 @@ public class RecipeLoader_NuclearFuelProcessing {
null, null, null, null, null,
NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(10000),
null,
- 20 * 60 * 30, // Duration
+ 20 * 60 * 150, // Duration
MaterialUtils.getVoltageForTier(5)
);