11package io .github .axolotlclient .modules .zoom ;
22
33import io .github .axolotlclient .AxolotlClient ;
4+ import io .github .axolotlclient .config .AxolotlClientConfig ;
5+ import io .github .axolotlclient .config .options .BooleanOption ;
6+ import io .github .axolotlclient .config .options .FloatOption ;
7+ import io .github .axolotlclient .config .options .OptionCategory ;
48import io .github .axolotlclient .modules .AbstractModule ;
59import io .github .axolotlclient .util .Util ;
610import net .legacyfabric .fabric .api .client .keybinding .v1 .KeyBindingHelper ;
@@ -21,10 +25,26 @@ public class Zoom extends AbstractModule {
2125 private static float animatedFactor = 1 ;
2226 private static float lastReturnedFov ;
2327
28+ public static final FloatOption zoomDivisor = new FloatOption ("zoomDivisor" , 1F , 16F , 4F );
29+ public static final FloatOption zoomSpeed = new FloatOption ("zoomSpeed" , 1F , 10F , 7.5F );
30+ public static final BooleanOption zoomScrolling = new BooleanOption ("zoomScrolling" , false );
31+ public static final BooleanOption decreaseSensitivity = new BooleanOption ("decreaseSensitivity" , true );
32+ public static final BooleanOption smoothCamera = new BooleanOption ("smoothCamera" , false );
33+
34+ public final OptionCategory zoom = new OptionCategory ("zoom" );
35+
2436 public static final Identifier ID = new Identifier ("zoom" );
2537
2638 @ Override
2739 public void init () {
40+ zoom .add (zoomDivisor );
41+ zoom .add (zoomSpeed );
42+ zoom .add (zoomScrolling );
43+ zoom .add (decreaseSensitivity );
44+ zoom .add (smoothCamera );
45+
46+ AxolotlClient .CONFIG .rendering .addSubCategory (zoom );
47+
2848 keyBinding = new KeyBinding ("key.zoom" , 46 , "category.axolotlclient" );
2949 KeyBindingHelper .registerKeyBinding (keyBinding );
3050 active = false ;
@@ -35,7 +55,7 @@ private static boolean keyHeld() {
3555 }
3656
3757 public static float getFov (float current , float tickDelta ) {
38- float result = current * (AxolotlClient . CONFIG . zoomSpeed .get () == 10 ? targetFactor
58+ float result = current * (zoomSpeed .get () == 10 ? targetFactor
3959 : Util .lerp (lastAnimatedFactor , animatedFactor , tickDelta ));
4060
4161 if (lastReturnedFov != 0 && lastReturnedFov != result ) {
@@ -49,7 +69,7 @@ public static float getFov(float current, float tickDelta) {
4969 public static void setOptions () {
5070 originalSensitivity = MinecraftClient .getInstance ().options .sensitivity ;
5171
52- if (AxolotlClient . CONFIG . smoothCamera .get ()) {
72+ if (smoothCamera .get ()) {
5373 originalSmoothCamera = MinecraftClient .getInstance ().options .smoothCameraEnabled ;
5474 MinecraftClient .getInstance ().options .smoothCameraEnabled = true ;
5575 }
@@ -58,7 +78,7 @@ public static void setOptions() {
5878 }
5979
6080 private static void updateSensitivity () {
61- if (AxolotlClient . CONFIG . decreaseSensitivity .get ()) {
81+ if (decreaseSensitivity .get ()) {
6282 MinecraftClient .getInstance ().options .sensitivity = originalSensitivity / divisor ;
6383 }
6484 }
@@ -77,8 +97,8 @@ public static void update() {
7797 }
7898
7999 public static boolean scroll (int amount ) {
80- if (active && AxolotlClient . CONFIG . zoomScrolling .get () && amount != 0 ) {
81- setDivisor (Math .max (1 , divisor + (amount / Math .abs (amount ))));
100+ if (active && zoomScrolling .get () && amount != 0 ) {
101+ setDivisor (Math .max (1 , divisor + (amount / ( float ) Math .abs (amount ))));
82102 updateSensitivity ();
83103 return true ;
84104 }
@@ -88,7 +108,7 @@ public static boolean scroll(int amount) {
88108
89109 public static void tick () {
90110 lastAnimatedFactor = animatedFactor ;
91- animatedFactor += (targetFactor - animatedFactor ) * (AxolotlClient . CONFIG . zoomSpeed .get () / 10F );
111+ animatedFactor += (targetFactor - animatedFactor ) * (zoomSpeed .get () / 10F );
92112 }
93113
94114 private static boolean shouldStart () {
@@ -106,7 +126,7 @@ private static void setDivisor(float value) {
106126
107127 private static void start () {
108128 active = true ;
109- setDivisor (AxolotlClient . CONFIG . zoomDivisor .get ());
129+ setDivisor (zoomDivisor .get ());
110130 setOptions ();
111131 }
112132
0 commit comments