aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/build.gradle2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java23
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java24
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java29
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java7
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java27
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/RecipeScreen.java42
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java2
8 files changed, 63 insertions, 93 deletions
diff --git a/runtime/build.gradle b/runtime/build.gradle
index 5d6c24c49..53c1100d7 100644
--- a/runtime/build.gradle
+++ b/runtime/build.gradle
@@ -1,5 +1,3 @@
-archivesBaseName = "runtime"
-
architectury {
common()
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
index 9590c62a7..abaf8443f 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
@@ -43,7 +43,7 @@ import me.shedaniel.rei.api.common.util.EntryStacks;
import me.shedaniel.rei.impl.ClientInternals;
import me.shedaniel.rei.impl.client.gui.screen.CompositeDisplayViewingScreen;
import me.shedaniel.rei.impl.client.gui.screen.DefaultDisplayViewingScreen;
-import me.shedaniel.rei.impl.client.gui.screen.RecipeScreen;
+import me.shedaniel.rei.api.client.gui.screen.DisplayScreen;
import me.shedaniel.rei.impl.client.gui.screen.UncertainDisplayViewingScreen;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@@ -242,14 +242,17 @@ public class ClientHelperImpl implements ClientHelper {
} else {
screen = new DefaultDisplayViewingScreen(map, builder.getPreferredOpenedCategory());
}
- if (screen instanceof RecipeScreen) {
- if (builder.getInputNotice() != null)
- ((RecipeScreen) screen).addIngredientStackToNotice(builder.getInputNotice());
- if (builder.getOutputNotice() != null)
- ((RecipeScreen) screen).addResultStackToNotice(builder.getOutputNotice());
+ if (screen instanceof DisplayScreen) {
+ if (builder.getInputNotice() != null) {
+ ((DisplayScreen) screen).setIngredientStackToNotice(builder.getInputNotice());
+ }
+ if (builder.getOutputNotice() != null) {
+ ((DisplayScreen) screen).setResultStackToNotice(builder.getOutputNotice());
+ }
+ }
+ if (Minecraft.getInstance().screen instanceof DisplayScreen) {
+ REIHelperImpl.getInstance().storeDisplayScreen((DisplayScreen) Minecraft.getInstance().screen);
}
- if (Minecraft.getInstance().screen instanceof RecipeScreen)
- REIHelperImpl.getInstance().storeRecipeScreen((RecipeScreen) Minecraft.getInstance().screen);
Minecraft.getInstance().setScreen(screen);
return true;
}
@@ -269,8 +272,8 @@ public class ClientHelperImpl implements ClientHelper {
public ViewSearchBuilder fillPreferredOpenedCategory() {
if (getPreferredOpenedCategory() == null) {
Screen currentScreen = Minecraft.getInstance().screen;
- if (currentScreen instanceof RecipeScreen) {
- setPreferredOpenedCategory(((RecipeScreen) currentScreen).getCurrentCategory());
+ if (currentScreen instanceof DisplayScreen) {
+ setPreferredOpenedCategory(((DisplayScreen) currentScreen).getCurrentCategoryId());
}
}
return this;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
index 82c3eb983..568149a11 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
@@ -38,7 +38,7 @@ import me.shedaniel.rei.api.client.gui.widgets.TextField;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry;
import me.shedaniel.rei.impl.client.gui.ContainerScreenOverlay;
-import me.shedaniel.rei.impl.client.gui.screen.RecipeScreen;
+import me.shedaniel.rei.api.client.gui.screen.DisplayScreen;
import me.shedaniel.rei.impl.client.gui.widget.search.OverlaySearchField;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@@ -64,7 +64,7 @@ public class REIHelperImpl implements REIHelper {
private OverlaySearchField searchField;
private AbstractContainerScreen<?> previousContainerScreen = null;
private Screen previousScreen = null;
- private LinkedHashSet<RecipeScreen> lastRecipeScreen = Sets.newLinkedHashSetWithExpectedSize(10);
+ private LinkedHashSet<DisplayScreen> lastDisplayScreen = Sets.newLinkedHashSetWithExpectedSize(10);
/**
* @return the instance of screen helper
@@ -97,19 +97,19 @@ public class REIHelperImpl implements REIHelper {
return (OverlaySearchField) getInstance().getSearchTextField();
}
- public void storeRecipeScreen(RecipeScreen screen) {
- while (lastRecipeScreen.size() >= 10)
- lastRecipeScreen.remove(Iterables.get(lastRecipeScreen, 0));
- lastRecipeScreen.add(screen);
+ public void storeDisplayScreen(DisplayScreen screen) {
+ while (lastDisplayScreen.size() >= 10)
+ lastDisplayScreen.remove(Iterables.get(lastDisplayScreen, 0));
+ lastDisplayScreen.add(screen);
}
- public boolean hasLastRecipeScreen() {
- return !lastRecipeScreen.isEmpty();
+ public boolean hasLastDisplayScreen() {
+ return !lastDisplayScreen.isEmpty();
}
- public Screen getLastRecipeScreen() {
- RecipeScreen screen = Iterables.getLast(lastRecipeScreen);
- lastRecipeScreen.remove(screen);
+ public Screen getLastDisplayScreen() {
+ DisplayScreen screen = Iterables.getLast(lastDisplayScreen);
+ lastDisplayScreen.remove(screen);
screen.recalculateCategoryPage();
return (Screen) screen;
}
@@ -208,7 +208,7 @@ public class REIHelperImpl implements REIHelper {
@Override
public void startReload() {
getOverlay().ifPresent(REIOverlay::queueReloadOverlay);
- lastRecipeScreen.clear();
+ lastDisplayScreen.clear();
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java
index 05230cbe5..833f4fa01 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java
@@ -25,6 +25,7 @@ package me.shedaniel.rei.impl.client.gui.screen;
import com.google.common.collect.Lists;
import me.shedaniel.math.Rectangle;
+import me.shedaniel.rei.api.client.gui.screen.DisplayScreen;
import me.shedaniel.rei.api.client.gui.widgets.Slot;
import me.shedaniel.rei.api.client.gui.widgets.Widget;
import me.shedaniel.rei.api.client.gui.widgets.Widgets;
@@ -43,7 +44,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Map;
-public abstract class AbstractDisplayViewingScreen extends Screen implements RecipeScreen {
+public abstract class AbstractDisplayViewingScreen extends Screen implements DisplayScreen {
protected final Map<DisplayCategory<?>, List<Display>> categoryMap;
protected final List<DisplayCategory<?>> categories;
protected EntryStack<?> ingredientStackToNotice = EntryStack.empty();
@@ -68,35 +69,42 @@ public abstract class AbstractDisplayViewingScreen extends Screen implements Rec
}
@Override
+ public boolean isPauseScreen() {
+ return false;
+ }
+
+ @Override
public Rectangle getBounds() {
return bounds;
}
@Override
- public void addIngredientStackToNotice(EntryStack<?> stack) {
+ public void setIngredientStackToNotice(EntryStack<?> stack) {
this.ingredientStackToNotice = stack;
}
@Override
- public void addResultStackToNotice(EntryStack<?> stack) {
+ public void setResultStackToNotice(EntryStack<?> stack) {
this.resultStackToNotice = stack;
}
@Override
- public boolean isPauseScreen() {
- return false;
+ public EntryStack<?> getIngredientStackToNotice() {
+ return ingredientStackToNotice;
}
@Override
- public CategoryIdentifier<?> getCurrentCategory() {
- return getSelectedCategory().getCategoryIdentifier();
+ public EntryStack<?> getResultStackToNotice() {
+ return resultStackToNotice;
}
- public DisplayCategory<Display> getSelectedCategory() {
+ @Override
+ public DisplayCategory<Display> getCurrentCategory() {
return (DisplayCategory<Display>) categories.get(selectedCategoryIndex);
}
- protected void previousCategory() {
+ @Override
+ public void previousCategory() {
int currentCategoryIndex = selectedCategoryIndex;
currentCategoryIndex--;
if (currentCategoryIndex < 0)
@@ -104,7 +112,8 @@ public abstract class AbstractDisplayViewingScreen extends Screen implements Rec
ClientHelperImpl.getInstance().openRecipeViewingScreen(categoryMap, categories.get(currentCategoryIndex).getCategoryIdentifier(), ingredientStackToNotice, resultStackToNotice);
}
- protected void nextCategory() {
+ @Override
+ public void nextCategory() {
int currentCategoryIndex = selectedCategoryIndex;
currentCategoryIndex++;
if (currentCategoryIndex >= categories.size())
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
index 619b9ab7a..6214c0254 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
@@ -411,10 +411,11 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
return true;
}
if (keyCode == 259) {
- if (REIHelperImpl.getInstance().hasLastRecipeScreen())
- minecraft.setScreen(REIHelperImpl.getInstance().getLastRecipeScreen());
- else
+ if (REIHelperImpl.getInstance().hasLastDisplayScreen()) {
+ minecraft.setScreen(REIHelperImpl.getInstance().getLastDisplayScreen());
+ } else {
minecraft.setScreen(REIHelper.getInstance().getPreviousScreen());
+ }
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
index 915e85be6..85cb85994 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
@@ -143,10 +143,11 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
return true;
}
if (keyCode == 259) {
- if (REIHelperImpl.getInstance().hasLastRecipeScreen())
- minecraft.setScreen(REIHelperImpl.getInstance().getLastRecipeScreen());
- else
+ if (REIHelperImpl.getInstance().hasLastDisplayScreen()) {
+ minecraft.setScreen(REIHelperImpl.getInstance().getLastDisplayScreen());
+ } else {
minecraft.setScreen(REIHelper.getInstance().getPreviousScreen());
+ }
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
@@ -164,7 +165,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
this.widgets.clear();
int largestWidth = width - 100;
int largestHeight = Math.max(height - 34 - 30, 100);
- int maxWidthDisplay = CollectionUtils.mapAndMax(getCurrentDisplayed(), getSelectedCategory()::getDisplayWidth, Comparator.naturalOrder()).orElse(150);
+ int maxWidthDisplay = CollectionUtils.mapAndMax(getCurrentDisplayed(), getCurrentCategory()::getDisplayWidth, Comparator.naturalOrder()).orElse(150);
int guiWidth = Math.max(maxWidthDisplay + 40, 190);
this.tabsPerPage = Math.max(5, Mth.floor((guiWidth - 20d) / tabSize));
if (this.categoryPages == -1) {
@@ -194,7 +195,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
.enabled(categories.size() > tabsPerPage));
widgets.add(categoryBack = Widgets.createButton(new Rectangle(bounds.getX() + 5, bounds.getY() + 5, 12, 12), new TranslatableComponent("text.rei.left_arrow"))
.onClick(button -> previousCategory()).tooltipLine(new TranslatableComponent("text.rei.previous_category")));
- widgets.add(Widgets.createClickableLabel(new Point(bounds.getCenterX(), bounds.getY() + 7), getSelectedCategory().getTitle(), clickableLabelWidget -> {
+ widgets.add(Widgets.createClickableLabel(new Point(bounds.getCenterX(), bounds.getY() + 7), getCurrentCategory().getTitle(), clickableLabelWidget -> {
ClientHelper.getInstance().openView(ViewSearchBuilder.builder().addAllCategories().fillPreferredOpenedCategory());
}).tooltipLine(I18n.get("text.rei.view_all_categories")));
widgets.add(categoryNext = Widgets.createButton(new Rectangle(bounds.getMaxX() - 17, bounds.getY() + 5, 12, 12), new TranslatableComponent("text.rei.right_arrow"))
@@ -240,21 +241,21 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
tab.setRenderer(categories.get(j), categories.get(j).getIcon(), categories.get(j).getTitle(), tab.getId() + categoryPages * tabsPerPage == selectedCategoryIndex);
}
}
- Optional<ButtonArea> supplier = CategoryRegistry.getInstance().get(getCurrentCategory()).getPlusButtonArea();
- int recipeHeight = getSelectedCategory().getDisplayHeight();
+ Optional<ButtonArea> supplier = CategoryRegistry.getInstance().get(getCurrentCategoryId()).getPlusButtonArea();
+ int recipeHeight = getCurrentCategory().getDisplayHeight();
List<Display> currentDisplayed = getCurrentDisplayed();
for (int i = 0; i < currentDisplayed.size(); i++) {
final Display display = currentDisplayed.get(i);
final Supplier<Display> displaySupplier = () -> display;
- int displayWidth = getSelectedCategory().getDisplayWidth(displaySupplier.get());
+ int displayWidth = getCurrentCategory().getDisplayWidth(displaySupplier.get());
final Rectangle displayBounds = new Rectangle(getBounds().getCenterX() - displayWidth / 2, getBounds().getCenterY() + 16 - recipeHeight * (getRecipesPerPage() + 1) / 2 - 2 * (getRecipesPerPage() + 1) + recipeHeight * i + 4 * i, displayWidth, recipeHeight);
- List<Widget> setupDisplay = getSelectedCategory().setupDisplay(display, displayBounds);
+ List<Widget> setupDisplay = getCurrentCategory().setupDisplay(display, displayBounds);
transformIngredientNotice(setupDisplay, ingredientStackToNotice);
transformResultNotice(setupDisplay, resultStackToNotice);
recipeBounds.put(displayBounds, setupDisplay);
this.widgets.addAll(setupDisplay);
if (supplier.isPresent() && supplier.get().get(displayBounds) != null)
- this.widgets.add(InternalWidgets.createAutoCraftingButtonWidget(displayBounds, supplier.get().get(displayBounds), new TextComponent(supplier.get().getButtonText()), displaySupplier, setupDisplay, getSelectedCategory()));
+ this.widgets.add(InternalWidgets.createAutoCraftingButtonWidget(displayBounds, supplier.get().get(displayBounds), new TextComponent(supplier.get().getButtonText()), displaySupplier, setupDisplay, getCurrentCategory()));
}
if (choosePageActivated)
choosePageWidget = new DefaultDisplayChoosePageWidget(this, page, getCurrentTotalPages());
@@ -262,7 +263,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
choosePageWidget = null;
workingStationsBaseWidget = null;
- List<EntryIngredient> workstations = CategoryRegistry.getInstance().get(getCurrentCategory()).getWorkstations();
+ List<EntryIngredient> workstations = CategoryRegistry.getInstance().get(getCurrentCategoryId()).getWorkstations();
if (!workstations.isEmpty()) {
int hh = Mth.floor((bounds.height - 16) / 18f);
int actualHeight = Math.min(hh, workstations.size());
@@ -297,7 +298,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
public List<Display> getCurrentDisplayed() {
List<Display> list = Lists.newArrayList();
int recipesPerPage = getRecipesPerPage();
- List<Display> displays = categoryMap.get(getSelectedCategory());
+ List<Display> displays = categoryMap.get(getCurrentCategory());
for (int i = 0; i <= recipesPerPage; i++) {
if (page * (recipesPerPage + 1) + i < displays.size()) {
list.add(displays.get(page * (recipesPerPage + 1) + i));
@@ -315,7 +316,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
}
private int getRecipesPerPage() {
- DisplayCategory<Display> selectedCategory = getSelectedCategory();
+ DisplayCategory<Display> selectedCategory = getCurrentCategory();
if (selectedCategory.getFixedDisplaysPerPage() > 0)
return selectedCategory.getFixedDisplaysPerPage() - 1;
int height = selectedCategory.getDisplayHeight();
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/RecipeScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/RecipeScreen.java
deleted file mode 100644
index 7309262e1..000000000
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/RecipeScreen.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is licensed under the MIT License, part of Roughly Enough Items.
- * Copyright (c) 2018, 2019, 2020 shedaniel
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package me.shedaniel.rei.impl.client.gui.screen;
-
-import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.common.category.CategoryIdentifier;
-import me.shedaniel.rei.api.common.entry.EntryStack;
-import org.jetbrains.annotations.ApiStatus;
-
-@ApiStatus.Internal
-public interface RecipeScreen {
- Rectangle getBounds();
-
- void addIngredientStackToNotice(EntryStack<?> stack);
-
- void addResultStackToNotice(EntryStack<?> stack);
-
- CategoryIdentifier<?> getCurrentCategory();
-
- void recalculateCategoryPage();
-} \ No newline at end of file
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java
index 6c1fa75ee..b5f0607f8 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java
@@ -99,7 +99,7 @@ public class UncertainDisplayViewingScreen extends Screen {
this.callback = callback;
this.parent = parent;
this.showTips = showTips;
- if (showTips && Platform.isForge()) {
+ if (showTips && false && Platform.isForge()) {
allModsUsingJEI = ClientInternals.getJeiCompatMods().stream()
.distinct()
.map(ClientHelper.getInstance()::getModFromModId)