aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/DisplayHelper.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-05-12 10:36:42 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-05-12 10:36:42 +0800
commiteab120d5619f972e29afc9776959f6d6096d3926 (patch)
tree6e33b3cdac62e9bafd18aee65b42ace098c9028a /src/main/java/me/shedaniel/rei/api/DisplayHelper.java
parent7e1e39d8453b0a5b5c7c1045fc5e6bb428b840d8 (diff)
downloadRoughlyEnoughItems-eab120d5619f972e29afc9776959f6d6096d3926.tar.gz
RoughlyEnoughItems-eab120d5619f972e29afc9776959f6d6096d3926.tar.bz2
RoughlyEnoughItems-eab120d5619f972e29afc9776959f6d6096d3926.zip
More docs
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/DisplayHelper.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/DisplayHelper.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/DisplayHelper.java b/src/main/java/me/shedaniel/rei/api/DisplayHelper.java
index 37d2db76c..51e54302c 100644
--- a/src/main/java/me/shedaniel/rei/api/DisplayHelper.java
+++ b/src/main/java/me/shedaniel/rei/api/DisplayHelper.java
@@ -15,41 +15,127 @@ import static net.minecraft.util.ActionResult.PASS;
public interface DisplayHelper {
+ /**
+ * Gets the sorted version of all responsible bounds handlers
+ *
+ * @param screenClass the class for checking responsible bounds handlers
+ * @return the sorted list of responsible bounds handlers
+ * @see DisplayHelper#getResponsibleBoundsHandler(Class) for the unsorted version
+ */
List<DisplayBoundsHandler> getSortedBoundsHandlers(Class screenClass);
+ /**
+ * Gets all registered bounds handlers
+ *
+ * @return the list of registered bounds handlers
+ */
List<DisplayBoundsHandler> getAllBoundsHandlers();
+ /**
+ * Gets all responsible bounds handlers
+ *
+ * @param screenClass the class for checking responsible bounds handlers
+ * @return the the list of responsible bounds handlers
+ * @see DisplayHelper#getSortedBoundsHandlers(Class) for the sorted version
+ */
DisplayBoundsHandler getResponsibleBoundsHandler(Class screenClass);
+ /**
+ * Registers a bounds handler
+ *
+ * @param handler the handler to register
+ */
void registerBoundsHandler(DisplayBoundsHandler handler);
+ /**
+ * Gets the base bounds handler api for exclusion zones
+ *
+ * @return the base bounds handler
+ */
BaseBoundsHandler getBaseBoundsHandler();
public static interface DisplayBoundsHandler<T> {
+ /**
+ * An empty rectangle
+ */
public static final Rectangle EMPTY = new Rectangle();
+ /**
+ * Gets the base supported class for the bounds handler
+ *
+ * @return
+ */
Class getBaseSupportedClass();
+ /**
+ * Gets the left bounds of the overlay
+ *
+ * @param screen the current screen
+ * @return the left bounds
+ */
Rectangle getLeftBounds(T screen);
+ /**
+ * Gets the right bounds of the overlay
+ *
+ * @param screen the current screen
+ * @return the right bounds
+ */
Rectangle getRightBounds(T screen);
+ /**
+ * Checks if item slot can fit the screen
+ *
+ * @param isOnRightSide whether the user has set the overlay to the right
+ * @param left the left x coordinates of the stack
+ * @param top the top y coordinates for the stack
+ * @param screen the current screen
+ * @param fullBounds the current bounds
+ * @return whether the item slot can fit
+ * @see BaseBoundsHandler#registerExclusionZones(Class, BaseBoundsHandler.ExclusionZoneSupplier) for easier api
+ */
default ActionResult canItemSlotWidgetFit(boolean isOnRightSide, int left, int top, T screen, Rectangle fullBounds) {
return PASS;
}
+ /**
+ * Checks if mouse is inside the overlay
+ *
+ * @param isOnRightSide whether the user has set the overlay to the right
+ * @param mouseX mouse's x coordinates
+ * @param mouseY mouse's y coordinates
+ * @return whether mouse is inside the overlay
+ */
default ActionResult isInZone(boolean isOnRightSide, double mouseX, double mouseY) {
return PASS;
}
+ /**
+ * Gets the item list bounds by the overlay bounds
+ *
+ * @param rectangle the overlay bounds
+ * @return the item list bounds
+ */
default Rectangle getItemListArea(Rectangle rectangle) {
return new Rectangle(rectangle.x + 2, rectangle.y + 24, rectangle.width - 4, rectangle.height - (RoughlyEnoughItemsCore.getConfigManager().getConfig().sideSearchField ? 27 + 22 : 27));
}
+ /**
+ * Checks if REI should recalculate the overlay bounds
+ *
+ * @param isOnRightSide whether the user has set the overlay to the right
+ * @param rectangle the current overlay bounds
+ * @return whether REI should recalculate the overlay bounds
+ */
default boolean shouldRecalculateArea(boolean isOnRightSide, Rectangle rectangle) {
return false;
}
+ /**
+ * Gets the priority of the handler, the higher it is, the earlier it is called.
+ *
+ * @return the priority in float
+ */
default float getPriority() {
return 0f;
}