PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration Class Reference

Integrates Ink with the Dialogue System. More...

Inheritance diagram for PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration:
Collaboration diagram for PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration:

Public Member Functions

virtual void AddStory (string storyTitle, string storyJSON)
 Adds a story at runtime.
 
virtual void ResetStories ()
 
virtual Story GetStory (string storyName)
 
virtual string[] GetActorsInStory (string storyName, string knotName)
 Returns the names of all actors in the story or knot.
 

Static Public Member Functions

static void SetConversationStartingPoint (string knot)
 
static Story LookupStory (string storyName)
 
static bool TryExtractPrependedActor (ref string text, out string actorName)
 Attempts to extract an actor name from the beginning of a string.
 
static void SetInkBool (string variableName, bool value)
 
static void SetInkNumber (string variableName, double value)
 
static void SetInkString (string variableName, string value)
 
static void SetInkList (string variableName, string value)
 
static void AddInkList (string variableName, string value)
 
static void SubtractInkList (string variableName, string value)
 
static void IntersectInkList (string variableName, string value)
 
static bool GetInkBool (string variableName)
 
static double GetInkNumber (string variableName)
 
static string GetInkString (string variableName)
 
static string GetInkList (string variableName)
 

Public Attributes

List< TextAsset > inkJSONAssets = new List<TextAsset>()
 
bool resetStateOnConversationStart = false
 
bool actorNamesPrecedeLines = false
 
bool caseSensitiveActorNames = false
 
bool trimText = true
 
bool appendNewlineToPlayerResponses = false
 
bool playerDialogueTextFollowsResponseText = false
 
bool disableAlwaysForceResponseMenu = true
 
bool forceResponseMenuForSingleChoices = false
 
bool tieSequencesToDialogueEntries = true
 
bool debug = false
 
bool isResuming = false
 
bool isPlayerSpeaking = false
 

Protected Member Functions

virtual void Awake ()
 
virtual void Start ()
 
virtual void CreateDatabase ()
 
virtual Actor CreateActor (Template template, int actorID, string actorName, bool isPlayer)
 
virtual void AddStoryToDatabase (TextAsset asset, int conversationID)
 
virtual void AddStoryToDatabase (string storyTitle, Story story, int conversationID)
 
virtual void SetVariableValue (Variable variable, object value)
 
FieldType GetFieldType (object value)
 
virtual void ObserveStoryVariables (Story story)
 
virtual void OnVariableChange (string variableName, object newValue)
 
virtual void OnConversationStart (Transform actorTransform)
 
virtual Story GetCurrentStory (int conversationID)
 
virtual int GetCurrentPlayerID (int conversationID)
 
virtual int GetCurrentActorID (int conversationID)
 
virtual void OnConversationEnd (Transform actor)
 
virtual void OnPrepareConversationLine (DialogueEntry entry)
 
virtual string ProcessRichText (string s)
 
virtual void ProcessTags (Story activeStory, DialogueEntry entry)
 
virtual void ProcessTag (string tag, DialogueEntry entry)
 
virtual void AddForcedResponse (Story activeStory, Conversation inkConversation, DialogueEntry entry)
 
virtual void AddChoices (Story activeStory, Conversation inkConversation, DialogueEntry entry)
 
virtual void TryExtractPrependedActor (ref string text, DialogueEntry entry)
 
virtual Actor FindActorCaseInsensitive (string actorName)
 
virtual int GetActorID (string actorName, int defaultID)
 
virtual void OnConversationLine (Subtitle subtitle)
 
virtual void BindExternalFunctions (Story story)
 
virtual void PlaySequenceFromInk (string sequence)
 
virtual void UnbindExternalFunctions (Story story)
 
virtual void RegisterLuaFunctions ()
 
virtual void SetInkVariableValue (string variableName, object value)
 
virtual object GetInkVariableValue (string variableName)
 
void RecordActorsInStoryRecursive (Story story, string knotPath, HashSet< Choice > visitedChoices, List< string > actors, int recursionDepth)
 
