public void SetObjectData(ISerializationData dataHolder)
{
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;
var seq = dataHolder.GetValueGraphNode("EmotionalPool") as ISequenceGraphNode;
foreach (var n in seq)
{
var data = (n as IObjectGraphNode).ToSerializationData();
var emotion = new ActiveEmotion(data, m_parent.Tick);
var hash = calculateHashString(emotion, m_parent.m_am);
emotionPool.Add(hash, emotion);
}
}