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()
}
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) {
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
val position: Vec3d = buffer.readVec3d()
val yaw = buffer.readAngle()
val pitch = buffer.readAngle()

View File

@ -12,7 +12,6 @@
*/
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.entities.ExperienceOrb
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.s2c.PlayS2CPacket
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.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
@ -32,11 +30,7 @@ class EntityExperienceOrbS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
connection = buffer.connection,
entityType = buffer.connection.registries.entityTypeRegistry[ExperienceOrb.RESOURCE_LOCATION]!!,
data = EntityData(buffer.connection),
position = if (buffer.versionId < ProtocolVersions.V_16W06A) {
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
},
position = buffer.readVec3d(),
count = buffer.readUnsignedShort(),
)

View File

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

View File

@ -45,11 +45,7 @@ class EntityObjectSpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
} else {
buffer.readVarInt()
}
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) {
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
val position: Vec3d = buffer.readVec3d()
val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble()) // ToDo: Is yaw/pitch swapped?
if (buffer.versionId >= ProtocolVersions.V_22W14A) {
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.s2c.PlayS2CPacket
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.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
@ -32,11 +31,7 @@ class GlobalEntitySpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
val entity: LightningBolt
init {
val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) {
Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt())
} else {
buffer.readVec3d()
}
val position: Vec3d = buffer.readVec3d()
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())
}
fun readVec3d(): Vec3d {
open fun readVec3d(): Vec3d {
return Vec3d(readDouble(), readDouble(), readDouble())
}

View File

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