aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-04-22 00:01:02 +0800
committerGitHub <noreply@github.com>2022-04-21 18:01:02 +0200
commite8fdb4c32b93cfd44aff27549a20cea6828f7631 (patch)
tree7400e0b570133d3e88751f29d9a8b9f52df546e3 /src/main/java/gregtech/api/metatileentity
parent91a14196ff46c10dfe3bd4c54591ef07a6cee874 (diff)
downloadGT5-Unofficial-e8fdb4c32b93cfd44aff27549a20cea6828f7631.tar.gz
GT5-Unofficial-e8fdb4c32b93cfd44aff27549a20cea6828f7631.tar.bz2
GT5-Unofficial-e8fdb4c32b93cfd44aff27549a20cea6828f7631.zip
Fix machine rain exploding in biomes that does not have visual rains (#1026)
* Fix machine rain exploding in biomes that does not have visual rains * update buildscript * Add missing boolean negation
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index 5d62a112aa..588a19e97b 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -54,6 +54,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.World;
+import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
@@ -219,6 +220,12 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec
increaseStoredEnergyUnits(GT_ModHandler.dischargeElectricItem(aStack, (int) Math.min(Integer.MAX_VALUE, getEUCapacity() - getStoredEU()), (int) Math.min(Integer.MAX_VALUE, mMetaTileEntity.getInputTier()), false, false, false), true);
}
+ protected boolean isRainPossible() {
+ BiomeGenBase biome = getBiome();
+ // see net.minecraft.client.renderer.EntityRenderer.renderRainSnow
+ return biome.rainfall > 0 && (biome.canSpawnLightningBolt() || biome.getEnableSnow());
+ }
+
@Override
public void updateEntity() {
super.updateEntity();
@@ -359,7 +366,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec
return;
}
- if (getRandomNumber(1000) == 0) {
+ if (getRandomNumber(1000) == 0 && isRainPossible()) {
final int precipitationHeightAtSide2 = worldObj.getPrecipitationHeight(xCoord, zCoord - 1);
final int precipitationHeightAtSide3 = worldObj.getPrecipitationHeight(xCoord, zCoord + 1);
final int precipitationHeightAtSide4 = worldObj.getPrecipitationHeight(xCoord - 1, zCoord);
@@ -370,7 +377,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec
|| (getCoverIDAtSide((byte) 3) == 0 && precipitationHeightAtSide3 - 1 < yCoord && precipitationHeightAtSide3 > -1)
|| (getCoverIDAtSide((byte) 4) == 0 && precipitationHeightAtSide4 - 1 < yCoord && precipitationHeightAtSide4 > -1)
|| (getCoverIDAtSide((byte) 5) == 0 && precipitationHeightAtSide5 - 1 < yCoord && precipitationHeightAtSide5 > -1)) {
- if (GregTech_API.sMachineRainExplosions && worldObj.isRaining() && getBiome().rainfall > 0) {
+ if (GregTech_API.sMachineRainExplosions && worldObj.isRaining()) {
if (getRandomNumber(10) == 0) {
try {
GT_Mod.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather");
@@ -386,8 +393,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec
mRunningThroughTick = false;
return;
}
- if (GregTech_API.sMachineThunderExplosions && worldObj.isThundering() && getBiome().rainfall > 0 && getRandomNumber(
- 3) == 0) {
+ if (GregTech_API.sMachineThunderExplosions && worldObj.isThundering() && getRandomNumber(3) == 0) {
try {
GT_Mod.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather");
} catch (Exception ignored) {}