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.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.sound.nt.ISoundSourceTE; import com.hbm.sound.nt.ISoundSourceTE;
import com.hbm.sound.nt.SoundWrapper; import com.hbm.sound.nt.SoundWrapper;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
@ -32,7 +33,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; 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 long power;
public static final long maxPower = 100000; public static final long maxPower = 100000;
@ -40,7 +41,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
public int maxProgress = 100; public int maxProgress = 100;
public boolean isProgressing; public boolean isProgressing;
private SoundWrapper audio; private AudioWrapper audio;
public FluidTank[] tanks; 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); worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0);
} }
if(this.audio == null) { float volume = this.getVolume(2);
this.audio = MainRegistry.proxy.getTileSound("hbm:block.chemplantOperate", this);
}
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;
}
}
} }
} }
@ -164,6 +176,26 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
} }
} }
@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() { private void updateConnections() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite();
@ -534,9 +566,4 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
public double getMaxRenderDistanceSquared() { public double getMaxRenderDistanceSquared() {
return 65536.0D; return 65536.0D;
} }
@Override
public boolean isPlaying() {
return !this.isInvalid() && this.isProgressing;
}
} }