void RecordActor (List< string > actors, string actorName)
 

Static Protected Member Functions

static InkList InkListFromCommaSeparatedString (string variableName, string value, Story story)
 

Protected Attributes

Template template
 
Conversation lastInkConversation = null
 
int nextStoryConversationID = 10000
 
string jumpToKnot = string.Empty
 
string sequenceToPlayWithSubtitle = string.Empty
 
bool originalAlwaysForceResponseMenu
 
Dictionary< int, Story > storyDict = new Dictionary<int, Story>()
 
Dictionary< int, int > storyPlayerIDDict = new Dictionary<int, int>()
 
Dictionary< int, int > storyActorIDDict = new Dictionary<int, int>()
 
bool wasDatabaseLoadedIntoMemory = false
 
Dictionary< string, Story > runtimeAddedStoryDict = new Dictionary<string, Story>()
 
string lastPlayerChoice
 Last choice that player made.
 

Static Protected Attributes

const int PlayerActorID = 1
 
const int StoryActorID = 2
 
static DialogueSystemInkIntegration m_instance = null
 
static bool m_registeredLuaFunctions = false
 

Properties

List< Story > stories [get, set]
 
DialogueDatabase database [get, protected set]
 
static DialogueSystemInkIntegration instance [get]
 
static string lastStartingPoint [get, set]
 Knot that conversation started at, or blank if started at the beginning of the story.
 

Events

System.Action loadedStories = delegate { }
 Invoked after the integration has loaded and initialized all stories.
 

Detailed Description

Integrates Ink with the Dialogue System.

In this integration, Ink does the processing, and the Dialogue System does the UI and handles triggers. It also handles saving/loading and exposes functions to manage quests and show alerts.

Member Function Documentation

◆ AddChoices()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.AddChoices ( Story  activeStory,
Conversation  inkConversation,
DialogueEntry  entry 
)
inlineprotectedvirtual

◆ AddForcedResponse()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.AddForcedResponse ( Story  activeStory,
Conversation  inkConversation,
DialogueEntry  entry 
)
inlineprotectedvirtual

◆ AddInkList()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.AddInkList ( string  variableName,
string  value 
)
inlinestatic

◆ AddStory()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.AddStory ( string  storyTitle,
string  storyJSON 
)
inlinevirtual

Adds a story at runtime.

Parameters
storyTitleThe story's title.
storyTextThe story in JSON format.

◆ AddStoryToDatabase() [1/2]

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.AddStoryToDatabase ( string  storyTitle,
Story  story,
int  conversationID 
)
inlineprotectedvirtual

◆ AddStoryToDatabase() [2/2]

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.AddStoryToDatabase ( TextAsset  asset,
int  conversationID 
)
inlineprotectedvirtual

◆ Awake()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.Awake ( )
inlineprotectedvirtual

◆ BindExternalFunctions()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.BindExternalFunctions ( Story  story)
inlineprotectedvirtual

◆ CreateActor()

virtual Actor PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.CreateActor ( Template  template,
int  actorID,
string  actorName,
bool  isPlayer 
)
inlineprotectedvirtual

◆ CreateDatabase()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.CreateDatabase ( )
inlineprotectedvirtual

◆ FindActorCaseInsensitive()

virtual Actor PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.FindActorCaseInsensitive ( string  actorName)
inlineprotectedvirtual

◆ GetActorID()

virtual int PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetActorID ( string  actorName,
int  defaultID 
)
inlineprotectedvirtual

◆ GetActorsInStory()

virtual string[] PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetActorsInStory ( string  storyName,
string  knotName 
)
inlinevirtual

Returns the names of all actors in the story or knot.

Parameters
storyNameStory name.
knotNameKnot name, or blank for entire story.

◆ GetCurrentActorID()

virtual int PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetCurrentActorID ( int  conversationID)
inlineprotectedvirtual

◆ GetCurrentPlayerID()

