package org.terasology.logic.world; import org.terasology.model.structures.BlockPosition; import javax.vecmath.Vector3f; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * @author Immortius <immortius@gmail.com> */ public final class WorldUtil { private WorldUtil() { } /** * Gather the surrounding block positions * and order those by the distance to the originating point. */ public static List<BlockPosition> gatherAdjacentBlockPositions(Vector3f origin) { ArrayList<BlockPosition> blockPositions = new ArrayList<BlockPosition>(); for (int x = -1; x < 2; x++) { for (int z = -1; z < 2; z++) { for (int y = -1; y < 2; y++) { int blockPosX = (int) (origin.x + (origin.x >= 0 ? 0.5f : -0.5f)) + x; int blockPosY = (int) (origin.y + (origin.y >= 0 ? 0.5f : -0.5f)) + y; int blockPosZ = (int) (origin.z + (origin.z >= 0 ? 0.5f : -0.5f)) + z; blockPositions.add(new BlockPosition(blockPosX, blockPosY, blockPosZ, origin)); } } } // Sort the block positions Collections.sort(blockPositions); return blockPositions; } public static void deleteWorld(File world) { if (world.isDirectory()) { String[] children = world.list(); for (String element : children) { File f = new File(world, element); deleteWorld(f); } world.delete(); } else world.delete(); } }