use of net.minecraft.client.gui.screens.inventory.AbstractContainerScreen in project Silent-Gear by SilentChaos512.
the class KeyTracker method getHoveredItem.
private static ItemStack getHoveredItem() {
Screen currentScreen = Minecraft.getInstance().screen;
if (currentScreen instanceof AbstractContainerScreen<?>) {
AbstractContainerScreen<?> containerScreen = (AbstractContainerScreen<?>) currentScreen;
Slot slot = containerScreen.getSlotUnderMouse();
if (slot != null) {
return slot.getItem();
}
}
return ItemStack.EMPTY;
}
use of net.minecraft.client.gui.screens.inventory.AbstractContainerScreen in project Silent-Gear by SilentChaos512.
the class KeyTracker method getHoveredSlot.
private static int getHoveredSlot() {
Screen currentScreen = Minecraft.getInstance().screen;
if (currentScreen instanceof AbstractContainerScreen<?>) {
AbstractContainerScreen<?> containerScreen = (AbstractContainerScreen<?>) currentScreen;
Slot slot = containerScreen.getSlotUnderMouse();
if (slot != null) {
return slot.index;
}
}
return -1;
}
use of net.minecraft.client.gui.screens.inventory.AbstractContainerScreen in project Balm by ModdingForBlockheads.
the class AbstractContainerScreenMixin method renderBackground.
@Inject(method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/inventory/AbstractContainerScreen;renderBg(Lcom/mojang/blaze3d/vertex/PoseStack;FII)V", shift = At.Shift.AFTER))
public void renderBackground(PoseStack poseStack, int mouseX, int mouseY, float partialTicks, CallbackInfo callbackInfo) {
Screen screen = (Screen) (Object) this;
Balm.getEvents().fireEvent(new ContainerScreenDrawEvent.Background(screen, poseStack, mouseX, mouseY));
}
use of net.minecraft.client.gui.screens.inventory.AbstractContainerScreen in project Cyclic by Lothrazar.
the class ClientInputEvents method onMouseEvent.
@SubscribeEvent(priority = EventPriority.HIGH)
public void onMouseEvent(ScreenEvent.MouseClickedEvent.Pre event) {
if (event.getScreen() == null || !(event.getScreen() instanceof AbstractContainerScreen<?>)) {
return;
}
AbstractContainerScreen<?> gui = (AbstractContainerScreen<?>) event.getScreen();
boolean rightClickDown = event.getButton() == 1;
try {
if (rightClickDown && gui.getSlotUnderMouse() != null) {
Slot slotHit = gui.getSlotUnderMouse();
if (!slotHit.getItem().isEmpty()) {
ItemStack maybeCharm = slotHit.getItem();
if (maybeCharm.getItem() instanceof IHasClickToggle) {
PacketRegistry.INSTANCE.sendToServer(new PacketItemToggle(slotHit.index));
event.setCanceled(true);
// UtilSound.playSound(ModCyclic.proxy.getClientPlayer(), SoundEvents.UI_BUTTON_CLICK);
} else if (maybeCharm.getItem() instanceof ItemStorageBag) {
PacketRegistry.INSTANCE.sendToServer(new PacketItemGui(slotHit.index));
event.setCanceled(true);
}
}
}
} catch (Exception e) {
// array out of bounds, or we are in a strange third party GUI that doesnt have slots like this
// EXAMPLE: mod.chiselsandbits.bitbag.BagGui
ModCyclic.LOGGER.error("click error", e);
// so this fixes ithttps://github.com/PrinceOfAmber/Cyclic/issues/410
}
}
Aggregations