Skip to content

Commit

Permalink
packet/move_actor_delta.go: Symmetrical encode/decode.
Browse files Browse the repository at this point in the history
  • Loading branch information
Sandertv committed Aug 24, 2022
1 parent b8877ed commit 8146071
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 9 deletions.
26 changes: 24 additions & 2 deletions minecraft/protocol/packet/move_actor_delta.go
Expand Up @@ -44,46 +44,68 @@ func (pk *MoveActorDelta) Marshal(w *protocol.Writer) {
w.Uint16(&pk.Flags)
if pk.Flags&MoveActorDeltaFlagHasX != 0 {
w.Float32(&pk.Position[0])
} else {
pk.Position[0] = 0
}
if pk.Flags&MoveActorDeltaFlagHasY != 0 {
w.Float32(&pk.Position[1])
} else {
pk.Position[1] = 0
}
if pk.Flags&MoveActorDeltaFlagHasZ != 0 {
w.Float32(&pk.Position[2])
} else {
pk.Position[2] = 0
}
if pk.Flags&MoveActorDeltaFlagHasRotX != 0 {
w.ByteFloat(&pk.Rotation[0])
} else {
pk.Rotation[0] = 0
}
if pk.Flags&MoveActorDeltaFlagHasRotY != 0 {
w.ByteFloat(&pk.Rotation[1])
} else {
pk.Rotation[1] = 0
}
if pk.Flags&MoveActorDeltaFlagHasRotZ != 0 {
w.ByteFloat(&pk.Rotation[2])
} else {
pk.Rotation[2] = 0
}
}

// Unmarshal ...
func (pk *MoveActorDelta) Unmarshal(r *protocol.Reader) {
pk.Position = mgl32.Vec3{}
pk.Rotation = mgl32.Vec3{}
r.Varuint64(&pk.EntityRuntimeID)
r.Uint16(&pk.Flags)
if pk.Flags&MoveActorDeltaFlagHasX != 0 {
r.Float32(&pk.Position[0])
} else {
pk.Position[0] = 0
}
if pk.Flags&MoveActorDeltaFlagHasY != 0 {
r.Float32(&pk.Position[1])
} else {
pk.Position[1] = 0
}
if pk.Flags&MoveActorDeltaFlagHasZ != 0 {
r.Float32(&pk.Position[2])
} else {
pk.Position[2] = 0
}
if pk.Flags&MoveActorDeltaFlagHasRotX != 0 {
r.ByteFloat(&pk.Rotation[0])
} else {
pk.Rotation[0] = 0
}
if pk.Flags&MoveActorDeltaFlagHasRotY != 0 {
r.ByteFloat(&pk.Rotation[1])
} else {
pk.Rotation[1] = 0
}
if pk.Flags&MoveActorDeltaFlagHasRotZ != 0 {
r.ByteFloat(&pk.Rotation[2])
} else {
pk.Rotation[2] = 0
}
}
2 changes: 1 addition & 1 deletion minecraft/protocol/packet/play_sound.go
Expand Up @@ -10,7 +10,7 @@ import (
type PlaySound struct {
// SoundName is the name of the sound to play.
SoundName string
// Position is the position at which the sound was played. Some of the sounds do not depend on a position,
// Position is the position at which the sound was played. Some sounds do not depend on a position,
// which will then ignore it, but most of them will play with the direction based on the position compared
// to the player's position.
Position mgl32.Vec3
Expand Down
12 changes: 6 additions & 6 deletions minecraft/protocol/packet/player_armour_damage.go
Expand Up @@ -37,17 +37,17 @@ func (pk *PlayerArmourDamage) Marshal(w *protocol.Writer) {
if pk.Bitset&0b0010 != 0 {
w.Varint32(&pk.ChestplateDamage)
} else {
pk.HelmetDamage = 0
pk.ChestplateDamage = 0
}
if pk.Bitset&0b0100 != 0 {
w.Varint32(&pk.LeggingsDamage)
} else {
pk.HelmetDamage = 0
pk.LeggingsDamage = 0
}
if pk.Bitset&0b1000 != 0 {
w.Varint32(&pk.BootsDamage)
} else {
pk.HelmetDamage = 0
pk.BootsDamage = 0
}
}

Expand All @@ -62,16 +62,16 @@ func (pk *PlayerArmourDamage) Unmarshal(r *protocol.Reader) {
if pk.Bitset&0b0010 != 0 {
r.Varint32(&pk.ChestplateDamage)
} else {
pk.HelmetDamage = 0
pk.ChestplateDamage = 0
}
if pk.Bitset&0b0100 != 0 {
r.Varint32(&pk.LeggingsDamage)
} else {
pk.HelmetDamage = 0
pk.LeggingsDamage = 0
}
if pk.Bitset&0b1000 != 0 {
r.Varint32(&pk.BootsDamage)
} else {
pk.HelmetDamage = 0
pk.BootsDamage = 0
}
}

0 comments on commit 8146071

Please sign in to comment.