package ru.dbotthepony.kstarbound.defs.tile import com.google.common.collect.ImmutableList import ru.dbotthepony.kstarbound.defs.RegistryReference import ru.dbotthepony.kstarbound.defs.StatusEffectDefinition import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory import ru.dbotthepony.kvector.vector.RGBAColor @JsonFactory data class LiquidDefinition( val name: String, val liquidId: Int, val description: String = "...", val tickDelta: Int = 1, val color: RGBAColor, val itemDrop: String? = null, val statusEffects: ImmutableList> = ImmutableList.of(), val interactions: ImmutableList = ImmutableList.of(), val texture: String, val bottomLightMix: RGBAColor, val textureMovementFactor: Double, ) { @JsonFactory data class Interaction(val liquid: Int, val liquidResult: Int? = null, val materialResult: String? = null) { init { require(liquidResult != null || materialResult != null) { "Both liquidResult and materialResult are missing" } } } }