aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java37
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java10
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRendererRegistry.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java5
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java7
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/AppearanceTheme.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/CheatingMode.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/ConfigButtonPosition.java9
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayPanelLocation.java7
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayScreenType.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/EntryPanelOrderingConfig.java4
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/FavoriteAddWidgetMode.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingMode.java8
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingStyle.java7
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/PanelBoundary.java34
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/RecipeBorderType.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchFieldLocation.java12
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchMode.java7
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/config/SyntaxHighlightingMode.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/WidgetWithBounds.java31
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java40
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayRegistry.java132
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/util/ClientEntryStacks.java61
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/EntryIngredient.java54
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java78
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/settings/EntryIngredientSetting.java40
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/CollectionUtils.java9
-rw-r--r--api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java6
30 files changed, 565 insertions, 63 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java
index 02afcd7f4..a15816f24 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java
@@ -37,6 +37,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Map;
+import java.util.Set;
@Environment(EnvType.CLIENT)
public interface ConfigObject {
@@ -119,9 +120,19 @@ public interface ConfigObject {
*
* @return whether favorites motions are animated
*/
+ @Deprecated(forRemoval = true)
boolean isFavoritesAnimated();
/**
+ * Returns whether motions are reduced.
+ *
+ * @return whether motions are reduced
+ * @since 8.4
+ */
+ @ApiStatus.Experimental
+ boolean isReducedMotion();
+
+ /**
* Returns whether a toast is shown on screen when a display identifier is copied.
*
* @return whether a toast is shown on screen when a display identifier is copied
@@ -135,6 +146,9 @@ public interface ConfigObject {
*/
boolean isEntryListWidgetScrolled();
+ @ApiStatus.Experimental
+ boolean isHidingEntryPanelIfIdle();
+
/**
* Returns whether REI should append mod names to tooltips.
*
@@ -322,6 +336,12 @@ public interface ConfigObject {
Map<CategoryIdentifier<?>, Boolean> getFilteringQuickCraftCategories();
@ApiStatus.Experimental
+ Set<CategoryIdentifier<?>> getHiddenCategories();
+
+ @ApiStatus.Experimental
+ List<CategoryIdentifier<?>> getCategoryOrdering();
+
+ @ApiStatus.Experimental
boolean shouldAsyncSearch();
@ApiStatus.Experimental
@@ -353,6 +373,12 @@ public interface ConfigObject {
double getVerticalEntriesBoundariesRows();
@ApiStatus.Experimental
+ double getHorizontalEntriesBoundariesAlignments();
+
+ @ApiStatus.Experimental
+ double getVerticalEntriesBoundariesAlignments();
+
+ @ApiStatus.Experimental
double getFavoritesHorizontalEntriesBoundariesPercentage();
@ApiStatus.Experimental
@@ -372,5 +398,14 @@ public interface ConfigObject {
SearchMode getModSearchMode();
- boolean isJEICompatibilityLayerEnabled();
+ /**
+ * Returns whether the JEI compatibility layer is enabled.
+ *
+ * @return whether the JEI compatibility layer is enabled
+ * @deprecated the JEI compatibility layer is not bundled with REI anymore
+ */
+ @Deprecated(forRemoval = true)
+ default boolean isJEICompatibilityLayerEnabled() {
+ return false;
+ }
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java
index cf88e5263..d6ed83471 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java
@@ -25,7 +25,11 @@ package me.shedaniel.rei.api.client.entry.region;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
import me.shedaniel.rei.api.client.favorites.FavoriteMenuEntry;
+import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponent;
+import me.shedaniel.rei.api.client.gui.widgets.Slot;
import me.shedaniel.rei.api.common.entry.EntryStack;
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Optional;
@@ -55,4 +59,10 @@ public interface RegionEntry<T extends RegionEntry<T>> {
default boolean doAction(int button) {
return false;
}
+
+ @Nullable
+ @ApiStatus.Experimental
+ default DraggableComponent<?> asDraggableComponent(Slot slot) {
+ return null;
+ }
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java
index 0f1706604..def860e03 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java
@@ -36,7 +36,7 @@ import org.jetbrains.annotations.Nullable;
/**
* A renderer to render a {@link EntryStack}.
- * Use {@link me.shedaniel.rei.api.client.util.ClientEntryStacks#setRenderer} to change the {@link EntryRenderer} for a {@link EntryStack}.
+ * Use {@link EntryStack#withRenderer} to change the {@link EntryRenderer} for a {@link EntryStack}.
*
* @param <T> the entry type
* @see BatchedEntryRenderer
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRendererRegistry.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRendererRegistry.java
index f1dbe8d7b..0f3f18c6f 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRendererRegistry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRendererRegistry.java
@@ -36,7 +36,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Registry to transform {@link EntryRenderer} for stacks at a global level.
- * For specific stacks, you can use {@link me.shedaniel.rei.api.client.util.ClientEntryStacks#setRenderer}
+ * For specific stacks, you can use {@link EntryStack#withRenderer}
*/
@ApiStatus.Experimental
public interface EntryRendererRegistry extends Reloadable<REIClientPlugin> {
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java
index bc1a4998e..701a2e611 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java
@@ -27,6 +27,7 @@ import me.shedaniel.clothconfig2.api.ScissorsHandler;
import me.shedaniel.clothconfig2.api.animator.NumberAnimator;
import me.shedaniel.clothconfig2.api.animator.ValueAnimator;
import me.shedaniel.math.Rectangle;
+import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.Renderer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@@ -114,10 +115,10 @@ public class CompoundFavoriteRenderer implements Renderer {
}
if (Util.getMillis() - nextSwitch > 1000) {
nextSwitch = Util.getMillis();
- offset.setTo((offset.target().intValue() + 1) % count, 500);
+ offset.setTo((offset.target().intValue() + 1) % count, ConfigObject.getInstance().isReducedMotion() ? 0 : 500);
}
} else {
- offset.setTo(supplier.getAsInt() % count, 500);
+ offset.setTo(supplier.getAsInt() % count, ConfigObject.getInstance().isReducedMotion() ? 0 : 500);
}
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
index 2c5293ba5..42a884d0d 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
@@ -28,12 +28,14 @@ import com.mojang.serialization.Lifecycle;
import me.shedaniel.rei.api.client.entry.region.RegionEntry;
import me.shedaniel.rei.api.client.gui.Renderer;
import me.shedaniel.rei.api.client.util.ClientEntryStacks;
+import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.impl.ClientInternals;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
+import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
@@ -73,6 +75,11 @@ public abstract class FavoriteEntry implements RegionEntry<FavoriteEntry> {
return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.ENTRY_STACK).fromArgs(stack), null);
}
+ @ApiStatus.Experimental
+ public static FavoriteEntry fromDisplay(Display display) {
+ return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.DISPLAY).fromArgs(display), null);
+ }
+
@Override
public boolean isEntryInvalid() {
return isInvalid();
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
index 40e1bcf43..62236f22c 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
@@ -25,6 +25,7 @@ package me.shedaniel.rei.api.client.favorites;
import com.mojang.serialization.DataResult;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
+import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.plugins.PluginManager;
import me.shedaniel.rei.api.common.registry.Reloadable;
@@ -44,6 +45,11 @@ public interface FavoriteEntryType<T extends FavoriteEntry> {
* A builtin type of favorites, wrapping a {@link EntryStack}.
*/
ResourceLocation ENTRY_STACK = new ResourceLocation("roughlyenoughitems", "entry_stack");
+ /**
+ * A builtin type of favorites, wrapping a {@link Display}.
+ */
+ @ApiStatus.Experimental
+ ResourceLocation DISPLAY = new ResourceLocation("roughlyenoughitems", "display");
static Registry registry() {
return PluginManager.getClientInstance().get(FavoriteEntryType.Registry.class);
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/AppearanceTheme.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/AppearanceTheme.java
index fc653861b..d5397ceb0 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/AppearanceTheme.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/AppearanceTheme.java
@@ -31,12 +31,12 @@ import net.minecraft.client.resources.language.I18n;
import java.util.Locale;
@Environment(EnvType.CLIENT)
-public enum AppearanceTheme implements SelectionListEntry.Translatable {
+public enum AppearanceTheme {
LIGHT,
DARK;
@Override
- public String getKey() {
- return I18n.get("config.roughlyenoughitems.theme." + name().toLowerCase(Locale.ROOT));
+ public String toString() {
+ return I18n.get("config.rei.value.appearance.theme." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/CheatingMode.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/CheatingMode.java
index 39b230b93..15cc37d12 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/CheatingMode.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/CheatingMode.java
@@ -35,11 +35,11 @@ public enum CheatingMode {
public String toString() {
switch (this) {
case ON:
- return I18n.get("text.cloth-config.boolean.value.true");
+ return I18n.get("config.rei.value.enabledDisabled.true");
case OFF:
- return I18n.get("text.cloth-config.boolean.value.false");
+ return I18n.get("config.rei.value.enabledDisabled.false");
case WHEN_CREATIVE:
- return I18n.get("config.roughlyenoughitems.cheating.when_creative");
+ return I18n.get("config.rei.value.cheats.mode.when_creative");
default:
throw new IllegalStateException("Unknown CheatingMode: " + this);
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ConfigButtonPosition.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ConfigButtonPosition.java
index fd9a7d9a0..3f9e55528 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ConfigButtonPosition.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ConfigButtonPosition.java
@@ -31,12 +31,13 @@ import net.minecraft.client.resources.language.I18n;
import java.util.Locale;
@Environment(EnvType.CLIENT)
-public enum ConfigButtonPosition implements SelectionListEntry.Translatable {
+public enum ConfigButtonPosition {
UPPER,
LOWER;
- @Override
- public String getKey() {
- return I18n.get("config.roughlyenoughitems.layout.configButtonLocation." + name().toLowerCase(Locale.ROOT));
+ public String toString(boolean right) {
+ if (this == UPPER && !right) return I18n.get("config.rei.value.layout.config_button_location.top_right");
+ if (this == UPPER) return I18n.get("config.rei.value.layout.config_button_location.top_left");
+ return I18n.get("config.rei.value.layout.config_button_location.next_to_search");
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayPanelLocation.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayPanelLocation.java
index d91569291..6278c0d01 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayPanelLocation.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayPanelLocation.java
@@ -23,7 +23,6 @@
package me.shedaniel.rei.api.client.gui.config;
-import me.shedaniel.clothconfig2.gui.entries.SelectionListEntry;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resources.language.I18n;
@@ -31,7 +30,7 @@ import net.minecraft.client.resources.language.I18n;
import java.util.Locale;
@Environment(EnvType.CLIENT)
-public enum DisplayPanelLocation implements SelectionListEntry.Translatable {
+public enum DisplayPanelLocation {
LEFT,
RIGHT;
@@ -41,7 +40,7 @@ public enum DisplayPanelLocation implements SelectionListEntry.Translatable {
}
@Override
- public String getKey() {
- return I18n.get("config.roughlyenoughitems.accessibility.displayPanelLocation." + name().toLowerCase(Locale.ROOT));
+ public String toString() {
+ return I18n.get("config.rei.value.layout.location." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayScreenType.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayScreenType.java
index f647db2f4..90b4fb8bf 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayScreenType.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/DisplayScreenType.java
@@ -37,6 +37,6 @@ public enum DisplayScreenType {
@Override
public String toString() {
- return I18n.get("config.roughlyenoughitems.recipeScreenType." + name().toLowerCase(Locale.ROOT));
+ return I18n.get("config.rei.value.appearance.recipe_lookup_style." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/EntryPanelOrderingConfig.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/EntryPanelOrderingConfig.java
index 407d9cb3c..9b706c889 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/EntryPanelOrderingConfig.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/EntryPanelOrderingConfig.java
@@ -27,6 +27,8 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resources.language.I18n;
+import java.util.Locale;
+
@Environment(EnvType.CLIENT)
public enum EntryPanelOrderingConfig {
REGISTRY_ASCENDING(EntryPanelOrdering.REGISTRY, true),
@@ -59,6 +61,6 @@ public enum EntryPanelOrderingConfig {
@Override
public String toString() {
- return I18n.get("config.roughlyenoughitems.list_ordering_button", I18n.get(getOrdering().getNameTranslationKey()), I18n.get(isAscending ? "ordering.rei.ascending" : "ordering.rei.descending"));
+ return I18n.get("config.rei.value.list.ordering." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/FavoriteAddWidgetMode.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/FavoriteAddWidgetMode.java
index 9218f6d6e..cdbba8b7f 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/FavoriteAddWidgetMode.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/FavoriteAddWidgetMode.java
@@ -35,6 +35,6 @@ public enum FavoriteAddWidgetMode {
@Override
public String toString() {
- return I18n.get("config.roughlyenoughitems.layout.favoriteAddWidgetMode." + name().toLowerCase(Locale.ROOT));
+ return I18n.get("config.rei.value.favorites.new_favorites_button_visibility." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingMode.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingMode.java
index 910669225..fb4e228fc 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingMode.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingMode.java
@@ -27,8 +27,6 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resources.language.I18n;
-import java.util.Locale;
-
@Environment(EnvType.CLIENT)
public enum ItemCheatingMode {
REI_LIKE,
@@ -36,6 +34,10 @@ public enum ItemCheatingMode {
@Override
public String toString() {
- return I18n.get("config.roughlyenoughitems.itemCheatingMode." + name().toLowerCase(Locale.ROOT));
+ if (this == REI_LIKE) {
+ return I18n.get("config.rei.value.cheats.amount.default");
+ } else {
+ return I18n.get("config.rei.value.cheats.amount.reversed");
+ }
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingStyle.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingStyle.java
index 59174011c..8c49960f7 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingStyle.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/ItemCheatingStyle.java
@@ -23,7 +23,6 @@
package me.shedaniel.rei.api.client.gui.config;
-import me.shedaniel.clothconfig2.gui.entries.SelectionListEntry;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resources.language.I18n;
@@ -31,12 +30,12 @@ import net.minecraft.client.resources.language.I18n;
import java.util.Locale;
@Environment(EnvType.CLIENT)
-public enum ItemCheatingStyle implements SelectionListEntry.Translatable {
+public enum ItemCheatingStyle {
GRAB,
GIVE;
@Override
- public String getKey() {
- return I18n.get("config.roughlyenoughitems.cheatingStyle." + name().toLowerCase(Locale.ROOT));
+ public String toString() {
+ return I18n.get("config.rei.value.cheats.method." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/PanelBoundary.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/PanelBoundary.java
new file mode 100644
index 000000000..eb9e57f15
--- /dev/null
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/PanelBoundary.java
@@ -0,0 +1,34 @@
+/*
+ * This file is licensed under the MIT License, part of Roughly Enough Items.
+ * Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 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.api.client.gui.config;
+
+public record PanelBoundary(
+ double horizontalPercentage,
+ double verticalPercentage,
+ int horizontalLimit,
+ int verticalLimit,
+ double horizontalAlign,
+ double verticalAlign
+) {
+}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/RecipeBorderType.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/RecipeBorderType.java
index 1bde0b058..86db371be 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/RecipeBorderType.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/RecipeBorderType.java
@@ -57,6 +57,6 @@ public enum RecipeBorderType {
@Override
public String toString() {
- return I18n.get("config.roughlyenoughitems.recipeBorder." + name().toLowerCase(Locale.ROOT));
+ return I18n.get("config.rei.value.appearance.recipe_border." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchFieldLocation.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchFieldLocation.java
index f80cb4f1b..2653bbced 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchFieldLocation.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchFieldLocation.java
@@ -25,6 +25,8 @@ package me.shedaniel.rei.api.client.gui.config;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.resources.language.I18n;
import java.util.Locale;
@@ -35,8 +37,12 @@ public enum SearchFieldLocation {
BOTTOM_SIDE,
TOP_SIDE;
- @Override
- public String toString() {
- return I18n.get("config.roughlyenoughitems.layout.searchFieldLocation.%s".formatted(name().toLowerCase(Locale.ROOT)));
+ public String toString(boolean right) {
+ if (this == CENTER) return I18n.get("config.rei.value.layout.search_field_location.center");
+ if (this == BOTTOM_SIDE && right) return I18n.get("config.rei.value.layout.search_field_location.bottom_right");
+ if (this == BOTTOM_SIDE) return I18n.get("config.rei.value.layout.search_field_location.bottom_left");
+ if (this == TOP_SIDE && right) return I18n.get("config.rei.value.layout.search_field_location.top_right");
+ if (this == TOP_SIDE) return I18n.get("config.rei.value.layout.search_field_location.top_left");
+ return "";
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchMode.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchMode.java
index ca634bc0b..77a9a2f88 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchMode.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SearchMode.java
@@ -23,7 +23,6 @@
package me.shedaniel.rei.api.client.gui.config;
-import me.shedaniel.clothconfig2.gui.entries.SelectionListEntry;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resources.language.I18n;
@@ -31,13 +30,13 @@ import net.minecraft.client.resources.language.I18n;
import java.util.Locale;
@Environment(EnvType.CLIENT)
-public enum SearchMode implements SelectionListEntry.Translatable {
+public enum SearchMode {
ALWAYS,
PREFIX,
NEVER;
@Override
- public String getKey() {
- return I18n.get("config.roughlyenoughitems.search_mode." + name().toLowerCase(Locale.ROOT));
+ public String toString() {
+ return I18n.get("config.rei.value.search.filters." + name().toLowerCase(Locale.ROOT));
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SyntaxHighlightingMode.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SyntaxHighlightingMode.java
index d8388687f..e034a5b14 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SyntaxHighlightingMode.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/config/SyntaxHighlightingMode.java
@@ -38,6 +38,6 @@ public enum SyntaxHighlightingMode {
@Override
public String toString() {
- return I18n.get("config.roughlyenoughitems.syntaxHighlightingMode." + name().toLowerCase(Locale.ROOT));
+ return I18n.get("config.rei.valu