@Override
  public Set<Vector3> getInteriorPoints(IFieldInteraction projector) {
    Set<Vector3> fieldBlocks = new HashSet<Vector3>();

    Vector3 posScale = projector.getPositiveScale();
    Vector3 negScale = projector.getNegativeScale();

    int xStretch = posScale.intX() + negScale.intX();
    int yStretch = posScale.intY() + negScale.intY();
    int zStretch = posScale.intZ() + negScale.intZ();
    Vector3 translation = new Vector3(0, -0.4, 0);

    for (float x = -xStretch; x <= xStretch; x++) {
      for (float z = -zStretch; z <= zStretch; z++) {
        for (float y = 0; y <= yStretch; y++) {
          Vector3 position = new Vector3(x, y, z).add(translation);

          if (this.isInField(
              projector, Vector3.translate(position, new Vector3((TileEntity) projector)))) {
            fieldBlocks.add(position);
          }
        }
      }
    }

    return fieldBlocks;
  }