Compare commits
2 Commits
73efd7eaac
...
b56a8b0cad
Author | SHA1 | Date | |
---|---|---|---|
b56a8b0cad | |||
19304abe03 |
@ -49,9 +49,9 @@ val SnowyConfigScreen: Screen = object: Screen(translationComponent) {
|
||||
startBooleanToggle(translatable("$confPrefix.behavior.sortalphabetically"), sortAlphabetically)
|
||||
.setDefaultValue(true).requireRestart()
|
||||
.setSaveConsumer { sortAlphabetically = it }.build(),
|
||||
startDoubleField(translatable("$confPrefix.behavior.zoom.factor"), Zoom.zoomFactor).setSaveConsumer {
|
||||
startFloatField(translatable("$confPrefix.behavior.zoom.factor"), Zoom.zoomFactor).setSaveConsumer {
|
||||
Zoom.zoomFactor = it
|
||||
}.setMin(1.1).build(),
|
||||
}.setMin(1.1F).build(),
|
||||
startBooleanToggle(translatable("$confPrefix.behavior.zoom.smoothcamera"), Zoom.smoothCameraOnZoom).setSaveConsumer {
|
||||
Zoom.smoothCameraOnZoom = it
|
||||
Zoom.execAction()
|
||||
|
@ -6,9 +6,9 @@ import net.minecraft.client.Minecraft
|
||||
@ButtonInfo(Category.MISC, shouldSave = false)
|
||||
object Zoom: ButtonImpl() {
|
||||
var smoothCameraOnZoom: Boolean by Configuration
|
||||
var zoomFactor: Double by Configuration
|
||||
var zoomFactor: Float by Configuration
|
||||
@JvmStatic
|
||||
fun getNewZoom(fov: Double): Double = fov / zoomFactor
|
||||
fun getNewZoom(fov: Float): Float = fov / zoomFactor
|
||||
public override fun execAction() {
|
||||
Minecraft.getInstance().options.smoothCamera = toggled && smoothCameraOnZoom
|
||||
}
|
||||
|
@ -4,16 +4,17 @@ import fr.username404.snowygui.ClickGui;
|
||||
import fr.username404.snowygui.gui.feature.ButtonImpl;
|
||||
import net.minecraft.client.gui.screens.TitleScreen;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(TitleScreen.class)
|
||||
abstract class TitleScreenMixin {
|
||||
private static boolean buttonsInitialized = false;
|
||||
private static synchronized void setButtonsInitialized() { buttonsInitialized = true; }
|
||||
@Unique private static boolean buttonsInitialized = false;
|
||||
@Unique private static synchronized void setButtonsInitialized() { buttonsInitialized = true; }
|
||||
@Inject(method = "createNormalMenuOptions", at = @At(value = "RETURN"))
|
||||
public void createNormalMenuOptions(int i, int j, CallbackInfo ci) {
|
||||
public void createNormalMenuOptions(int i, int j, CallbackInfoReturnable<Integer> cir) {
|
||||
if (!buttonsInitialized) {
|
||||
ClickGui.INSTANCE.tick();
|
||||
ButtonImpl.initButtons();
|
||||
|
@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
@Mixin(GameRenderer.class)
|
||||
abstract class ZoomMixin {
|
||||
@Inject(at = @At(value = "RETURN"), method = "getFov(Lnet/minecraft/client/Camera;FZ)F", cancellable = true)
|
||||
private void getFov(Camera camera, float f, boolean bl, CallbackInfoReturnable<Double> cir) {
|
||||
private void getFov(Camera camera, float f, boolean bl, CallbackInfoReturnable<Float> cir) {
|
||||
if (Zoom.INSTANCE.getToggled() && !OkZoomerCompatKt.isOkZoomerPresent) {
|
||||
cir.setReturnValue(Zoom.getNewZoom(cir.getReturnValue()));
|
||||
}
|
||||
|
@ -7,6 +7,6 @@ import net.neoforged.neoforge.client.event.ComputeFovModifierEvent
|
||||
object ZoomHandler {
|
||||
@SubscribeEvent
|
||||
fun onFOVEvent(event: ComputeFovModifierEvent) {
|
||||
if (Zoom.toggled) event.newFovModifier = Zoom.getNewZoom(event.newFovModifier.toDouble()).toFloat()
|
||||
if (Zoom.toggled) event.newFovModifier = Zoom.getNewZoom(event.newFovModifier)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user