KStarbound/src/main/kotlin/ru/dbotthepony/kstarbound/defs/Species.kt
2023-10-22 00:45:22 +07:00

49 lines
1.8 KiB
Kotlin

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<String>,
val ouchNoises: ImmutableList<String>,
val charGenTextLabels: ImmutableList<String>,
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<ColorReplacements>,
val undyColor: ImmutableList<ColorReplacements>,
val hairColor: ImmutableList<ColorReplacements>,
val genders: ImmutableList<Gender>,
val statusEffects: ImmutableSet<Registry.Ref<StatusEffectDefinition>> = 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<String>,
val shirt: ImmutableSet<Registry.Ref<IItemDefinition>>,
val pants: ImmutableSet<Registry.Ref<IItemDefinition>>,
val facialHairGroup: String? = null,
val facialHair: ImmutableSet<String> = ImmutableSet.of(),
val facialMaskGroup: String? = null,
val facialMask: ImmutableList<String> = ImmutableList.of(),
)
}