|
@@ -4,7 +4,7 @@ import me.shedaniel.Core;
|
|
|
import me.shedaniel.listenerdefinitions.*;
|
|
|
import net.minecraft.client.MinecraftClient;
|
|
|
import net.minecraft.client.gui.ContainerGui;
|
|
|
-import net.minecraft.client.gui.GuiEventListener;
|
|
|
+import net.minecraft.client.gui.Gui;
|
|
|
import net.minecraft.container.Slot;
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
@@ -18,7 +18,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|
|
* Created by James on 7/27/2018.
|
|
|
*/
|
|
|
@Mixin(ContainerGui.class)
|
|
|
-public abstract class MixinGuiContainer implements GuiEventListener, IMixinContainerGui {
|
|
|
+public abstract class MixinContainerGui extends Gui implements IMixinContainerGui {
|
|
|
@Shadow
|
|
|
protected Slot focusedSlot;
|
|
|
@Shadow
|
|
@@ -32,15 +32,14 @@ public abstract class MixinGuiContainer implements GuiEventListener, IMixinConta
|
|
|
@Shadow
|
|
|
protected int containerHeight;
|
|
|
|
|
|
- @Inject(method = "draw", at = @At("RETURN"))
|
|
|
- private void onRender(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_, CallbackInfo ci) {
|
|
|
- for(DrawContainer listener : Core.getListeners(DrawContainer.class)) {
|
|
|
- listener.draw(p_drawScreen_1_, p_drawScreen_2_, p_drawScreen_3_, (ContainerGui) MinecraftClient.getInstance().currentGui);
|
|
|
- }
|
|
|
+ @Inject(method = "draw(IIF)V", at = @At("RETURN"))
|
|
|
+ public void draw(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_, CallbackInfo ci) {
|
|
|
+ Core.getListeners(DrawContainer.class).forEach(drawContainer ->
|
|
|
+ drawContainer.draw(p_drawScreen_1_, p_drawScreen_2_, p_drawScreen_3_, (ContainerGui) MinecraftClient.getInstance().currentGui));
|
|
|
}
|
|
|
|
|
|
- @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true)
|
|
|
- private void onMouseClicked(double p_mouseClicked_1_, double p_mouseClicked_3_, int p_mouseClicked_5_, CallbackInfoReturnable<Boolean> ci) {
|
|
|
+ @Inject(method = "mouseClicked(DDI)Z", at = @At("HEAD"), cancellable = true)
|
|
|
+ private void mouseClick(double p_mouseClicked_1_, double p_mouseClicked_3_, int p_mouseClicked_5_, CallbackInfoReturnable<Boolean> ci) {
|
|
|
boolean handled = false;
|
|
|
for(GuiCickListener listener : Core.getListeners(GuiCickListener.class)) {
|
|
|
if (listener.onClick((int) p_mouseClicked_1_, (int) p_mouseClicked_3_, p_mouseClicked_5_)) {
|
|
@@ -50,10 +49,9 @@ public abstract class MixinGuiContainer implements GuiEventListener, IMixinConta
|
|
|
}
|
|
|
if (handled)
|
|
|
ci.cancel();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- @Inject(method = "keyPressed", at = @At("HEAD"), cancellable = true)
|
|
|
+ @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true)
|
|
|
private void onKeyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_, CallbackInfoReturnable<Boolean> ci) {
|
|
|
boolean handled = false;
|
|
|
for(GuiKeyDown listener : Core.getListeners(GuiKeyDown.class)) {
|
|
@@ -67,13 +65,10 @@ public abstract class MixinGuiContainer implements GuiEventListener, IMixinConta
|
|
|
}
|
|
|
|
|
|
public boolean mouseScrolled(double p_mouseScrolled_1_) {
|
|
|
- boolean handled = false;
|
|
|
- for(MouseScrollListener listener : Core.getListeners(MouseScrollListener.class)) {
|
|
|
- if (listener.mouseScrolled(p_mouseScrolled_1_)) {
|
|
|
- handled = true;
|
|
|
- }
|
|
|
- }
|
|
|
- return handled;
|
|
|
+ for(MouseScrollListener listener : Core.getListeners(MouseScrollListener.class))
|
|
|
+ if (listener.mouseScrolled(p_mouseScrolled_1_))
|
|
|
+ return true;
|
|
|
+ return super.mouseScrolled(p_mouseScrolled_1_);
|
|
|
}
|
|
|
|
|
|
@Override
|