diff --git a/Assets/Fungus/FungusScript/Editor/SequenceEditor.cs b/Assets/Fungus/FungusScript/Editor/SequenceEditor.cs index 0ee2e5dd..fc480277 100644 --- a/Assets/Fungus/FungusScript/Editor/SequenceEditor.cs +++ b/Assets/Fungus/FungusScript/Editor/SequenceEditor.cs @@ -208,9 +208,16 @@ namespace Fungus continue; } - indentLevel += command.GetPreIndent(); + if (command.CloseBlock()) + { + indentLevel--; + } command.indentLevel = Math.Max(indentLevel, 0); - indentLevel += command.GetPostIndent(); + + if (command.OpenBlock()) + { + indentLevel++; + } } } diff --git a/Assets/Fungus/FungusScript/Scripts/Command.cs b/Assets/Fungus/FungusScript/Scripts/Command.cs index 3fcf0e79..31f391fb 100644 --- a/Assets/Fungus/FungusScript/Scripts/Command.cs +++ b/Assets/Fungus/FungusScript/Scripts/Command.cs @@ -158,19 +158,19 @@ namespace Fungus } /** - * Indent offset for this command. + * This command starts a block of commands. */ - public virtual int GetPreIndent() + public virtual bool OpenBlock() { - return 0; + return false; } /** - * Indent offset for subsequent commands. + * This command ends a block of commands. */ - public virtual int GetPostIndent() + public virtual bool CloseBlock() { - return 0; + return false; } /** diff --git a/Assets/Fungus/FungusScript/Scripts/Commands/Else.cs b/Assets/Fungus/FungusScript/Scripts/Commands/Else.cs index e6ece951..8d4e7ad2 100644 --- a/Assets/Fungus/FungusScript/Scripts/Commands/Else.cs +++ b/Assets/Fungus/FungusScript/Scripts/Commands/Else.cs @@ -43,15 +43,15 @@ namespace Fungus // No matching EndIf command found, so just stop the sequence Stop(); } - - public override int GetPreIndent() + + public override bool OpenBlock() { - return -1; + return true; } - public override int GetPostIndent() + public override bool CloseBlock() { - return 1; + return true; } public override Color GetButtonColor() diff --git a/Assets/Fungus/FungusScript/Scripts/Commands/End.cs b/Assets/Fungus/FungusScript/Scripts/Commands/End.cs index 2a795d2a..389f716b 100644 --- a/Assets/Fungus/FungusScript/Scripts/Commands/End.cs +++ b/Assets/Fungus/FungusScript/Scripts/Commands/End.cs @@ -15,9 +15,9 @@ namespace Fungus Continue(); } - public override int GetPreIndent() + public override bool CloseBlock() { - return -1; + return true; } public override Color GetButtonColor() diff --git a/Assets/Fungus/FungusScript/Scripts/Commands/EndIf.cs b/Assets/Fungus/FungusScript/Scripts/Commands/EndIf.cs index 3280f1b0..84d8c99d 100644 --- a/Assets/Fungus/FungusScript/Scripts/Commands/EndIf.cs +++ b/Assets/Fungus/FungusScript/Scripts/Commands/EndIf.cs @@ -16,9 +16,9 @@ namespace Fungus Continue(); } - public override int GetPreIndent() + public override bool CloseBlock() { - return -1; + return true; } public override Color GetButtonColor() diff --git a/Assets/Fungus/FungusScript/Scripts/Commands/If.cs b/Assets/Fungus/FungusScript/Scripts/Commands/If.cs index b01d7a51..c94efd1a 100644 --- a/Assets/Fungus/FungusScript/Scripts/Commands/If.cs +++ b/Assets/Fungus/FungusScript/Scripts/Commands/If.cs @@ -235,9 +235,9 @@ namespace Fungus return (variable == this.variable); } - public override int GetPostIndent() + public override bool OpenBlock() { - return 1; + return true; } public override Color GetButtonColor()