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, ...} *