Code/net/minecraft/util/ToFloatFunction.java

52 lines
1.4 KiB
Java
Raw Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.util;
import it.unimi.dsi.fastutil.floats.Float2FloatFunction;
import java.util.function.Function;
public interface ToFloatFunction<C> {
ToFloatFunction<Float> IDENTITY = createUnlimited(p_216474_ -> p_216474_);
float apply(C p_184786_);
float minValue();
float maxValue();
static ToFloatFunction<Float> createUnlimited(final Float2FloatFunction p_216476_) {
return new ToFloatFunction<Float>() {
public float apply(Float p_216483_) {
return p_216476_.apply(p_216483_);
}
@Override
public float minValue() {
return Float.NEGATIVE_INFINITY;
}
@Override
public float maxValue() {
return Float.POSITIVE_INFINITY;
}
};
}
default <C2> ToFloatFunction<C2> comap(final Function<C2, C> p_216478_) {
final ToFloatFunction<C> tofloatfunction = this;
return new ToFloatFunction<C2>() {
@Override
public float apply(C2 p_216496_) {
return tofloatfunction.apply(p_216478_.apply(p_216496_));
}
@Override
public float minValue() {
return tofloatfunction.minValue();
}
@Override
public float maxValue() {
return tofloatfunction.maxValue();
}
};
}
}