mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-16 08:55:18 +00:00
it works?
This commit is contained in:
parent
63362c3e3a
commit
734a0b97a1
5 changed files with 10 additions and 13 deletions
|
|
@ -11,7 +11,7 @@ object SeatConverter {
|
|||
AvatarConverter.MakeAppearanceData(player),
|
||||
AvatarConverter.MakeCharacterData(player),
|
||||
AvatarConverter.MakeInventoryData(player),
|
||||
AvatarConverter.GetDrawnSlot(player),
|
||||
DrawnSlot.None,
|
||||
offset
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@ import net.psforever.packet.game.objectcreate.{UtilityVehicleData, VehicleFormat
|
|||
class UtilityVehicleConverter extends VehicleConverter {
|
||||
override protected def SpecificFormatModifier: VehicleFormat = VehicleFormat.Utility
|
||||
|
||||
override protected def SpecificFormatData(obj: Vehicle) = Some(UtilityVehicleData(0))
|
||||
override protected def SpecificFormatData(obj: Vehicle): Some[UtilityVehicleData] = Some(UtilityVehicleData(0))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import net.psforever.packet.game.objectcreate.{VariantVehicleData, VehicleFormat
|
|||
class VariantVehicleConverter extends VehicleConverter {
|
||||
override protected def SpecificFormatModifier: VehicleFormat = VehicleFormat.Variant
|
||||
|
||||
override protected def SpecificFormatData(obj: Vehicle) = {
|
||||
override protected def SpecificFormatData(obj: Vehicle): Some[VariantVehicleData] = {
|
||||
/*
|
||||
landed is 0
|
||||
flying is 7
|
||||
|
|
|
|||
|
|
@ -75,9 +75,9 @@ class VehicleConverter extends ObjectCreateConverter[Vehicle]() {
|
|||
}
|
||||
|
||||
private def MakeDriverSeat(obj: Vehicle): List[InventoryItemData.InventoryItem] = {
|
||||
val offset: Long = MountableInventory.InitialStreamLengthToSeatEntries(obj.Velocity.nonEmpty, SpecificFormatModifier)
|
||||
obj.Seats(0).occupant match {
|
||||
case Some(player) =>
|
||||
val offset: Long = MountableInventory.InitialStreamLengthToSeatEntries(obj.Velocity.nonEmpty, SpecificFormatModifier)
|
||||
List(InventoryItemData(ObjectClass.avatar, player.GUID, 0, SeatConverter.MakeSeat(player, offset)))
|
||||
case None =>
|
||||
Nil
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ object MountableInventory {
|
|||
accumulative: Long
|
||||
): Player_Data = {
|
||||
val appearance = basic_appearance(CumulativeSeatedPlayerNamePadding(accumulative))
|
||||
Player_Data(None, appearance, character_data(appearance.b.backpack, true), Some(inventory), drawn_slot)(false)
|
||||
Player_Data(None, appearance, character_data(false, true), Some(inventory), drawn_slot)(position_defined = false)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -118,7 +118,7 @@ object MountableInventory {
|
|||
accumulative: Long
|
||||
): Player_Data = {
|
||||
val appearance = basic_appearance(CumulativeSeatedPlayerNamePadding(accumulative))
|
||||
Player_Data.apply(None, appearance, character_data(appearance.b.backpack, true), None, drawn_slot)(false)
|
||||
Player_Data.apply(None, appearance, character_data(appearance.b.backpack, true), None, drawn_slot)(position_defined = false)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -148,10 +148,7 @@ object MountableInventory {
|
|||
* @return the padding value, 0-7 bits
|
||||
*/
|
||||
def CumulativeSeatedPlayerNamePadding(base: Long, next: Option[StreamBitSize]): Int = {
|
||||
CumulativeSeatedPlayerNamePadding(base + (next match {
|
||||
case Some(o) => o.bitsize
|
||||
case None => 0
|
||||
}))
|
||||
CumulativeSeatedPlayerNamePadding(base + next.map { _.bitsize }.getOrElse(0L))
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -191,7 +188,7 @@ object MountableInventory {
|
|||
private def inventory_seat_codec(length: Long, offset: Int): Codec[Option[InventorySeat]] = {
|
||||
import shapeless.::
|
||||
(
|
||||
PacketHelpers.peek(uintL(11)) >>:~ { objClass =>
|
||||
PacketHelpers.peek(uintL(bits = 11)) >>:~ { objClass =>
|
||||
conditional(objClass == ObjectClass.avatar, seat_codec(offset)) >>:~ { seat =>
|
||||
conditional(
|
||||
objClass == ObjectClass.avatar,
|
||||
|
|
@ -232,7 +229,7 @@ object MountableInventory {
|
|||
}
|
||||
|
||||
/**
|
||||
* Translate data the is verified to involve a player who is seated (mounted) to the parent object at a given slot.
|
||||
* Translate data that is verified to involve a player who is seated (mounted) to the parent object at a given slot.
|
||||
* The operation performed by this `Codec` is very similar to `InternalSlot.codec`.
|
||||
* @param pad the padding offset for the player's name;
|
||||
* 0-7 bits;
|
||||
|
|
@ -245,7 +242,7 @@ object MountableInventory {
|
|||
private def seat_codec(pad: Int): Codec[InternalSlot] = {
|
||||
import shapeless.::
|
||||
(
|
||||
("objectClass" | uintL(11)) ::
|
||||
("objectClass" | uintL(bits = 11)) ::
|
||||
("guid" | PlanetSideGUID.codec) ::
|
||||
("parentSlot" | PacketHelpers.encodedStringSize) ::
|
||||
("obj" | Player_Data.codec(pad))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue