sound: generic method for reading sound pitch

Thanks @turtius for the confusing name of `SOUND_PITCH_DIVIDER`
This commit is contained in:
Bixilon 2022-12-19 12:18:51 +01:00
parent 2f0b27836b
commit c8c316880c
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 10 additions and 12 deletions

View File

@ -20,7 +20,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
@ -56,11 +55,7 @@ class NamedSoundS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
position = Vec3(buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4)
}
volume = buffer.readFloat()
pitch = if (buffer.versionId < ProtocolVersions.V_16W20A) {
buffer.readByte() * ProtocolDefinition.PITCH_CALCULATION_CONSTANT / 100.0f
} else {
buffer.readFloat()
}
pitch = buffer.readSoundPitch()
if (buffer.versionId >= ProtocolVersions.V_22W14A) {
magicRandom = buffer.readLong()

View File

@ -20,7 +20,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
@ -64,11 +63,7 @@ class SoundEventS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
}
position = Vec3i(buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4)
volume = buffer.readFloat()
pitch = if (buffer.versionId < ProtocolVersions.V_16W20A) {
buffer.readByte() * ProtocolDefinition.PITCH_CALCULATION_CONSTANT / 100.0f
} else {
buffer.readFloat()
}
pitch = buffer.readSoundPitch()
if (buffer.versionId >= ProtocolVersions.V_22W14A) {
seed = buffer.readLong()

View File

@ -397,4 +397,12 @@ class PlayInByteBuffer : InByteBuffer {
parameters[ChatParameter.SENDER] = readChatComponent()
readOptional { readChatComponent() }?.let { parameters[ChatParameter.TARGET] = it }
}
fun readSoundPitch(): Float {
return if (versionId < ProtocolVersions.V_16W20A) {
readByte() * ProtocolDefinition.SOUND_PITCH_DIVIDER / 100.0f
} else {
readFloat()
}
}
}