calculate locator positions before application

This commit is contained in:
dfsek committed 2022-02-15 09:12:30 -07:00
1 parent b99085b49f
commit f13d66d095
1 file changed
+5 -2
@@ -9,6 +9,7 @@ package com.dfsek.terra.api.structure.feature;
import java.util.function.BooleanSupplier; import java.util.function.BooleanSupplier;
import java.util.function.IntConsumer; import java.util.function.IntConsumer;
import java.util.stream.IntStream;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.function.IntToBooleanFunction; import com.dfsek.terra.api.util.function.IntToBooleanFunction;
@@ -63,11 +64,13 @@ public class BinaryColumn {
* @param consumer Action to perform * @param consumer Action to perform
*/ */
public void forEach(IntConsumer consumer) { public void forEach(IntConsumer consumer) {
for(int y = minY; y < maxY; y++) { for(int y : matching()) {
if(get(y)) {
consumer.accept(y); consumer.accept(y);
} }
} }
public int[] matching() {
return IntStream.range(minY, maxY).filter(this::get).toArray();
} }
/** /**