shedaniel 5 years ago
parent
commit
ff51f40e51

+ 2 - 2
gradle.properties

@@ -1,9 +1,9 @@
-mod_version=3.3.9
+mod_version=3.3.10
 minecraft_version=1.15.1
 yarn_version=1.15.1+build.1
 fabricloader_version=0.7.2+build.174
 cloth_events_version=1.1.0
-cloth_config_version=2.6.6
+cloth_config_version=2.7
 modmenu_version=1.8.0+build.16
 fabric_api=0.4.27+build.286-1.15
 autoconfig1u=1.2.4

+ 3 - 12
src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java

@@ -10,8 +10,6 @@ import com.google.common.collect.Maps;
 import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.clothconfig2.ClothConfigInitializer;
 import me.shedaniel.clothconfig2.api.ScissorsHandler;
-import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget.Interpolation;
-import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget.Precision;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
 import me.shedaniel.math.impl.PointHelper;
@@ -421,16 +419,9 @@ public class VillagerRecipeViewingScreen extends Screen {
     }
     
     private void updatePosition(float delta) {
-        target = clamp(target);
-        if (target < 0) {
-            target -= target * (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3;
-        } else if (target > getMaxScroll()) {
-            target = (target - getMaxScroll()) * (1 - (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3) + getMaxScroll();
-        }
-        if (!Precision.almostEquals(scroll, target, Precision.FLOAT_EPSILON))
-            scroll = (float) Interpolation.expoEase(scroll, target, Math.min((System.currentTimeMillis() - start) / ((double) duration), 1));
-        else
-            scroll = target;
+        double[] target = new double[]{this.target};
+        this.scroll = ClothConfigInitializer.handleScrollingPosition(target, this.scroll, this.getMaxScroll(), delta, this.start, this.duration);
+        this.target = target[0];
     }
     
     @Override

+ 4 - 10
src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java

@@ -427,22 +427,16 @@ public class EntryListWidget extends WidgetWithBounds {
     }
     
     private void updatePosition(float delta) {
-        target = clamp(target);
-        if (target < 0) {
-            target -= target * (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3;
-        } else if (target > getMaxScroll()) {
-            target = (target - getMaxScroll()) * (1 - (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3) + getMaxScroll();
-        } else if (ConfigObject.getInstance().doesSnapToRows()) {
+        if (ConfigObject.getInstance().doesSnapToRows() && target >= 0 && target <= getMaxScroll()) {
             double nearestRow = Math.round(target / (double) entrySize()) * (double) entrySize();
             if (!DynamicNewSmoothScrollingEntryListWidget.Precision.almostEquals(target, nearestRow, DynamicNewSmoothScrollingEntryListWidget.Precision.FLOAT_EPSILON))
                 target += (nearestRow - target) * Math.min(delta / 2.0, 1.0);
             else
                 target = nearestRow;
         }
-        if (!DynamicNewSmoothScrollingEntryListWidget.Precision.almostEquals(scroll, target, DynamicNewSmoothScrollingEntryListWidget.Precision.FLOAT_EPSILON))
-            scroll = (float) DynamicNewSmoothScrollingEntryListWidget.Interpolation.expoEase(scroll, target, Math.min((System.currentTimeMillis() - start) / ((double) duration), 1));
-        else
-            scroll = target;
+        double[] targetD = new double[]{this.target};
+        this.scroll = ClothConfigInitializer.handleScrollingPosition(targetD, this.scroll, this.getMaxScroll(), delta, this.start, this.duration);
+        this.target = targetD[0];
     }
     
     @Override

+ 4 - 11
src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java

@@ -198,22 +198,16 @@ public class FavoritesListWidget extends WidgetWithBounds {
     }
     
     private void updatePosition(float delta) {
-        target = clamp(target);
-        if (target < 0) {
-            target -= target * (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3;
-        } else if (target > getMaxScroll()) {
-            target = (target - getMaxScroll()) * (1 - (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3) + getMaxScroll();
-        } else if (ConfigObject.getInstance().doesSnapToRows()) {
+        if (ConfigObject.getInstance().doesSnapToRows() && target >= 0 && target <= getMaxScroll()) {
             double nearestRow = Math.round(target / (double) entrySize()) * (double) entrySize();
             if (!DynamicNewSmoothScrollingEntryListWidget.Precision.almostEquals(target, nearestRow, DynamicNewSmoothScrollingEntryListWidget.Precision.FLOAT_EPSILON))
                 target += (nearestRow - target) * Math.min(delta / 2.0, 1.0);
             else
                 target = nearestRow;
         }
-        if (!DynamicNewSmoothScrollingEntryListWidget.Precision.almostEquals(scroll, target, DynamicNewSmoothScrollingEntryListWidget.Precision.FLOAT_EPSILON))
-            scroll = (float) DynamicNewSmoothScrollingEntryListWidget.Interpolation.expoEase(scroll, target, Math.min((System.currentTimeMillis() - start) / ((double) duration), 1));
-        else
-            scroll = target;
+        double[] targetD = new double[]{this.target};
+        this.scroll = ClothConfigInitializer.handleScrollingPosition(targetD, this.scroll, this.getMaxScroll(), delta, this.start, this.duration);
+        this.target = targetD[0];
     }
     
     @Override
@@ -230,7 +224,6 @@ public class FavoritesListWidget extends WidgetWithBounds {
         this.bounds = boundsHandler.getFavoritesListArea(!ConfigObject.getInstance().isLeftHandSidePanel() ? boundsHandler.getLeftBounds(MinecraftClient.getInstance().currentScreen) : boundsHandler.getRightBounds(MinecraftClient.getInstance().currentScreen));
     }
     
-    @SuppressWarnings("deprecation")
     public void updateSearch(EntryListWidget listWidget, String searchTerm) {
         if (ConfigObject.getInstance().isFavoritesEnabled() && ConfigObject.getInstance().doDisplayFavoritesOnTheLeft()) {
             if (ConfigObject.getInstance().doSearchFavorites()) {

+ 5 - 13
src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java

@@ -10,7 +10,6 @@ import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.clothconfig2.ClothConfigInitializer;
 import me.shedaniel.clothconfig2.api.ScissorsHandler;
 import me.shedaniel.clothconfig2.gui.widget.DynamicEntryListWidget;
-import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
 import me.shedaniel.math.impl.PointHelper;
@@ -227,8 +226,8 @@ public class DefaultInformationCategory implements RecipeCategory<DefaultInforma
                 height = MathHelper.clamp(height, 32, this.getBounds().height - 2);
                 height -= Math.min((scroll < 0 ? (int) -scroll : scroll > maxScroll ? (int) scroll - maxScroll : 0), height * .95);
                 height = Math.max(10, height);
-                int minY = Math.min(Math.max((int) scroll * (this.getBounds().height - 2 - height) / maxScroll + getBounds().y + 1, getBounds().y + 1), getBounds().getMaxY() -1 - height);
-    
+                int minY = Math.min(Math.max((int) scroll * (this.getBounds().height - 2 - height) / maxScroll + getBounds().y + 1, getBounds().y + 1), getBounds().getMaxY() - 1 - height);
+                
                 boolean hovered = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.fromMouse());
                 int bottomC = hovered ? 168 : 128;
                 int topC = hovered ? 222 : 172;
@@ -260,16 +259,9 @@ public class DefaultInformationCategory implements RecipeCategory<DefaultInforma
         }
         
         private void updatePosition(float delta) {
-            target = clamp(target);
-            if (target < 0) {
-                target -= target * (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3;
-            } else if (target > getMaxScroll()) {
-                target = (target - getMaxScroll()) * (1 - (1 - ClothConfigInitializer.getBounceBackMultiplier()) * delta / 3) + getMaxScroll();
-            }
-            if (!DynamicNewSmoothScrollingEntryListWidget.Precision.almostEquals(scroll, target, DynamicNewSmoothScrollingEntryListWidget.Precision.FLOAT_EPSILON))
-                scroll = (float) DynamicNewSmoothScrollingEntryListWidget.Interpolation.expoEase(scroll, target, Math.min((System.currentTimeMillis() - start) / ((double) duration), 1));
-            else
-                scroll = target;
+            double[] target = new double[]{this.target};
+            this.scroll = ClothConfigInitializer.handleScrollingPosition(target, this.scroll, this.getMaxScroll(), delta, this.start, this.duration);
+            this.target = target[0];
         }
         
         @Override