1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package me.shedaniel.rei.mixin;
- import me.shedaniel.rei.api.TabGetter;
- import me.shedaniel.rei.client.ClientHelper;
- import me.shedaniel.rei.client.ScreenHelper;
- import me.shedaniel.rei.gui.ContainerScreenOverlay;
- import me.shedaniel.rei.listeners.ContainerScreenHooks;
- import net.minecraft.client.MinecraftClient;
- import net.minecraft.client.gui.ContainerScreen;
- import net.minecraft.client.gui.Screen;
- import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
- import net.minecraft.container.Slot;
- import net.minecraft.item.ItemGroup;
- import org.spongepowered.asm.mixin.Mixin;
- import org.spongepowered.asm.mixin.Shadow;
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
- import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
- @Mixin(ContainerScreen.class)
- public class MixinContainerScreen extends Screen implements ContainerScreenHooks {
-
- @Shadow
- protected int left;
- @Shadow
- protected int top;
- @Shadow
- protected int width;
- @Shadow
- protected int height;
- @Shadow
- protected Slot focusedSlot;
-
- @Override
- public int rei_getContainerLeft() {
- return left;
- }
-
- @Override
- public int rei_getContainerTop() {
- return top;
- }
-
- @Override
- public int rei_getContainerWidth() {
- return width;
- }
-
- @Override
- public int rei_getContainerHeight() {
- return height;
- }
-
- @Override
- public Slot rei_getHoveredSlot() {
- return focusedSlot;
- }
-
- @Override
- public boolean mouseScrolled(double double_1) {
- if (MinecraftClient.getInstance().currentScreen instanceof CreativePlayerInventoryScreen) {
- TabGetter tabGetter = (TabGetter) MinecraftClient.getInstance().currentScreen;
- if (tabGetter.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
- return super.mouseScrolled(double_1);
- }
- ContainerScreenOverlay overlay = ScreenHelper.getLastOverlay();
- if (ScreenHelper.isOverlayVisible() && overlay.getRectangle().contains(ClientHelper.getMouseLocation()))
- if (overlay.mouseScrolled(double_1))
- return true;
- return super.mouseScrolled(double_1);
- }
-
- @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true)
- public void keyPressed(int int_1, int int_2, int int_3, CallbackInfoReturnable<Boolean> ci) {
- if (MinecraftClient.getInstance().currentScreen instanceof CreativePlayerInventoryScreen) {
- TabGetter tabGetter = (TabGetter) MinecraftClient.getInstance().currentScreen;
- if (tabGetter.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
- return;
- }
- if (ScreenHelper.getLastOverlay().keyPressed(int_1, int_2, int_3)) {
- ci.setReturnValue(true);
- ci.cancel();
- }
- }
-
- }
|