@Override
protected Location computeLocation()
{
BlockFace face = hanging.getAttachedFace();
Location loc = hanging.getLocation().getBlock().getRelative(face).getLocation();
Art art = ((Painting) hanging).getArt();
if (art.getBlockHeight() + art.getBlockWidth() < 5)
{
int i = 0, j = 0, k = art.getBlockWidth() - 1;
switch (face)
{
case EAST:
j = -k;
break;
case NORTH:
i = -k;
default:
break;
}
loc.add(i, 1 - art.getBlockHeight(), j);
}
else
{
if (art.getBlockHeight() != 3)
loc.add(0, -1, 0);
switch (face)
{
case EAST:
loc.add(0, 0, -1);