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 = 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) } } }