public void SetObjectData(ISerializationData dataHolder, ISerializationContext context) { if(emotionPool==null) emotionPool = new Dictionary<string, ActiveEmotion>(); else emotionPool.Clear(); if(emotionDispositions==null) emotionDispositions = new Dictionary<string, EmotionDisposition>(); else emotionDispositions.Clear(); if(mood==null) mood = new Mood(); m_parent = dataHolder.GetValue<EmotionalAppraisalAsset>("Parent"); mood.SetMoodValue(dataHolder.GetValue<float>("Mood"), m_parent); var dispositions = dataHolder.GetValue<EmotionDisposition[]>("EmotionDispositions"); EmotionDisposition defaultDisposition = null; foreach (var disposition in dispositions) { if (string.Equals(disposition.Emotion, "*", StringComparison.InvariantCultureIgnoreCase)) { if (defaultDisposition == null) defaultDisposition = disposition; } else emotionDispositions.Add(disposition.Emotion, disposition); } if (defaultDisposition == null) defaultDisposition = new EmotionDisposition("*",1,1); m_defaultEmotionalDisposition = defaultDisposition; context.PushContext(); { context.Context = m_parent.Tick; var emotions = dataHolder.GetValue<ActiveEmotion[]>("EmotionalPool"); foreach (var emotion in emotions) { var hash = calculateHashString(emotion, m_parent.m_am); emotionPool.Add(hash, emotion); } } context.PopContext(); }