Button.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package me.shedaniel.gui.widget;
  2. import com.mojang.blaze3d.platform.GlStateManager;
  3. import me.shedaniel.gui.REIRenderHelper;
  4. import net.minecraft.client.MinecraftClient;
  5. import net.minecraft.client.font.FontRenderer;
  6. import net.minecraft.client.gui.ContainerGui;
  7. import net.minecraft.util.Identifier;
  8. import java.awt.*;
  9. /**
  10. * Created by James on 7/29/2018.
  11. */
  12. public class Button extends Control {
  13. private String buttonText;
  14. protected static final Identifier BUTTON_TEXTURES = new Identifier("textures/gui/widgets.png");
  15. public Button(int x, int y, int width, int height, String buttonText) {
  16. super(x, y, width, height);
  17. this.buttonText = buttonText;
  18. }
  19. public Button(Rectangle rect, String buttonText) {
  20. super(rect);
  21. this.buttonText = buttonText;
  22. }
  23. public void setString(String text) {
  24. buttonText = text;
  25. }
  26. @Override
  27. public void draw() {
  28. GlStateManager.pushMatrix();
  29. GlStateManager.disableLighting();
  30. ContainerGui gui = REIRenderHelper.getOverlayedGui();
  31. MinecraftClient lvt_4_1_ = MinecraftClient.getInstance();
  32. FontRenderer lvt_5_1_ = lvt_4_1_.fontRenderer;
  33. lvt_4_1_.getTextureManager().bindTexture(BUTTON_TEXTURES);
  34. GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
  35. int hoverState = (byte) 0;
  36. if (this.isEnabled()) {
  37. if (!this.isHighlighted())
  38. hoverState = (byte) 1;
  39. else
  40. hoverState = (byte) 2;
  41. }
  42. GlStateManager.enableBlend();
  43. GlStateManager.blendFuncSeparate(GlStateManager.SrcBlendFactor.SRC_ALPHA, GlStateManager.DstBlendFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcBlendFactor.ONE, GlStateManager.DstBlendFactor.ZERO);
  44. GlStateManager.blendFunc(GlStateManager.SrcBlendFactor.SRC_ALPHA, GlStateManager.DstBlendFactor.ONE_MINUS_SRC_ALPHA);
  45. gui.drawTexturedRect(rect.x, rect.y, 0, 46 + hoverState * 20, rect.width / 2, rect.height);
  46. gui.drawTexturedRect(rect.x + rect.width / 2, rect.y, 200 - rect.width / 2, 46 + hoverState * 20, rect.width / 2, rect.height);
  47. int lvt_7_1_ = 14737632;
  48. gui.drawStringCentered(lvt_5_1_, this.buttonText, rect.x + rect.width / 2, rect.y + (rect.height - 8) / 2, lvt_7_1_);
  49. GlStateManager.enableLighting();
  50. GlStateManager.popMatrix();
  51. }
  52. }