예제 #1
0
        /// <summary>
        /// Creates a new <see cref="EditorNPCChatDialog"/> and adds it to this collection.
        /// </summary>
        /// <returns>The new <see cref="EditorNPCChatDialog"/>.</returns>
        public static EditorNPCChatDialog CreateNewDialog()
        {
            _instance.Reorganize();

            // Find the first free index
            var i = 0;

            while (_instance.DialogExists((NPCChatDialogID)i))
            {
                ++i;
            }

            // Create the new instance
            var dialog = new EditorNPCChatDialog();

            dialog.SetID(new NPCChatDialogID(i));

            // Create the initial dialog item
            var dialogItem = new EditorNPCChatDialogItem(dialog.GetFreeDialogItemID(), "New dialog");

            dialogItem.SetText("<Enter the initial text to display>");
            dialog.Add(dialogItem);

            // Add to the collection
            AddDialog(dialog);

            return(dialog);
        }
예제 #2
0
        /// <summary>
        /// Adds an <see cref="EditorNPCChatDialog"/>.
        /// </summary>
        /// <param name="dialog">The EditorNPCChatDialog to add.</param>
        public static void AddDialog(EditorNPCChatDialog dialog)
        {
            // Just always reorganize, since I'm not very trusting that things are always done right
            _instance.Reorganize();

            // Add the new dialog
            _instance[dialog.ID] = dialog;
        }
예제 #3
0
        public static void DeleteDialog(EditorNPCChatDialog dialog)
        {
            _instance.Reorganize();

            if (GetDialog(dialog.ID) != dialog)
            {
                return;
            }

            _instance[dialog.ID] = null;
        }