diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-06-22 16:09:43 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-06-22 16:09:43 +0200 |
| commit | cbc8eff63ac1fd6caebbd93348877124896f2d80 (patch) | |
| tree | 258e36dfdedc16fe8b36fa6e04fc286360d6009e /src/main/kotlin/repo/SBItemStack.kt | |
| parent | 7c45e48050e8ee792f391fc660232950a36c494b (diff) | |
| download | Firmament-cbc8eff63ac1fd6caebbd93348877124896f2d80.tar.gz Firmament-cbc8eff63ac1fd6caebbd93348877124896f2d80.tar.bz2 Firmament-cbc8eff63ac1fd6caebbd93348877124896f2d80.zip | |
feat: Allow breaking itemstacks even further for faster repo reloads
Diffstat (limited to 'src/main/kotlin/repo/SBItemStack.kt')
| -rw-r--r-- | src/main/kotlin/repo/SBItemStack.kt | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/kotlin/repo/SBItemStack.kt b/src/main/kotlin/repo/SBItemStack.kt index 0026e03..537bd81 100644 --- a/src/main/kotlin/repo/SBItemStack.kt +++ b/src/main/kotlin/repo/SBItemStack.kt @@ -353,7 +353,9 @@ data class SBItemStack constructor( } // TODO: avoid instantiating the item stack here + @ExpensiveItemCacheApi val itemType: ItemType? get() = ItemType.fromItemStack(asImmutableItemStack()) + @ExpensiveItemCacheApi val rarity: Rarity? get() = Rarity.fromItem(asImmutableItemStack()) private var itemStack_: ItemStack? = null @@ -364,6 +366,7 @@ data class SBItemStack constructor( group("power").toInt() } ?: 0 + @ExpensiveItemCacheApi private val itemStack: ItemStack get() { val itemStack = itemStack_ ?: run { @@ -437,15 +440,18 @@ data class SBItemStack constructor( return false } + @OptIn(ExpensiveItemCacheApi::class) fun asLazyImmutableItemStack(): ItemStack? { if (isWarm()) return asImmutableItemStack() return null } - fun asImmutableItemStack(): ItemStack { + @ExpensiveItemCacheApi + fun asImmutableItemStack(): ItemStack { // TODO: add a "or fallback to painting" option to asLazyImmutableItemStack to be used in more places. return itemStack } + @ExpensiveItemCacheApi fun asCopiedItemStack(): ItemStack { return itemStack.copy() } |
