DefaultRecipeBookExclusionZones.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Roughly Enough Items by Danielshe.
  3. * Licensed under the MIT License.
  4. */
  5. package me.shedaniel.rei.plugin;
  6. import com.google.common.collect.Lists;
  7. import me.shedaniel.math.api.Rectangle;
  8. import me.shedaniel.rei.impl.ScreenHelper;
  9. import me.shedaniel.rei.listeners.ContainerScreenHooks;
  10. import net.minecraft.client.MinecraftClient;
  11. import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider;
  12. import net.minecraft.client.recipe.book.ClientRecipeBook;
  13. import net.minecraft.container.CraftingContainer;
  14. import java.util.Collections;
  15. import java.util.List;
  16. import java.util.function.Supplier;
  17. public class DefaultRecipeBookExclusionZones implements Supplier<List<Rectangle>> {
  18. @Override
  19. public List<Rectangle> get() {
  20. if (!MinecraftClient.getInstance().player.getRecipeBook().isGuiOpen() || !(MinecraftClient.getInstance().currentScreen instanceof RecipeBookProvider) || !(ScreenHelper.getLastContainerScreen().getContainer() instanceof CraftingContainer))
  21. return Collections.emptyList();
  22. ContainerScreenHooks screenHooks = ScreenHelper.getLastContainerScreenHooks();
  23. List<Rectangle> l = Lists.newArrayList(new Rectangle(screenHooks.rei_getContainerLeft() - 4 - 145, screenHooks.rei_getContainerTop(), 4 + 145 + 30, screenHooks.rei_getContainerHeight()));
  24. int size = ClientRecipeBook.getGroupsForContainer((CraftingContainer<?>) ScreenHelper.getLastContainerScreen().getContainer()).size();
  25. if (size > 0)
  26. l.add(new Rectangle(screenHooks.rei_getContainerLeft() - 4 - 145 - 30, screenHooks.rei_getContainerTop(), 30, size * 27));
  27. return l;
  28. }
  29. }