You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.1 KiB
52 lines
1.1 KiB
using UnityEngine; |
|
using System.Collections; |
|
using System.Collections.Generic; |
|
|
|
namespace Fungus.Script |
|
{ |
|
[CommandInfo("Scripting", |
|
"Else", |
|
"Marks the start of a sequence block to be executed when the preceding If statement is false.", |
|
253, 253, 150)] |
|
public class Else : FungusCommand |
|
{ |
|
public override void OnEnter() |
|
{ |
|
// Find the next EndIf command at the same indent level as this Else command |
|
bool foundThisCommand = false; |
|
int indent = indentLevel; |
|
foreach(FungusCommand command in parentSequence.commandList) |
|
{ |
|
if (foundThisCommand && |
|
command.indentLevel == indent) |
|
{ |
|
System.Type type = command.GetType(); |
|
if (type == typeof(EndIf)) |
|
{ |
|
// Execute command immediately after the EndIf command |
|
Continue(command); |
|
return; |
|
} |
|
} |
|
else if (command == this) |
|
{ |
|
foundThisCommand = true; |
|
} |
|
} |
|
|
|
// No matching EndIf command found, so just stop the sequence |
|
Stop(); |
|
} |
|
|
|
public override int GetPreIndent() |
|
{ |
|
return -1; |
|
} |
|
|
|
public override int GetPostIndent() |
|
{ |
|
return 1; |
|
} |
|
} |
|
|
|
} |