37 lines
1.0 KiB
Kotlin
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)
|
|
}
|
|
}
|
|
}
|