Browse Source

Reverted ICommand interface

master
Christopher 8 years ago
parent
commit
75f5b5217f
  1. 2
      Assets/Fungus/Scripts/Commands/Else.cs
  2. 2
      Assets/Fungus/Scripts/Commands/ElseIf.cs
  3. 6
      Assets/Fungus/Scripts/Components/Block.cs
  4. 4
      Assets/Fungus/Scripts/Components/Command.cs
  5. 6
      Assets/Fungus/Scripts/Components/Flowchart.cs
  6. 166
      Assets/Fungus/Scripts/Interfaces/ICommand.cs
  7. 12
      Assets/Fungus/Scripts/Interfaces/ICommand.cs.meta
  8. 39
      ProjectSettings/ProjectSettings.asset

2
Assets/Fungus/Scripts/Commands/Else.cs

@ -32,7 +32,7 @@ namespace Fungus.Commands
int indent = indentLevel; int indent = indentLevel;
for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i) for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i)
{ {
ICommand command = ParentBlock.CommandList[i]; var command = ParentBlock.CommandList[i];
if (command.IndentLevel == indent) if (command.IndentLevel == indent)
{ {

2
Assets/Fungus/Scripts/Commands/ElseIf.cs

@ -40,7 +40,7 @@ namespace Fungus.Commands
int indent = indentLevel; int indent = indentLevel;
for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i) for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i)
{ {
ICommand command = ParentBlock.CommandList[i]; var command = ParentBlock.CommandList[i];
if (command.IndentLevel == indent) if (command.IndentLevel == indent)
{ {

6
Assets/Fungus/Scripts/Components/Block.cs

@ -74,7 +74,7 @@ namespace Fungus
// Give each child command a reference back to its parent block // Give each child command a reference back to its parent block
// and tell each command its index in the list. // and tell each command its index in the list.
int index = 0; int index = 0;
foreach (ICommand command in commandList) foreach (var command in commandList)
{ {
if (command == null) if (command == null)
{ {
@ -100,7 +100,7 @@ namespace Fungus
protected virtual void Update() protected virtual void Update()
{ {
int index = 0; int index = 0;
foreach (ICommand command in commandList) foreach (var command in commandList)
{ {
if (command == null) // Null entry will be deleted automatically later if (command == null) // Null entry will be deleted automatically later
{ {
@ -358,7 +358,7 @@ namespace Fungus
public virtual void UpdateIndentLevels() public virtual void UpdateIndentLevels()
{ {
int indentLevel = 0; int indentLevel = 0;
foreach (ICommand command in commandList) foreach (var command in commandList)
{ {
if (command == null) if (command == null)
{ {

4
Assets/Fungus/Scripts/Components/Command.cs

@ -37,7 +37,7 @@ namespace Fungus
/// <summary> /// <summary>
/// Base class for Commands. Commands can be added to Blocks to create an execution sequence. /// Base class for Commands. Commands can be added to Blocks to create an execution sequence.
/// </summary> /// </summary>
public class Command : MonoBehaviour, ICommand public abstract class Command : MonoBehaviour
{ {
[FormerlySerializedAs("commandId")] [FormerlySerializedAs("commandId")]
[HideInInspector] [HideInInspector]
@ -48,7 +48,7 @@ namespace Fungus
protected string errorMessage = ""; protected string errorMessage = "";
#region ICommand implementation #region Public methods
/// <summary> /// <summary>
/// Unique identifier for this command. /// Unique identifier for this command.

6
Assets/Fungus/Scripts/Components/Flowchart.cs

@ -211,7 +211,7 @@ namespace Fungus
usedIds.Add(block.ItemId); usedIds.Add(block.ItemId);
} }
var commands = GetComponents<ICommand>(); var commands = GetComponents<Command>();
foreach (var command in commands) foreach (var command in commands)
{ {
if (command.ItemId == -1 || if (command.ItemId == -1 ||
@ -413,7 +413,7 @@ namespace Fungus
maxId = Math.Max(maxId, block.ItemId); maxId = Math.Max(maxId, block.ItemId);
} }
var commands = GetComponents<ICommand>(); var commands = GetComponents<Command>();
foreach (var command in commands) foreach (var command in commands)
{ {
maxId = Math.Max(maxId, command.ItemId); maxId = Math.Max(maxId, command.ItemId);
@ -940,7 +940,7 @@ namespace Fungus
{ {
if (resetCommands) if (resetCommands)
{ {
ICommand[] commands = GetComponents<ICommand>(); var commands = GetComponents<Command>();
foreach (var command in commands) foreach (var command in commands)
{ {
command.OnReset(); command.OnReset();

166
Assets/Fungus/Scripts/Interfaces/ICommand.cs

@ -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();
}
}

12
Assets/Fungus/Scripts/Interfaces/ICommand.cs.meta

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 189c3f33fdd4b47608ac0aa3a2b971bb
timeCreated: 1473856401
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

39
ProjectSettings/ProjectSettings.asset

@ -500,7 +500,44 @@ PlayerSettings:
WebGL::emscriptenArgs: WebGL::emscriptenArgs:
WebGL::template: APPLICATION:Default WebGL::template: APPLICATION:Default
additionalIl2CppArgs::additionalIl2CppArgs: additionalIl2CppArgs::additionalIl2CppArgs:
vectorPropertyNames: [] vectorPropertyNames:
- Android::VR::enabledDevices
- Metro::VR::enabledDevices
- N3DS::VR::enabledDevices
- PS3::VR::enabledDevices
- PS4::VR::enabledDevices
- PSM::VR::enabledDevices
- PSP2::VR::enabledDevices
- SamsungTV::VR::enabledDevices
- Standalone::VR::enabledDevices
- Tizen::VR::enabledDevices
- WebGL::VR::enabledDevices
- WebPlayer::VR::enabledDevices
- WiiU::VR::enabledDevices
- Xbox360::VR::enabledDevices
- XboxOne::VR::enabledDevices
- iOS::VR::enabledDevices
- tvOS::VR::enabledDevices
Android::VR::enabledDevices:
- Oculus
Metro::VR::enabledDevices: []
N3DS::VR::enabledDevices: []
PS3::VR::enabledDevices: []
PS4::VR::enabledDevices:
- PlayStationVR
PSM::VR::enabledDevices: []
PSP2::VR::enabledDevices: []
SamsungTV::VR::enabledDevices: []
Standalone::VR::enabledDevices:
- Oculus
Tizen::VR::enabledDevices: []
WebGL::VR::enabledDevices: []
WebPlayer::VR::enabledDevices: []
WiiU::VR::enabledDevices: []
Xbox360::VR::enabledDevices: []
XboxOne::VR::enabledDevices: []
iOS::VR::enabledDevices: []
tvOS::VR::enabledDevices: []
cloudProjectId: cloudProjectId:
projectName: projectName:
organizationId: organizationId:

Loading…
Cancel
Save