+ def get_tile_type(self, pos):
+ return self._data[pos[1]][pos[0]]
+
+ def set_tile_type(self, pos, new_type):
+ self._data[pos[1]][pos[0]] = new_type
+ new_tile = self._get_tile_image(new_type, pos)
+ self._tiles[pos[1]][pos[0]] = new_tile
+ self._changed.append((pos, new_tile))
+ # Also update neighbourhood for wall types, etc.
+ for new_pos in [(pos[0] - 1, pos[1]), (pos[0] + 1, pos[1]),
+ (pos[0], pos[1] - 1), (pos[0], pos[1] + 1)]:
+ if not self._in_limits(new_pos):
+ continue
+ tile = self._data[new_pos[1]][new_pos[0]]
+ new_tile = self._get_tile_image(tile, pos)
+ self._tiles[new_pos[1]][new_pos[0]] = new_tile
+ self._changed.append((new_pos, new_tile))
+