aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java63
1 files changed, 32 insertions, 31 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
index efec1fa66..1ab648467 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
@@ -9,6 +9,7 @@ import com.mojang.blaze3d.systems.RenderSystem;
import me.shedaniel.math.api.Rectangle;
import me.shedaniel.math.impl.PointHelper;
import me.shedaniel.rei.api.ClientHelper;
+import me.shedaniel.rei.api.ConfigObject;
import me.shedaniel.rei.api.EntryStack;
import me.shedaniel.rei.impl.ScreenHelper;
import net.minecraft.client.gui.Element;
@@ -21,77 +22,77 @@ import java.util.Collections;
import java.util.List;
public class EntryWidget extends WidgetWithBounds {
-
+
protected static final Identifier RECIPE_GUI = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png");
protected static final Identifier RECIPE_GUI_DARK = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer_dark.png");
-
+
protected boolean highlight = true;
protected boolean tooltips = true;
protected boolean background = true;
protected boolean interactable = true;
private Rectangle bounds;
private List<EntryStack> entryStacks;
-
+
protected EntryWidget(int x, int y) {
this.bounds = new Rectangle(x - 1, y - 1, 18, 18);
this.entryStacks = new ArrayList<>();
}
-
+
public static EntryWidget create(int x, int y) {
return new EntryWidget(x, y);
}
-
+
public EntryWidget disableInteractions() {
return interactable(false);
}
-
+
public EntryWidget interactable(boolean b) {
interactable = b;
return this;
}
-
+
public EntryWidget noHighlight() {
return highlight(false);
}
-
+
public EntryWidget highlight(boolean b) {
highlight = b;
return this;
}
-
+
public EntryWidget noTooltips() {
return tooltips(false);
}
-
+
public EntryWidget tooltips(boolean b) {
tooltips = b;
return this;
}
-
+
public EntryWidget noBackground() {
return background(false);
}
-
+
public EntryWidget background(boolean b) {
background = b;
return this;
}
-
+
public EntryWidget clearStacks() {
entryStacks.clear();
return this;
}
-
+
public EntryWidget entry(EntryStack stack) {
entryStacks.add(stack);
return this;
}
-
+
public EntryWidget entries(Collection<EntryStack> stacks) {
entryStacks.addAll(stacks);
return this;
}
-
+
protected EntryStack getCurrentEntry() {
if (entryStacks.isEmpty())
return EntryStack.empty();
@@ -99,27 +100,27 @@ public class EntryWidget extends WidgetWithBounds {
return entryStacks.get(0);
return entryStacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) entryStacks.size()) / 1f));
}
-
+
public List<EntryStack> entries() {
return entryStacks;
}
-
+
@Override
public Rectangle getBounds() {
return bounds;
}
-
+
protected Rectangle getInnerBounds() {
return new Rectangle(bounds.x + 1, bounds.y + 1, bounds.width - 2, bounds.height - 2);
}
-
+
@Override
public void render(int mouseX, int mouseY, float delta) {
if (background) {
drawBackground(mouseX, mouseY, delta);
}
drawCurrentEntry(mouseX, mouseY, delta);
-
+
boolean highlighted = containsMouse(mouseX, mouseY);
if (tooltips && highlighted) {
queueTooltip(mouseX, mouseY, delta);
@@ -128,29 +129,29 @@ public class EntryWidget extends WidgetWithBounds {
drawHighlighted(mouseX, mouseY, delta);
}
}
-
+
protected void drawBackground(int mouseX, int mouseY, float delta) {
minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? RECIPE_GUI_DARK : RECIPE_GUI);
blit(bounds.x, bounds.y, 0, 222, bounds.width, bounds.height);
}
-
+
protected void drawCurrentEntry(int mouseX, int mouseY, float delta) {
EntryStack entry = getCurrentEntry();
entry.setZ(100);
entry.render(getInnerBounds(), mouseX, mouseY, delta);
}
-
+
protected void queueTooltip(int mouseX, int mouseY, float delta) {
QueuedTooltip tooltip = getCurrentTooltip(mouseX, mouseY);
if (tooltip != null) {
ScreenHelper.getLastOverlay().addTooltip(tooltip);
}
}
-
+
public QueuedTooltip getCurrentTooltip(int mouseX, int mouseY) {
return getCurrentEntry().getTooltip(mouseX, mouseY);
}
-
+
protected void drawHighlighted(int mouseX, int mouseY, float delta) {
RenderSystem.disableDepthTest();
RenderSystem.colorMask(true, true, true, false);
@@ -162,12 +163,12 @@ public class EntryWidget extends WidgetWithBounds {
RenderSystem.colorMask(true, true, true, true);
RenderSystem.enableDepthTest();
}
-
+
@Override
public List<? extends Element> children() {
return Collections.emptyList();
}
-
+
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (!interactable)
@@ -179,15 +180,15 @@ public class EntryWidget extends WidgetWithBounds {
return ClientHelper.getInstance().executeUsageKeyBind(getCurrentEntry());
return false;
}
-
+
@Override
public boolean keyPressed(int int_1, int int_2, int int_3) {
if (!interactable)
return false;
if (containsMouse(PointHelper.fromMouse()))
- if (ClientHelper.getInstance().getRecipeKeyBinding().matchesKey(int_1, int_2))
+ if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(int_1, int_2))
return ClientHelper.getInstance().executeRecipeKeyBind(getCurrentEntry());
- else if (ClientHelper.getInstance().getUsageKeyBinding().matchesKey(int_1, int_2))
+ else if (ConfigObject.getInstance().getUsageKeybind().matchesKey(int_1, int_2))
return ClientHelper.getInstance().executeUsageKeyBind(getCurrentEntry());
return false;
}