godot.entrygenerator.generator.hintstring.ExpEasingHintStringGenerator.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of godot-entry-generator Show documentation
Show all versions of godot-entry-generator Show documentation
Godot Kotlin entry code generator.
package godot.entrygenerator.generator.hintstring
import godot.entrygenerator.exceptions.WrongAnnotationUsageException
import godot.entrygenerator.ext.fqName
import godot.entrygenerator.ext.fqNameIsJvmType
import godot.entrygenerator.model.ExpEasingHintAnnotation
import godot.entrygenerator.model.JvmType
import godot.entrygenerator.model.RegisteredProperty
class ExpEasingHintStringGenerator(registeredProperty: RegisteredProperty) :
PropertyHintStringGenerator(registeredProperty) {
override fun getHintString(): String {
if (!registeredProperty.type.fqName.fqNameIsJvmType(JvmType.FLOAT, JvmType.DOUBLE)) {
throw WrongAnnotationUsageException(registeredProperty, propertyHintAnnotation, setOf(*JvmType.FLOAT.fqName.toTypedArray(), *JvmType.DOUBLE.fqName.toTypedArray()))
}
if (propertyHintAnnotation == null) {
return ""
}
return when {
propertyHintAnnotation.attenuation && propertyHintAnnotation.isPositiveOnly -> "attenuation,positive_only"
propertyHintAnnotation.attenuation -> "attenuation"
propertyHintAnnotation.isPositiveOnly -> "positive_only"
else -> ""
}
}
}