aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-04-14 01:17:20 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-04-14 01:17:20 +0800
commit7703819d0b252f9d209d378176a225f561c1f90b (patch)
treee733f9fe633ed4880f2b6a168ba4c757f9ad4719 /src/main/java/me
parent71dde4ea55fd0833ab2eaecbe893617cb24682a1 (diff)
downloadRoughlyEnoughItems-7703819d0b252f9d209d378176a225f561c1f90b.tar.gz
RoughlyEnoughItems-7703819d0b252f9d209d378176a225f561c1f90b.tar.bz2
RoughlyEnoughItems-7703819d0b252f9d209d378176a225f561c1f90b.zip
Fix #58 + Bump Version
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java9
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java38
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java10
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java30
4 files changed, 39 insertions, 48 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 1a30a8ba7..46d14625a 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -6,7 +6,6 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import me.shedaniel.cloth.api.ClientUtils;
import me.shedaniel.cloth.hooks.ClothClientHooks;
-import me.shedaniel.cloth.hooks.ScreenHooks;
import me.shedaniel.rei.api.*;
import me.shedaniel.rei.client.ConfigManager;
import me.shedaniel.rei.client.*;
@@ -213,11 +212,9 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
ScreenHelper.getLastOverlay().lateRender(i, i1, v);
});
ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> {
- if (screen instanceof CreativePlayerInventoryScreen && screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget && ((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() == ItemGroup.SEARCH.getIndex())
- for(Element element : ((ScreenHooks) screen).cloth_getInputListeners())
- if (element instanceof TextFieldWidget)
- if (screen.getFocused() == element && ((TextFieldWidget) element).isFocused())
- return ActionResult.PASS;
+ if (screen instanceof CreativePlayerInventoryScreen && ((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() == ItemGroup.SEARCH.getIndex())
+ if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget && ((TextFieldWidget) screen.getFocused()).isFocused())
+ return ActionResult.PASS;
if (screen instanceof ContainerScreen)
if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))
return ActionResult.SUCCESS;
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index e3a71b4ae..22b3a5dba 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -25,8 +25,10 @@ import net.minecraft.util.math.MathHelper;
import net.minecraft.world.GameMode;
import java.awt.*;
-import java.util.*;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
import java.util.stream.Collectors;
public class ContainerScreenOverlay extends AbstractParentElement implements Drawable {
@@ -98,10 +100,10 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
return false;
}
});
-
+
if (setPage)
page = MathHelper.clamp(page, 0, getTotalPage());
-
+
widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 30 : 10, 10, 20, 20, "") {
@Override
public void onPressed() {
@@ -188,7 +190,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
}
});
}
- widgets.add(new ClickableLabelWidget(rectangle.x + (rectangle.width / 2), rectangle.y + 10, "") {
+ widgets.add(new ClickableLabelWidget(rectangle.x + (rectangle.width / 2), rectangle.y + 10, "", getTotalPage() > 0) {
@Override
public void render(int mouseX, int mouseY, float delta) {
page = MathHelper.clamp(page, 0, getTotalPage());
@@ -213,6 +215,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
return false;
}
});
+ buttonLeft.enabled = buttonRight.enabled = getTotalPage() > 0;
if (ScreenHelper.searchField == null)
ScreenHelper.searchField = new SearchFieldWidget(0, 0, 0, 0);
ScreenHelper.searchField.setChangedListener(s -> {
@@ -342,7 +345,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
GuiLighting.disable();
GlStateManager.disableLighting();
int int_3 = 0;
- for (String string_1 : list_1) {
+ for(String string_1 : list_1) {
int int_4 = font.getStringWidth(string_1);
if (int_4 > int_3)
int_3 = int_4;
@@ -384,21 +387,10 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
}
private boolean hasSameListContent(List<ItemStack> list1, List<ItemStack> list2) {
- list1.sort((itemStack, t1) ->
- ItemListOverlay.tryGetItemStackName(itemStack).compareToIgnoreCase(ItemListOverlay.tryGetItemStackName(t1))
- );
-
- list2.sort((itemStack, t1) ->
- ItemListOverlay.tryGetItemStackName(itemStack).compareToIgnoreCase(ItemListOverlay.tryGetItemStackName(t1))
- );
-
- String lastString = list1.stream().map(
- ItemListOverlay::tryGetItemStackName
- ).collect(Collectors.joining("")), currentString = list2.stream().map(
- ItemListOverlay::tryGetItemStackName
- ).collect(Collectors.joining(""));
-
- return lastString.equals(currentString);
+ list1.sort((itemStack, t1) -> ItemListOverlay.tryGetItemStackName(itemStack).compareToIgnoreCase(ItemListOverlay.tryGetItemStackName(t1)));
+ list2.sort((itemStack, t1) -> ItemListOverlay.tryGetItemStackName(itemStack).compareToIgnoreCase(ItemListOverlay.tryGetItemStackName(t1)));
+
+ return list1.stream().map(ItemListOverlay::tryGetItemStackName).collect(Collectors.joining("")).equals(list2.stream().map(ItemListOverlay::tryGetItemStackName).collect(Collectors.joining("")));
}
public void addTooltip(QueuedTooltip queuedTooltip) {
@@ -408,8 +400,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
public void renderWidgets(int int_1, int int_2, float float_1) {
if (!ScreenHelper.isOverlayVisible())
return;
- buttonLeft.enabled = itemListOverlay.children().size() > 0;
- buttonRight.enabled = itemListOverlay.children().size() > 0;
+ buttonLeft.enabled = buttonRight.enabled = getTotalPage() > 0;
widgets.forEach(widget -> {
GuiLighting.disable();
widget.render(int_1, int_2, float_1);
@@ -496,14 +487,13 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
public boolean mouseClicked(double double_1, double double_2, int int_1) {
if (!ScreenHelper.isOverlayVisible())
return false;
- for(Element element : widgets) {
+ for(Element element : widgets)
if (element.mouseClicked(double_1, double_2, int_1)) {
this.setFocused(element);
if (int_1 == 0)
this.setDragging(true);
return true;
}
- }
return false;
}
diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
index 1bb10b0a4..5b8c319b9 100644
--- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
@@ -189,7 +189,7 @@ public class RecipeViewingScreen extends Screen {
return Optional.ofNullable(I18n.translate("text.rei.previous_page"));
}
});
- widgets.add(new ClickableLabelWidget((int) bounds.getCenterX(), (int) bounds.getY() + 23, "") {
+ widgets.add(new ClickableLabelWidget((int) bounds.getCenterX(), (int) bounds.getY() + 23, "", categoriesMap.get(selectedCategory).size() > getRecipesPerPageByHeight()) {
@Override
public void render(int mouseX, int mouseY, float delta) {
this.text = String.format("%d/%d", page + 1, getTotalPages(selectedCategory));
@@ -222,9 +222,7 @@ public class RecipeViewingScreen extends Screen {
return Optional.ofNullable(I18n.translate("text.rei.next_page"));
}
});
- int recipesPerPageByHeight = getRecipesPerPageByHeight();
- recipeBack.enabled = recipeNext.enabled = categoriesMap.get(selectedCategory).size() > recipesPerPageByHeight;
-
+ recipeBack.enabled = recipeNext.enabled = categoriesMap.get(selectedCategory).size() > getRecipesPerPageByHeight();
for(int i = 0; i < 6; i++) {
int j = i + categoryPages * 6;
if (categories.size() > j) {
@@ -317,9 +315,7 @@ public class RecipeViewingScreen extends Screen {
fill(bounds.x + 17, bounds.y + 5, bounds.x + bounds.width - 17, bounds.y + 17, SUB_COLOR.getRGB());
fill(bounds.x + 17, bounds.y + 21, bounds.x + bounds.width - 17, bounds.y + 33, SUB_COLOR.getRGB());
}
- tabs.stream().filter(tabWidget ->
- !tabWidget.isSelected()
- ).forEach(tabWidget -> tabWidget.render(mouseX, mouseY, delta));
+ tabs.stream().filter(tabWidget -> !tabWidget.isSelected()).forEach(tabWidget -> tabWidget.render(mouseX, mouseY, delta));
GuiLighting.disable();
super.render(mouseX, mouseY, delta);
widgets.forEach(widget -> {
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
index 910f4b759..4f2656557 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
@@ -9,18 +9,24 @@ public abstract class ClickableLabelWidget extends LabelWidget {
public static final int hoveredColor = (new Color(102, 255, 204)).getRGB();
public boolean focused;
-
- public ClickableLabelWidget(int x, int y, String text) {
+ public boolean clickable;
+
+ public ClickableLabelWidget(int x, int y, String text, boolean clickable) {
super(x, y, text);
+ this.clickable = clickable;
+ }
+
+ public ClickableLabelWidget(int x, int y, String text) {
+ this(x, y, text, true);
}
@Override
public void render(int mouseX, int mouseY, float delta) {
int colour = -1;
- if (isHovered(mouseX, mouseY))
+ if (clickable && isHovered(mouseX, mouseY))
colour = hoveredColor;
drawCenteredString(font, (isHovered(mouseX, mouseY) ? "§n" : "") + text, x, y, colour);
- if (getTooltips().isPresent())
+ if (clickable && getTooltips().isPresent())
if (!focused && isHighlighted(mouseX, mouseY))
ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n")));
else if (focused)
@@ -29,7 +35,7 @@ public abstract class ClickableLabelWidget extends LabelWidget {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if (button == 0 && isHighlighted(mouseX, mouseY)) {
+ if (button == 0 && clickable && isHighlighted(mouseX, mouseY)) {
onLabelClicked();
return true;
}
@@ -42,22 +48,24 @@ public abstract class ClickableLabelWidget extends LabelWidget {
@Override
public boolean keyPressed(int int_1, int int_2, int int_3) {
- if (int_1 != 257 && int_1 != 32 && int_1 != 335) {
+ if (!clickable)
return false;
- } else {
- this.onLabelClicked();
- return true;
- }
+ if (int_1 != 257 && int_1 != 32 && int_1 != 335)
+ return false;
+ this.onLabelClicked();
+ return true;
}
@Override
public boolean changeFocus(boolean boolean_1) {
+ if (!clickable)
+ return false;
this.focused = !this.focused;
return true;
}
public boolean isHovered(int mouseX, int mouseY) {
- return isHighlighted(mouseX, mouseY) || focused;
+ return clickable && (isHighlighted(mouseX, mouseY) || focused);
}
public abstract void onLabelClicked();