'Check all blocks surrounding `position` and ensure their visual
state is current. This means hiding blocks that are not exposed and
ensuring that all exposed blocks are shown. Usually used after a block
is added or removed.'

def check_neighbors(self, position):

    (x, y, z) = position
    for (dx, dy, dz) in FACES:
        key = ((x + dx), (y + dy), (z + dz))
        if (key not in self.world):
            continue
        if self.exposed(key):
            if (key not in self.shown):
                self.show_block(key)
        elif (key in self.shown):
            self.hide_block(key)
