package com.gtnewhorizon.structurelib.structure; import net.minecraft.world.World; interface IStructureWalker { boolean visit(IStructureElement element, World world, int x, int y, int z, int a, int b, int c); default boolean blockNotLoaded(IStructureElement element, World world, int x, int y, int z, int a, int b, int c) { return false; } static IStructureWalker ignoreBlockUnloaded(IStructureWalker walker) { return new IStructureWalker() { @Override public boolean visit(IStructureElement 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); } @Override public boolean blockNotLoaded(IStructureElement 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); } }; } static IStructureWalker skipBlockUnloaded(IStructureWalker walker) { return new IStructureWalker() { @Override public boolean visit(IStructureElement 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); } @Override public boolean blockNotLoaded(IStructureElement element, World world, int x, int y, int z, int a, int b, int c) { return true; } }; } }