minecraft-src/net/minecraft/util/ToFloatFunction.java
2025-07-04 01:41:11 +03:00

52 lines
1.1 KiB
Java

package net.minecraft.util;
import it.unimi.dsi.fastutil.floats.Float2FloatFunction;
import java.util.function.Function;
public interface ToFloatFunction<C> {
ToFloatFunction<Float> IDENTITY = createUnlimited(f -> f);
float apply(C object);
float minValue();
float maxValue();
static ToFloatFunction<Float> createUnlimited(Float2FloatFunction wrapped) {
return new ToFloatFunction<Float>() {
public float apply(Float float_) {
return wrapped.apply(float_);
}
@Override
public float minValue() {
return Float.NEGATIVE_INFINITY;
}
@Override
public float maxValue() {
return Float.POSITIVE_INFINITY;
}
};
}
default <C2> ToFloatFunction<C2> comap(Function<C2, C> converter) {
final ToFloatFunction<C> toFloatFunction = this;
return new ToFloatFunction<C2>() {
@Override
public float apply(C2 object) {
return toFloatFunction.apply((C)converter.apply(object));
}
@Override
public float minValue() {
return toFloatFunction.minValue();
}
@Override
public float maxValue() {
return toFloatFunction.maxValue();
}
};
}
}