An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
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.

60 lines
1.8 KiB

// 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.Commands
{
/// <summary>
/// Stops execution of all Blocks in a Flowchart.
/// </summary>
[CommandInfo("Flow",
"Stop Flowchart",
"Stops execution of all Blocks in a Flowchart")]
[AddComponentMenu("")]
public class StopFlowchart : Command
{
[Tooltip("Stop all executing Blocks in the Flowchart that contains this command")]
[SerializeField] protected bool stopParentFlowchart;
[Tooltip("Stop all executing Blocks in a list of target Flowcharts")]
[SerializeField] protected List<Flowchart> targetFlowcharts = new List<Flowchart>();
public override void OnEnter()
{
IFlowchart flowchart = GetFlowchart();
if (stopParentFlowchart)
{
flowchart.StopAllBlocks();
}
foreach (IFlowchart f in targetFlowcharts)
{
if (f == flowchart)
{
// Flowchart has already been stopped
continue;
}
f.StopAllBlocks();
}
}
public override bool IsReorderableArray(string propertyName)
{
if (propertyName == "targetFlowcharts")
{
return true;
}
return false;
}
public override Color GetButtonColor()
{
return new Color32(235, 191, 217, 255);
}
}
}