virtual int PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetCurrentPlayerID ( int  conversationID)
inlineprotectedvirtual

◆ GetCurrentStory()

virtual Story PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetCurrentStory ( int  conversationID)
inlineprotectedvirtual

◆ GetFieldType()

FieldType PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetFieldType ( object  value)
inlineprotected

◆ GetInkBool()

static bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetInkBool ( string  variableName)
inlinestatic

◆ GetInkList()

static string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetInkList ( string  variableName)
inlinestatic

◆ GetInkNumber()

static double PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetInkNumber ( string  variableName)
inlinestatic

◆ GetInkString()

static string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetInkString ( string  variableName)
inlinestatic

◆ GetInkVariableValue()

virtual object PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetInkVariableValue ( string  variableName)
inlineprotectedvirtual

◆ GetStory()

virtual Story PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.GetStory ( string  storyName)
inlinevirtual

◆ InkListFromCommaSeparatedString()

static InkList PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.InkListFromCommaSeparatedString ( string  variableName,
string  value,
Story  story 
)
inlinestaticprotected

◆ IntersectInkList()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.IntersectInkList ( string  variableName,
string  value 
)
inlinestatic

◆ LookupStory()

static Story PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.LookupStory ( string  storyName)
inlinestatic

◆ ObserveStoryVariables()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.ObserveStoryVariables ( Story  story)
inlineprotectedvirtual

◆ OnConversationEnd()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.OnConversationEnd ( Transform  actor)
inlineprotectedvirtual

◆ OnConversationLine()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.OnConversationLine ( Subtitle  subtitle)
inlineprotectedvirtual

◆ OnConversationStart()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.OnConversationStart ( Transform  actorTransform)
inlineprotectedvirtual

◆ OnPrepareConversationLine()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.OnPrepareConversationLine ( DialogueEntry  entry)
inlineprotectedvirtual

◆ OnVariableChange()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.OnVariableChange ( string  variableName,
object  newValue 
)
inlineprotectedvirtual

◆ PlaySequenceFromInk()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.PlaySequenceFromInk ( string  sequence)
inlineprotectedvirtual

◆ ProcessRichText()

virtual string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.ProcessRichText ( string  s)
inlineprotectedvirtual

◆ ProcessTag()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.ProcessTag ( string  tag,
DialogueEntry  entry 
)
inlineprotectedvirtual

◆ ProcessTags()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.ProcessTags ( Story  activeStory,
DialogueEntry  entry 
)
inlineprotectedvirtual

◆ RecordActor()

void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.RecordActor ( List< string >  actors,
string  actorName 
)
inlineprotected

◆ RecordActorsInStoryRecursive()

void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.RecordActorsInStoryRecursive ( Story  story,
string  knotPath,
HashSet< Choice >  visitedChoices,
List< string >  actors,
int  recursionDepth 
)
inlineprotected

◆ RegisterLuaFunctions()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.RegisterLuaFunctions ( )
inlineprotectedvirtual

◆ ResetStories()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.ResetStories ( )
inlinevirtual

◆ SetConversationStartingPoint()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetConversationStartingPoint ( string  knot)
inlinestatic

◆ SetInkBool()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetInkBool ( string  variableName,
bool  value 
)
inlinestatic

◆ SetInkList()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetInkList ( string  variableName,
string  value 
)
inlinestatic

◆ SetInkNumber()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetInkNumber ( string  variableName,
double  value 
)
inlinestatic

◆ SetInkString()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetInkString ( string  variableName,
string  value 
)
inlinestatic

◆ SetInkVariableValue()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetInkVariableValue ( string  variableName,
object  value 
)
inlineprotectedvirtual

◆ SetVariableValue()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SetVariableValue ( Variable  variable,
object  value 
)
inlineprotectedvirtual

◆ Start()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.Start ( )
inlineprotectedvirtual

◆ SubtractInkList()

static void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.SubtractInkList ( string  variableName,
string  value 
)
inlinestatic

