public void Save(QuestSerializable serializable) { serializable.Name = Name; serializable.QuestType = QuestType; serializable.StartCondition = StartCondition; serializable.Weight = Weight.Value; serializable.Origin = Origin.Serialize(); serializable.Requirement = Requirement.Serialize(); serializable.Level = Level.Value; if (Nodes == null || Nodes.Length == 0) { serializable.Nodes = null; } else { serializable.Nodes = Nodes.Select(item => item.Serialize()).ToArray(); } OnDataSerialized(ref serializable); }