MixinCraftingTableScreen.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package me.shedaniel.rei.mixin;
  2. import net.minecraft.client.gui.ContainerScreen;
  3. import net.minecraft.client.gui.InputListener;
  4. import net.minecraft.client.gui.container.CraftingTableScreen;
  5. import net.minecraft.client.gui.recipebook.RecipeBookGui;
  6. import net.minecraft.container.Container;
  7. import net.minecraft.entity.player.PlayerInventory;
  8. import net.minecraft.text.TextComponent;
  9. import org.spongepowered.asm.mixin.Final;
  10. import org.spongepowered.asm.mixin.Mixin;
  11. import org.spongepowered.asm.mixin.Shadow;
  12. import org.spongepowered.asm.mixin.injection.At;
  13. import org.spongepowered.asm.mixin.injection.Inject;
  14. import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
  15. @Mixin(CraftingTableScreen.class)
  16. public abstract class MixinCraftingTableScreen extends ContainerScreen {
  17. @Shadow
  18. @Final
  19. private RecipeBookGui recipeBookGui;
  20. public MixinCraftingTableScreen(Container container_1, PlayerInventory playerInventory_1, TextComponent textComponent_1) {
  21. super(container_1, playerInventory_1, textComponent_1);
  22. }
  23. @Override
  24. public InputListener getFocused() {
  25. return super.getFocused();
  26. }
  27. @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true)
  28. public void mouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable<Boolean> ci) {
  29. if (recipeBookGui.mouseClicked(mouseX, mouseY, button)) {
  30. focusOn(recipeBookGui);
  31. ci.setReturnValue(true);
  32. ci.cancel();
  33. }
  34. }
  35. }