◆ TryExtractPrependedActor() [1/2]

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.TryExtractPrependedActor ( ref string  text,
DialogueEntry  entry 
)
inlineprotectedvirtual

◆ TryExtractPrependedActor() [2/2]

static bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.TryExtractPrependedActor ( ref string  text,
out string  actorName 
)
inlinestatic

Attempts to extract an actor name from the beginning of a string.

Parameters
textText possibly containing an actor name and colon at the beginning.
actorNameActor name (if extracted).
Returns
True if an actor name was extracted; false otherwise.

◆ UnbindExternalFunctions()

virtual void PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.UnbindExternalFunctions ( Story  story)
inlineprotectedvirtual

Member Data Documentation

◆ actorNamesPrecedeLines

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.actorNamesPrecedeLines = false

◆ appendNewlineToPlayerResponses

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.appendNewlineToPlayerResponses = false

◆ caseSensitiveActorNames

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.caseSensitiveActorNames = false

◆ debug

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.debug = false

◆ disableAlwaysForceResponseMenu

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.disableAlwaysForceResponseMenu = true

◆ forceResponseMenuForSingleChoices

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.forceResponseMenuForSingleChoices = false

◆ inkJSONAssets

List<TextAsset> PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.inkJSONAssets = new List<TextAsset>()

◆ isPlayerSpeaking

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.isPlayerSpeaking = false

◆ isResuming

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.isResuming = false

◆ jumpToKnot

string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.jumpToKnot = string.Empty
protected

◆ lastInkConversation

Conversation PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.lastInkConversation = null
protected

◆ lastPlayerChoice

string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.lastPlayerChoice
protected

Last choice that player made.

◆ m_instance

DialogueSystemInkIntegration PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.m_instance = null
staticprotected

◆ m_registeredLuaFunctions

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.m_registeredLuaFunctions = false
staticprotected

◆ nextStoryConversationID

int PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.nextStoryConversationID = 10000
protected

◆ originalAlwaysForceResponseMenu

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.originalAlwaysForceResponseMenu
protected

◆ PlayerActorID

const int PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.PlayerActorID = 1
staticprotected

◆ playerDialogueTextFollowsResponseText

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.playerDialogueTextFollowsResponseText = false

◆ resetStateOnConversationStart

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.resetStateOnConversationStart = false

◆ runtimeAddedStoryDict

Dictionary<string, Story> PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.runtimeAddedStoryDict = new Dictionary<string, Story>()
protected

◆ sequenceToPlayWithSubtitle

string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.sequenceToPlayWithSubtitle = string.Empty
protected

◆ StoryActorID

const int PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.StoryActorID = 2
staticprotected

◆ storyActorIDDict

Dictionary<int, int> PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.storyActorIDDict = new Dictionary<int, int>()
protected

◆ storyDict

Dictionary<int, Story> PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.storyDict = new Dictionary<int, Story>()
protected

◆ storyPlayerIDDict

Dictionary<int, int> PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.storyPlayerIDDict = new Dictionary<int, int>()
protected

◆ template

Template PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.template
protected

◆ tieSequencesToDialogueEntries

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.tieSequencesToDialogueEntries = true

◆ trimText

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.trimText = true

◆ wasDatabaseLoadedIntoMemory

bool PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.wasDatabaseLoadedIntoMemory = false
protected

Property Documentation

◆ database

DialogueDatabase PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.database
getprotected set

◆ instance

DialogueSystemInkIntegration PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.instance
staticget

◆ lastStartingPoint

string PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.lastStartingPoint
staticgetset

Knot that conversation started at, or blank if started at the beginning of the story.

◆ stories

List<Story> PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.stories
getset

Event Documentation

◆ loadedStories

System.Action PixelCrushers.DialogueSystem.InkSupport.DialogueSystemInkIntegration.loadedStories = delegate { }

Invoked after the integration has loaded and initialized all stories.


The documentation for this class was generated from the following file: