aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
authorDanielshe <shekwancheung0528@gmail.com>2019-08-19 22:08:27 +0800
committerDanielshe <shekwancheung0528@gmail.com>2019-08-19 22:08:27 +0800
commita2ee9f7570b2b1ee7f7b51950301715a15496d00 (patch)
tree99b2b38e7551daf1a15794f4f8ae6ee91dc59e95 /src/main/java/me
parente7ece2b342f1ea8bf824b177d65684d13f468ece (diff)
downloadRoughlyEnoughItems-a2ee9f7570b2b1ee7f7b51950301715a15496d00.tar.gz
RoughlyEnoughItems-a2ee9f7570b2b1ee7f7b51950301715a15496d00.tar.bz2
RoughlyEnoughItems-a2ee9f7570b2b1ee7f7b51950301715a15496d00.zip
Build 2: Fix bugs
- Fix freeze caused by the backspace feature - Page buttons gone when the search box is on top - Fixed #143 - Made text red when no entry has been found
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java17
-rw-r--r--src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java2
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ScreenHelper.java4
4 files changed, 24 insertions, 7 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index bd21cf910..e2f282762 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -80,7 +80,7 @@ public class ContainerScreenOverlay extends Widget {
entryListWidget.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().isEntryListWidgetScrolled()) {
- widgets.add(buttonLeft = new ButtonWidget(rectangle.x, rectangle.y + 5, 16, 16, new TranslatableText("text.rei.left_arrow")) {
+ widgets.add(buttonLeft = new ButtonWidget(rectangle.x, rectangle.y + (RoughlyEnoughItemsCore.getConfigManager().getConfig().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16, new TranslatableText("text.rei.left_arrow")) {
@Override
public void onPressed() {
page--;
@@ -99,7 +99,7 @@ public class ContainerScreenOverlay extends Widget {
return false;
}
});
- widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + 5, 16, 16, new TranslatableText("text.rei.right_arrow")) {
+ widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + (RoughlyEnoughItemsCore.getConfigManager().getConfig().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16, new TranslatableText("text.rei.right_arrow")) {
@Override
public void onPressed() {
page++;
@@ -222,7 +222,7 @@ public class ContainerScreenOverlay extends Widget {
}
}
if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().isEntryListWidgetScrolled()) {
- widgets.add(new ClickableLabelWidget(rectangle.x + (rectangle.width / 2), rectangle.y + 10, "", getTotalPage() > 0) {
+ widgets.add(new ClickableLabelWidget(rectangle.x + (rectangle.width / 2), rectangle.y + (RoughlyEnoughItemsCore.getConfigManager().getConfig().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 10, "", getTotalPage() > 0) {
@Override
public void render(int mouseX, int mouseY, float delta) {
page = MathHelper.clamp(page, 0, getTotalPage());
@@ -526,6 +526,8 @@ public class ContainerScreenOverlay extends Widget {
if (ClientHelper.getInstance().getFocusSearchFieldKeyBinding().matchesKey(int_1, int_2)) {
ScreenHelper.searchField.setFocused(true);
setFocused(ScreenHelper.searchField);
+ ScreenHelper.searchField.keybindFocusTime = System.currentTimeMillis();
+ ScreenHelper.searchField.keybindFocusKey = int_1;
return true;
}
return false;
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
index 40a54f1df..74f7a884d 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
@@ -6,14 +6,19 @@
package me.shedaniel.rei.gui.widget;
import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.rei.gui.ContainerScreenOverlay;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GuiLighting;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.sound.PositionedSoundInstance;
+import net.minecraft.client.util.InputUtil;
import net.minecraft.sound.SoundEvents;
public class SearchFieldWidget extends TextFieldWidget {
public static boolean isSearching = false;
+ public long keybindFocusTime = -1;
+ public int keybindFocusKey = -1;
protected long lastClickedTime = -1;
public SearchFieldWidget(int x, int y, int width, int height) {
@@ -24,7 +29,7 @@ public class SearchFieldWidget extends TextFieldWidget {
public void laterRender(int int_1, int int_2, float float_1) {
GuiLighting.disable();
GlStateManager.disableDepthTest();
- setEditableColor(isSearching ? -1313241 : 14737632);
+ setEditableColor(ContainerScreenOverlay.getEntryListWidget().children().isEmpty() && !getText().isEmpty() ? 16733525 : isSearching ? -1313241 : 14737632);
setSuggestion(!isFocused() && getText().isEmpty() ? I18n.translate("text.rei.search.field.suggestion") : null);
super.render(int_1, int_2, float_1);
GlStateManager.enableDepthTest();
@@ -69,6 +74,16 @@ public class SearchFieldWidget extends TextFieldWidget {
}
@Override
+ public boolean charTyped(char char_1, int int_1) {
+ if (System.currentTimeMillis() - keybindFocusTime < 1000 && InputUtil.isKeyPressed(MinecraftClient.getInstance().window.getHandle(), keybindFocusKey)) {
+ keybindFocusTime = -1;
+ keybindFocusKey = -1;
+ return true;
+ }
+ return super.charTyped(char_1, int_1);
+ }
+
+ @Override
public void render(int int_1, int int_2, float float_1) {
}
diff --git a/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java
index d05823fe6..81710bddc 100644
--- a/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java
+++ b/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java
@@ -218,7 +218,7 @@ public class RecipeHelperImpl implements RecipeHelper {
@SuppressWarnings("deprecation")
public void recipesLoaded(RecipeManager recipeManager) {
- ScreenHelper.clearRecipeScreens();
+ ScreenHelper.clearData();
this.recipeCount.set(0);
this.recipeManager = recipeManager;
this.recipeCategoryListMap.clear();
diff --git a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
index 915dbb604..be03f4bb0 100644
--- a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
+++ b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
@@ -38,7 +38,7 @@ public class ScreenHelper implements ClientModInitializer {
public static void storeRecipeScreen(Screen screen) {
while (lastRecipeScreen.size() >= 5)
- lastRecipeScreen.remove(0);
+ lastRecipeScreen.remove(Iterables.get(lastRecipeScreen, 0));
lastRecipeScreen.add(screen);
}
@@ -52,7 +52,7 @@ public class ScreenHelper implements ClientModInitializer {
return screen;
}
- public static void clearRecipeScreens() {
+ public static void clearData() {
lastRecipeScreen.clear();
}