diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt index 34eff4f7..a1b0cd38 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt @@ -34,7 +34,7 @@ class ConfigurableProjectile : ConfigurableDefinition = Array(0) { "" } + var scripts: Array = Array(0) { throw IllegalStateException() } var hydrophobic: Boolean = false @@ -141,6 +141,9 @@ interface IConfigurableAction { private val MISSING_ACTIONS = ObjectArraySet() private val LOGGER = LogManager.getLogger() +/** + * Определяет тип действия и возвращает прототип действия + */ private fun constructAction(input: JsonObject): IConfigurableAction? { return when (val elem = (input["action"] ?: throw IllegalArgumentException("Action has no, well, `action` key to specify whatever is it.")).asString) { "config" -> Starbound.gson.fromJson(input, ActionConfig::class.java) @@ -159,6 +162,11 @@ private fun constructAction(input: JsonObject): IConfigurableAction? { } } +/** + * Выполняет действия из указанного файла + * + * По смыслу равен include + */ class ActionConfig : IConfigurableAction { lateinit var file: String @@ -180,6 +188,9 @@ class ActionConfig : IConfigurableAction { } } +/** + * Создает новый прожектайл с заданными параметрами + */ class ActionProjectile : IConfigurableAction { lateinit var type: String var angle = 0.0 @@ -198,6 +209,9 @@ class ActionProjectile : IConfigurableAction { } } +/** + * Проигрывает звук + */ class ActionSound : IConfigurableAction { lateinit var options: Array @@ -212,6 +226,9 @@ class ActionSound : IConfigurableAction { } } +/** + * Выполняет указанные действия в [body] на [count] раз + */ class ActionLoop : IConfigurableAction { var count by Delegates.notNull() var body by Delegates.notNull>() @@ -228,6 +245,9 @@ class ActionLoop : IConfigurableAction { } } +/** + * Выполняет указанные [list] действия + */ class ActionActions : IConfigurableAction { var list by Delegates.notNull>()