52 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			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();
 | |
| 			}
 | |
| 		};
 | |
| 	}
 | |
| }
 |