aboutsummaryrefslogtreecommitdiff
path: root/src/compat/rei/java
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/compat/rei/java
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/compat/rei/java')
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntryRenderer.kt36
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/SBItemEntryDefinition.kt13
2 files changed, 36 insertions, 13 deletions
diff --git a/src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntryRenderer.kt b/src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntryRenderer.kt
index 35a1e1b..2803980 100644
--- a/src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntryRenderer.kt
+++ b/src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntryRenderer.kt
@@ -21,6 +21,7 @@ import net.minecraft.item.tooltip.TooltipType
import net.minecraft.text.Text
import moe.nea.firmament.compat.rei.FirmamentReiPlugin.Companion.asItemEntry
import moe.nea.firmament.events.ItemTooltipEvent
+import moe.nea.firmament.repo.RepoManager
import moe.nea.firmament.repo.SBItemStack
import moe.nea.firmament.util.ErrorUtil
import moe.nea.firmament.util.FirmFormatters
@@ -44,10 +45,13 @@ object NEUItemEntryRenderer : EntryRenderer<SBItemStack> {
context.matrices.scale(bounds.width.toFloat() / 16F, bounds.height.toFloat() / 16F, 1f)
val item = entry.asItemEntry().value
context.drawItemWithoutEntity(item, -8, -8)
- context.drawStackOverlay(minecraft.textRenderer, item, -8, -8,
- if (entry.value.getStackSize() > 1000) FirmFormatters.shortFormat(entry.value.getStackSize()
- .toDouble())
- else null
+ context.drawStackOverlay(
+ minecraft.textRenderer, item, -8, -8,
+ if (entry.value.getStackSize() > 1000) FirmFormatters.shortFormat(
+ entry.value.getStackSize()
+ .toDouble()
+ )
+ else null
)
context.matrices.pop()
}
@@ -56,6 +60,16 @@ object NEUItemEntryRenderer : EntryRenderer<SBItemStack> {
var canUseVanillaTooltipEvents = true
override fun getTooltip(entry: EntryStack<SBItemStack>, tooltipContext: TooltipContext): Tooltip? {
+ if (!entry.value.isWarm() && !RepoManager.Config.perfectTooltips) {
+ val neuItem = entry.value.neuItem
+ if (neuItem != null) {
+ val lore = mutableListOf<Text>()
+ lore.add(Text.literal(neuItem.displayName))
+ neuItem.lore.mapTo(mutableListOf()) { Text.literal(it) }
+ return Tooltip.create(lore)
+ }
+ }
+
val stack = entry.value.asImmutableItemStack()
val lore = mutableListOf(stack.displayNameAccordingToNbt)
@@ -70,12 +84,14 @@ object NEUItemEntryRenderer : EntryRenderer<SBItemStack> {
ErrorUtil.softError("Failed to use vanilla tooltips", ex)
}
} else {
- ItemTooltipEvent.publish(ItemTooltipEvent(
- stack,
- tooltipContext.vanillaContext(),
- TooltipType.BASIC,
- lore
- ))
+ ItemTooltipEvent.publish(
+ ItemTooltipEvent(
+ stack,
+ tooltipContext.vanillaContext(),
+ TooltipType.BASIC,
+ lore
+ )
+ )
}
if (entry.value.getStackSize() > 1000 && lore.isNotEmpty())
lore.add(1, Text.literal("${entry.value.getStackSize()}x").darkGrey())
diff --git a/src/compat/rei/java/moe/nea/firmament/compat/rei/SBItemEntryDefinition.kt b/src/compat/rei/java/moe/nea/firmament/compat/rei/SBItemEntryDefinition.kt
index 2b1700d..e932edf 100644
--- a/src/compat/rei/java/moe/nea/firmament/compat/rei/SBItemEntryDefinition.kt
+++ b/src/compat/rei/java/moe/nea/firmament/compat/rei/SBItemEntryDefinition.kt
@@ -42,7 +42,12 @@ object SBItemEntryDefinition : EntryDefinition<SBItemStack> {
}
override fun asFormattedText(entry: EntryStack<SBItemStack>, value: SBItemStack): Text {
- return VanillaEntryTypes.ITEM.definition.asFormattedText(entry.asItemEntry(), value.asImmutableItemStack())
+ val neuItem = entry.value.neuItem
+ return if (RepoManager.Config.perfectTooltips || entry.value.isWarm() || neuItem == null) {
+ VanillaEntryTypes.ITEM.definition.asFormattedText(entry.asItemEntry(), value.asImmutableItemStack())
+ } else {
+ Text.literal(neuItem.displayName)
+ }
}
override fun hash(entry: EntryStack<SBItemStack>, value: SBItemStack, context: ComparisonContext): Long {
@@ -51,8 +56,10 @@ object SBItemEntryDefinition : EntryDefinition<SBItemStack> {
}
override fun wildcard(entry: EntryStack<SBItemStack>?, value: SBItemStack): SBItemStack {
- return value.copy(stackSize = 1, petData = RepoManager.getPotentialStubPetData(value.skyblockId),
- stars = 0, extraLore = listOf(), reforge = null)
+ return value.copy(
+ stackSize = 1, petData = RepoManager.getPotentialStubPetData(value.skyblockId),
+ stars = 0, extraLore = listOf(), reforge = null
+ )
}
override fun normalize(entry: EntryStack<SBItemStack>?, value: SBItemStack): SBItemStack {