Reified generics for lists

This commit is contained in:
DBotThePony 2022-09-08 19:53:44 +07:00
parent 0879e5e7a9
commit 404c3dd6d1
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 9 additions and 9 deletions

View File

@ -29,7 +29,7 @@ data class MaterialModifier(
.plain(MaterialModifier::health) .plain(MaterialModifier::health)
.plain(MaterialModifier::harvestLevel) .plain(MaterialModifier::harvestLevel)
.plain(MaterialModifier::breaksWithTile) .plain(MaterialModifier::breaksWithTile)
.list(MaterialModifier::miningSounds, String::class) .list(MaterialModifier::miningSounds)
.plain(MaterialModifier::miningParticle) .plain(MaterialModifier::miningParticle)
.plain(MaterialModifier::renderTemplate, RenderTemplate.CACHE) .plain(MaterialModifier::renderTemplate, RenderTemplate.CACHE)
.plain(MaterialModifier::renderParameters) .plain(MaterialModifier::renderParameters)

View File

@ -113,7 +113,7 @@ data class RenderRuleList(
companion object { companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(RenderRuleList::class) val ADAPTER = KConcreteTypeAdapter.Builder(RenderRuleList::class)
.list(RenderRuleList::entries, Entry::class) .list(RenderRuleList::entries)
.plain(RenderRuleList::join) .plain(RenderRuleList::join)
.build() .build()
} }
@ -200,10 +200,10 @@ data class RenderMatch(
companion object { companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(RenderMatch::class) val ADAPTER = KConcreteTypeAdapter.Builder(RenderMatch::class)
.list(RenderMatch::pieces, Piece::class) .list(RenderMatch::pieces)
.list(RenderMatch::matchAllPoints, Matcher::class) .list(RenderMatch::matchAllPoints)
.list(RenderMatch::matchAnyPoints, Matcher::class) .list(RenderMatch::matchAnyPoints)
.list(RenderMatch::subMatches, RenderMatch::class) .list(RenderMatch::subMatches)
.plain(RenderMatch::haltOnMatch) .plain(RenderMatch::haltOnMatch)
.plain(RenderMatch::haltOnSubMatch) .plain(RenderMatch::haltOnSubMatch)
.build() .build()
@ -233,7 +233,7 @@ data class RenderMatchList(
companion object { companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(RenderMatchList::class) val ADAPTER = KConcreteTypeAdapter.Builder(RenderMatchList::class)
.plain(RenderMatchList::name) .plain(RenderMatchList::name)
.list(RenderMatchList::list, RenderMatch::class) .list(RenderMatchList::list)
.build(asList = true) .build(asList = true)
} }
} }

View File

@ -475,8 +475,8 @@ class KConcreteTypeAdapter<T : Any>(
* *
* Список неизменяем (создаётся объект [ImmutableList]) * Список неизменяем (создаётся объект [ImmutableList])
*/ */
fun <V : Any> list(field: KProperty1<T, List<V>?>, type: KClass<V>): Builder<T> { inline fun <reified V : Any> list(field: KProperty1<T, List<V>?>): Builder<T> {
return this.list(field, type.java) return this.list(field, V::class.java)
} }
/** /**