package ru.dbotthepony.kstarbound.defs.tile import com.google.gson.GsonBuilder import ru.dbotthepony.kstarbound.io.json.builder.FactoryAdapter import ru.dbotthepony.kstarbound.registerTypeAdapter import ru.dbotthepony.kvector.vector.Color data class TileDefinition( val materialId: Int, val materialName: String, val particleColor: Color? = null, val itemDrop: String? = null, val description: String = "...", val shortdescription: String = "...", val footstepSound: String? = null, val blocksLiquidFlow: Boolean = true, val soil: Boolean = false, val health: Double = 0.0, val category: String, override val renderTemplate: RenderTemplate, override val renderParameters: RenderParameters, ) : IRenderableTile { companion object { val ADAPTER = FactoryAdapter.Builder(TileDefinition::class) .auto(TileDefinition::materialId) .auto(TileDefinition::materialName) .auto(TileDefinition::particleColor) .auto(TileDefinition::itemDrop) .auto(TileDefinition::description) .auto(TileDefinition::shortdescription) .auto(TileDefinition::footstepSound) .auto(TileDefinition::blocksLiquidFlow) .auto(TileDefinition::soil) .auto(TileDefinition::health) .auto(TileDefinition::category) .auto(TileDefinition::renderTemplate) .auto(TileDefinition::renderParameters) } }