Compare commits

...

2 Commits

Author SHA1 Message Date
b56a8b0cad
Finish actually updating to 1.21.2
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2025-04-15 15:48:10 +02:00
19304abe03
Fix the fabric TitleScreenMixin on Minecraft 1.21.2
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2025-04-15 15:38:41 +02:00
5 changed files with 11 additions and 10 deletions

View File

@ -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()

View File

@ -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
}

View File

@ -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();

View File

@ -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()));
}

View File

@ -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)
}
}