Slyde/src/main/java/io/gitlab/jfronny/slyde/mixin/SodiumSliderControlMixin.java

37 lines
1.3 KiB
Java

package io.gitlab.jfronny.slyde.mixin;
import io.gitlab.jfronny.slyde.SlydeClient;
import me.jellysquid.mods.sodium.client.gui.options.Option;
import me.jellysquid.mods.sodium.client.gui.options.control.ControlElement;
import me.jellysquid.mods.sodium.client.util.Dim2i;
import net.minecraft.util.math.MathHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
@Mixin(targets = "me.jellysquid.mods.sodium.client.gui.options.control.SliderControl$Button")
public abstract class SodiumSliderControlMixin extends ControlElement<Integer> {
@Shadow(remap = false) private double thumbPosition;
public SodiumSliderControlMixin(Option<Integer> option, Dim2i dim) {
super(option, dim);
}
@Shadow(remap = false) public abstract int getIntValue();
/**
* @author JFronny
* @reason Removing the MathHelper.clamp call would be a pain any other way
*/
@Overwrite(remap = false)
private void setValue(double d) {
this.thumbPosition = d;
if (!SlydeClient.isActive())
this.thumbPosition = MathHelper.clamp(this.thumbPosition, 0.0D, 1.0D);
int value = this.getIntValue();
if (this.option.getValue() != value) {
this.option.setValue(value);
}
}
}