// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus). // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) using UnityEngine; using System.Collections; using System.Text; namespace Fungus { /// <summary> /// Options for using the Lua FungusModule. /// </summary> public enum FungusModuleOptions { UseGlobalVariables, // Fungus helper items will be available as global variables. UseFungusVariable, // Fungus helper items will be available in the 'fungus' global variable. NoFungusModule // The fungus helper module will not be loaded. } public interface ILuaUtils { /// <summary> /// The currently selected language in the string table. Affects variable substitution. /// </summary> string ActiveLanguage { get; set; } /// <summary> /// Returns a string from the string table for this key. /// The string returned depends on the active language. /// </summary> string GetString(string key); /// <summary> /// Implementation of StringSubstituter.ISubstitutionHandler /// Substitutes specially formatted tokens in the text with global variables and string table values. /// The string table value used depends on the currently loaded string table and active language. /// </summary> bool SubstituteStrings(StringBuilder input); /// <summary> /// Performs string substitution on the input string, replacing tokens of the form {$VarName} with /// matching variables, localised strings, etc. in the scene. /// </summary> string Substitute(string input); /// <summary> /// Find a game object by name and returns it. /// </summary> GameObject Find(string name); /// <summary> /// Returns one active GameObject tagged tag. Returns null if no GameObject was found. /// </summary> GameObject FindWithTag(string tag); /// <summary> /// Returns a list of active GameObjects tagged tag. Returns empty array if no GameObject was found. /// </summary> GameObject[] FindGameObjectsWithTag(string tag); /// <summary> /// Create a copy of a GameObject. /// Can be used to instantiate prefabs. /// </summary> GameObject Instantiate(GameObject go); /// <summary> /// Destroys an instance of a GameObject. /// </summary> void Destroy(GameObject go); /// <summary> /// Spawns an instance of a named prefab resource. /// The prefab must exist in a Resources folder in the project. /// </summary> GameObject Spawn(string resourceName); /// <summary> /// Use the conversation manager to play out a conversation /// </summary> /// <param name="conv"></param> IEnumerator DoConversation(string conv); /// <summary> /// Sync the active say dialog with what Lua thinks the SayDialog should be /// </summary> /// <param name="sayDialog"></param> void SetSayDialog(SayDialog sayDialog); } }