KStarbound/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/MaterialModifier.kt

39 lines
1.2 KiB
Kotlin

package ru.dbotthepony.kstarbound.defs.tile
import com.google.gson.GsonBuilder
import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
data class MaterialModifier(
val modId: Int,
val modName: String,
val itemDrop: String,
val description: String,
val health: Int,
val harvestLevel: Int,
val breaksWithTile: Boolean,
val miningSounds: List<String> = listOf(),
val miningParticle: String? = null,
val renderTemplate: RenderTemplate,
val renderParameters: RenderParameters
) {
companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(MaterialModifier::class)
.plain(MaterialModifier::modId)
.plain(MaterialModifier::modName)
.plain(MaterialModifier::itemDrop)
.plain(MaterialModifier::description)
.plain(MaterialModifier::health)
.plain(MaterialModifier::harvestLevel)
.plain(MaterialModifier::breaksWithTile)
.list(MaterialModifier::miningSounds, String::class.java)
.plain(MaterialModifier::miningParticle)
.plain(MaterialModifier::renderTemplate, RenderTemplate.CACHE)
.plain(MaterialModifier::renderParameters)
.build()
fun registerGson(gsonBuilder: GsonBuilder) {
gsonBuilder.registerTypeAdapter(MaterialModifier::class.java, ADAPTER)
}
}
}