@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; }