Christopher
8 years ago
8 changed files with 49 additions and 190 deletions
@ -1,166 +0,0 @@ |
|||||||
// 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.Generic; |
|
||||||
|
|
||||||
namespace Fungus |
|
||||||
{ |
|
||||||
/// <summary> |
|
||||||
/// Commands can be added to Blocks to create an execution sequence. |
|
||||||
/// </summary> |
|
||||||
public interface ICommand |
|
||||||
{ |
|
||||||
/// <summary> |
|
||||||
/// Unique identifier for this command. |
|
||||||
/// Unique for this Flowchart. |
|
||||||
/// </summary> |
|
||||||
int ItemId { get; set; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Error message to display in the command inspector. |
|
||||||
/// </summary> |
|
||||||
string ErrorMessage { get; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Indent depth of the current commands. |
|
||||||
/// Commands are indented inside If, While, etc. sections. |
|
||||||
/// </summary> |
|
||||||
int IndentLevel { get; set; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Index of the command in the parent block's command list. |
|
||||||
/// </summary> |
|
||||||
int CommandIndex { get; set; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Set to true by the parent block while the command is executing. |
|
||||||
/// </summary> |
|
||||||
bool IsExecuting { get; set; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Timer used to control appearance of executing icon in inspector. |
|
||||||
/// </summary> |
|
||||||
float ExecutingIconTimer { get; set; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Reference to the Block object that this command belongs to. |
|
||||||
/// This reference is only populated at runtime and in the editor when the |
|
||||||
/// block is selected. |
|
||||||
/// </summary> |
|
||||||
Block ParentBlock { get; set; } |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns the Flowchart that this command belongs to. |
|
||||||
/// </summary> |
|
||||||
Flowchart GetFlowchart(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Execute the command. |
|
||||||
/// </summary> |
|
||||||
void Execute(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// End execution of this command and continue execution at the next command. |
|
||||||
/// </summary> |
|
||||||
void Continue(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// End execution of this command and continue execution at a specific command index. |
|
||||||
/// </summary> |
|
||||||
/// <param name="nextCommandIndex">Next command index.</param> |
|
||||||
void Continue(int nextCommandIndex); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Stops the parent Block executing. |
|
||||||
/// </summary> |
|
||||||
void StopParentBlock(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Called when the parent block has been requested to stop executing, and |
|
||||||
/// this command is the currently executing command. |
|
||||||
/// Use this callback to terminate any asynchronous operations and |
|
||||||
/// cleanup state so that the command is ready to execute again later on. |
|
||||||
/// </summary> |
|
||||||
void OnStopExecuting(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Called when the new command is added to a block in the editor. |
|
||||||
/// </summary> |
|
||||||
void OnCommandAdded(Block parentBlock); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Called when the command is deleted from a block in the editor. |
|
||||||
/// </summary> |
|
||||||
void OnCommandRemoved(Block parentBlock); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Called when this command starts execution. |
|
||||||
/// </summary> |
|
||||||
void OnEnter(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Called when this command ends execution. |
|
||||||
/// </summary> |
|
||||||
void OnExit(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Called when this command is reset. This happens when the Reset command is used. |
|
||||||
/// </summary> |
|
||||||
void OnReset(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Populates a list with the Blocks that this command references. |
|
||||||
/// </summary> |
|
||||||
void GetConnectedBlocks(ref List<Block> connectedBlocks); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns true if this command references the variable. |
|
||||||
/// Used to highlight variables in the variable list when a command is selected. |
|
||||||
/// </summary> |
|
||||||
bool HasReference(Variable variable); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns the summary text to display in the command inspector. |
|
||||||
/// </summary> |
|
||||||
string GetSummary(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns the help text to display for this command. |
|
||||||
/// </summary> |
|
||||||
string GetHelpText(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Return true if this command opens a block of commands. Used for indenting commands. |
|
||||||
/// </summary> |
|
||||||
bool OpenBlock(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Return true if this command closes a block of commands. Used for indenting commands. |
|
||||||
/// </summary> |
|
||||||
bool CloseBlock(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Return the color for the command background in inspector. |
|
||||||
/// </summary> |
|
||||||
/// <returns>The button color.</returns> |
|
||||||
Color GetButtonColor(); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns true if the specified property should be displayed in the inspector. |
|
||||||
/// This is useful for hiding certain properties based on the value of another property. |
|
||||||
/// </summary> |
|
||||||
bool IsPropertyVisible(string propertyName); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns true if the specified property should be displayed as a reorderable list in the inspector. |
|
||||||
/// This only applies for array properties and has no effect for non-array properties. |
|
||||||
/// </summary> |
|
||||||
bool IsReorderableArray(string propertyName); |
|
||||||
|
|
||||||
/// <summary> |
|
||||||
/// Returns the localization id for the Flowchart that contains this command. |
|
||||||
/// </summary> |
|
||||||
string GetFlowchartLocalizationId(); |
|
||||||
} |
|
||||||
} |
|
@ -1,12 +0,0 @@ |
|||||||
fileFormatVersion: 2 |
|
||||||
guid: 189c3f33fdd4b47608ac0aa3a2b971bb |
|
||||||
timeCreated: 1473856401 |
|
||||||
licenseType: Free |
|
||||||
MonoImporter: |
|
||||||
serializedVersion: 2 |
|
||||||
defaultReferences: [] |
|
||||||
executionOrder: 0 |
|
||||||
icon: {instanceID: 0} |
|
||||||
userData: |
|
||||||
assetBundleName: |
|
||||||
assetBundleVariant: |
|
Loading…
Reference in new issue