QuickMath/src/main/java/io/gitlab/jfronny/quickmath/mixin/MixinPerlinNoiseSampler.java

53 lines
2.1 KiB
Java
Raw Normal View History

package io.gitlab.jfronny.quickmath.mixin;
2020-08-07 00:18:24 +02:00
import io.gitlab.jfronny.quickmath.MathUtil;
2020-08-07 00:18:24 +02:00
import net.minecraft.util.math.noise.PerlinNoiseSampler;
import org.spongepowered.asm.mixin.Mixin;
2021-05-29 15:54:38 +02:00
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
2020-08-07 00:18:24 +02:00
@Mixin(PerlinNoiseSampler.class)
2021-05-29 15:54:38 +02:00
public abstract class MixinPerlinNoiseSampler {
2022-06-08 11:18:34 +02:00
@ModifyVariable(method = "sample(IIIDDDD)D", at = @At("HEAD"), argsOnly = true, index = 4)
2021-05-29 15:54:38 +02:00
private double sampleAdjustX(double localX) {
2021-10-16 17:28:07 +02:00
return MathUtil.boxedInvert(localX);
2021-05-29 15:54:38 +02:00
}
2022-06-08 11:18:34 +02:00
@ModifyVariable(method = "sample(IIIDDDD)D", at = @At("HEAD"), argsOnly = true, index = 6)
private double sampleAdjustY(double localY) {
return MathUtil.boxedInvert(localY);
2021-05-29 15:54:38 +02:00
}
2022-06-08 11:18:34 +02:00
@ModifyVariable(method = "sample(IIIDDDD)D", at = @At("HEAD"), argsOnly = true, index = 8)
2021-05-29 15:54:38 +02:00
private double sampleAdjustZ(double localZ) {
2021-10-16 17:28:07 +02:00
return MathUtil.boxedInvert(localZ);
2021-05-29 15:54:38 +02:00
}
@Inject(method = "sample(IIIDDDD)D", at = @At("TAIL"), cancellable = true)
2022-06-08 11:18:34 +02:00
private void sampleAdjustResult(CallbackInfoReturnable<Double> ret) {
2021-10-16 17:28:07 +02:00
ret.setReturnValue(MathUtil.boxedInvert(ret.getReturnValue()));
2021-05-29 15:54:38 +02:00
}
2022-06-08 11:18:34 +02:00
@ModifyVariable(method = "sampleDerivative(IIIDDD[D)D", at = @At("HEAD"), argsOnly = true, index = 4)
private double derivAdjustX(double localX) {
return MathUtil.boxedInvert(localX);
}
@ModifyVariable(method = "sampleDerivative(IIIDDD[D)D", at = @At("HEAD"), argsOnly = true, index = 6)
private double derivAdjustY(double localY) {
return MathUtil.boxedInvert(localY);
}
@ModifyVariable(method = "sampleDerivative(IIIDDD[D)D", at = @At("HEAD"), argsOnly = true, index = 8)
private double derivAdjustZ(double localZ) {
return MathUtil.boxedInvert(localZ);
}
2021-05-29 15:54:38 +02:00
@Inject(method = "sampleDerivative(IIIDDD[D)D", at = @At("TAIL"), cancellable = true)
2022-06-08 11:18:34 +02:00
private void derivAdjustResult(CallbackInfoReturnable<Double> ret) {
2021-10-16 17:28:07 +02:00
ret.setReturnValue(MathUtil.boxedInvert(ret.getReturnValue()));
2020-08-07 00:18:24 +02:00
}
}