@Override
public Set<Vector3> getExteriorPoints(IFieldInteraction projector)
{
Set<Vector3> fieldBlocks = new HashSet<Vector3>();
ForgeDirection direction = projector.getDirection();
Vector3 posScale = projector.getPositiveScale();
Vector3 negScale = projector.getNegativeScale();
for (float x = -negScale.intX(); x <= posScale.intX(); x += 0.5f)
{
for (float z = -negScale.intZ(); z <= posScale.intZ(); z += 0.5f)
{
for (float y = -negScale.intY(); y <= posScale.intY(); y += 0.5f)
{
if (!(direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) && (y == -negScale.intY() || y == posScale.intY()))
{
fieldBlocks.add(new Vector3(x, y, z));
continue;
}
if (!(direction == ForgeDirection.NORTH || direction == ForgeDirection.SOUTH) && (z == -negScale.intZ() || z == posScale.intZ()))
{
fieldBlocks.add(new Vector3(x, y, z));
continue;
}
if (!(direction == ForgeDirection.WEST || direction == ForgeDirection.EAST) && (x == -negScale.intX() || x == posScale.intX()))
{
fieldBlocks.add(new Vector3(x, y, z));
continue;
}
}
}
}