From 580cfd53da76951af5493ff32f90041ee68f6989 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 22 Jan 2023 19:10:20 +0700 Subject: [PATCH] reified mapAsObject --- .../dbotthepony/kstarbound/defs/tile/RenderTemplate.kt | 6 +++--- .../kstarbound/io/json/builder/FactoryAdapter.kt | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt index 3497c443..caf83387 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt @@ -263,10 +263,10 @@ data class RenderTemplate( companion object { val ADAPTER = FactoryAdapter.Builder(RenderTemplate::class) - .mapAsObject(RenderTemplate::pieces, RenderPiece::class.java) + .mapAsObject(RenderTemplate::pieces) .auto(RenderTemplate::representativePiece) - .list(RenderTemplate::matches, RenderMatchList::class.java) - .mapAsObject(RenderTemplate::rules, RenderRuleList::class.java) + .autoList(RenderTemplate::matches) + .mapAsObject(RenderTemplate::rules) .build() val CACHE = ADAPTER.asReference() diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/builder/FactoryAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/builder/FactoryAdapter.kt index 6c8af1a3..456921ca 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/builder/FactoryAdapter.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/builder/FactoryAdapter.kt @@ -560,6 +560,15 @@ class FactoryAdapter private constructor( return this } + /** + * Добавляет поле-таблицу, которое кодируется как {"a": value, "b": value, ...} + * + * Таблица неизменяема (создаётся объект [ImmutableMap]) + */ + inline fun mapAsObject(field: KProperty1?>): Builder { + return mapAsObject(field, V::class.java) + } + /** * Добавляет поле-таблицу, которое кодируется как {"a": value, "b": value, ...} *