diff options
| author | Danielshe <shekwancheung0528@gmail.com> | 2019-08-19 22:08:27 +0800 |
|---|---|---|
| committer | Danielshe <shekwancheung0528@gmail.com> | 2019-08-19 22:08:27 +0800 |
| commit | a2ee9f7570b2b1ee7f7b51950301715a15496d00 (patch) | |
| tree | 99b2b38e7551daf1a15794f4f8ae6ee91dc59e95 /src/main/java/me | |
| parent | e7ece2b342f1ea8bf824b177d65684d13f468ece (diff) | |
| download | RoughlyEnoughItems-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')
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(); } |
