From 093cec575e88e7c76b0fe50cd7acad73aa926486 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 7 Jan 2023 12:24:59 +0700 Subject: [PATCH] IScriptableItemDefinition --- .../kstarbound/defs/item/ArmorItemDefinition.kt | 1 + .../kstarbound/defs/item/ArmorItemPrototype.kt | 6 ++++++ .../kstarbound/defs/item/CurrencyItemDefinition.kt | 1 - .../kstarbound/defs/item/CurrencyItemPrototype.kt | 1 - .../kstarbound/defs/item/IArmorItemDefinition.kt | 2 +- .../kstarbound/defs/item/IItemDefinition.kt | 5 ----- .../defs/item/IScriptableItemDefinition.kt | 13 +++++++++++++ .../kstarbound/defs/item/ItemDefinition.kt | 1 - .../kstarbound/defs/item/ItemPrototype.kt | 3 --- .../kstarbound/defs/item/LiquidItemDefinition.kt | 1 - .../kstarbound/defs/item/LiquidItemPrototype.kt | 1 - .../kstarbound/defs/item/MaterialItemDefinition.kt | 1 - .../kstarbound/defs/item/MaterialItemPrototype.kt | 1 - 13 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IScriptableItemDefinition.kt diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemDefinition.kt index ed8e5c6b..adfb02eb 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemDefinition.kt @@ -15,6 +15,7 @@ data class ArmorItemDefinition( override val consumeOnPickup: Boolean, override val pickupQuestTemplates: List, override val scripts: List, + override val scriptDelta: Int, override val tooltipKind: ItemTooltipKind, override val twoHanded: Boolean, override val radioMessagesOnPickup: List, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt index 0240250b..4acb2c26 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt @@ -15,6 +15,9 @@ class ArmorItemPrototype : ItemPrototype(), IArmorItemDefinition { override var level: Double = 1.0 override var leveledStatusEffects: List = listOf() + override var scripts: List = listOf() + override var scriptDelta: Int = 1 + override var armorType: ArmorPieceType by NotNullVar() init { @@ -37,6 +40,7 @@ class ArmorItemPrototype : ItemPrototype(), IArmorItemDefinition { consumeOnPickup = consumeOnPickup, pickupQuestTemplates = pickupQuestTemplates, scripts = scripts, + scriptDelta = scriptDelta, tooltipKind = tooltipKind, twoHanded = twoHanded, radioMessagesOnPickup = radioMessagesOnPickup, @@ -62,6 +66,8 @@ class ArmorItemPrototype : ItemPrototype(), IArmorItemDefinition { .auto(ArmorItemPrototype::femaleFrames) .auto(ArmorItemPrototype::level) .autoList(ArmorItemPrototype::leveledStatusEffects) + .autoList(ArmorItemPrototype::scripts) + .auto(ArmorItemPrototype::scriptDelta) .build() } } diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemDefinition.kt index 52704e1b..eaf7bf1f 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemDefinition.kt @@ -14,7 +14,6 @@ data class CurrencyItemDefinition( override val eventCategory: String?, override val consumeOnPickup: Boolean, override val pickupQuestTemplates: List, - override val scripts: List, override val tooltipKind: ItemTooltipKind, override val twoHanded: Boolean, override val radioMessagesOnPickup: List, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemPrototype.kt index 22cc14e8..236ef3a9 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemPrototype.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/CurrencyItemPrototype.kt @@ -32,7 +32,6 @@ class CurrencyItemPrototype : ItemPrototype(), ICurrencyItemDefinition { eventCategory = eventCategory, consumeOnPickup = consumeOnPickup, pickupQuestTemplates = pickupQuestTemplates, - scripts = scripts, tooltipKind = tooltipKind, twoHanded = twoHanded, radioMessagesOnPickup = radioMessagesOnPickup, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IArmorItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IArmorItemDefinition.kt index 08b4df32..23570de8 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IArmorItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IArmorItemDefinition.kt @@ -4,7 +4,7 @@ import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.io.json.FactoryAdapter import ru.dbotthepony.kstarbound.io.json.ifString -interface IArmorItemDefinition : ILeveledItemDefinition { +interface IArmorItemDefinition : ILeveledItemDefinition, IScriptableItemDefinition { /** * @see ArmorPieceType */ diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IItemDefinition.kt index 4f645076..1acfbe77 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IItemDefinition.kt @@ -78,11 +78,6 @@ interface IItemDefinition : IThingWithDescription { */ val pickupQuestTemplates: List - /** - * Lua скрипты для выполнения - */ - val scripts: List - /** * это где либо ещё применяется кроме брони? */ diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IScriptableItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IScriptableItemDefinition.kt new file mode 100644 index 00000000..862fb749 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/IScriptableItemDefinition.kt @@ -0,0 +1,13 @@ +package ru.dbotthepony.kstarbound.defs.item + +interface IScriptableItemDefinition : IItemDefinition { + /** + * Lua скрипты для выполнения + */ + val scripts: List + + /** + * Через какое количество тиков вызывать обновления скриптов + */ + val scriptDelta: Int +} diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt index 56acab8a..b395d49e 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt @@ -14,7 +14,6 @@ data class ItemDefinition( override val eventCategory: String?, override val consumeOnPickup: Boolean, override val pickupQuestTemplates: List, - override val scripts: List, override val tooltipKind: ItemTooltipKind, override val twoHanded: Boolean, override val radioMessagesOnPickup: List, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemPrototype.kt index 0311ace8..d2f05431 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemPrototype.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemPrototype.kt @@ -19,7 +19,6 @@ open class ItemPrototype : IItemDefinition, INativeJsonHolder { final override var eventCategory: String? = null final override var consumeOnPickup: Boolean = false final override var pickupQuestTemplates: List = listOf() - final override var scripts: List = listOf() final override var tooltipKind: ItemTooltipKind = ItemTooltipKind.NORMAL final override var twoHanded: Boolean = false final override var radioMessagesOnPickup: List = listOf() @@ -46,7 +45,6 @@ open class ItemPrototype : IItemDefinition, INativeJsonHolder { eventCategory = eventCategory, consumeOnPickup = consumeOnPickup, pickupQuestTemplates = pickupQuestTemplates, - scripts = scripts, tooltipKind = tooltipKind, twoHanded = twoHanded, radioMessagesOnPickup = radioMessagesOnPickup, @@ -76,7 +74,6 @@ open class ItemPrototype : IItemDefinition, INativeJsonHolder { auto(ItemPrototype::eventCategory) auto(ItemPrototype::consumeOnPickup) autoList(ItemPrototype::pickupQuestTemplates) - autoList(ItemPrototype::scripts) auto(ItemPrototype::tooltipKind) auto(ItemPrototype::twoHanded) autoList(ItemPrototype::radioMessagesOnPickup) diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemDefinition.kt index fc301940..40d69b27 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemDefinition.kt @@ -16,7 +16,6 @@ data class LiquidItemDefinition( override val eventCategory: String?, override val consumeOnPickup: Boolean, override val pickupQuestTemplates: List, - override val scripts: List, override val tooltipKind: ItemTooltipKind, override val twoHanded: Boolean, override val radioMessagesOnPickup: List, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemPrototype.kt index 04b5d111..24deefa0 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemPrototype.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/LiquidItemPrototype.kt @@ -33,7 +33,6 @@ class LiquidItemPrototype : ItemPrototype() { eventCategory = eventCategory, consumeOnPickup = consumeOnPickup, pickupQuestTemplates = pickupQuestTemplates, - scripts = scripts, tooltipKind = tooltipKind, twoHanded = twoHanded, radioMessagesOnPickup = radioMessagesOnPickup, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemDefinition.kt index 1b54bee9..4cea69d1 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemDefinition.kt @@ -16,7 +16,6 @@ data class MaterialItemDefinition( override val eventCategory: String?, override val consumeOnPickup: Boolean, override val pickupQuestTemplates: List, - override val scripts: List, override val tooltipKind: ItemTooltipKind, override val twoHanded: Boolean, override val radioMessagesOnPickup: List, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemPrototype.kt index e2deabf7..653bfa28 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemPrototype.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/MaterialItemPrototype.kt @@ -33,7 +33,6 @@ class MaterialItemPrototype : ItemPrototype() { eventCategory = eventCategory, consumeOnPickup = consumeOnPickup, pickupQuestTemplates = pickupQuestTemplates, - scripts = scripts, tooltipKind = tooltipKind, twoHanded = twoHanded, radioMessagesOnPickup = radioMessagesOnPickup,