private void SetText() { // Clear everything speakerName.text = ""; messageText.gameObject.SetActive(false); messageText.text = ""; ClearChoices(); // If at the end, don't do anything if (ended) { return; } // Generate choices if a choice, otherwise display the message if (handler.currentMessageInfo.Type == QD_NodeType.Message) { QD_Message message = handler.GetMessage(); speakerName.text = message.SpeakerName; messageText.text = message.MessageText; messageText.gameObject.SetActive(true); } else if (handler.currentMessageInfo.Type == QD_NodeType.Choice) { speakerName.text = "Player"; GenerateChoices(); } }
public void SetText() { // Clear everything speakerName.text = ""; messageText.gameObject.SetActive(false); messageText.text = ""; // If at the end, don't do anything if (ended) { return; } // Generate the display of the message if (handler.currentMessageInfo.Type == QD_NodeType.Message) { QD_Message message = handler.GetMessage(); speakerName.text = message.SpeakerName; messageText.text = message.MessageText; messageText.gameObject.SetActive(true); } }
/// <summary> /// The function called to modify the node's data whenever a node connects. /// </summary> /// <param name="dialogue">The dialogue data.</param> /// <param name="connectionType">The type of the connecting node.</param> /// <param name="connectionID">The id of the connecting node.</param> /// <param name="connectionKnobID">The id of the connecting knob.</param> /// <param name="knobID">The id of this node's knob.</param> /// <param name="knobType">The type of this node's knob.</param> public override void OnConnect(QD_Dialogue dialogue, QD_NodeType connectionType, int connectionID, int connectionKnobID, int knobID, QD_KnobType knobType) { Data.OnConnect(dialogue, connectionType, connectionID, connectionKnobID, knobID, knobType); QD_DialogueEditor.db.DataDB.SetMessage(Data.ID, Data); if (connectionType == QD_NodeType.Speaker && knobID == 0 && knobType == QD_KnobType.Input) { QD_Node message = QD_DialogueEditor.db.GetNode(ID); QD_Knob messageKnob = message.GetKnob(QD_KnobType.Output, 0); int nextMessageID = messageKnob.Connections.Count > 0 ? messageKnob.Connections.keys[0] : -1; QD_Message nextMessage = nextMessageID != -1 ? dialogue.GetMessage(nextMessageID) : null; while (nextMessageID != -1 && nextMessage != null) { nextMessage.Speaker = connectionID; nextMessage.SpeakerName = dialogue.GetSpeaker(connectionID).Name; QD_DialogueEditor.db.DataDB.SetMessage(nextMessage.ID, nextMessage); message = QD_DialogueEditor.db.GetNode(nextMessageID); messageKnob = message.GetKnob(QD_KnobType.Output, 0); nextMessageID = messageKnob.Connections.Count > 0 ? messageKnob.Connections.keys[0] : -1; nextMessage = nextMessageID != -1 ? dialogue.GetMessage(nextMessageID) : null; } } }
/// <summary> /// Creates a new node of the given type at the given position. /// </summary> /// <param name="type"></param> /// <param name="position"></param> public void CreateNode(QD_NodeType type, Vector2 position) { int id = NextID++; var node = new QD_Node(id, type, position.x, position.y); if (type == QD_NodeType.Speaker) { var speakerNode = new QD_SpeakerNode(id, type, position.x, position.y); node.Window.width = speakerNode.Window.width; node.Window.height = speakerNode.Window.height; node.Inputs = speakerNode.CloneKnobs(QD_KnobType.Input); node.Outputs = speakerNode.CloneKnobs(QD_KnobType.Output); node.AllowedInputs = speakerNode.AllowedInputs; node.AllowedOutputs = speakerNode.AllowedOutputs; var speakerData = new QD_Speaker(id); DataDB.Speakers.Add(speakerData); speakerNode.Data = speakerData; SpeakerNodes.Add(speakerNode); } else if (type == QD_NodeType.Message) { var messageNode = new QD_MessageNode(id, type, position.x, position.y); node.Window.width = messageNode.Window.width; node.Window.height = messageNode.Window.height; node.Inputs = messageNode.CloneKnobs(QD_KnobType.Input); node.Outputs = messageNode.CloneKnobs(QD_KnobType.Output); node.AllowedInputs = messageNode.AllowedInputs; node.AllowedOutputs = messageNode.AllowedOutputs; var messageData = new QD_Message(id); DataDB.Messages.Add(messageData); messageNode.Data = messageData; MessageNodes.Add(messageNode); } else if (type == QD_NodeType.Conversation) { var conversationNode = new QD_ConversationNode(id, type, position.x, position.y); node.Window.width = conversationNode.Window.width; node.Window.height = conversationNode.Window.height; node.Inputs = conversationNode.CloneKnobs(QD_KnobType.Input); node.Outputs = conversationNode.CloneKnobs(QD_KnobType.Output); node.AllowedInputs = conversationNode.AllowedInputs; node.AllowedOutputs = conversationNode.AllowedOutputs; var conversationData = new QD_Conversation(id); DataDB.Conversations.Add(conversationData); conversationNode.Data = conversationData; ConversationNodes.Add(conversationNode); } else if (type == QD_NodeType.Choice) { var choiceNode = new QD_ChoiceNode(id, type, position.x, position.y); node.Window.width = choiceNode.Window.width; node.Window.height = choiceNode.Window.height; node.Inputs = choiceNode.CloneKnobs(QD_KnobType.Input); node.Outputs = choiceNode.CloneKnobs(QD_KnobType.Output); node.AllowedInputs = choiceNode.AllowedInputs; node.AllowedOutputs = choiceNode.AllowedOutputs; var choiceData = new QD_Choice(id); DataDB.Choices.Add(choiceData); choiceNode.Data = choiceData; ChoiceNodes.Add(choiceNode); } Nodes.Add(node); }