diff options
| author | shedaniel <daniel@shedaniel.me> | 2024-04-16 00:43:25 +0900 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2024-04-16 00:43:25 +0900 |
| commit | 5b03bcea21701b4dd7b0ae40aec7f448fd3513f3 (patch) | |
| tree | b2082db7c8a52f6c1a77197a7b6fe4bb43914407 /api/src/main/java | |
| parent | a01b505ffcdb3ab1c4cf8fcc3aeaaef06c517f82 (diff) | |
| parent | 2af03ce523320bab4b4086f0661f80e466c14477 (diff) | |
| download | RoughlyEnoughItems-5b03bcea21701b4dd7b0ae40aec7f448fd3513f3.tar.gz RoughlyEnoughItems-5b03bcea21701b4dd7b0ae40aec7f448fd3513f3.tar.bz2 RoughlyEnoughItems-5b03bcea21701b4dd7b0ae40aec7f448fd3513f3.zip | |
Merge remote-tracking branch 'origin/feature/9.2' into feature/11.1
# Conflicts:
# default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java
# gradle.properties
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigureCategoriesScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringCategoriesEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringCategoriesEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/RecipeScreenTypeEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ReloadPluginsEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/SearchFilterSyntaxHighlightingEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/PerformanceScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/entry/PerformanceEntry.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/PanelWidget.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java
Diffstat (limited to 'api/src/main/java')
30 files changed, 560 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 81bb56d15..03503919a 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 e59f2dcf2..e0bc3cd9a 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 @@ -28,6 +28,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.AbstractRenderer; import me.shedaniel.rei.api.client.gui.Renderer; import net.fabricmc.api.EnvType; @@ -115,10 +116,10 @@ public class CompoundFavoriteRenderer extends AbstractRenderer { } 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/Reci |
