unify InByteBuffer::readVec3d

This commit is contained in:
Bixilon 2022-12-19 18:31:12 +01:00
parent c8c316880c
commit a1363c816a
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
7 changed files with 14 additions and 29 deletions

View File

@ -49,11 +49,7 @@ class EntityPlayerS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
entityUUID = buffer.readUUID() entityUUID = buffer.readUUID()
} }
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { val position: Vec3d = buffer.readVec3d()
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
val yaw = buffer.readAngle() val yaw = buffer.readAngle()
val pitch = buffer.readAngle() val pitch = buffer.readAngle()

View File

@ -12,7 +12,6 @@
*/ */
package de.bixilon.minosoft.protocol.packets.s2c.play.entity.spawn package de.bixilon.minosoft.protocol.packets.s2c.play.entity.spawn
import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.minosoft.data.entities.data.EntityData import de.bixilon.minosoft.data.entities.data.EntityData
import de.bixilon.minosoft.data.entities.entities.ExperienceOrb import de.bixilon.minosoft.data.entities.entities.ExperienceOrb
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent
@ -20,7 +19,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType import de.bixilon.minosoft.util.logging.LogMessageType
@ -32,11 +30,7 @@ class EntityExperienceOrbS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
connection = buffer.connection, connection = buffer.connection,
entityType = buffer.connection.registries.entityTypeRegistry[ExperienceOrb.RESOURCE_LOCATION]!!, entityType = buffer.connection.registries.entityTypeRegistry[ExperienceOrb.RESOURCE_LOCATION]!!,
data = EntityData(buffer.connection), data = EntityData(buffer.connection),
position = if (buffer.versionId < ProtocolVersions.V_16W06A) { position = buffer.readVec3d(),
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
},
count = buffer.readUnsignedShort(), count = buffer.readUnsignedShort(),
) )

View File

@ -44,11 +44,7 @@ class EntityMobSpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
} else { } else {
buffer.readVarInt() buffer.readVarInt()
} }
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { val position: Vec3d = buffer.readVec3d()
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble()) val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble())
val headYaw = buffer.readAngle() val headYaw = buffer.readAngle()
val velocity = buffer.readVelocity() val velocity = buffer.readVelocity()

View File

@ -45,11 +45,7 @@ class EntityObjectSpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
} else { } else {
buffer.readVarInt() buffer.readVarInt()
} }
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { val position: Vec3d = buffer.readVec3d()
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble()) // ToDo: Is yaw/pitch swapped? val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble()) // ToDo: Is yaw/pitch swapped?
if (buffer.versionId >= ProtocolVersions.V_22W14A) { if (buffer.versionId >= ProtocolVersions.V_22W14A) {
val headYaw = buffer.readAngle() val headYaw = buffer.readAngle()

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.factory.LoadPacket
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType import de.bixilon.minosoft.util.logging.LogMessageType
@ -32,11 +31,7 @@ class GlobalEntitySpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
val entity: LightningBolt val entity: LightningBolt
init { init {
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { val position: Vec3d = buffer.readVec3d()
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
entity = LightningBolt(buffer.connection, buffer.connection.registries.entityTypeRegistry[LightningBolt.RESOURCE_LOCATION]!!, EntityData(buffer.connection), position) entity = LightningBolt(buffer.connection, buffer.connection.registries.entityTypeRegistry[LightningBolt.RESOURCE_LOCATION]!!, EntityData(buffer.connection), position)
} }

View File

@ -295,7 +295,7 @@ open class InByteBuffer {
return Vec3(readFloat(), readFloat(), readFloat()) return Vec3(readFloat(), readFloat(), readFloat())
} }
fun readVec3d(): Vec3d { open fun readVec3d(): Vec3d {
return Vec3d(readDouble(), readDouble(), readDouble()) return Vec3d(readDouble(), readDouble(), readDouble())
} }

View File

@ -12,6 +12,7 @@
*/ */
package de.bixilon.minosoft.protocol.protocol package de.bixilon.minosoft.protocol.protocol
import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.kotlinglm.vec3.Vec3i import de.bixilon.kotlinglm.vec3.Vec3i
import de.bixilon.kutil.array.ArrayUtil.cast import de.bixilon.kutil.array.ArrayUtil.cast
import de.bixilon.kutil.bit.BitByte.isBitMask import de.bixilon.kutil.bit.BitByte.isBitMask
@ -405,4 +406,11 @@ class PlayInByteBuffer : InByteBuffer {
readFloat() readFloat()
} }
} }
override fun readVec3d(): Vec3d {
if (versionId < ProtocolVersions.V_16W06A) {
return Vec3d(readFixedPointNumberInt(), readFixedPointNumberInt(), readFixedPointNumberInt())
}
return super.readVec3d()
}
} }