Add 1.21.2 & 1.21.0 support
This commit is contained in:
56
legacyver/proto/entity_link.go
Normal file
56
legacyver/proto/entity_link.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package proto
|
||||
|
||||
import "github.com/sandertv/gophertunnel/minecraft/protocol"
|
||||
|
||||
// EntityLink is a link between two entities, typically being one entity riding another.
|
||||
type EntityLink struct {
|
||||
// RiddenEntityUniqueID is the entity unique ID of the entity that is being ridden. For a player sitting
|
||||
// in a boat, this is the unique ID of the boat.
|
||||
RiddenEntityUniqueID int64
|
||||
// RiderEntityUniqueID is the entity unique ID of the entity that is riding. For a player sitting in a
|
||||
// boat, this is the unique ID of the player.
|
||||
RiderEntityUniqueID int64
|
||||
// Type is one of the types above. It specifies the way the entity is linked to another entity.
|
||||
Type byte
|
||||
// Immediate is set to immediately dismount an entity from another. This should be set when the mount of
|
||||
// an entity is killed.
|
||||
Immediate bool
|
||||
// RiderInitiated specifies if the link was created by the rider, for example the player starting to ride
|
||||
// a horse by itself. This is generally true in vanilla environment for players.
|
||||
RiderInitiated bool
|
||||
// VehicleAngularVelocity is the angular velocity of the vehicle that the rider is riding.
|
||||
VehicleAngularVelocity float32
|
||||
}
|
||||
|
||||
func (x *EntityLink) FromLatest(link protocol.EntityLink) EntityLink {
|
||||
x.RiddenEntityUniqueID = link.RiddenEntityUniqueID
|
||||
x.RiderEntityUniqueID = link.RiderEntityUniqueID
|
||||
x.Type = link.Type
|
||||
x.Immediate = link.Immediate
|
||||
x.RiderInitiated = link.RiderInitiated
|
||||
x.VehicleAngularVelocity = link.VehicleAngularVelocity
|
||||
return *x
|
||||
}
|
||||
|
||||
func (x *EntityLink) ToLatest() protocol.EntityLink {
|
||||
return protocol.EntityLink{
|
||||
RiddenEntityUniqueID: x.RiddenEntityUniqueID,
|
||||
RiderEntityUniqueID: x.RiderEntityUniqueID,
|
||||
Type: x.Type,
|
||||
Immediate: x.Immediate,
|
||||
RiderInitiated: x.RiderInitiated,
|
||||
VehicleAngularVelocity: x.VehicleAngularVelocity,
|
||||
}
|
||||
}
|
||||
|
||||
// Marshal encodes/decodes a single entity link.
|
||||
func (x *EntityLink) Marshal(r protocol.IO) {
|
||||
r.Varint64(&x.RiddenEntityUniqueID)
|
||||
r.Varint64(&x.RiderEntityUniqueID)
|
||||
r.Uint8(&x.Type)
|
||||
r.Bool(&x.Immediate)
|
||||
r.Bool(&x.RiderInitiated)
|
||||
if IsProtoGTE(r, ID712) {
|
||||
r.Float32(&x.VehicleAngularVelocity)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user