code: def unpack_layer(plane):
      
      size = point.Point.build(plane.size)
      if size == (0, 0):
        # New layer that isn't implemented in this SC2 version.
        return None
      data = np.frombuffer(plane.data, dtype=Feature.dtypes[plane.bits_per_pixel])
      if plane.bits_per_pixel == 1:
        data = np.unpackbits(data)
        if data.shape[0] != size.x * size.y:
          # This could happen if the correct length isn't a multiple of 8, leading
          # to some padding bits at the end of the string which are incorrectly
          # interpreted as data.
          data = data[:size.x * size.y]
      return data.reshape(size.y, size.x)
docs: Return a correctly shaped numpy array given the feature layer bytes.