private QuestData(QuestSerializable serializable, Database database) { ItemId = new ItemId <QuestData>(serializable.Id, serializable.FileName); Name = serializable.Name; QuestType = serializable.QuestType; StartCondition = serializable.StartCondition; Weight = new NumericValue <float>(serializable.Weight, 0f, 1000f); Requirement = RequirementData.Deserialize(serializable.Requirement, database); Level = new NumericValue <int>(serializable.Level, 0, 1000); Nodes = serializable.Nodes?.Select(item => NodeData.Deserialize(item, database)).ToArray(); }
public QuestModel(QuestSerializable serializable, Database database) { Id = new ItemId <QuestModel>(serializable.Id, serializable.FileName); Name = serializable.Name; QuestType = serializable.QuestType; StartCondition = serializable.StartCondition; Weight = new NumericValue <float>(serializable.Weight, 0f, 1000f); Requirement = new Requirement(serializable.Requirement, database); Level = new NumericValue <int>(serializable.Level, 0, 1000); Nodes = serializable.Nodes?.Select(item => new Node(item, database)).ToArray(); OnDataDeserialized(serializable, database); }
private QuestModel(QuestSerializable serializable, Database.Loader loader) { Id = new ItemId <QuestModel>(serializable.Id); loader.AddQuest(serializable.Id, this); Name = serializable.Name; QuestType = serializable.QuestType; StartCondition = serializable.StartCondition; Weight = UnityEngine.Mathf.Clamp(serializable.Weight, 0f, 1000f); Requirement = Requirement.Create(serializable.Requirement, loader); Level = UnityEngine.Mathf.Clamp(serializable.Level, 0, 1000); Nodes = new ImmutableCollection <Node>(serializable.Nodes?.Select(item => Node.Create(item, loader))); OnDataDeserialized(serializable, loader); }
public QuestSerializable Serialize() { var serializable = new QuestSerializable(); serializable.Id = ItemId.Id; serializable.FileName = ItemId.Name; serializable.ItemType = (int)ItemType.Quest; serializable.Name = Name; serializable.QuestType = QuestType; serializable.StartCondition = StartCondition; serializable.Weight = Weight.Value; serializable.Requirement = Requirement.Serialize(); serializable.Level = Level.Value; serializable.Nodes = Nodes?.Select(item => item.Serialize()).ToArray(); return(serializable); }
public void Save(QuestSerializable serializable) { serializable.Name = Name; serializable.QuestType = QuestType; serializable.StartCondition = StartCondition; serializable.Weight = Weight.Value; 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); }
partial void OnDataSerialized(ref QuestSerializable serializable);
partial void OnDataDeserialized(QuestSerializable serializable, Database database);
public static QuestModel Create(QuestSerializable serializable, Database.Loader loader) { return(new QuestModel(serializable, loader)); }
partial void OnDataDeserialized(QuestSerializable serializable, Database.Loader loader);
public static QuestData Deserialize(QuestSerializable serializable, Database database) { return(new QuestData(serializable, database)); }