public static ColonistHistoryDataList ConvertFromLightWeight(ColonistHistoryDataList lightWeightList)
        {
            ColonistHistoryDataList dataList = new ColonistHistoryDataList(lightWeightList.pawnName);

            LightWeightSaver.tableRecords.Clear();
            foreach (ColonistHistoryData dataSrc in lightWeightList.log)
            {
                ColonistHistoryData data = new ColonistHistoryData(dataSrc, false);
                foreach (ColonistHistoryRecord recordNew in dataSrc.records.records)
                {
                    if (LightWeightSaver.tableRecords.ContainsKey(recordNew.RecordID))
                    {
                        if (!LightWeightSaver.tableRecords[recordNew.RecordID].IsEqualValue(recordNew))
                        {
                            LightWeightSaver.tableRecords[recordNew.RecordID] = recordNew;
                        }
                    }
                    else
                    {
                        LightWeightSaver.tableRecords[recordNew.RecordID] = recordNew;
                    }
                }
                foreach (ColonistHistoryDef def in DefDatabase <ColonistHistoryDef> .AllDefsListForReading)
                {
                    foreach (RecordIdentifier recordID in def.RecordIDs)
                    {
                        if (LightWeightSaver.tableRecords.ContainsKey(recordID))
                        {
                            data.records.records.Add(LightWeightSaver.tableRecords[recordID]);
                        }
                    }
                }
                dataList.Add(data);
            }

            /*
             * dataList.log.Add(new ColonistHistoryData(lightWeightList.log[0], true));
             * for (int i = 1; i < lightWeightList.log.Count; i++) {
             *  ColonistHistoryData current = lightWeightList.log[i];
             *  ColonistHistoryData previous = new ColonistHistoryData(dataList.log[i-1],true);
             *
             *  ColonistHistoryData data = new ColonistHistoryData(current, false);
             *  data.records.records = new List<ColonistHistoryRecord>(previous.records.records);
             *  foreach (ColonistHistoryRecord recordNew in current.records.records) {
             *      int index = data.records.records.FindIndex(r => r.RecordID.IsSame(recordNew.RecordID));
             *      if (index != -1) {
             *          data.records.records[index].SetValue(recordNew);
             *      } else {
             *          data.records.records.Add(recordNew);
             *      }
             *  }
             *  dataList.log.Add(data);
             * }
             */
            return(dataList);
        }
        public static ColonistHistoryDataList GetLightWeight(ColonistHistoryDataList dataListSrc)
        {
            LightWeightSaver.tableValues.Clear();
            LightWeightSaver.tableIsUnrecorded.Clear();

            ColonistHistoryDataList dataList = new ColonistHistoryDataList(dataListSrc.pawnName);

            foreach (ColonistHistoryData dataSrc in dataListSrc.log)
            {
                ColonistHistoryData data = new ColonistHistoryData(dataSrc, false);
                foreach (ColonistHistoryRecord recordSrc in dataSrc.records.records)
                {
                    if (RegisterTable(recordSrc))
                    {
                        data.records.records.Add(recordSrc);
                    }
                }
                dataList.Add(data);
            }
            return(dataList);
        }