it works?

This commit is contained in:
Fate-JH 2023-05-30 01:22:04 -04:00
parent 63362c3e3a
commit 734a0b97a1
5 changed files with 10 additions and 13 deletions

View file

@ -11,7 +11,7 @@ object SeatConverter {
AvatarConverter.MakeAppearanceData(player),
AvatarConverter.MakeCharacterData(player),
AvatarConverter.MakeInventoryData(player),
AvatarConverter.GetDrawnSlot(player),
DrawnSlot.None,
offset
)
}

View file

@ -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))
}

View file

@ -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

View file

@ -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

View file

@ -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))