private void CleanAttractionRecords()
        {
            IEnumerable <Pawn> keys = AttractionRecords.Keys;

            foreach (Pawn p in keys)
            {
                if (!IsPawnAttractionRelevant(p))
                {
                    AttractionRecords.Remove(p);
                }
            }
        }
        private AttractionRecord PullRecord(Pawn other, bool noUpdate = false)
        {
            Pawn p = (Pawn)this.parent;

            if (!AttractionRecords.ContainsKey(other))
            {
                AttractionRecords.Add(other, new AttractionRecord(p, other));
            }
            else if (noUpdate == false && Find.TickManager.TicksGame - AttractionRecords[other].lastRefreshedGameTick > recalculateAttractionPerTick)
            {
                AttractionRecords[other].Update(p, other);
            }
            return(AttractionRecords[other]);
        }