//walls on non-cuboid regions no longer introduces gaps in walls beyond 45 degrees (aka slanted roofs :)).

This is a better way to solve #273.
This commit is contained in:
TomyLobo
2013-11-03 10:15:28 +01:00
parent 60f6580553
commit 164601644a
2 changed files with 14 additions and 20 deletions

View File

@ -1654,7 +1654,20 @@ public class EditSession {
* @throws MaxChangedBlocksException
*/
public int makeWalls(final Region region, Pattern pattern) throws MaxChangedBlocksException {
return new RegionShape(region).generate(this, pattern, true, true);
final int minY = region.getMinimumPoint().getBlockY();
final int maxY = region.getMaximumPoint().getBlockY();
final ArbitraryShape shape = new RegionShape(region) {
@Override
protected BaseBlock getMaterial(int x, int y, int z, BaseBlock defaultMaterial) {
if (y > maxY || y < minY) {
// Put holes into the floor and ceiling by telling ArbitraryShape that the shape goes on outside the region
return defaultMaterial;
}
return super.getMaterial(x, y, z, defaultMaterial);
}
};
return shape.generate(this, pattern, true);
}
/**