BaseWidget.java 1015 B

123456789101112131415161718192021222324252627282930
  1. package me.shedaniel.rei.api.widgets;
  2. import me.shedaniel.math.Point;
  3. import me.shedaniel.rei.gui.widget.WidgetWithBounds;
  4. import org.jetbrains.annotations.NotNull;
  5. import org.jetbrains.annotations.Nullable;
  6. import java.util.function.BiPredicate;
  7. public abstract class BaseWidget<T extends BaseWidget<T>> extends WidgetWithBounds {
  8. @Nullable
  9. private BiPredicate<T, Point> containsMousePredicate;
  10. public final void setContainsMousePredicate(@Nullable BiPredicate<T, Point> predicate) {
  11. this.containsMousePredicate = predicate;
  12. }
  13. @NotNull
  14. public final T containsMousePredicate(@Nullable BiPredicate<T, Point> predicate) {
  15. setContainsMousePredicate(predicate);
  16. return (T) this;
  17. }
  18. @Override
  19. public boolean containsMouse(double mouseX, double mouseY) {
  20. if (containsMousePredicate != null)
  21. return containsMousePredicate.test((T) this, new Point(mouseX, mouseY));
  22. return super.containsMouse(mouseX, mouseY);
  23. }
  24. }