Files
Ipseity-Demo/Assets/_Content/Scripts/Features/Dialogue/Data/DialogueConversation.cs
T

36 lines
1.2 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using OctoCore.Localization;
namespace Unheimlich.Features.Dialogue.Data
{
[CreateAssetMenu(fileName = "NewConversation", menuName = "Unheimlich/Dialogue/Conversation")]
public class DialogueConversation : ScriptableObject
{
[Header("Speaker Information")]
[Tooltip("Localized name of the speaker (common to all texts in this conversation)")]
public OctoLocalizedTextData SpeakerName;
[Header("Display Mode")]
[Tooltip("Choose how to display dialogue text: World (3D space) or Screen (Canvas UI)")]
public DialogueDisplayMode DisplayMode = DialogueDisplayMode.World;
[Header("Dialogue Flow")]
[Tooltip("Ordered list of dialogue nodes for this conversation")]
public List<DialogueNode> DialogueNodes = new List<DialogueNode>();
public string GetLocalizedSpeakerName()
{
if (SpeakerName != null)
return OctoLocalization.GetLocalizedText(SpeakerName);
return string.Empty;
}
public DialogueNode GetFirstNode()
{
return DialogueNodes != null && DialogueNodes.Count > 0 ? DialogueNodes[0] : null;
}
}
}