package ru.dbotthepony.kstarbound.defs import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableSet import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.defs.image.SpriteReference import ru.dbotthepony.kstarbound.defs.item.api.IItemDefinition import ru.dbotthepony.kstarbound.defs.player.BlueprintLearnList import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory @JsonFactory data class Species( val kind: String, val charCreationTooltip: Tooltip, val nameGen: ImmutableList, val ouchNoises: ImmutableList, val charGenTextLabels: ImmutableList, val skull: String, val defaultBlueprints: BlueprintLearnList, val headOptionAsFacialhair: Boolean = false, val altOptionAsUndyColor: Boolean = false, val altOptionAsHairColor: Boolean = false, val bodyColorAsFacialMaskSubColor: Boolean = false, val hairColorAsBodySubColor: Boolean = false, val bodyColor: ImmutableList, val undyColor: ImmutableList, val hairColor: ImmutableList, val genders: ImmutableList, val statusEffects: ImmutableSet> = ImmutableSet.of(), ) { @JsonFactory data class Tooltip(val title: String, val subTitle: String, val description: String) @JsonFactory data class Gender( val name: String, val image: SpriteReference, val characterImage: SpriteReference, val hairGroup: String? = null, val hair: ImmutableSet, val shirt: ImmutableSet>, val pants: ImmutableSet>, val facialHairGroup: String? = null, val facialHair: ImmutableSet = ImmutableSet.of(), val facialMaskGroup: String? = null, val facialMask: ImmutableList = ImmutableList.of(), ) }