diff options
| author | shedaniel <daniel@shedaniel.me> | 2019-12-24 11:31:40 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2019-12-24 11:31:40 +0800 |
| commit | 08d80d588a36598114087a79917e36e9d2cc97c3 (patch) | |
| tree | 95cde698bbf1eca2f83143d39fd206cf2dc803f2 /src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java | |
| parent | 7d438f554c4173880a407a6bb8fc80b8a4723845 (diff) | |
| download | RoughlyEnoughItems-08d80d588a36598114087a79917e36e9d2cc97c3.tar.gz RoughlyEnoughItems-08d80d588a36598114087a79917e36e9d2cc97c3.tar.bz2 RoughlyEnoughItems-08d80d588a36598114087a79917e36e9d2cc97c3.zip | |
Finishing workstation usage and close #220
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java | 77 |
1 files changed, 39 insertions, 38 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index 88e427d87..73c760f3f 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -31,7 +31,7 @@ import java.util.*; import java.util.function.Supplier; public class RecipeViewingScreen extends Screen { - + public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); private static final int TABS_PER_PAGE = 5; private final List<Widget> preWidgets; @@ -46,10 +46,11 @@ public class RecipeViewingScreen extends Screen { public boolean choosePageActivated; public RecipeChoosePageWidget recipeChoosePageWidget; private Rectangle bounds; - @Nullable private CategoryBaseWidget workingStationsBaseWidget; + @Nullable + private CategoryBaseWidget workingStationsBaseWidget; private RecipeCategory<RecipeDisplay> selectedCategory; private ButtonWidget recipeBack, recipeNext, categoryBack, categoryNext; - + public RecipeViewingScreen(Map<RecipeCategory<?>, List<RecipeDisplay>> categoriesMap) { super(new LiteralText("")); this.categoryPages = 0; @@ -67,12 +68,12 @@ public class RecipeViewingScreen extends Screen { this.tabs = new ArrayList<>(); this.choosePageActivated = false; } - + @Nullable public CategoryBaseWidget getWorkingStationsBaseWidget() { return workingStationsBaseWidget; } - + @Override public boolean keyPressed(int int_1, int int_2, int int_3) { if (int_1 == 256 && choosePageActivated) { @@ -114,12 +115,12 @@ public class RecipeViewingScreen extends Screen { } return super.keyPressed(int_1, int_2, int_3); } - + @Override public boolean isPauseScreen() { return false; } - + @Override public void init() { super.init(); @@ -134,7 +135,7 @@ public class RecipeViewingScreen extends Screen { this.guiHeight = MathHelper.floor(MathHelper.clamp((selectedCategory.getDisplayHeight() + 7d) * (getRecipesPerPage() + 1d) + 40d, 186d, (double) largestHeight)); this.bounds = new Rectangle(width / 2 - guiWidth / 2, height / 2 - guiHeight / 2, guiWidth, guiHeight); this.page = MathHelper.clamp(page, 0, getTotalPages(selectedCategory) - 1); - + ButtonWidget w, w2; this.widgets.add(w = new ButtonWidget(new Rectangle(bounds.x + 2, bounds.y - 16, 10, 10), I18n.translate("text.rei.left_arrow")) { @Override @@ -167,7 +168,7 @@ public class RecipeViewingScreen extends Screen { page = 0; RecipeViewingScreen.this.init(); } - + @Override public Optional<String> getTooltips() { return Optional.ofNullable(I18n.translate("text.rei.previous_category")); @@ -179,12 +180,12 @@ public class RecipeViewingScreen extends Screen { setText(selectedCategory.getCategoryName()); super.render(mouseX, mouseY, delta); } - + @Override public Optional<String> getTooltips() { return Optional.ofNullable(I18n.translate("text.rei.view_all_categories")); } - + @Override public void onLabelClicked() { MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F)); @@ -203,7 +204,7 @@ public class RecipeViewingScreen extends Screen { page = 0; RecipeViewingScreen.this.init(); } - + @Override public Optional<String> getTooltips() { return Optional.ofNullable(I18n.translate("text.rei.next_category")); @@ -211,7 +212,7 @@ public class RecipeViewingScreen extends Screen { }); categoryBack.enabled = categories.size() > 1; categoryNext.enabled = categories.size() > 1; - + widgets.add(recipeBack = new ButtonWidget(new Rectangle(bounds.getX() + 5, bounds.getY() + 21, 12, 12), I18n.translate("text.rei.left_arrow")) { @Override public void onPressed() { @@ -220,7 +221,7 @@ public class RecipeViewingScreen extends Screen { page = getTotalPages(selectedCategory) - 1; RecipeViewingScreen.this.init(); } - + @Override public Optional<String> getTooltips() { return Optional.ofNullable(I18n.translate("text.rei.previous_page")); @@ -232,12 +233,12 @@ public class RecipeViewingScreen extends Screen { setText(String.format("%d/%d", page + 1, getTotalPages(selectedCategory))); super.render(mouseX, mouseY, delta); } - + @Override public Optional<String> getTooltips() { return Optional.ofNullable(I18n.translate("text.rei.choose_page")); } - + @Override public void onLabelClicked() { MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F)); @@ -253,7 +254,7 @@ public class RecipeViewingScreen extends Screen { page = 0; RecipeViewingScreen.this.init(); } - + @Override public Optional<String> getTooltips() { return Optional.ofNullable(I18n.translate("text.rei.next_page")); @@ -299,7 +300,7 @@ public class RecipeViewingScreen extends Screen { recipeChoosePageWidget = new RecipeChoosePageWidget(this, page, getTotalPages(selectedCategory)); else recipeChoosePageWidget = null; - + workingStationsBaseWidget = null; List<List<EntryStack>> workingStations = RecipeHelper.getInstance().getWorkingStations(selectedCategory.getIdentifier()); if (!workingStations.isEmpty()) { @@ -323,17 +324,17 @@ public class RecipeViewingScreen extends Screen { } } } - + children.addAll(tabs); children.add(ScreenHelper.getLastOverlay(true, false)); children.addAll(widgets); children.addAll(preWidgets); } - + public List<Widget> getWidgets() { return widgets; } - + public List<RecipeDisplay> getCurrentDisplayed() { List<RecipeDisplay> list = Lists.newArrayList(); int recipesPerPage = getRecipesPerPage(); @@ -342,19 +343,19 @@ public class RecipeViewingScreen extends Screen { list.add(categoriesMap.get(selectedCategory).get(page * (recipesPerPage + 1) + i)); return list; } - + public RecipeCategory<?> getSelectedCategory() { return selectedCategory; } - + public int getPage() { return page; } - + public int getCategoryPage() { return categoryPages; } - + @SuppressWarnings("deprecation") private int getRecipesPerPage() { if (selectedCategory.getFixedRecipesPerPage() > 0) @@ -362,16 +363,16 @@ public class RecipeViewingScreen extends Screen { int height = selectedCategory.getDisplayHeight(); return MathHelper.clamp(MathHelper.floor(((double) largestHeight - 40d) / ((double) height + 7d)) - 1, 0, Math.min(ConfigObject.getInstance().getMaxRecipePerPage() - 1, selectedCategory.getMaximumRecipePerPage() - 1)); } - + private int getRecipesPerPageByHeight() { int height = selectedCategory.getDisplayHeight(); return MathHelper.clamp(MathHelper.floor(((double) guiHeight - 40d) / ((double) height + 7d)), 0, Math.min(ConfigObject.getInstance().getMaxRecipePerPage() - 1, selectedCategory.getMaximumRecipePerPage() - 1)); } - + @Override public void render(int mouseX, int mouseY, float delta) { this.fillGradient(0, 0, this.width, this.height, -1072689136, -804253680); - for(Widget widget : preWidgets) { + for (Widget widget : preWidgets) { widget.render(mouseX, mouseY, delta); } if (selectedCategory != null) @@ -391,7 +392,7 @@ public class RecipeViewingScreen extends Screen { tab.render(mouseX, mouseY, delta); } super.render(mouseX, mouseY, delta); - for(Widget widget : widgets) { + for (Widget widget : widgets) { widget.render(mouseX, mouseY, delta); } RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -408,15 +409,15 @@ public class RecipeViewingScreen extends Screen { recipeChoosePageWidget.render(mouseX, mouseY, delta); } } - + public int getTotalPages(RecipeCategory category) { return MathHelper.ceil(categoriesMap.get(category).size() / (double) (getRecipesPerPage() + 1)); } - + public Rectangle getBounds() { return bounds; } - + @Override public boolean charTyped(char char_1, int int_1) { if (choosePageActivated) { @@ -427,7 +428,7 @@ public class RecipeViewingScreen extends Screen { return true; return super.charTyped(char_1, int_1); } - + @Override public boolean mouseDragged(double double_1, double double_2, int int_1, double double_3, double double_4) { if (choosePageActivated) { @@ -435,7 +436,7 @@ public class RecipeViewingScreen extends Screen { } return super.mouseDragged(double_1, double_2, int_1, double_3, double_4); } - + @Override public boolean mouseReleased(double double_1, double double_2, int int_1) { if (choosePageActivated) { @@ -443,7 +444,7 @@ public class RecipeViewingScreen extends Screen { } return super.mouseReleased(double_1, double_2, int_1); } - + @Override public boolean mouseScrolled(double i, double j, double amount) { for (Element listener : children()) @@ -463,7 +464,7 @@ public class RecipeViewingScreen extends Screen { } return super.mouseScrolled(i, j, amount); } - + @Override public boolean mouseClicked(double double_1, double double_2, int int_1) { if (choosePageActivated) @@ -483,12 +484,12 @@ public class RecipeViewingScreen extends Screen { } return false; } - + @Override public Element getFocused() { if (choosePageActivated) return recipeChoosePageWidget; return super.getFocused(); } - + } |
