Skip to content

Commit

Permalink
Don't display ExpandedItemInteractions tooltips on creative-mode infi…
Browse files Browse the repository at this point in the history
…nislots
  • Loading branch information
quat1024 committed Jan 2, 2024
1 parent 4e5af73 commit 72e55af
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import org.violetmoon.quark.content.management.client.screen.HeldShulkerBoxScreen;
import org.violetmoon.quark.content.management.inventory.HeldShulkerBoxContainer;
import org.violetmoon.quark.content.management.inventory.HeldShulkerBoxMenu;
import org.violetmoon.quark.mixin.mixins.client.accessor.AccessorCustomCreativeSlot;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.play.ZRenderTooltip;
import org.violetmoon.zeta.client.event.play.ZScreen;
Expand Down Expand Up @@ -382,20 +383,17 @@ public void gatherTooltip(ZRenderTooltip.GatherComponents.Low event) {
Screen gui = mc.screen;
if(mc.player != null && gui instanceof AbstractContainerScreen<?> containerGui && containerGui.getMenu().getCarried().isEmpty()) {
Slot under = containerGui.getSlotUnderMouse();
//TODO 1.20
// if(containerGui instanceof CreativeModeInventoryScreen creativeGui && creativeGui.getCurrentPage() != CreativeModeTab.TAB_INVENTORY.getId())
// return;
if(under == null || under instanceof AccessorCustomCreativeSlot)
return;

if(under != null) {
ItemStack underStack = under.getItem();
ItemStack underStack = under.getItem();

if(event.getItemStack() == underStack)
if(enableArmorInteraction && armorOverride(underStack, ItemStack.EMPTY, under, ClickAction.SECONDARY, mc.player, true))
event.getTooltipElements().add(Either.left(Component.translatable("quark.misc.equip_armor").withStyle(ChatFormatting.YELLOW)));
if(event.getItemStack() == underStack)
if(enableArmorInteraction && armorOverride(underStack, ItemStack.EMPTY, under, ClickAction.SECONDARY, mc.player, true))
event.getTooltipElements().add(Either.left(Component.translatable("quark.misc.equip_armor").withStyle(ChatFormatting.YELLOW)));

else if(enableShulkerBoxInteraction && canOpenShulkerBox(underStack, ItemStack.EMPTY, under, mc.player))
event.getTooltipElements().add(Either.left(Component.translatable("quark.misc.open_shulker").withStyle(ChatFormatting.YELLOW)));
}
else if(enableShulkerBoxInteraction && canOpenShulkerBox(underStack, ItemStack.EMPTY, under, mc.player))
event.getTooltipElements().add(Either.left(Component.translatable("quark.misc.open_shulker").withStyle(ChatFormatting.YELLOW)));
}
}

Expand All @@ -409,21 +407,21 @@ public void onDrawScreen(ZScreen.Render.Post event) {
ItemStack held = containerGui.getMenu().getCarried();
if(!held.isEmpty()) {
Slot under = containerGui.getSlotUnderMouse();
if(under == null || under instanceof AccessorCustomCreativeSlot)
return;

if(under != null) {
ItemStack underStack = under.getItem();

int x = event.getMouseX();
int y = event.getMouseY();
if(enableLavaInteraction && canTrashItem(underStack, held, under, mc.player)) {
guiGraphics.renderComponentTooltip(mc.font, List.of(Component.translatable("quark.misc.trash_item").withStyle(ChatFormatting.RED)), x, y);
} else if(enableShulkerBoxInteraction && tryAddToShulkerBox(mc.player, underStack, held, under, true, true, true) != null) {
guiGraphics.renderComponentTooltip(mc.font, List.of(Component.translatable(
SimilarBlockTypeHandler.isShulkerBox(held) ? "quark.misc.merge_shulker_box" : "quark.misc.insert_shulker_box"
).withStyle(ChatFormatting.YELLOW)), x, y, underStack);
} else if(enableShulkerBoxInteraction && SimilarBlockTypeHandler.isShulkerBox(underStack)) {
guiGraphics.renderComponentTooltip(mc.font, Screen.getTooltipFromItem(mc, underStack), x, y, underStack);
}
ItemStack underStack = under.getItem();

int x = event.getMouseX();
int y = event.getMouseY();
if(enableLavaInteraction && canTrashItem(underStack, held, under, mc.player)) {
guiGraphics.renderComponentTooltip(mc.font, List.of(Component.translatable("quark.misc.trash_item").withStyle(ChatFormatting.RED)), x, y);
} else if(enableShulkerBoxInteraction && tryAddToShulkerBox(mc.player, underStack, held, under, true, true, true) != null) {
guiGraphics.renderComponentTooltip(mc.font, List.of(Component.translatable(
SimilarBlockTypeHandler.isShulkerBox(held) ? "quark.misc.merge_shulker_box" : "quark.misc.insert_shulker_box"
).withStyle(ChatFormatting.YELLOW)), x, y, underStack);
} else if(enableShulkerBoxInteraction && SimilarBlockTypeHandler.isShulkerBox(underStack)) {
guiGraphics.renderComponentTooltip(mc.font, Screen.getTooltipFromItem(mc, underStack), x, y, underStack);
}

}
Expand All @@ -442,19 +440,20 @@ public void onScroll(ZScreen.MouseScrolled.Pre event) {

if(mc.player != null && gui instanceof AbstractContainerScreen<?> containerGui) {
Slot under = containerGui.getSlotUnderMouse();
if(under != null) {
ItemStack underStack = under.getItem();
if(underStack.is(Items.BUNDLE)) {
CompoundTag tag = underStack.getTag();
if(tag != null) {
ListTag items = tag.getList("Items", Tag.TAG_COMPOUND);
if(items.size() > 1) {
var menu = containerGui.getMenu();
event.setCanceled(true);
if(scrollDelta < -0.1 || scrollDelta > 0.1) {
rotateBundle(underStack, scrollDelta);
QuarkClient.ZETA_CLIENT.sendToServer(new ScrollOnBundleMessage(menu.containerId, menu.getStateId(), under.index, scrollDelta));
}
if(under == null || under instanceof AccessorCustomCreativeSlot)
return;

ItemStack underStack = under.getItem();
if(underStack.is(Items.BUNDLE)) {
CompoundTag tag = underStack.getTag();
if(tag != null) {
ListTag items = tag.getList("Items", Tag.TAG_COMPOUND);
if(items.size() > 1) {
var menu = containerGui.getMenu();
event.setCanceled(true);
if(scrollDelta < -0.1 || scrollDelta > 0.1) {
rotateBundle(underStack, scrollDelta);
QuarkClient.ZETA_CLIENT.sendToServer(new ScrollOnBundleMessage(menu.containerId, menu.getStateId(), under.index, scrollDelta));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.violetmoon.quark.mixin.mixins.client.accessor;

import org.spongepowered.asm.mixin.Mixin;

// Simply used as a way of spelling "instanceof CustomCreativeSlot", since it isn't a public class (and I don't feel like ATing it)
@Mixin(targets = "net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen$CustomCreativeSlot")
public interface AccessorCustomCreativeSlot {
// Quack.
}
1 change: 1 addition & 0 deletions src/main/resources/quark.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
"client.ThrownTridentRendererMixin",
"client.accessor.AccessorModelManager",
"client.accessor.AccessorMultiPlayerGameMode",
"client.accessor.AccessorCustomCreativeSlot",
"client.variants.BeeRendererMixin",
"client.variants.ChickenRendererMixin",
"client.variants.CowRendererMixin",
Expand Down

0 comments on commit 72e55af

Please sign in to comment.