boolean u = get(lvl, x, y - 1, id);
boolean d = get(lvl, x, y + 1, id);
boolean l = get(lvl, x - 1, y, id);
boolean r = get(lvl, x + 1, y, id);
//BufferedImage tilen = Game.tiles.get(20, 20);
BufferedImage image = tile;
BufferedImage
up_left = image.getSubimage(0, 0, 16, 16),
up_right = image.getSubimage(16, 0, 16, 16),
down_left = image.getSubimage(0, 16, 16, 16),
down_right = image.getSubimage(16, 16, 16, 16),
mc_11 = image.getSubimage(0, 0, 8, 16),
mc_12 = image.getSubimage(0, 0, 16, 8),
mc_21 = image.getSubimage(16, 0, 16, 8),
mc_22 = image.getSubimage(24, 0, 8, 16),
mc_31 = image.getSubimage(0, 24, 16, 8),
mc_32 = image.getSubimage(0, 16, 8, 16),
mc_41 = image.getSubimage(16, 24, 16, 8),
mc_42 = image.getSubimage(24, 16, 8, 16),
c_ul = image.getSubimage(0, 0, 8, 8),
c_ur = image.getSubimage(24, 0, 8, 8),
c_dl = image.getSubimage(0, 24, 8, 8),
c_dr = image.getSubimage(24, 24, 8, 8),
uu = image.getSubimage(8, 0, 16, 8),
dd = image.getSubimage(8, 24, 16, 8),
ll = image.getSubimage(0, 8, 8, 16),
rr = image.getSubimage(24, 8, 8, 16),
cc = image.getSubimage(8, 8, 16, 16),
hcc = cc.getSubimage(0, 0, 8, 8);
if (!d) {
if (l && r) {
g.drawImage(dd, x * 16, y * 16 + 8, null);
if (!u) {
g.drawImage(uu, x * 16, y * 16, null);
} else {
g.drawImage(hcc, x * 16, y * 16, null);
g.drawImage(hcc, x * 16 + 8, y * 16, null);
}
} else {
if (!l) {
if (u) {
if (r) {
g.drawImage(down_left, x * 16, y * 16, null);
} else {
g.drawImage(mc_32, x * 16, y * 16, null);
g.drawImage(mc_42, x * 16 + 8, y * 16, null);
}
}
} else if (!r) {
if (u) {
g.drawImage(down_right, x * 16, y * 16, null);
} else {
g.drawImage(mc_41, x * 16, y * 16 + 8, null);
g.drawImage(mc_21, x * 16, y * 16, null);
}
} else if (!r && !l) {
g.drawImage(mc_32, x * 16, y * 16, null);
g.drawImage(mc_42, x * 16 + 8, y * 16, null);
}
}
} else if (!u) {
if (l && r) {
g.drawImage(uu, x * 16, y * 16, null);
g.drawImage(hcc, x * 16, y * 16 + 8, null);
g.drawImage(hcc, x * 16 + 8, y * 16 + 8, null);
} else {
if (!l) {
if (d) {
if (r) {
g.drawImage(up_left, x * 16, y * 16, null);
} else {
g.drawImage(mc_11, x * 16, y * 16, null);
g.drawImage(mc_22, x * 16 + 8, y * 16, null);
}
}
} else if (!r) {
if (d) {
g.drawImage(up_right, x * 16, y * 16, null);
} else {
g.drawImage(mc_41, x * 16, y * 16 + 8, null);
g.drawImage(mc_21, x * 16, y * 16, null);
}
} else {
g.drawImage(mc_32, x * 16, y * 16 + 8, null);
g.drawImage(mc_42, x * 16, y * 16, null);
}
}
} else if (!l) {
if (u && d) {
g.drawImage(ll, x * 16, y * 16, null);
if (!r) {
g.drawImage(rr, x * 16 + 8, y * 16, null);
} else {
g.drawImage(hcc, x * 16 + 8, y * 16, null);
g.drawImage(hcc, x * 16 + 8, y * 16 + 8, null);
}
}
} else
if (!r) {
if (u && d) {
g.drawImage(rr, x * 16 + 8, y * 16, null);
g.drawImage(hcc, x * 16, y * 16, null);
g.drawImage(hcc, x * 16, y * 16 + 8, null);
}
} else {
g.drawImage(cc, x * 16, y * 16, null);
}
if (!u && !d && !l && !r) {
g.drawImage(c_ul, x * 16, y * 16, null);
g.drawImage(c_ur, x * 16 + 8, y * 16, null);
g.drawImage(c_dl, x * 16, y * 16 + 8, null);
g.drawImage(c_dr, x * 16 + 8, y * 16 + 8, null);
}
if (!u && !d && !l) {
g.drawImage(mc_12, x * 16, y * 16, null);
g.drawImage(mc_31, x * 16, y * 16 + 8, null);
}