KStarbound/src/main/kotlin/ru/dbotthepony/kstarbound/defs/MaterialModifiers.kt

37 lines
1.0 KiB
Kotlin

package ru.dbotthepony.kstarbound.defs
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>,
val miningParticle: String,
val renderTemplate: String,
) {
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)
.build()
fun registerGson(gsonBuilder: GsonBuilder) {
gsonBuilder.registerTypeAdapter(MaterialModifier::class.java, ADAPTER)
}
}
}