diff options
Diffstat (limited to 'src')
9 files changed, 249 insertions, 140 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java index 1a9d1b245f..65f0e23810 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java @@ -2,13 +2,13 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static gregtech.api.enums.GT_HatchElement.*; -import static gregtech.api.enums.GT_Values.VN; import static gregtech.api.enums.Textures.BlockIcons.*; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_LongPowerUsageBase; import goodgenerator.loader.Loaders; import goodgenerator.util.MyRecipeAdder; import gregtech.api.GregTech_API; @@ -18,12 +18,10 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.render.TextureFactory; -import gregtech.api.util.*; -import java.util.ArrayList; -import java.util.List; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_StructureUtility; import java.util.stream.Collectors; import java.util.stream.IntStream; import net.minecraft.item.ItemStack; @@ -33,12 +31,11 @@ import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; -public class ComponentAssemblyLine extends GT_MetaTileEntity_EnhancedMultiBlockBase<ComponentAssemblyLine> +public class ComponentAssemblyLine extends GT_MetaTileEntity_LongPowerUsageBase<ComponentAssemblyLine> implements ISurvivalConstructable { private int casingTier; - private final double log4 = Math.log(4); - private long EU_per_tick = 0; + private GT_Recipe lastRecipe; protected static final String STRUCTURE_PIECE_MAIN = "main"; private static final IStructureDefinition<ComponentAssemblyLine> STRUCTURE_DEFINITION = StructureDefinition.<ComponentAssemblyLine>builder() @@ -557,42 +554,12 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_EnhancedMultiBlockB * */ @Override public String[] getInfoData() { - long storedEnergy = 0; - long maxEnergy = 0; - - for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) { - if (isValidMetaTileEntity(tHatch)) { - storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU(); - maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity(); - } - } - return new String[] { - "------------ Critical Information ------------", - StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mProgresstime) + EnumChatFormatting.RESET + "t / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mMaxProgresstime) + EnumChatFormatting.RESET + "t", - StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(storedEnergy) + EnumChatFormatting.RESET + " EU / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(maxEnergy) + EnumChatFormatting.RESET + " EU", - StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED - + GT_Utility.formatNumbers(-EU_per_tick) + EnumChatFormatting.RESET + " EU/t", - StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers( - GT_ExoticEnergyInputHelper.getMaxInputVoltageMulti(getExoticAndNormalEnergyHatchList())) - + EnumChatFormatting.RESET + " EU/t(*" + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers( - GT_ExoticEnergyInputHelper.getMaxInputAmpsMulti(getExoticAndNormalEnergyHatchList())) - + EnumChatFormatting.RESET + "A) " + StatCollector.translateToLocal("GT5U.machines.tier") - + ": " + EnumChatFormatting.YELLOW - + VN[ - GT_Utility.getTier(GT_ExoticEnergyInputHelper.getMaxInputVoltageMulti( - getExoticAndNormalEnergyHatchList()))] - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("scanner.info.CASS.tier") - + (casingTier >= 0 ? GT_Values.VN[casingTier + 1] : "None!") - }; + String[] origin = super.getInfoData(); + String[] ret = new String[origin.length + 1]; + System.arraycopy(origin, 0, ret, 0, origin.length); + ret[origin.length] = StatCollector.translateToLocal("scanner.info.CASS.tier") + + (casingTier >= 0 ? GT_Values.VN[casingTier + 1] : "None!"); + return ret; } @Override @@ -640,57 +607,28 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_EnhancedMultiBlockB @Override public boolean checkRecipe(ItemStack aStack) { - long tVoltage = GT_ExoticEnergyInputHelper.getMaxInputVoltageMulti(getExoticAndNormalEnergyHatchList()); - long tAmps = GT_ExoticEnergyInputHelper.getMaxInputAmpsMulti(getExoticAndNormalEnergyHatchList()); - long totalEU = tVoltage * tAmps; + this.mEfficiencyIncrease = 10000; + this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); + long totalEU = getRealVoltage(); ItemStack[] tItems = getStoredInputs().toArray(new ItemStack[0]); FluidStack[] tFluids = getStoredFluids().toArray(new FluidStack[0]); - GT_Recipe foundRecipe = getRecipeMap().findRecipe(getBaseMetaTileEntity(), false, totalEU, tFluids, tItems); - if (foundRecipe == null) return false; - if (foundRecipe.mSpecialValue > casingTier + 1) return false; - if (!foundRecipe.isRecipeInputEqual(true, tFluids, tItems)) return false; - - // Logic for overclocking calculations. - double EU_input_tier = Math.log(totalEU) / log4; - double EU_recipe_tier = Math.log(foundRecipe.mEUt) / log4; - long overclock_count = (long) Math.floor(EU_input_tier - EU_recipe_tier); - - // Vital recipe info. Calculate overclocks here if necessary. - EU_per_tick = (long) -(foundRecipe.mEUt * Math.pow(4, overclock_count)); - - mMaxProgresstime = (int) (foundRecipe.mDuration / Math.pow(2, overclock_count)); - mMaxProgresstime = Math.max(1, mMaxProgresstime); + this.lastRecipe = + getRecipeMap().findRecipe(getBaseMetaTileEntity(), this.lastRecipe, false, totalEU, tFluids, tItems); + if (this.lastRecipe == null) return false; + if (this.lastRecipe.mSpecialValue > casingTier + 1) return false; + if (!this.lastRecipe.isRecipeInputEqual(true, tFluids, tItems)) return false; + + calculateOverclockedNessMulti((long) this.lastRecipe.mEUt, this.lastRecipe.mDuration, 1, totalEU); + if (this.lEUt > 0) { + this.lEUt = (-this.lEUt); + } - mOutputItems = foundRecipe.mOutputs; + mOutputItems = this.lastRecipe.mOutputs; updateSlots(); return true; } @Override - public boolean onRunningTick(ItemStack aStack) { - if (EU_per_tick < 0) { - if (!drainEnergyInput(-EU_per_tick)) { - EU_per_tick = 0; - criticalStopMachine(); - return false; - } - } - return true; - } - - @Override - public boolean drainEnergyInput(long aEU) { - return GT_ExoticEnergyInputHelper.drainEnergy(aEU, getExoticAndNormalEnergyHatchList()); - } - - public List<GT_MetaTileEntity_Hatch> getExoticAndNormalEnergyHatchList() { - List<GT_MetaTileEntity_Hatch> tHatches = new ArrayList<>(); - tHatches.addAll(mExoticEnergyHatches); - tHatches.addAll(mEnergyHatches); - return tHatches; - } - - @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { int realBudget = elementBudget >= 200 ? elementBudget : Math.min(200, elementBudget * 5); return survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 4, 2, 0, realBudget, env, false, true); @@ -703,12 +641,6 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_EnhancedMultiBlockB } @Override - public void clearHatches() { - super.clearHatches(); - mExoticEnergyHatches.clear(); - } - - @Override public int getMaxEfficiency(ItemStack aStack) { return 10000; } @@ -731,14 +663,12 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_EnhancedMultiBlockB @Override public void saveNBTData(NBTTagCompound aNBT) { aNBT.setInteger("casingTier", casingTier); - aNBT.setLong("euPerTick", EU_per_tick); super.saveNBTData(aNBT); } @Override public void loadNBTData(final NBTTagCompound aNBT) { casingTier = aNBT.getInteger("casingTier"); - EU_per_tick = aNBT.getLong("euPerTick"); super.loadNBTData(aNBT); } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java index aaec87d75c..7e2f9efbd1 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java @@ -203,7 +203,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci this.getBaseMetaTileEntity(), this.lastRecipe, false, - Math.min(getMachineVoltageLimit(), getMaxInputEnergyPA()), + Math.min(getMachineVoltageLimit(), getRealVoltage()), inputFluids, getStoredItemFromHatch(bus)); if (this.lastRecipe != null && this.lastRecipe.mSpecialValue <= (casingTier + 1)) { @@ -211,8 +211,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci this.mEfficiencyIncrease = 10000; this.lastRecipe.isRecipeInputEqual(true, inputFluids, getStoredItemFromHatch(bus)); mOutputItems = this.lastRecipe.mOutputs; - calculateOverclockedNessMulti( - this.lastRecipe.mEUt, this.lastRecipe.mDuration, 1, getMaxInputEnergyPA()); + calculateOverclockedNessMulti(this.lastRecipe.mEUt, this.lastRecipe.mDuration, 1, getRealVoltage()); this.updateSlots(); if (this.lEUt > 0) { this.lEUt = (-this.lEUt); @@ -228,13 +227,13 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci this.getBaseMetaTileEntity(), this.lastRecipe, false, - Math.min(getMachineVoltageLimit(), getMaxInputEnergyPA()), + Math.min(getMachineVoltageLimit(), getRealVoltage()), inputFluids, getStoredItemFromHatch(bus)); if (this.lastRecipe != null) { this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; - long fullInput = getMaxInputEnergyPA(); + long fullInput = getRealVoltage(); int pall = handleParallelRecipe(this.lastRecipe, inputFluids, getStoredItemFromHatch(bus), (int) Math.min((long) Math.pow(2, 4 + (casingTier + 1)), fullInput / this.lastRecipe.mEUt)); if (pall <= 0) continue; @@ -244,7 +243,7 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci (long) this.lastRecipe.mEUt * (long) pall, this.lastRecipe.mDuration / 2, 1, - getMaxInputEnergyPA()); + getRealVoltage()); this.updateSlots(); if (this.lEUt > 0) { this.lEUt = (-this.lEUt); @@ -256,25 +255,6 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci return false; } - private long getMaxInputEnergyPA() { - long rEnergy = 0; - if (mEnergyHatches.size() == 1) { - // it works like most of the gt multies - return mEnergyHatches.get(0).getBaseMetaTileEntity().getInputVoltage(); - } - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { - if (isValidMetaTileEntity(tHatch)) { - rEnergy += tHatch.maxEUInput() * tHatch.maxAmperesIn(); - } - } - for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) { - if (isValidMetaTileEntity(tHatch)) { - rEnergy += tHatch.maxEUInput() * ((GT_MetaTileEntity_Hatch_EnergyMulti) tHatch).Amperes; - } - } - return rEnergy; - } - @Override public int getMaxEfficiency(ItemStack aStack) { return 10000; @@ -302,11 +282,6 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci } @Override - protected long getRealVoltage() { - return getMaxInputEnergyPA(); - } - - @Override public void construct(ItemStack stackSize, boolean hintsOnly) { buildPiece(mName, stackSize, hintsOnly, 4, 4, 0); } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java index b6e8f79ca8..79020d406a 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java @@ -49,7 +49,24 @@ public abstract class GT_MetaTileEntity_LongPowerUsageBase<T extends GT_MetaTile return getInfoDataArray(this); } - protected abstract long getRealVoltage(); + protected long getRealVoltage() { + long rEnergy = 0; + if (mEnergyHatches.size() == 1 && mExoticEnergyHatches.isEmpty()) { + // it works like most of the gt multies + return mEnergyHatches.get(0).getBaseMetaTileEntity().getInputVoltage(); + } + for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { + if (isValidMetaTileEntity(tHatch)) { + rEnergy += tHatch.maxEUInput() * tHatch.maxAmperesIn(); + } + } + for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) { + if (isValidMetaTileEntity(tHatch)) { + rEnergy += tHatch.maxEUInput() * ((GT_MetaTileEntity_Hatch_EnergyMulti) tHatch).Amperes; + } + } + return rEnergy; + } protected long getMaxInputAmps() { long rAmps = 0; diff --git a/src/main/java/goodgenerator/items/MyMaterial.java b/src/main/java/goodgenerator/items/MyMaterial.java index 564e5347d9..61628df9d8 100644 --- a/src/main/java/goodgenerator/items/MyMaterial.java +++ b/src/main/java/goodgenerator/items/MyMaterial.java @@ -1294,6 +1294,95 @@ public class MyMaterial implements Runnable { new Pair<>(Sulfur, 1), new Pair<>(Oxygen, 4)); + public static final Werkstoff preciousMetalAlloy = new Werkstoff( + new short[] {0x9d, 0x90, 0xc6}, + "Precious Metals Alloy", + new Werkstoff.Stats() + .setBlastFurnace(true) + .setMeltingPoint(10000) + .setCentrifuge(true) + .setSpeedOverride(100F), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures() + .onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 6), + OffsetID + 108, + TextureSet.SET_SHINY, + new Pair<>(WerkstoffLoader.Ruthenium, 1), + new Pair<>(WerkstoffLoader.Rhodium, 1), + new Pair<>(Palladium, 1), + new Pair<>(Platinum, 1), + new Pair<>(Osmium, 1), + new Pair<>(Iridium, 1)); + + public static final Werkstoff enrichedNaquadahAlloy = new Werkstoff( + new short[] {0x16, 0x07, 0x40}, + "Enriched Naquadah Alloy", + new Werkstoff.Stats() + .setBlastFurnace(true) + .setMeltingPoint(11000) + .setCentrifuge(true) + .setSpeedOverride(180F), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures() + .onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMixerRecipes((short) 4), + OffsetID + 109, + TextureSet.SET_METALLIC, + new Pair<>(NaquadahEnriched, 8), + new Pair<>(Tritanium, 5), + new Pair<>(WerkstoffLoader.Californium, 3), + new Pair<>(BlackPlutonium, 2)); + + public static final Werkstoff metastableOganesson = new Werkstoff( + new short[] {0x14, 0x39, 0x7f}, + "Metastable Oganesson", + "Og*", + new Werkstoff.Stats() + .setBlastFurnace(true) + .setProtons(118) + .setMass(294) + .setMeltingPoint(11000), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures() + .onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems(), + OffsetID + 110, + TextureSet.SET_SHINY); + + public static final Werkstoff shirabon = new Werkstoff( + new short[] {0xe0, 0x15, 0x6d}, + "Shirabon", + "Sh" + CharExchanger.shifter(9191), + new Werkstoff.Stats() + .setBlastFurnace(true) + .setProtons(500) + .setMass(750) + .setMeltingPoint(13000) + .setSpeedOverride(640.0F) + .setDurOverride(15728640) + .setQualityOverride((byte) 26), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures() + .onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems(), + OffsetID + 111, + TextureSet.SET_SHINY); + @Override public void run() {} } diff --git a/src/main/java/goodgenerator/loader/ComponentAssemblyLineMiscRecipes.java b/src/main/java/goodgenerator/loader/ComponentAssemblyLineMiscRecipes.java index 41181d858c..195b6deaa5 100644 --- a/src/main/java/goodgenerator/loader/ComponentAssemblyLineMiscRecipes.java +++ b/src/main/java/goodgenerator/loader/ComponentAssemblyLineMiscRecipes.java @@ -7,6 +7,7 @@ import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import com.github.technus.tectech.recipe.TT_recipeAdder; import com.google.common.collect.HashBiMap; import cpw.mods.fml.common.registry.GameRegistry; +import goodgenerator.util.StackUtils; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -211,7 +212,7 @@ public class ComponentAssemblyLineMiscRecipes { new FluidStack[] { new FluidStack(sold, 144 * t * 4), CI.getTieredFluid(t, 144 * t * 2), - CI.getAlternativeTieredFluid(t, 144 * t), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_LuV.get(1), @@ -237,7 +238,7 @@ public class ComponentAssemblyLineMiscRecipes { new FluidStack[] { new FluidStack(sold, 144 * t * 4), CI.getTieredFluid(t, 144 * t * 2), - CI.getAlternativeTieredFluid(t, 144 * t), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_ZPM.get(1), @@ -263,7 +264,7 @@ public class ComponentAssemblyLineMiscRecipes { new FluidStack[] { new FluidStack(sold, 144 * t * 4), CI.getTieredFluid(t, 144 * t * 2), - CI.getAlternativeTieredFluid(t, 144 * t), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_UV.get(1), @@ -291,8 +292,8 @@ public class ComponentAssemblyLineMiscRecipes { }, new FluidStack[] { new FluidStack(sold, 144 * t * 4), - Materials.Naquadria.getMolten(144 * t * 4), CI.getTieredFluid(t, 144 * t * 2), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_UHV.get(1), @@ -321,8 +322,8 @@ public class ComponentAssemblyLineMiscRecipes { }, new FluidStack[] { new FluidStack(sold, 144 * t * 4), - Materials.Quantium.getMolten(144 * t * 4), CI.getTieredFluid(t, 144 * t * 2), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_UEV.get(1), @@ -351,7 +352,7 @@ public class ComponentAssemblyLineMiscRecipes { new FluidStack[] { new FluidStack(sold, 144 * t * 4), CI.getTieredFluid(t, 144 * t * 2), - CI.getAlternativeTieredFluid(t - 1, 144 * t * 2), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_UIV.get(1), @@ -380,7 +381,7 @@ public class ComponentAssemblyLineMiscRecipes { new FluidStack[] { new FluidStack(sold, 144 * t * 4), CI.getTieredFluid(t - 1, 144 * t * 2), - CI.getAlternativeTieredFluid(t - 2, 144 * t * 2), + StackUtils.getTieredFluid(t, 144 * t), Materials.Lubricant.getFluid(1000 * (t - 2)) }, Compassline_Casing_UMV.get(1), @@ -395,26 +396,35 @@ public class ComponentAssemblyLineMiscRecipes { private static void generateWrapRecipes() { for (int i = 0; i <= 10; i++) { GT_Values.RA.addAssemblerRecipe( - new ItemStack[] {getCircuit(i, 16)}, + new ItemStack[] {getCircuit(i, 16), GT_Utility.getIntegratedCircuit(16)}, Materials.SolderingAlloy.getMolten(72L), new ItemStack(Loaders.circuitWrap, 1, i), 30 * 20, 30); } GT_Values.RA.addAssemblerRecipe( - new ItemStack[] {GameRegistry.findItemStack("dreamcraft", "item.NanoCircuit", 16)}, + new ItemStack[] { + GameRegistry.findItemStack("dreamcraft", "item.NanoCircuit", 16), + GT_Utility.getIntegratedCircuit(16) + }, Materials.SolderingAlloy.getMolten(72L), new ItemStack(Loaders.circuitWrap, 1, 11), 30 * 20, 30); GT_Values.RA.addAssemblerRecipe( - new ItemStack[] {GameRegistry.findItemStack("dreamcraft", "item.PikoCircuit", 16)}, + new ItemStack[] { + GameRegistry.findItemStack("dreamcraft", "item.PikoCircuit", 16), + GT_Utility.getIntegratedCircuit(16) + }, Materials.SolderingAlloy.getMolten(72L), new ItemStack(Loaders.circuitWrap, 1, 12), 30 * 20, 30); GT_Values.RA.addAssemblerRecipe( - new ItemStack[] {GameRegistry.findItemStack("dreamcraft", "item.QuantumCircuit", 16)}, + new ItemStack[] { + GameRegistry.findItemStack("dreamcraft", "item.QuantumCircuit", 16), + GT_Utility.getIntegratedCircuit(16) + }, Materials.SolderingAlloy.getMolten(72L), new ItemStack(Loaders.circuitWrap, 1, 13), 30 * 20, diff --git a/src/main/java/goodgenerator/loader/RecipeLoader.java b/src/main/java/goodgenerator/loader/RecipeLoader.java index 01f570adf0..088e96693d 100644 --- a/src/main/java/goodgenerator/loader/RecipeLoader.java +++ b/src/main/java/goodgenerator/loader/RecipeLoader.java @@ -1577,5 +1577,7 @@ public class RecipeLoader { public static void Fixer() { MaterialFix.MaterialFluidExtractionFix(MyMaterial.atomicSeparationCatalyst); MaterialFix.MaterialFluidExtractionFix(MyMaterial.extremelyUnstableNaquadah); + MaterialFix.MaterialFluidExtractionFix(MyMaterial.metastableOganesson); + MaterialFix.MaterialFluidExtractionFix(MyMaterial.shirabon); } } diff --git a/src/main/java/goodgenerator/loader/RecipeLoader_02.java b/src/main/java/goodgenerator/loader/RecipeLoader_02.java index c520800538..3c973b208a 100644 --- a/src/main/java/goodgenerator/loader/RecipeLoader_02.java +++ b/src/main/java/goodgenerator/loader/RecipeLoader_02.java @@ -22,6 +22,7 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; +@SuppressWarnings("deprecation") public class RecipeLoader_02 { public static void RecipeLoad() { @@ -87,6 +88,12 @@ public class RecipeLoader_02 { CrackRecipeAdder.reAddBlastRecipe(MyMaterial.dalisenite, 800, 491520, 8700, true); CrackRecipeAdder.reAddBlastRecipe(MyMaterial.hikarium, 1200, 30720, 5400, true); CrackRecipeAdder.reAddBlastRecipe(MyMaterial.tairitsu, 1200, 1966080, 7400, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.preciousMetalAlloy, 2400, 7864320, 10000, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.enrichedNaquadahAlloy, 2400, 7864320, 11000, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.metastableOganesson, 600, 7864320, 12000, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.shirabon, 600, 31457280, 13000, true); + + GT_ModHandler.removeFurnaceSmelting(MyMaterial.dalisenite.get(OrePrefixes.dust)); // :doom: GT_Values.RA.addVacuumFreezerRecipe( MyMaterial.dalisenite.get(OrePrefixes.ingotHot, 1), @@ -94,6 +101,12 @@ public class RecipeLoader_02 { 315, 120); + GT_Values.RA.addVacuumFreezerRecipe( + MyMaterial.shirabon.get(OrePrefixes.ingotHot, 1), + MyMaterial.shirabon.get(OrePrefixes.ingot, 1), + 2400, + 1966080); + GT_Values.RA.addAssemblerRecipe( new ItemStack[] { MyMaterial.zircaloy4.get(OrePrefixes.plate, 4), @@ -1854,6 +1867,37 @@ public class RecipeLoader_02 { MyMaterial.lumiium.get(OrePrefixes.dust, 1), 240, 120); + + GT_Values.RA.addFusionReactorRecipe( + MyMaterial.enrichedNaquadahAlloy.getMolten(144), + WerkstoffLoader.Oganesson.getFluidOrGas(250), + MyMaterial.metastableOganesson.getMolten(36), + 600, + 491520, + 1000000000); + + MyRecipeAdder.instance.addNeutronActivatorRecipe( + null, + new ItemStack[] {MyMaterial.metastableOganesson.get(OrePrefixes.dust)}, + new FluidStack[] {WerkstoffLoader.Oganesson.getFluidOrGas(250)}, + null, + 2000, + 1100, + 1000); + + GT_Values.RA.addPlasmaForgeRecipe( + new ItemStack[] {ItemRefer.HiC_T5.get(0)}, + new FluidStack[] { + MyMaterial.metastableOganesson.getMolten(1152), + MyMaterial.preciousMetalAlloy.getMolten(2304), + Materials.SpaceTime.getMolten(288), + Materials.DimensionallyTranscendentResidue.getFluid(5000) + }, + new ItemStack[] {}, + new FluidStack[] {MyMaterial.shirabon.getMolten(144)}, + 200, + 1500000000, + 13500); } public static void FinishLoadRecipe() { diff --git a/src/main/java/goodgenerator/util/MaterialFix.java b/src/main/java/goodgenerator/util/MaterialFix.java index e6c50f6ec1..795686f676 100644 --- a/src/main/java/goodgenerator/util/MaterialFix.java +++ b/src/main/java/goodgenerator/util/MaterialFix.java @@ -11,12 +11,18 @@ import gregtech.api.util.GT_Utility; public class MaterialFix { public static void MaterialFluidExtractionFix(Werkstoff material) { - if (material.hasItemType(OrePrefixes.ingot)) + if (material.hasItemType(OrePrefixes.ingot)) { GT_Values.RA.addFluidExtractionRecipe( material.get(OrePrefixes.ingot), null, material.getMolten(144), 0, 32, 8); - if (material.hasItemType(OrePrefixes.plate)) + GT_Values.RA.addFluidSolidifierRecipe( + ItemList.Shape_Mold_Ingot.get(0), material.getMolten(144), material.get(OrePrefixes.ingot), 32, 48); + } + if (material.hasItemType(OrePrefixes.plate)) { GT_Values.RA.addFluidExtractionRecipe( material.get(OrePrefixes.plate), null, material.getMolten(144), 0, 32, 8); + GT_Values.RA.addFluidSolidifierRecipe( + ItemList.Shape_Mold_Plate.get(0), material.getMolten(144), material.get(OrePrefixes.plate), 32, 48); + } if (material.hasItemType(OrePrefixes.gearGtSmall)) GT_Values.RA.addFluidExtractionRecipe( material.get(OrePrefixes.gearGtSmall), null, material.getMolten(144), 0, 32, 8); diff --git a/src/main/java/goodgenerator/util/StackUtils.java b/src/main/java/goodgenerator/util/StackUtils.java index 1d7dcc3ac8..bf06f821ac 100644 --- a/src/main/java/goodgenerator/util/StackUtils.java +++ b/src/main/java/goodgenerator/util/StackUtils.java @@ -1,11 +1,14 @@ package goodgenerator.util; +import goodgenerator.items.MyMaterial; +import gregtech.api.enums.Materials; import gregtech.api.util.GT_Utility; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; public class StackUtils { @@ -78,4 +81,37 @@ public class StackUtils { public static HashMap<ItemStack, Integer> getTotalItems(ItemStack[] items) { return getTotalItems(Arrays.asList(items)); } + + public static FluidStack getTieredFluid(int aTier, int aAmount) { + switch (aTier) { + case 0: // ULV + return Materials.RedAlloy.getMolten(aAmount); + case 1: // LV + return Materials.TinAlloy.getMolten(aAmount); + case 2: // MV + return Materials.RoseGold.getMolten(aAmount); + case 3: // HV + return MyMaterial.zircaloy4.getMolten(aAmount); + case 4: // EV + return MyMaterial.incoloy903.getMolten(aAmount); + case 5: // IV + return MyMaterial.titaniumBetaC.getMolten(aAmount); + case 6: // LuV + return MyMaterial.artheriumSn.getMolten(aAmount); + case 7: // ZPM + return MyMaterial.dalisenite.getMolten(aAmount); + case 8: // UV + return MyMaterial.tairitsu.getMolten(aAmount); + case 9: // UHV + return MyMaterial.preciousMetalAlloy.getMolten(aAmount); + case 10: // UEV + return MyMaterial.enrichedNaquadahAlloy.getMolten(aAmount); + case 11: // UIV + return MyMaterial.metastableOganesson.getMolten(aAmount); + case 12: // UMV + return Materials.SpaceTime.getMolten(aAmount); + default: + return MyMaterial.shirabon.getMolten(aAmount); + } + } } |