aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/tileentity/gregtech/multiblock
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2023-07-25 21:33:20 +0200
committerGitHub <noreply@github.com>2023-07-25 21:33:20 +0200
commite5a1d22513b4fa6d839275bfe2b203876c19f1f5 (patch)
treee918bebdc565455926640d12b1953fb3fb858eef /src/main/java/kubatech/tileentity/gregtech/multiblock
parent37b8006aeffd3fb7e5759122abec23cec552f188 (diff)
downloadGT5-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/main/java/kubatech/tileentity/gregtech/multiblock')
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java31
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java21
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java39
3 files changed, 58 insertions, 33 deletions
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) {