diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-11-05 17:27:31 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-11-05 17:27:31 +0800 |
| commit | ecf3079ca2622e538cc325fa6063401139881e12 (patch) | |
| tree | 00a90fcf5af63b36f4951a598270d6d81ad6b2ed /RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java | |
| parent | 19d5cc098a812d08b235dbb128746380919a4de6 (diff) | |
| download | RoughlyEnoughItems-ecf3079ca2622e538cc325fa6063401139881e12.tar.gz RoughlyEnoughItems-ecf3079ca2622e538cc325fa6063401139881e12.tar.bz2 RoughlyEnoughItems-ecf3079ca2622e538cc325fa6063401139881e12.zip | |
v5.8.0 Update
- Config screen animations
- Require dragging the favorites further before initializing the dragging phase
- Require specific fabric modules to run instead of the whole API
- Mark getPreviousContainerScreen as nullable
- New config settings for setting entry list boundaries
- Update fabric loader, auto config and cloth config versions
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java')
| -rw-r--r-- | RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java index 0e3bb662e..a38da1d4a 100644 --- a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java +++ b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java @@ -46,6 +46,7 @@ import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import me.shedaniel.clothconfig2.api.Modifier; import me.shedaniel.clothconfig2.api.ModifierKeyCode; import me.shedaniel.clothconfig2.gui.entries.KeyCodeEntry; +import me.shedaniel.clothconfig2.impl.EasingMethod; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ConfigManager; import me.shedaniel.rei.api.EntryRegistry; @@ -53,6 +54,7 @@ import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.REIHelper; import me.shedaniel.rei.api.favorites.FavoriteEntry; import me.shedaniel.rei.gui.ContainerScreenOverlay; +import me.shedaniel.rei.gui.TransformingScreen; import me.shedaniel.rei.gui.WarningAndErrorScreen; import me.shedaniel.rei.gui.config.RecipeScreenType; import me.shedaniel.rei.gui.config.entry.FilteringEntry; @@ -65,6 +67,7 @@ import me.shedaniel.rei.impl.filtering.rules.ManualFilteringRule; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.Button; @@ -79,6 +82,7 @@ import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.util.Mth; import net.minecraft.util.Tuple; +import org.apache.commons.lang3.mutable.MutableLong; import org.jetbrains.annotations.ApiStatus; import java.lang.reflect.Method; @@ -158,7 +162,7 @@ public class ConfigManagerImpl implements ConfigManager { ConfigObjectImpl.UsePercentage bounds = field.getAnnotation(ConfigObjectImpl.UsePercentage.class); return Collections.singletonList(ConfigEntryBuilder.create().startIntSlider(new TranslatableComponent(i13n), Mth.ceil(Utils.getUnsafely(field, config, 0.0) * 100), Mth.ceil(bounds.min() * 100), Mth.ceil(bounds.max() * 100)).setDefaultValue(() -> Mth.ceil((double) Utils.getUnsafely(field, defaults) * 100)).setSaveConsumer((newValue) -> { Utils.setUnsafely(field, config, newValue / 100d); - }).setTextGetter(integer -> new TextComponent(String.format("Size: %d%%", integer))).build()); + }).setTextGetter(integer -> new TextComponent(bounds.prefix() + String.format("%d%%", integer))).build()); }, (field) -> field.getType() == Double.TYPE || field.getType() == Double.class, ConfigObjectImpl.UsePercentage.class); guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> @@ -223,7 +227,7 @@ public class ConfigManagerImpl implements ConfigManager { provider.setCategoryFunction((baseI13n, categoryName) -> String.format("%s.%s", baseI13n, categoryName)); provider.setBuildFunction(builder -> { builder.setGlobalized(true); - builder.setGlobalizedExpanded(true); + builder.setGlobalizedExpanded(false); if (Minecraft.getInstance().getConnection() != null && Minecraft.getInstance().getConnection().getRecipeManager() != null) { builder.getOrCreateCategory(new TranslatableComponent("config.roughlyenoughitems.advanced")).getEntries().add(0, new ReloadPluginsEntry(220)); } @@ -238,7 +242,12 @@ public class ConfigManagerImpl implements ConfigManager { ContainerScreenOverlay.getEntryListWidget().updateSearch(ScreenHelper.getSearchField().getText(), true); }).build(); }); - return provider.get(); + MutableLong current = new MutableLong(); + return new TransformingScreen(provider.get(), + parent, + () -> current.setValue(Util.getMillis() + (getConfig().isReducedMotion() ? -3000 : 0)), + () -> 0, () -> (1 - EasingMethod.EasingMethodImpl.EXPO.apply(Mth.clamp((Util.getMillis() - current.getValue()) / 750.0, 0, 1))) + * Minecraft.getInstance().getWindow().getGuiScaledHeight() * 1.3); } catch (Exception e) { e.printStackTrace(); } @@ -266,7 +275,7 @@ public class ConfigManagerImpl implements ConfigManager { } @Override - protected void init() { + public void init() { super.init(); this.addButton(new Button(this.width / 2 - 100, 140, 200, 20, CommonComponents.GUI_CANCEL, button -> this.minecraft.setScreen(parent))); } |
