40 lines
		
	
	
	
		
			877 B
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			877 B
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.world.phys.shapes;
 | |
| 
 | |
| import com.google.common.math.IntMath;
 | |
| import it.unimi.dsi.fastutil.doubles.DoubleList;
 | |
| 
 | |
| public final class DiscreteCubeMerger implements IndexMerger {
 | |
| 	private final CubePointRange result;
 | |
| 	private final int firstDiv;
 | |
| 	private final int secondDiv;
 | |
| 
 | |
| 	DiscreteCubeMerger(int aa, int bb) {
 | |
| 		this.result = new CubePointRange((int)Shapes.lcm(aa, bb));
 | |
| 		int i = IntMath.gcd(aa, bb);
 | |
| 		this.firstDiv = aa / i;
 | |
| 		this.secondDiv = bb / i;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public boolean forMergedIndexes(IndexMerger.IndexConsumer consumer) {
 | |
| 		int i = this.result.size() - 1;
 | |
| 
 | |
| 		for (int j = 0; j < i; j++) {
 | |
| 			if (!consumer.merge(j / this.secondDiv, j / this.firstDiv, j)) {
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public int size() {
 | |
| 		return this.result.size();
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public DoubleList getList() {
 | |
| 		return this.result;
 | |
| 	}
 | |
| }
 |