diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-04-22 00:01:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-21 18:01:02 +0200 |
commit | e8fdb4c32b93cfd44aff27549a20cea6828f7631 (patch) | |
tree | 7400e0b570133d3e88751f29d9a8b9f52df546e3 /src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java | |
parent | 91a14196ff46c10dfe3bd4c54591ef07a6cee874 (diff) | |
download | GT5-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/BaseMetaTileEntity.java')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java | 14 |
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) {} |