diff options
author | Volence <32358820+Volence@users.noreply.github.com> | 2024-09-23 16:30:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-23 20:30:53 +0000 |
commit | 95d749f1d690f63e862aa0a86142e036cc0ada8a (patch) | |
tree | 2b408b76c95c73e30cddf12b94dd55538c7a3215 /src/main/java/gregtech/common | |
parent | b9f4304cc182802c32197ac15e153d0e840f7a4d (diff) | |
download | GT5-Unofficial-95d749f1d690f63e862aa0a86142e036cc0ada8a.tar.gz GT5-Unofficial-95d749f1d690f63e862aa0a86142e036cc0ada8a.tar.bz2 GT5-Unofficial-95d749f1d690f63e862aa0a86142e036cc0ada8a.zip |
New sound effect for black hole compressor (#3265)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java index ba1c38db40..edfa676b53 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java @@ -28,6 +28,8 @@ import java.util.stream.Stream; import javax.annotation.Nonnull; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; @@ -48,9 +50,12 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTechAPI; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; @@ -76,6 +81,7 @@ import gregtech.common.tileentities.render.TileEntityBlackhole; import gtPlusPlus.core.util.minecraft.PlayerUtils; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; +import tectech.thing.metaTileEntity.multi.base.SoundLoopAnyBlock; public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBlackHoleCompressor> implements ISurvivalConstructable { @@ -153,6 +159,9 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBl */ private byte blackHoleStatus = 1; + @SideOnly(Side.CLIENT) + private SoundLoopAnyBlock blackholeSoundLoop; + private final FluidStack blackholeCatalyzingCost = (MaterialsUEVplus.SpaceTime).getMolten(1); private int catalyzingCostModifier = 1; @@ -216,6 +225,44 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBl if (oBlackHoleStatus != blackHoleStatus) getBaseMetaTileEntity().issueTextureUpdate(); } + @SideOnly(Side.CLIENT) + public void playBlackHoleSounds() { + if (blackHoleStatus > 1) { + if (blackholeSoundLoop == null) { + ForgeDirection oppositeDirection = getDirection().getOpposite(); + int offsetX = 7 * oppositeDirection.offsetX; + int offsetY = 11; + int offsetZ = 7 * oppositeDirection.offsetZ; + + World world = Minecraft.getMinecraft().thePlayer.worldObj; + IGregTechTileEntity base = getBaseMetaTileEntity(); + + int x = base.getXCoord() + offsetX; + int y = base.getYCoord() + offsetY; + int z = base.getZCoord() + offsetZ; + + Block blockAtSoundLocation = world.getBlock(x, y, z); + if (blockAtSoundLocation == Blocks.air) return; + + int[] offset = { offsetX, offsetY, offsetZ }; + blackholeSoundLoop = new SoundLoopAnyBlock( + SoundResource.GT_MACHINES_BLACK_HOLE_COMPRESSOR.resourceLocation, + getBaseMetaTileEntity(), + false, + false, + offset, + Blocks.air); + Minecraft.getMinecraft() + .getSoundHandler() + .playSound(blackholeSoundLoop); + } + } else { + if (blackholeSoundLoop != null) { + blackholeSoundLoop = null; + } + } + } + @Override public byte getUpdateData() { return blackHoleStatus; @@ -544,13 +591,16 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBl mOutputItems = null; mOutputFluids = null; } + return super.onRunningTick(aStack); } @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); - + if (!aBaseMetaTileEntity.isServerSide()) { + playBlackHoleSounds(); + } if (aTick % 20 == 0) { if (blackHoleStatus == 2) { if (blackHoleStability >= 0) { |