\documentclass[border=0mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
path o;
o = for i=0 upto 7: 8 right rotated (45/2 + 45i) -- endfor cycle;
numeric a, b;
a = abs(point 1/2 of o - point 9/2 of o);
b = abs(point 0 of o - point 1 of o);
o := o shifted 1/2(2a + b, a);
path s, t, x;
s = unitsquare zscaled (point 4 of o - point 5 of o) shifted point 5 of o;
t = unitsquare zscaled (point 6 of o - point 7 of o) shifted point 7 of o;
x = unitsquare zscaled (point 7 of o - point 8 of o) shifted point 8 of o;
input colorbrewer-rgb
picture unit;
unit = image(
for i=0 upto 7:
fill o rotated 45i withcolor Oranges 8 3;
draw o rotated 45i;
fill s rotated 45i withcolor Blues 8 2;
draw s rotated 45i;
endfor
for i = 0, 1, 2, 3, 5, 7:
fill t rotated 45i withcolor Blues 8 4;
draw t rotated 45i;
endfor
for i = 1, 3, 5, 7:
fill x rotated 45i withcolor Blues 8 4;
draw x rotated 45i;
endfor
);
beginfig(1);
pair u, v; u = 2 center t; v = u rotated 90;
n = 4;
for i=-n upto n:
for j = -n upto n:
draw unit shifted (i * u + j * v);
endfor
endfor