CraftableToggleButtonWidget.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * Roughly Enough Items by Danielshe.
  3. * Licensed under the MIT License.
  4. */
  5. package me.shedaniel.rei.gui.widget;
  6. import me.shedaniel.math.api.Rectangle;
  7. import me.shedaniel.math.compat.RenderHelper;
  8. import me.shedaniel.rei.RoughlyEnoughItemsCore;
  9. import net.minecraft.block.Blocks;
  10. import net.minecraft.client.MinecraftClient;
  11. import net.minecraft.client.render.GuiLighting;
  12. import net.minecraft.client.render.item.ItemRenderer;
  13. import net.minecraft.client.resource.language.I18n;
  14. import net.minecraft.item.ItemStack;
  15. import net.minecraft.util.Identifier;
  16. import java.util.Optional;
  17. public abstract class CraftableToggleButtonWidget extends ButtonWidget {
  18. public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png");
  19. private ItemRenderer itemRenderer;
  20. public CraftableToggleButtonWidget(Rectangle rectangle) {
  21. super(rectangle, "");
  22. this.itemRenderer = minecraft.getItemRenderer();
  23. }
  24. public CraftableToggleButtonWidget(int x, int y, int width, int height) {
  25. this(new Rectangle(x, y, width, height));
  26. }
  27. public void lateRender(int mouseX, int mouseY, float delta) {
  28. GuiLighting.disable();
  29. super.render(mouseX, mouseY, delta);
  30. GuiLighting.enableForItems();
  31. this.itemRenderer.zOffset = this.blitOffset;
  32. this.itemRenderer.renderGuiItem(new ItemStack(Blocks.CRAFTING_TABLE), getBounds().x + 2, getBounds().y + 2);
  33. this.itemRenderer.zOffset = 0.0F;
  34. GuiLighting.disable();
  35. MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
  36. RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
  37. int color = RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? 939579655 : 956235776;
  38. this.blitOffset += 10f;
  39. this.fillGradient(getBounds().x, getBounds().y, getBounds().x + getBounds().width, getBounds().y + getBounds().height, color, color);
  40. this.blitOffset = 0;
  41. }
  42. @Override
  43. public void render(int mouseX, int mouseY, float delta) {
  44. }
  45. @Override
  46. public boolean changeFocus(boolean boolean_1) {
  47. return false;
  48. }
  49. @Override
  50. public Optional<String> getTooltips() {
  51. return Optional.ofNullable(I18n.translate(RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? "text.rei.showing_craftable" : "text.rei.showing_all"));
  52. }
  53. }