aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-06-22 15:19:01 +0200
committerLinnea Gräf <nea@nea.moe>2025-06-22 15:19:01 +0200
commit7c45e48050e8ee792f391fc660232950a36c494b (patch)
treeec01594ce629b5d39177a6a0b7a687db27f47dd9 /src/main/kotlin
parent4cfba87783a7280678312ac42373eb639c86a62a (diff)
downloadFirmament-7c45e48050e8ee792f391fc660232950a36c494b.tar.gz
Firmament-7c45e48050e8ee792f391fc660232950a36c494b.tar.bz2
Firmament-7c45e48050e8ee792f391fc660232950a36c494b.zip
feat: Allow skipping DFU for REI lore cache generation
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/repo/ItemCache.kt4
-rw-r--r--src/main/kotlin/repo/RepoManager.kt1
-rw-r--r--src/main/kotlin/repo/SBItemStack.kt44
3 files changed, 37 insertions, 12 deletions
diff --git a/src/main/kotlin/repo/ItemCache.kt b/src/main/kotlin/repo/ItemCache.kt
index 09eedac..5e05dba 100644
--- a/src/main/kotlin/repo/ItemCache.kt
+++ b/src/main/kotlin/repo/ItemCache.kt
@@ -146,6 +146,10 @@ object ItemCache : IReloadable {
}
}
+ fun hasCacheFor(skyblockId: SkyblockId): Boolean {
+ return skyblockId.neuItem in cache
+ }
+
fun NEUItem?.asItemStack(idHint: SkyblockId? = null, loreReplacements: Map<String, String>? = null): ItemStack {
if (this == null) return brokenItemStack(null, idHint)
var s = cache[this.skyblockItemId]
diff --git a/src/main/kotlin/repo/RepoManager.kt b/src/main/kotlin/repo/RepoManager.kt
index cc36fba..115dd54 100644
--- a/src/main/kotlin/repo/RepoManager.kt
+++ b/src/main/kotlin/repo/RepoManager.kt
@@ -46,6 +46,7 @@ object RepoManager {
}
val alwaysSuperCraft by toggle("enable-super-craft") { true }
var warnForMissingItemListMod by toggle("warn-for-missing-item-list-mod") { true }
+ val perfectTooltips by toggle("perfect-tooltips") { false }
}
val currentDownloadedSha by RepoDownloadManager::latestSavedVersionHash
diff --git a/src/main/kotlin/repo/SBItemStack.kt b/src/main/kotlin/repo/SBItemStack.kt
index 3690866..0026e03 100644
--- a/src/main/kotlin/repo/SBItemStack.kt
+++ b/src/main/kotlin/repo/SBItemStack.kt
@@ -225,14 +225,21 @@ data class SBItemStack constructor(
Text.literal(
buffKind.prefix + formattedAmount +
statFormatting.postFix +
- buffKind.postFix + " ")
- .withColor(buffKind.color)))
+ buffKind.postFix + " "
+ )
+ .withColor(buffKind.color)
+ )
+ )
}
fun formatValue() =
- Text.literal(FirmFormatters.formatCommas(valueNum ?: 0.0,
- 1,
- includeSign = true) + statFormatting.postFix + " ")
+ Text.literal(
+ FirmFormatters.formatCommas(
+ valueNum ?: 0.0,
+ 1,
+ includeSign = true
+ ) + statFormatting.postFix + " "
+ )
.setStyle(Style.EMPTY.withColor(statFormatting.color))
val statFormatting = formattingOverrides[statName] ?: StatFormatting("", Formatting.GREEN)
@@ -413,13 +420,26 @@ data class SBItemStack constructor(
.append(starString(stars))
val isDungeon = ItemType.fromItemStack(itemStack)?.isDungeon ?: true
val truncatedStarCount = if (isDungeon) minOf(5, stars) else stars
- appendEnhancedStats(itemStack,
- baseStats
- .filter { it.statFormatting.isStarAffected }
- .associate {
- it.statName to ((it.valueNum ?: 0.0) * (truncatedStarCount * 0.02))
- },
- BuffKind.STAR_BUFF)
+ appendEnhancedStats(
+ itemStack,
+ baseStats
+ .filter { it.statFormatting.isStarAffected }
+ .associate {
+ it.statName to ((it.valueNum ?: 0.0) * (truncatedStarCount * 0.02))
+ },
+ BuffKind.STAR_BUFF
+ )
+ }
+
+ fun isWarm(): Boolean {
+ if (itemStack_ != null) return true
+ if (ItemCache.hasCacheFor(skyblockId)) return true
+ return false
+ }
+
+ fun asLazyImmutableItemStack(): ItemStack? {
+ if (isWarm()) return asImmutableItemStack()
+ return null
}
fun asImmutableItemStack(): ItemStack {