public override void Reset()
 {
     Filter       = null;
     VariableType = FsmVariableType.All;
     SaveNow      = true;
     base.Reset();
 }
 public override void Reset()
 {
     Filter            = null;
     VariableType      = FsmVariableType.All;
     DataNotFoundEvent = null;
     LoadNow           = true;
     base.Reset();
 }
예제 #3
0
        // Perform an action with a batch of FSM variables
        protected bool DoBatchVariableAction(FsmVariables fsmVariables, VariableAction variableAction, string filter, FsmVariableType fsmVariableType)
        {
            // Check data
            if (fsmVariables == null)
            {
                throw new ArgumentNullException("fsmVariables", "Cannot do action with null FSM variable batch: " + variableAction);
            }

            NamedVariable[] fsmVariableSubset;
            switch (fsmVariableType)
            {
            case FsmVariableType.All:
                fsmVariableSubset = fsmVariables.GetAllNamedVariables();
                break;

            case FsmVariableType.Bool:
                fsmVariableSubset = fsmVariables.BoolVariables;
                break;

            case FsmVariableType.Color:
                fsmVariableSubset = fsmVariables.ColorVariables;
                break;

            case FsmVariableType.Float:
                fsmVariableSubset = fsmVariables.FloatVariables;
                break;

            case FsmVariableType.GameObject:
                fsmVariableSubset = fsmVariables.GameObjectVariables;
                break;

            case FsmVariableType.Int:
                fsmVariableSubset = fsmVariables.IntVariables;
                break;

            case FsmVariableType.Quaternion:
                fsmVariableSubset = fsmVariables.QuaternionVariables;
                break;

            case FsmVariableType.Rect:
                fsmVariableSubset = fsmVariables.RectVariables;
                break;

            case FsmVariableType.String:
                fsmVariableSubset = fsmVariables.StringVariables;
                break;

            case FsmVariableType.Vector2:
                fsmVariableSubset = fsmVariables.Vector2Variables;
                break;

            case FsmVariableType.Vector3:
                fsmVariableSubset = fsmVariables.Vector3Variables;
                break;

            case FsmVariableType.Array:
                fsmVariableSubset = fsmVariables.ArrayVariables;
                break;

            case FsmVariableType.Enum:
                fsmVariableSubset = fsmVariables.EnumVariables;
                break;

            default:
                throw new NotSupportedException("Invalid FSM variable type: " + fsmVariableType);
            }

            // Process each FSM variable
            var allComplete = true;

            foreach (var currentVariable in fsmVariableSubset)
            {
                if (MatchFilter(currentVariable.Name, filter) && IsValidFsmVariableType(currentVariable))
                {
                    if (!DoVariableAction(variableAction, currentVariable, null))
                    {
                        allComplete = false;
                    }
                }
            }
            return(allComplete);
        }