package com.xcompwiz.lookingglass.proxyworld;

import net.minecraft.util.ChunkCoordinates;

public class SubChunkUtils {
	public static final boolean withinDistance(ChunkCoordinates c1, int x, int y, int z, int distance) {
		return distance * distance >= c1.getDistanceSquared(x, y, z);
	}

	public static final boolean withinDistance(int x, int y, int z, int x2, int y2, int z2, int distance) {
		int x3 = x - x2;
		int y3 = y - y2;
		int z3 = z - z2;
		return distance * distance >= x3 * x3 + y3 * y3 + z3 * z3;
	}

	public static final boolean withinRange(ChunkCoordinates c1, int x, int y, int z, int d1, int d2) {
		float cDistance = c1.getDistanceSquared(x, y, z);
		return d2 * d2 >= cDistance && d1 * d1 <= cDistance;
	}

	public static final boolean withinDistance2D(int x, int z, int x2, int z2, int distance) {
		int x3 = x - x2;
		int z3 = z - z2;
		int distance2 = x3 * x3 + z3 * z3;
		return distance * distance >= distance2;
	}

	public static final boolean withinRange2D(int x, int z, int x2, int z2, int d1, int d2) {
		int x3 = x - x2;
		int z3 = z - z2;
		int distance = x3 * x3 + z3 * z3;
		return d2 * d2 >= distance && d1 * d1 <= distance;
	}
}