From ab3a11055ad85054d1b11b4189518900ccadb510 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 13 Mar 2022 18:32:13 +0100 Subject: [PATCH] =?UTF-8?q?=C3=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../machine/TileEntityMachineChemplant.java | 49 ++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 940071fc7..a78e4c83a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -17,6 +17,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.sound.nt.ISoundSourceTE; import com.hbm.sound.nt.SoundWrapper; import com.hbm.tileentity.TileEntityMachineBase; @@ -32,7 +33,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, ISoundSourceTE { +public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor { public long power; public static final long maxPower = 100000; @@ -40,7 +41,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public int maxProgress = 100; public boolean isProgressing; - private SoundWrapper audio; + private AudioWrapper audio; public FluidTank[] tanks; @@ -144,11 +145,22 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); } - if(this.audio == null) { - this.audio = MainRegistry.proxy.getTileSound("hbm:block.chemplantOperate", this); - } + float volume = this.getVolume(2); - this.audio.updateSound(); + if(isProgressing && volume > 0) { + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, volume, 1.0F); + audio.startSound(); + } + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } @@ -163,6 +175,26 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements tanks[i].readFromNBT(nbt, "t" + i); } } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } private void updateConnections() { @@ -534,9 +566,4 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } - - @Override - public boolean isPlaying() { - return !this.isInvalid() && this.isProgressing; - } }