LabelWidget.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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.Point;
  7. import me.shedaniel.math.api.Rectangle;
  8. import me.shedaniel.rei.impl.ScreenHelper;
  9. import net.minecraft.client.gui.Element;
  10. import java.util.Collections;
  11. import java.util.List;
  12. public class LabelWidget extends WidgetWithBounds {
  13. private Point pos;
  14. private String text;
  15. private int defaultColor;
  16. private boolean hasShadows = true;
  17. private boolean centered = true;
  18. @Deprecated
  19. public LabelWidget(int x, int y, String text) {
  20. this(new Point(x, y), text);
  21. }
  22. public LabelWidget(Point point, String text) {
  23. this.pos = point;
  24. this.text = text;
  25. this.defaultColor = ScreenHelper.isDarkModeEnabled() ? 0xFFBBBBBB : -1;
  26. }
  27. public boolean isCentered() {
  28. return centered;
  29. }
  30. public void setCentered(boolean centered) {
  31. this.centered = centered;
  32. }
  33. public LabelWidget centered() {
  34. setCentered(true);
  35. return this;
  36. }
  37. public boolean isHasShadows() {
  38. return hasShadows;
  39. }
  40. public void setHasShadows(boolean hasShadows) {
  41. this.hasShadows = hasShadows;
  42. }
  43. public LabelWidget noShadow() {
  44. setHasShadows(false);
  45. return this;
  46. }
  47. public int getDefaultColor() {
  48. return defaultColor;
  49. }
  50. public void setDefaultColor(int defaultColor) {
  51. this.defaultColor = defaultColor;
  52. }
  53. public Point getPosition() {
  54. return pos;
  55. }
  56. public LabelWidget setPosition(Point position) {
  57. this.pos = position;
  58. return this;
  59. }
  60. public String getText() {
  61. return text;
  62. }
  63. public LabelWidget setText(String text) {
  64. this.text = text;
  65. return this;
  66. }
  67. public LabelWidget color(int defaultColor) {
  68. this.defaultColor = defaultColor;
  69. return this;
  70. }
  71. @Override
  72. public Rectangle getBounds() {
  73. int width = font.getStringWidth(text);
  74. Point pos = getPosition();
  75. return new Rectangle(pos.x - width / 2 - 1, pos.y - 5, width + 2, 14);
  76. }
  77. @Override
  78. public List<? extends Element> children() {
  79. return Collections.emptyList();
  80. }
  81. @Override
  82. public void render(int mouseX, int mouseY, float delta) {
  83. int width = font.getStringWidth(text);
  84. Point pos = getPosition();
  85. if (hasShadows)
  86. font.drawWithShadow(text, pos.x - width / 2, pos.y, defaultColor);
  87. else font.draw(text, pos.x - width / 2, pos.y, defaultColor);
  88. }
  89. }