diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index d0c3e0527..e32a41fb8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -316,6 +316,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc @Override public void onChunkUnload() { + super.onChunkUnload(); + if(audio != null) { audio.stopSound(); audio = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 59f759c71..4a7e3de46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -24,6 +24,7 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -63,6 +64,10 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser public float lastRotor; public boolean isOn; + private float rotorSpeed = 0F; + + private AudioWrapper audio; + public TileEntityITER() { super(5); tanks = new FluidTank[2]; @@ -181,16 +186,38 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser /// END Notif packets /// } else { - + this.lastRotor = this.rotor; + this.rotor += this.rotorSpeed; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } - if(this.isOn && this.power >= this.powerReq) { + if(this.isOn && this.power >= powerReq) { + this.rotorSpeed = Math.max(0F, Math.min(15F, this.rotorSpeed + 0.05F)); + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.fusionReactorRunning", xCoord, yCoord, zCoord, 1.0F, 30F, 1.0F); + audio.startSound(); + } + + float rotorSpeed = this.rotorSpeed / 15F; + audio.updateVolume(getVolume(0.5f * rotorSpeed)); + audio.updatePitch(0.25F + 0.75F * rotorSpeed); + } else { + this.rotorSpeed = Math.max(0F, Math.min(15F, this.rotorSpeed - 0.1F)); - this.rotor += 15F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; + if(audio != null) { + if(this.rotorSpeed > 0) { + float rotorSpeed = this.rotorSpeed / 15F; + audio.updateVolume(getVolume(0.5f * rotorSpeed)); + audio.updatePitch(0.25F + 0.75F * rotorSpeed); + } else { + audio.stopSound(); + audio = null; + } } } } @@ -477,6 +504,26 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser return 0; } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 5df34faa2..885408284 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -324,6 +324,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Override public void onChunkUnload() { + super.onChunkUnload(); + if(audio != null) { audio.stopSound(); audio = null; diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 0ef66227c..2e3958e45 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -61,6 +61,7 @@ "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, + "block.fusionReactorRunning": {"category": "block", "sounds": [{"name": "block/fusionReactorSpin", "stream": false}]}, "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg b/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg new file mode 100644 index 000000000..b3752f91c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg differ