Files
StructureLib/src/main/java/com/gtnewhorizon/structurelib/structure/IStructureWalker.java
T

42 lines
1.6 KiB
Java
Raw Normal View History

2022-08-08 17:40:12 +08:00
package com.gtnewhorizon.structurelib.structure;
import net.minecraft.world.World;
2022-09-11 02:54:11 +08:00
interface IStructureWalker<T> {
boolean visit(IStructureElement<T> element, World world, int x, int y, int z, int a, int b, int c);
2022-08-12 12:25:03 +08:00
2022-09-11 02:54:11 +08:00
default boolean blockNotLoaded(
IStructureElement<T> element, World world, int x, int y, int z, int a, int b, int c) {
2022-08-12 12:25:03 +08:00
return false;
}
static <T> IStructureWalker<T> ignoreBlockUnloaded(IStructureWalker<T> walker) {
return new IStructureWalker<T>() {
@Override
2022-09-11 02:54:11 +08:00
public boolean visit(IStructureElement<T> element, World world, int x, int y, int z, int a, int b, int c) {
return walker.visit(element, world, x, y, z, a, b, c);
2022-08-12 12:25:03 +08:00
}
@Override
2022-09-11 02:54:11 +08:00
public boolean blockNotLoaded(
IStructureElement<T> element, World world, int x, int y, int z, int a, int b, int c) {
return walker.visit(element, world, x, y, z, a, b, c);
2022-08-12 12:25:03 +08:00
}
};
}
static <T> IStructureWalker<T> skipBlockUnloaded(IStructureWalker<T> walker) {
return new IStructureWalker<T>() {
@Override
2022-09-11 02:54:11 +08:00
public boolean visit(IStructureElement<T> element, World world, int x, int y, int z, int a, int b, int c) {
return walker.visit(element, world, x, y, z, a, b, c);
2022-08-12 12:25:03 +08:00
}
@Override
2022-09-11 02:54:11 +08:00
public boolean blockNotLoaded(
IStructureElement<T> element, World world, int x, int y, int z, int a, int b, int c) {
2022-08-12 12:25:03 +08:00
return true;
}
};
}
2022-08-08 17:40:12 +08:00
}