diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2023-07-25 21:33:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-25 21:33:20 +0200 |
commit | e5a1d22513b4fa6d839275bfe2b203876c19f1f5 (patch) | |
tree | e918bebdc565455926640d12b1953fb3fb858eef /src | |
parent | 37b8006aeffd3fb7e5759122abec23cec552f188 (diff) | |
download | GT5-Unofficial-e5a1d22513b4fa6d839275bfe2b203876c19f1f5.tar.gz GT5-Unofficial-e5a1d22513b4fa6d839275bfe2b203876c19f1f5.tar.bz2 GT5-Unofficial-e5a1d22513b4fa6d839275bfe2b203876c19f1f5.zip |
Fix no output from Mega Apiary + some misc. changes (#90)
* Update dependencies.gradle
* Update build.gradle
* Update .gitignore
* Create addon.gradle
* Fix no output from Mega Apiary
* Use checkProcessing instead of checkRecipe
* Migrate Tea Line to RA2
* Update build script
Diffstat (limited to 'src')
4 files changed, 176 insertions, 114 deletions
diff --git a/src/main/java/kubatech/loaders/RecipeLoader.java b/src/main/java/kubatech/loaders/RecipeLoader.java index eccab9fd7b..c98002348c 100644 --- a/src/main/java/kubatech/loaders/RecipeLoader.java +++ b/src/main/java/kubatech/loaders/RecipeLoader.java @@ -20,6 +20,16 @@ package kubatech.loaders; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; import static kubatech.api.enums.ItemList.BlackTea; import static kubatech.api.enums.ItemList.BlackTeaLeaf; import static kubatech.api.enums.ItemList.BruisedTeaLeaf; @@ -56,7 +66,6 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -108,22 +117,26 @@ public class RecipeLoader { "multimachine.extremeapiary", "Industrial Apicultural Acclimatiser and Drone Domestication Station", LoaderReference.Forestry)) { - GT_Values.RA.addAssemblylineRecipe( - gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(1), - 10000, - new Object[] { gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(64L), + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(1)) + .metadata(RESEARCH_TIME, 8 * MINUTES + 20 * SECONDS) + .itemInputs( + gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(64L), gregtech.api.enums.ItemList.IndustrialApiary_Upgrade_Acceleration_8_Upgraded.get(64L), gregtech.api.enums.ItemList.IndustrialApiary_Upgrade_STABILIZER.get(64L), gregtech.api.enums.ItemList.Robot_Arm_UV.get(16L), new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, - new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, }, - new FluidStack[] { FluidRegistry.getFluidStack("molten.indalloy140", 28800), - FluidRegistry.getFluidStack("for.honey", 20000) }, - ExtremeIndustrialApiary.get(1), - 6000, - 2_048_000); + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }) + .fluidInputs( + FluidRegistry.getFluidStack("molten.indalloy140", 28800), + FluidRegistry.getFluidStack("for.honey", 20000)) + .noFluidOutputs() + .itemOutputs(ExtremeIndustrialApiary.get(1)) + .eut(2_048_000) + .duration(5 * MINUTES) + .addTo(AssemblyLine); } if (registerMTEUsingID( 12_792, @@ -216,13 +229,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { TeaLeafDehydrated.get(1) }, - new FluidStack[] { FluidRegistry.getFluidStack("water", 50) }, - new ItemStack[] { SteamedTeaLeaf.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(TeaLeafDehydrated.get(1)) + .itemOutputs(SteamedTeaLeaf.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("water", 50)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); CORE.RA.addDehydratorRecipe( new ItemStack[] { SteamedTeaLeaf.get(1) }, null, @@ -231,7 +245,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addBenderRecipe(TeaLeafDehydrated.get(1), RolledTeaLeaf.get(1), 100, 32); + GT_Values.RA.stdBuilder() + .itemInputs(TeaLeafDehydrated.get(1)) + .itemOutputs(RolledTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sBenderRecipes); CORE.RA.addDehydratorRecipe( new ItemStack[] { RolledTeaLeaf.get(1) }, null, @@ -240,12 +261,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addChemicalRecipe( - RolledTeaLeaf.get(1), - GT_Utility.getIntegratedCircuit(1), - OxidizedTeaLeaf.get(1), - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(RolledTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(OxidizedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(UniversalChemical); CORE.RA.addDehydratorRecipe( new ItemStack[] { OxidizedTeaLeaf.get(1) }, null, @@ -254,12 +277,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addChemicalRecipe( - RolledTeaLeaf.get(1), - GT_Utility.getIntegratedCircuit(2), - FermentedTeaLeaf.get(1), - 200, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(RolledTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(FermentedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(10 * SECONDS) + .addTo(UniversalChemical); CORE.RA.addDehydratorRecipe( new ItemStack[] { FermentedTeaLeaf.get(1) }, null, @@ -268,18 +293,22 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addCutterRecipe( - new ItemStack[] { TeaLeafDehydrated.get(1) }, - new ItemStack[] { BruisedTeaLeaf.get(1) }, - 100, - 32, - false); - GT_Values.RA.addChemicalRecipe( - BruisedTeaLeaf.get(1), - GT_Utility.getIntegratedCircuit(1), - PartiallyOxidizedTeaLeaf.get(1), - 50, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(TeaLeafDehydrated.get(1)) + .itemOutputs(BruisedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sCutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(BruisedTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(PartiallyOxidizedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(2 * SECONDS + 10 * TICKS) + .addTo(UniversalChemical); CORE.RA.addDehydratorRecipe( new ItemStack[] { PartiallyOxidizedTeaLeaf.get(1) }, null, @@ -291,55 +320,63 @@ public class RecipeLoader { // Tea Assembly GameRegistry.addSmelting(BlackTeaLeaf.get(1), BlackTea.get(1), 10); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { BlackTea.get(1), GameRegistry.findItemStack("harvestcraft", "limejuiceItem", 1) }, - null, - new ItemStack[] { EarlGrayTea.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(BlackTea.get(1), GameRegistry.findItemStack("harvestcraft", "limejuiceItem", 1)) + .itemOutputs(EarlGrayTea.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); GameRegistry.addSmelting(GreenTeaLeaf.get(1), GreenTea.get(1), 10); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { BlackTea.get(1) }, - new FluidStack[] { FluidRegistry.getFluidStack("potion.lemonjuice", 1000) }, - new ItemStack[] { LemonTea.get(1) }, - null, - 100, - 32); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { BlackTea.get(1) }, - new FluidStack[] { FluidRegistry.getFluidStack("milk", 1000) }, - new ItemStack[] { MilkTea.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(BlackTea.get(1)) + .itemOutputs(LemonTea.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("potion.lemonjuice", 1000)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(BlackTea.get(1)) + .itemOutputs(MilkTea.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("milk", 1000)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); GameRegistry.addSmelting(OolongTeaLeaf.get(1), OolongTea.get(1), 10); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { GameRegistry.findItemStack("harvestcraft", "peppermintItem", 1) }, - new FluidStack[] { FluidRegistry.getFluidStack("water", 1000) }, - new ItemStack[] { PeppermintTea.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(GameRegistry.findItemStack("harvestcraft", "peppermintItem", 1)) + .itemOutputs(PeppermintTea.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("water", 1000)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); GameRegistry.addSmelting(PuerhTeaLeaf.get(1), PuerhTea.get(1), 10); GameRegistry.addSmelting(WhiteTeaLeaf.get(1), WhiteTea.get(1), 10); GameRegistry.addSmelting(YellowTeaLeaf.get(1), YellowTea.get(1), 10); } if (LoaderReference.Avaritia && LoaderReference.GTNHCoreMod) { - GT_Values.RA.addAssemblylineRecipe( - TeaAcceptorResearchNote.get(1), - 10000, - new Object[] { LegendaryUltimateTea.get(0), + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, TeaAcceptorResearchNote.get(1)) + .metadata(RESEARCH_TIME, 8 * MINUTES + 20 * SECONDS) + .itemInputs( + LegendaryUltimateTea.get(0), GameRegistry.findItemStack("Avaritia", "Neutronium_Compressor", 1), - gregtech.api.enums.ItemList.Quantum_Tank_EV.get(1), CustomItemList.FluidExtractorUHV.get(10), + gregtech.api.enums.ItemList.Quantum_Tank_EV.get(1), + CustomItemList.FluidExtractorUHV.get(10), new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, - new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, }, - new FluidStack[] { FluidRegistry.getFluidStack("molten.indalloy140", 28800) }, - TeaAcceptor.get(1), - 6000, - 2_048_000); + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }) + .fluidInputs(FluidRegistry.getFluidStack("molten.indalloy140", 28800)) + .noFluidOutputs() + .itemOutputs(TeaAcceptor.get(1)) + .eut(2_048_000) + .duration(5 * MINUTES) + .addTo(AssemblyLine); } } } diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java index f9251658f2..38a50ee1f9 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java @@ -72,6 +72,8 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; + import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; import com.google.common.collect.Multimap; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; @@ -117,6 +119,8 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; @@ -481,35 +485,38 @@ public class GT_MetaTileEntity_ExtremeExterminationChamber private final WeaponCache weaponCache = new WeaponCache(); @Override - public boolean checkRecipe(ItemStack aStack) { - if (getBaseMetaTileEntity().isClientSide()) return false; - if (aStack == null) return false; + @NotNull + public CheckRecipeResult checkProcessing() { + if (getBaseMetaTileEntity().isClientSide()) return CheckRecipeResultRegistry.NO_RECIPE; + ItemStack aStack = mInventory[1]; + if (aStack == null) return CheckRecipeResultRegistry.NO_RECIPE; - if (aStack.getItem() != poweredSpawnerItem) return false; + if (aStack.getItem() != poweredSpawnerItem) return CheckRecipeResultRegistry.NO_RECIPE; - if (aStack.getTagCompound() == null) return false; + if (aStack.getTagCompound() == null) return CheckRecipeResultRegistry.NO_RECIPE; String mobType = aStack.getTagCompound() .getString("mobType"); - if (mobType.isEmpty()) return false; + if (mobType.isEmpty()) return CheckRecipeResultRegistry.NO_RECIPE; if (mobType.equals("Skeleton") && getBaseMetaTileEntity().getWorld().provider instanceof WorldProviderHell && rand.nextInt(5) > 0) mobType = "witherSkeleton"; MobHandlerLoader.MobEECRecipe recipe = MobHandlerLoader.recipeMap.get(mobType); - if (recipe == null) return false; + if (recipe == null) return CheckRecipeResultRegistry.NO_RECIPE; if (!recipe.recipe.isPeacefulAllowed && this.getBaseMetaTileEntity() - .getWorld().difficultySetting == EnumDifficulty.PEACEFUL) return false; + .getWorld().difficultySetting == EnumDifficulty.PEACEFUL) return CheckRecipeResultRegistry.NO_RECIPE; if (isInRitualMode && isRitualValid()) { - if (getMaxInputEu() < recipe.mEUt / 4) return false; + if (getMaxInputEu() < recipe.mEUt / 4) return CheckRecipeResultRegistry.insufficientPower(recipe.mEUt / 4); this.mOutputFluids = new FluidStack[] { FluidRegistry.getFluidStack("xpjuice", 5000) }; this.mOutputItems = recipe.generateOutputs(rand, this, 3, 0, mIsProducingInfernalDrops); this.lEUt /= 4L; this.mMaxProgresstime = 400; } else { - if (getMaxInputEu() < recipe.mEUt) return false; - if (recipe.recipe.alwaysinfernal && getMaxInputEu() < recipe.mEUt * 8) return false; + if (getMaxInputEu() < recipe.mEUt) return CheckRecipeResultRegistry.insufficientPower(recipe.mEUt); + if (recipe.recipe.alwaysinfernal && getMaxInputEu() < recipe.mEUt * 8) + return CheckRecipeResultRegistry.insufficientPower(recipe.mEUt * 8); double attackDamage = DIAMOND_SPIKES_DAMAGE; // damage from spikes GT_MetaTileEntity_Hatch_InputBus inputbus = this.mInputBusses.size() == 0 ? null : this.mInputBusses.get(0); @@ -578,7 +585,7 @@ public class GT_MetaTileEntity_ExtremeExterminationChamber mobPacket.sendToAllAround(16); this.updateSlots(); - return true; + return CheckRecipeResultRegistry.SUCCESSFUL; } private boolean isRitualValid() { diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java index b898a11cc5..71ed169c1c 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java @@ -75,6 +75,8 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; + import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; @@ -121,6 +123,8 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; @@ -404,7 +408,8 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse } @Override - public boolean checkRecipe(ItemStack itemStack) { + @NotNull + public CheckRecipeResult checkProcessing() { int tier = getVoltageTier(); updateMaxSlots(); @@ -415,7 +420,7 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse if (setupphase > 0) { if ((mStorage.size() >= mMaxSlots && setupphase == 1) || (mStorage.size() == 0 && setupphase == 2)) - return false; + return CheckRecipeResultRegistry.NO_RECIPE; if (setupphase == 1) { List<ItemStack> inputs = getStoredInputs(); @@ -437,10 +442,10 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse this.lEUt = 0; this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; - return true; + return CheckRecipeResultRegistry.SUCCESSFUL; } - if (mStorage.size() > mMaxSlots) return false; - if (mStorage.isEmpty()) return false; + if (mStorage.size() > mMaxSlots) return CheckRecipeResultRegistry.NO_RECIPE; + if (mStorage.isEmpty()) return CheckRecipeResultRegistry.NO_RECIPE; waterusage = 0; weedexusage = 0; @@ -468,7 +473,7 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse fluidsToUse.add(i); if (watercheck <= 0) break; } - if (watercheck > 0 && !debug) return false; + if (watercheck > 0 && !debug) return CheckRecipeResultRegistry.NO_RECIPE; watercheck = waterusage; for (GT_MetaTileEntity_Hatch_Input i : fluidsToUse) { int used = i.drain(watercheck, true).amount; @@ -509,7 +514,7 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse double multiplier = 1.d + (((double) boost / (double) maxboost) * 4d); if (isIC2Mode) { - if (glasTier < 6) return false; + if (glasTier < 6) return CheckRecipeResultRegistry.NO_RECIPE; this.mMaxProgresstime = 100; List<ItemStack> outputs = new ArrayList<>(); for (int i = 0; i < Math.min(mMaxSlots, mStorage.size()); i++) outputs.addAll( @@ -533,7 +538,7 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; this.updateSlots(); - return true; + return CheckRecipeResultRegistry.SUCCESSFUL; } @Override diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java index 47cbd16a06..9d5dc463e7 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java @@ -65,6 +65,8 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import org.jetbrains.annotations.NotNull; + import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; import com.gtnewhorizon.structurelib.StructureLibAPI; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; @@ -120,6 +122,8 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; @@ -449,7 +453,8 @@ public class GT_MetaTileEntity_MegaIndustrialApiary } @Override - public boolean checkRecipe(ItemStack aStack) { + @NotNull + public CheckRecipeResult checkProcessing() { updateMaxSlots(); if (mPrimaryMode < 2) { if (mPrimaryMode == 0 && mStorage.size() < mMaxSlots) { @@ -470,12 +475,12 @@ public class GT_MetaTileEntity_MegaIndustrialApiary } else if (mPrimaryMode == 1 && mStorage.size() > 0) { if (tryOutputAll(mStorage, s -> Collections.singletonList(((BeeSimulator) s).queenStack))) isCacheDirty = true; - } else return false; + } else return CheckRecipeResultRegistry.NO_RECIPE; mMaxProgresstime = 10; mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); mEfficiencyIncrease = 10000; lEUt = 0; - return true; + return CheckRecipeResultRegistry.SUCCESSFUL; } else if (mPrimaryMode == 2) { if (mMaxSlots > 0 && !mStorage.isEmpty()) { if (mSecondaryMode == 0) { @@ -486,14 +491,15 @@ public class GT_MetaTileEntity_MegaIndustrialApiary mStorage.forEach(s -> s.generate(w, t)); } - if (mStorage.size() > mMaxSlots) return false; + if (mStorage.size() > mMaxSlots) return CheckRecipeResultRegistry.NO_RECIPE; - if (flowersError) return false; + if (flowersError) return CheckRecipeResultRegistry.NO_RECIPE; if (needsTVarUpdate) { float t = (float) getVoltageTierExact(); needsTVarUpdate = false; - mStorage.forEach(s -> s.updateTVar(t)); + World w = getBaseMetaTileEntity().getWorld(); + mStorage.forEach(s -> s.updateTVar(w, t)); } int maxConsume = Math.min(mStorage.size(), mMaxSlots) * 40; @@ -528,7 +534,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary if (!depleteInput(PluginApiculture.items.royalJelly.getItemStack(64)) || !depleteInput(PluginApiculture.items.royalJelly.getItemStack(36))) { this.updateSlots(); - return false; + return CheckRecipeResultRegistry.NO_RECIPE; } calculateOverclock(GT_Values.V[5] - 2L, 1200); if (this.lEUt > 0) this.lEUt = -this.lEUt; @@ -538,11 +544,11 @@ public class GT_MetaTileEntity_MegaIndustrialApiary .createIgnobleCopy() }; this.updateSlots(); } - return true; + return CheckRecipeResultRegistry.SUCCESSFUL; } } - return false; + return CheckRecipeResultRegistry.NO_RECIPE; } @Override @@ -1095,6 +1101,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary float maxBeeCycles; String flowerType; String flowerTypeDescription; + private static IBeekeepingMode mode; public BeeSimulator(ItemStack queenStack, World world, float t) { isValid = false; @@ -1105,11 +1112,11 @@ public class GT_MetaTileEntity_MegaIndustrialApiary } public void generate(World world, float t) { + if (mode == null) mode = beeRoot.getBeekeepingMode(world); drops.clear(); specialDrops.clear(); if (beeRoot.getType(this.queenStack) != EnumBeeType.QUEEN) return; IBee queen = beeRoot.getMember(this.queenStack); - IBeekeepingMode mode = beeRoot.getBeekeepingMode(world); IBeeModifier beeModifier = mode.getBeeModifier(); float mod = beeModifier.getLifespanModifier(null, null, 1.f); int h = queen.getMaxHealth(); @@ -1120,7 +1127,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary this.flowerTypeDescription = genome.getFlowerProvider() .getDescription(); IAlleleBeeSpecies primary = genome.getPrimary(); - beeSpeed = genome.getSpeed() * beeModifier.getProductionModifier(null, 1.f); + beeSpeed = genome.getSpeed(); genome.getPrimary() .getProductChances() .forEach((key, value) -> drops.add(new BeeDrop(key, value, beeSpeed, t))); @@ -1203,7 +1210,8 @@ public class GT_MetaTileEntity_MegaIndustrialApiary return beeRoot.getMemberStack(princess, EnumBeeType.PRINCESS.ordinal()); } - public void updateTVar(float t) { + public void updateTVar(World world, float t) { + if (mode == null) mode = beeRoot.getBeekeepingMode(world); drops.forEach(d -> d.updateTVar(t)); specialDrops.forEach(d -> d.updateTVar(t)); } @@ -1236,7 +1244,12 @@ public class GT_MetaTileEntity_MegaIndustrialApiary } public void evaluate() { - this.amount = Bee.getFinalChance(chance, beeSpeed, MAX_PRODUCTION_MODIFIER_FROM_UPGRADES, t); + this.amount = Bee.getFinalChance( + chance, + beeSpeed, + MAX_PRODUCTION_MODIFIER_FROM_UPGRADES + mode.getBeeModifier() + .getProductionModifier(null, MAX_PRODUCTION_MODIFIER_FROM_UPGRADES), + t); } public double getAmount(double speedModifier) { |