This commit is contained in:
Bob 2022-03-13 18:32:13 +01:00
parent 52418ce769
commit ab3a11055a

View File

@ -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;
}
}