From 60ecda74ec745a14d1e87e7e7ab6ab7a80d95534 Mon Sep 17 00:00:00 2001 From: Graham Date: Sat, 29 May 2021 22:53:15 +0100 Subject: [PATCH] Add InvType Signed-off-by: Graham --- .../org/openrs2/cache/config/inv/InvType.kt | 24 +++++++++++++++++++ .../openrs2/cache/config/inv/InvTypeList.kt | 19 +++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt create mode 100644 cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt diff --git a/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt new file mode 100644 index 00000000..f2dce171 --- /dev/null +++ b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt @@ -0,0 +1,24 @@ +package org.openrs2.cache.config.inv + +import io.netty.buffer.ByteBuf +import org.openrs2.cache.config.ConfigType + +public class InvType(id: Int) : ConfigType(id) { + public var size: Int = 0 + + override fun read(buf: ByteBuf, code: Int) { + when (code) { + 2 -> size = buf.readUnsignedShort() + else -> throw IllegalArgumentException("Unsupported config code: $code") + } + } + + override fun write(buf: ByteBuf) { + if (size != 0) { + buf.writeByte(2) + buf.writeShort(size) + } + + buf.writeByte(0) + } +} diff --git a/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt new file mode 100644 index 00000000..0900dbcc --- /dev/null +++ b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt @@ -0,0 +1,19 @@ +package org.openrs2.cache.config.inv + +import org.openrs2.cache.Cache +import org.openrs2.cache.Js5Archive +import org.openrs2.cache.Js5ConfigGroup +import org.openrs2.cache.config.GroupConfigTypeList +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +public class InvTypeList @Inject constructor(cache: Cache) : GroupConfigTypeList( + cache, + archive = Js5Archive.CONFIG, + group = Js5ConfigGroup.INVTYPE +) { + override fun allocate(id: Int): InvType { + return InvType(id) + } +}