def METHOD_NAME(self, lump_class: Type[Lump], lump_id, lump_name):
    base_path = self.filepath.parent
    lump_path = base_path / f'{self.filepath.stem}_l_{lump_id}.lmp'
    if lump_path.exists():
        buffer = FileBuffer(lump_path)
        lump_info = LumpInfo.from_buffer(buffer, lump_id, self.is_l4d2)
        self.lumps_info[lump_id] = lump_info
        buffer.seek(lump_info.offset)
        parsed_lump = lump_class(lump_info).parse(buffer, self)
        self.lumps[lump_id] = parsed_lump
        return parsed_lump
    if self.lumps_info[lump_id].size != 0:
        lump_info = self.lumps_info[lump_id]
        buffer = self._get_lump_buffer(lump_id, lump_info)
        parsed_lump = lump_class(lump_info).parse(buffer, self)
        self.lumps[lump_id] = parsed_lump
        return parsed_lump