From a73e2f129ca8e9f1bca74ea403676d540ecb3db0 Mon Sep 17 00:00:00 2001 From: FateJH Date: Wed, 30 Aug 2017 09:35:38 -0400 Subject: [PATCH] added DetailedLockerContainerData Codec; modified PacketConverter for LockerContainer; modified tests (2) --- .../converter/LockerContainerConverter.scala | 3 ++- .../objectcreate/LockerContainerData.scala | 2 +- .../src/test/scala/objects/ConverterTest.scala | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/common/src/main/scala/net/psforever/objects/definition/converter/LockerContainerConverter.scala b/common/src/main/scala/net/psforever/objects/definition/converter/LockerContainerConverter.scala index 8c578331..b01a363c 100644 --- a/common/src/main/scala/net/psforever/objects/definition/converter/LockerContainerConverter.scala +++ b/common/src/main/scala/net/psforever/objects/definition/converter/LockerContainerConverter.scala @@ -15,7 +15,8 @@ class LockerContainerConverter extends ObjectCreateConverter[LockerContainer]() } override def DetailedConstructorData(obj : LockerContainer) : Try[DetailedLockerContainerData] = { - Success(DetailedLockerContainerData(8)) + val contents : Option[List[InternalSlot]] = if(obj.Inventory.Size > 0) { Some(MakeInventory(obj.Inventory)) } else { None } + Success(DetailedLockerContainerData(8, contents)) } /** diff --git a/common/src/main/scala/net/psforever/packet/game/objectcreate/LockerContainerData.scala b/common/src/main/scala/net/psforever/packet/game/objectcreate/LockerContainerData.scala index abcc2150..3cba5574 100644 --- a/common/src/main/scala/net/psforever/packet/game/objectcreate/LockerContainerData.scala +++ b/common/src/main/scala/net/psforever/packet/game/objectcreate/LockerContainerData.scala @@ -10,7 +10,7 @@ import shapeless.{::, HNil} * A representation for a game object that can contain items.
*
* For whatever reason, these "lockers" are typically placed at the origin coordinates. - * @param inventory the items inside his locker + * @param inventory the items inside this locker */ final case class LockerContainerData(inventory : InventoryData) extends ConstructorData { override def bitsize : Long = 105L + inventory.bitsize //81u + 2u + 21u + 1u diff --git a/common/src/test/scala/objects/ConverterTest.scala b/common/src/test/scala/objects/ConverterTest.scala index 07af9365..636357e7 100644 --- a/common/src/test/scala/objects/ConverterTest.scala +++ b/common/src/test/scala/objects/ConverterTest.scala @@ -162,6 +162,24 @@ class ConverterTest extends Specification { } } + "LockerContainer" should { + "convert to packet" in { + val obj = LockerContainer() + obj.Definition.Packet.DetailedConstructorData(obj) match { + case Success(pkt) => + pkt mustEqual DetailedLockerContainerData(8) + case _ => + ko + } + obj.Definition.Packet.ConstructorData(obj) match { + case Success(pkt) => + pkt mustEqual LockerContainerData(InventoryData(List.empty)) + case _ => + ko + } + } + } + "Vehicle" should { "convert to packet" in { val hellfire_ammo = AmmoBoxDefinition(Ammo.hellfire_ammo.id)