49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
|
package io.gitlab.jfronny.quickmeth.mixin;
|
||
|
|
||
|
import io.gitlab.jfronny.quickmeth.quickmeth;
|
||
|
import net.minecraft.util.math.MathHelper;
|
||
|
import net.minecraft.util.math.noise.PerlinNoiseSampler;
|
||
|
import org.spongepowered.asm.mixin.Final;
|
||
|
import org.spongepowered.asm.mixin.Mixin;
|
||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||
|
import org.spongepowered.asm.mixin.Shadow;
|
||
|
|
||
|
@Mixin(PerlinNoiseSampler.class)
|
||
|
public class MixinPerlinNoiseSampler {
|
||
|
@Shadow @Final
|
||
|
public double originX;
|
||
|
@Shadow @Final
|
||
|
public double originY;
|
||
|
@Shadow @Final
|
||
|
public double originZ;
|
||
|
|
||
|
@Overwrite
|
||
|
public double sample(double x, double y, double z, double d, double e) {
|
||
|
x = quickmeth.BoxedInvert(x);
|
||
|
y = quickmeth.BoxedInvert(y);
|
||
|
z = quickmeth.BoxedInvert(z);
|
||
|
|
||
|
double f = x + this.originX;
|
||
|
double g = y + this.originY;
|
||
|
double h = z + this.originZ;
|
||
|
int i = MathHelper.floor(f);
|
||
|
int j = MathHelper.floor(g);
|
||
|
int k = MathHelper.floor(h);
|
||
|
double l = f - (double)i;
|
||
|
double m = g - (double)j;
|
||
|
double n = h - (double)k;
|
||
|
double o = MathHelper.perlinFade(l);
|
||
|
double p = MathHelper.perlinFade(m);
|
||
|
double q = MathHelper.perlinFade(n);
|
||
|
double t;
|
||
|
if (d != 0.0D) {
|
||
|
double r = Math.min(e, m);
|
||
|
t = (double)MathHelper.floor(r / d) * d;
|
||
|
} else {
|
||
|
t = 0.0D;
|
||
|
}
|
||
|
|
||
|
return quickmeth.BoxedInvert(((PerlinNoiseSampler)(Object)this).sample(i, j, k, l, m - t, n, o, p, q));
|
||
|
}
|
||
|
}
|