123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package me.shedaniel.mixins;
- import me.shedaniel.Core;
- import me.shedaniel.listenerdefinitions.GuiKeyDown;
- import net.minecraft.client.gui.ingame.AbstractPlayerInventoryGui;
- import net.minecraft.client.gui.ingame.CreativePlayerInventoryGui;
- import net.minecraft.client.gui.widget.TextFieldWidget;
- import net.minecraft.container.Container;
- import net.minecraft.container.Slot;
- import net.minecraft.item.ItemGroup;
- import net.minecraft.util.math.MathHelper;
- import org.spongepowered.asm.mixin.Mixin;
- import org.spongepowered.asm.mixin.Overwrite;
- import org.spongepowered.asm.mixin.Shadow;
- import java.util.Objects;
- @Mixin(CreativePlayerInventoryGui.class)
- public abstract class MixinGuiContainerCreative extends AbstractPlayerInventoryGui {
-
- @Shadow
- private boolean field_2888;
-
- @Shadow
- public abstract int method_2469();
-
- @Shadow
- protected abstract void setSelectedTab(ItemGroup itemGroup_1);
-
- @Shadow
- protected abstract boolean method_2470(Slot slot_1);
-
- @Shadow
- private TextFieldWidget searchBox;
-
- @Shadow
- protected abstract void method_2464();
-
- @Shadow
- protected abstract boolean doRenderScrollBar();
-
- @Shadow
- private float scrollPosition;
-
- public MixinGuiContainerCreative(Container container_1) {
- super(container_1);
- }
-
- @Overwrite
- public boolean keyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_) {
- this.field_2888 = false;
- if (method_2469() != ItemGroup.SEARCH.getId()) {
- if (method_2469() != ItemGroup.INVENTORY.getId()) {
- if (this.client.options.keyChat.matches(p_keyPressed_1_, p_keyPressed_2_)) {
- this.field_2888 = true;
- this.setSelectedTab(ItemGroup.SEARCH);
- return true;
- }
- } else for(GuiKeyDown listener : Core.getListeners(GuiKeyDown.class))
- if (listener.keyDown(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_))
- return true;
- } else {
- boolean flag = !this.method_2470(this.focusedSlot) || this.focusedSlot != null && this.focusedSlot.hasStack();
- if (flag && this.handleHotbarKeyPressed(p_keyPressed_1_, p_keyPressed_2_)) {
- this.field_2888 = true;
- return true;
- } else {
- String s = this.searchBox.getText();
-
- if (this.searchBox.keyPressed(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_)) {
- if (!Objects.equals(s, this.searchBox.getText()))
- this.method_2464();
- return true;
- }
- }
- }
- return super.keyPressed(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_);
- }
-
- @Overwrite
- public boolean mouseScrolled(double p_mouseScrolled_1_) {
- if (!this.doRenderScrollBar()) {
- return super.mouseScrolled(p_mouseScrolled_1_);
- } else {
- int i = (((CreativePlayerInventoryGui.CreativeContainer) this.container).itemList.size() + 9 - 1) / 9 - 5;
- this.scrollPosition = (float) ((double) this.scrollPosition - p_mouseScrolled_1_ / (double) i);
- this.scrollPosition = MathHelper.clamp(this.scrollPosition, 0.0F, 1.0F);
- ((CreativePlayerInventoryGui.CreativeContainer) this.container).method_2473(this.scrollPosition);
- return true;
- }
- }
-
- }
|