aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2022-08-04 04:44:47 +0200
committerGitHub <noreply@github.com>2022-08-04 09:44:47 +0700
commit6fc8548eb05be1b950ad087164d0e09998921daa (patch)
tree4dc1ab232ca542e684dfefbab06d4da807215433 /src/main/java/gregtech/common/tileentities
parent649f5b543e94aa50898897a659f73e70686098f5 (diff)
downloadGT5-Unofficial-6fc8548eb05be1b950ad087164d0e09998921daa.tar.gz
GT5-Unofficial-6fc8548eb05be1b950ad087164d0e09998921daa.tar.bz2
GT5-Unofficial-6fc8548eb05be1b950ad087164d0e09998921daa.zip
Industrial Apiary Changes (#1197)
* Start with lower energy without acceleration upgrades * Pollen collection is an upgrade... I didnt know. * Implement Queen Pollination * Fix battery slot not working * Dont try to pollinate when there is no chance to success
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java
index 7562946e51..0ec52f2ee2 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java
@@ -41,6 +41,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.util.*;
+import static gregtech.api.enums.GT_Values.V;
import static gregtech.api.enums.Textures.BlockIcons.*;
import static gregtech.api.util.GT_Utility.moveMultipleItemStacks;
@@ -55,7 +56,6 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
public int mSpeed = 0;
public boolean mLockedSpeed = true;
- public boolean retreviePollen = false;
private ItemStack usedQueen = null;
private IBee usedQueenBee = null;
@@ -118,7 +118,6 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
super.saveNBTData(aNBT);
aNBT.setInteger("mSpeed", mSpeed);
aNBT.setBoolean("mLockedSpeed", mLockedSpeed);
- aNBT.setBoolean("retrievePolen", retreviePollen);
if(usedQueen != null)
aNBT.setTag("usedQueen", usedQueen.writeToNBT(new NBTTagCompound()));
}
@@ -128,11 +127,13 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
super.loadNBTData(aNBT);
mSpeed = aNBT.getInteger("mSpeed");
mLockedSpeed = aNBT.getBoolean("mLockedSpeed");
- retreviePollen = aNBT.getBoolean("retrievePolen");
if(aNBT.hasKey("usedQueen"))
usedQueen = ItemStack.loadItemStackFromNBT(aNBT.getCompoundTag("usedQueen"));
}
+ boolean retrievingPollenInThisOperation = false;
+ IIndividual retrievedpollen = null;
+
@Override
public int checkRecipe() {
updateModifiers();
@@ -160,7 +161,7 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
HashMap<GT_Utility.ItemId, ItemStack> pollen = new HashMap<>();
- if(retreviePollen) {
+ if(isRetrievingPollen && floweringMod > 0f) {
int icycles = (int)cycles + (getWorld().rand.nextFloat() < (cycles - (float)((int)cycles)) ? 1 : 0);
for(int z = 0; z < icycles; z++) {
IIndividual p = bee.retrievePollen(this);
@@ -176,6 +177,9 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
}
}
+ retrievedpollen = null;
+ retrievingPollenInThisOperation = isRetrievingPollen;
+
IBeeGenome genome = bee.getGenome();
IAlleleBeeSpecies primary = genome.getPrimary();
IAlleleBeeSpecies secondary = genome.getSecondary();
@@ -317,6 +321,11 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
}
@Override
+ protected boolean hasEnoughEnergyToCheckRecipe() {
+ return getBaseMetaTileEntity().isUniversalEnergyStored(V[mSpeed] * 8L);
+ }
+
+ @Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isClientSide()) {
if(GT_Client.changeDetected == 4) {
@@ -338,6 +347,9 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
}
if(aBaseMetaTileEntity.isServerSide()){
+ mCharge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3;
+ mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3;
+
doDisplayThings();
if(!aBaseMetaTileEntity.isActive())
@@ -386,6 +398,13 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
if(usedQueenBee == null)
usedQueenBee = beeRoot.getMember(usedQueen);
effectData = usedQueenBee.doEffect(effectData, this);
+ if(!retrievingPollenInThisOperation && floweringMod > 0f)
+ {
+ if(retrievedpollen == null)
+ retrievedpollen = usedQueenBee.retrievePollen(this);
+ if(usedQueenBee.pollinateRandom(this, retrievedpollen) || this.mProgresstime % 100 == 0)
+ retrievedpollen = null;
+ }
}
if(this.mProgresstime % 100 == 0)
@@ -749,6 +768,7 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
private float humidityMod = 0f;
private float temperatureMod = 0f;
private boolean isAutomated = false;
+ private boolean isRetrievingPollen = false;
private int maxspeed = 0;
@@ -791,6 +811,7 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
humidityMod = mods.humidity;
temperatureMod = mods.temperature;
isAutomated = mods.isAutomated;
+ isRetrievingPollen = mods.isCollectingPollen;
if(mLockedSpeed)
mSpeed = maxspeed;