diff --git a/gradle.properties b/gradle.properties index 2fc1b1fa..d378d5b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,8 +22,8 @@ clothconfig_version=19.0.147 shulkerboxtooltip_version=5.2.7+1.21.6 wthit_version=fabric-16.0.0 badpackets_version=fabric-0.9.0 -jade_version=19.0.3+fabric yacl_version=3.7.1+1.21.6-fabric +jade_version=eM01zcHw litematica_version=0.23.2 malilib_version=0.25.2 expandedstorage_version=90085b73dae01b72552e039e52e41f87 diff --git a/src/client/java/red/jackf/chesttracker/impl/compat/mods/jade/JadeClientContentsPreview.java b/src/client/java/red/jackf/chesttracker/impl/compat/mods/jade/JadeClientContentsPreview.java index 8ba608cd..405e77b5 100644 --- a/src/client/java/red/jackf/chesttracker/impl/compat/mods/jade/JadeClientContentsPreview.java +++ b/src/client/java/red/jackf/chesttracker/impl/compat/mods/jade/JadeClientContentsPreview.java @@ -1,5 +1,7 @@ package red.jackf.chesttracker.impl.compat.mods.jade; +import net.minecraft.client.gui.layouts.LayoutElement; +import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -14,7 +16,11 @@ import snownee.jade.api.JadeIds; import snownee.jade.api.config.IPluginConfig; import snownee.jade.api.theme.IThemeHelper; +import snownee.jade.api.ui.JadeUI; +import snownee.jade.api.ui.ScreenDirection; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; public class JadeClientContentsPreview implements IBlockComponentProvider { @@ -26,40 +32,35 @@ private JadeClientContentsPreview() {} private static void possiblyAddItems(ITooltip tooltip, BlockAccessor accessor, IPluginConfig config, Memory memory) { if (config.get(JadeIds.UNIVERSAL_ITEM_STORAGE) && (accessor.getServerData().contains("JadeItemStorage") // < 15.8.0 - || accessor.getServerData().contains(JadeIds.UNIVERSAL_ITEM_STORAGE.toString())) // >= 15.8.0 + || accessor.getServerData().contains(JadeIds.UNIVERSAL_ITEM_STORAGE.toString())) // >= 15.8.0 ) return; // don't do it if jade is handling it if (config.get(JadeIds.MC_FURNACE) && accessor.getBlock() instanceof AbstractFurnaceBlock && (accessor.getServerData().contains("furnace") // < 15.7.0 - || accessor.getServerData().contains(JadeIds.MC_FURNACE.toString()))) // >=15.7.0 + || accessor.getServerData().contains(JadeIds.MC_FURNACE.toString()))) // >=15.7.0 return; // don't do furnaces if handled so progress still shows var stacks = ItemStacks.flattenStacks(memory.items(), true); int max = config.getInt(accessor.showDetails() ? JadeIds.UNIVERSAL_ITEM_STORAGE_DETAILED_AMOUNT : JadeIds.UNIVERSAL_ITEM_STORAGE_NORMAL_AMOUNT); + int perLine = config.getInt(JadeIds.UNIVERSAL_ITEM_STORAGE_ITEMS_PER_LINE); - if (!stacks.isEmpty()) { - // Add a header for the items - tooltip.append(Component.translatable("jade.items")); - - // Add items as text with their counts - for (int i = 0; i < Math.min(max, stacks.size()); i++) { - ItemStack item = stacks.get(i); - Component itemName = item.getHoverName(); - - if (item.getCount() > 1) { - tooltip.append(Component.literal("• ").append(itemName).append(Component.literal(" ×" + item.getCount()))); - } else { - tooltip.append(Component.literal("• ").append(itemName)); - } - } - - // Show "and X more..." if there are more items - if (stacks.size() > max) { - tooltip.append(Component.translatable("jade.and_more", stacks.size() - max)); + List> lines = new ArrayList<>(); + List currentLine = new ArrayList<>(perLine); + for (int i = 0; i < max && i < stacks.size(); i++) { + ItemStack item = stacks.get(i); + currentLine.add(JadeUI.item(item)); + if (currentLine.size() == perLine) { + lines.add(currentLine); + currentLine = new ArrayList<>(perLine); } } + if (!currentLine.isEmpty()) lines.add(currentLine); + for (int i = 0; i < lines.size(); i++) { + tooltip.add(lines.get(i)); + if (i < lines.size() - 1) tooltip.setLineMargin(-1, ScreenDirection.DOWN, -1); + } } @Override @@ -82,4 +83,5 @@ public void appendTooltip(ITooltip tooltip, BlockAccessor accessor, IPluginConfi public ResourceLocation getUid() { return ID; } -} \ No newline at end of file +} +