ClothRegistry.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package me.shedaniel.rei.utils;
  2. import me.shedaniel.cloth.api.EventPriority;
  3. import me.shedaniel.cloth.hooks.ClothHooks;
  4. import me.shedaniel.cloth.hooks.ClothModMenuHooks;
  5. import me.shedaniel.rei.RoughlyEnoughItemsCore;
  6. import me.shedaniel.rei.api.TabGetter;
  7. import me.shedaniel.rei.client.ClientHelper;
  8. import me.shedaniel.rei.client.RecipeHelperImpl;
  9. import me.shedaniel.rei.client.ScreenHelper;
  10. import net.minecraft.client.MinecraftClient;
  11. import net.minecraft.client.gui.ContainerScreen;
  12. import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
  13. import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
  14. import net.minecraft.item.ItemGroup;
  15. public class ClothRegistry {
  16. public static void register() {
  17. Runnable configRunnable = () -> ClientHelper.openConfigWindow(MinecraftClient.getInstance().currentScreen, false);
  18. ClothModMenuHooks.CONFIG_BUTTON_EVENT.registerListener(event -> {
  19. if (event.getModContainer() != null && event.getModContainer().getMetadata().getId().equalsIgnoreCase("roughlyenoughitems")) {
  20. event.setEnabled(true);
  21. event.setClickedRunnable(configRunnable);
  22. event.setCancelled(true);
  23. }
  24. }, EventPriority.LOWEST);
  25. ClothHooks.CLIENT_SYNC_RECIPES.registerListener(event -> {
  26. ((RecipeHelperImpl) RoughlyEnoughItemsCore.getRecipeHelper()).recipesLoaded(event.getManager());
  27. });
  28. ClothHooks.CLIENT_SCREEN_ADD_BUTTON.registerListener(event -> {
  29. if (RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook && event.getScreen() instanceof ContainerScreen && event.getButtonWidget() instanceof RecipeBookButtonWidget)
  30. event.setCancelled(true);
  31. }, EventPriority.LOWEST);
  32. ClothHooks.CLIENT_POST_INIT_SCREEN.registerListener(post -> {
  33. if (post.getScreen() instanceof ContainerScreen) {
  34. if (post.getScreen() instanceof CreativePlayerInventoryScreen) {
  35. TabGetter tabGetter = (TabGetter) post.getScreen();
  36. if (tabGetter.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
  37. return;
  38. }
  39. ScreenHelper.setLastContainerScreen((ContainerScreen) post.getScreen());
  40. post.getInputListeners().add(ScreenHelper.getLastOverlay(true));
  41. }
  42. }, EventPriority.LOWEST);
  43. ClothHooks.CLIENT_POST_DRAW_SCREEN.registerListener(post -> {
  44. if (post.getScreen() instanceof ContainerScreen) {
  45. if (post.getScreen() instanceof CreativePlayerInventoryScreen) {
  46. TabGetter tabGetter = (TabGetter) post.getScreen();
  47. if (tabGetter.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
  48. return;
  49. }
  50. ScreenHelper.getLastOverlay().drawOverlay(post.getMouseX(), post.getMouseY(), post.getDelta());
  51. }
  52. }, EventPriority.LOWEST);
  53. }
  54. }