/// <summary> /// When overridden in the derived class, sets the values read from the Read method. /// </summary> /// <param name="evaluationType">The NPCChatConditionalEvaluationType.</param> /// <param name="items">The NPCChatConditionalCollectionItemBases.</param> protected override void SetReadValues(NPCChatConditionalEvaluationType evaluationType, NPCChatConditionalCollectionItemBase[] items) { _evaluationType = evaluationType; _items = items; Debug.Assert(items.All(x => x != null), "We shouldn't have null items in this array..."); }
/// <summary> /// Initializes a new instance of the <see cref="EditorNPCChatConditionalCollectionItem"/> class. /// </summary> /// <param name="source">The source <see cref="NPCChatConditionalCollectionBase"/> to copy the values from. If null, /// no values are copied.</param> public EditorNPCChatConditionalCollectionItem(NPCChatConditionalCollectionItemBase source) { if (source == null) return; var stream = new BitStream(256); using (var writer = BinaryValueWriter.Create(stream)) { source.Write(writer); } stream.PositionBits = 0; IValueReader reader = BinaryValueReader.Create(stream); Read(reader); }
/// <summary> /// Tries to add a NPCChatConditionalCollectionItemBase to the collection. /// </summary> /// <param name="item">The NPCChatConditionalCollectionItemBase to add.</param> /// <returns>True if the <paramref name="item"/> was successfully added; otherwise false.</returns> public bool TryAddItem(NPCChatConditionalCollectionItemBase item) { if (item == null) return false; if (item is EditorNPCChatConditionalCollectionItem) return TryAddItem((EditorNPCChatConditionalCollectionItem)item); var newItem = new EditorNPCChatConditionalCollectionItem(item); return TryAddItem(newItem); }
/// <summary> /// When overridden in the derived class, sets the values read from the Read method. /// </summary> /// <param name="evaluationType">The NPCChatConditionalEvaluationType.</param> /// <param name="items">The NPCChatConditionalCollectionItemBases.</param> protected override void SetReadValues(NPCChatConditionalEvaluationType evaluationType, NPCChatConditionalCollectionItemBase[] items) { _evaluationType = evaluationType; _items.Clear(); _items.AddRange(items.Cast<EditorNPCChatConditionalCollectionItem>()); if (Changed != null) Changed.Raise(this, EventArgs.Empty); }
/// <summary> /// Tries to add a <see cref="NPCChatConditionalCollectionItemBase"/> to the <see cref="ConditionalCollection"/>. /// </summary> /// <param name="item">The item to add.</param> /// <returns>True if the <paramref name="item"/> was successfully added; otherwise false.</returns> public bool TryAddToConditionalCollection(NPCChatConditionalCollectionItemBase item) { if (ConditionalCollection == null) return false; return ConditionalCollection.TryAddItem(item); }