public void RenameParameter(string oldName, string newName)
        {
            FsmParameter parameter = GetParameter(oldName);

            // Prevent duplicate names
            string name = newName;

            while (_parameters.Find(p => p.name.Equals(name)) != null && name != oldName)
            {
                name = IncrementName(name);
            }

            parameter.name = name;

            foreach (StateInstance si in stateInstances)
            {
                foreach (TransitionInstance transition in si.transitions)
                {
                    foreach (FsmCondition condition in transition.transition)
                    {
                        if (condition.Contains(oldName))
                        {
                            condition.ReplaceParameter(parameter);
                        }
                    }
                }
            }
        }
Exemple #2
0
 private FsmCondition(Type type, FsmParameter parameter, float value)
 {
     _type       = type;
     _parameter  = parameter;
     _boolValue  = false;
     _intValue   = (int)value;
     _floatValue = value;
 }
Exemple #3
0
 private FsmCondition(Type type, FsmParameter parameter, bool value)
 {
     _type       = type;
     _parameter  = parameter;
     _boolValue  = value;
     _intValue   = 0;
     _floatValue = 0f;
 }
        public FsmParameter GetParameter(string name)
        {
            FsmParameter parameter = _parameters.Find(p => p.name.Equals(name));

            if (parameter == null)
            {
                throw new KeyNotFoundException("Parameter " + name + " does not exist");
            }
            return(parameter);
        }
Exemple #5
0
        public static FsmParameter NewFloat(string name, float value = 0f)
        {
            FsmParameter p = new FsmParameter {
                name       = name,
                type       = Type.FLOAT,
                floatValue = value
            };

            return(p);
        }
Exemple #6
0
        public static FsmParameter NewInteger(string name, int value = 0)
        {
            FsmParameter p = new FsmParameter {
                name     = name,
                type     = Type.INTEGER,
                intValue = value
            };

            return(p);
        }
Exemple #7
0
        public static FsmParameter NewBoolean(string name, bool value = false)
        {
            FsmParameter p = new FsmParameter {
                name      = name,
                type      = Type.BOOLEAN,
                boolValue = value
            };

            return(p);
        }
        public void AddParameter(FsmParameter parameter)
        {
            // Prevent duplicate names
            string name = parameter != null ? parameter.name : "New parameter";

            while (_parameters.Find(p => p.name.Equals(name)) != null)
            {
                name = IncrementName(name);
            }

            _parameters.Add(parameter);
        }
        public void RemoveParameter(string name)
        {
            FsmParameter parameter = GetParameter(name);

            // Remove all conditions using the removed parameter
            foreach (StateInstance stateInstance in stateInstances)
            {
                foreach (TransitionInstance transitionInstance in stateInstance.transitions)
                {
                    transitionInstance.transition.RemoveParameter(parameter);
                }
            }

            _parameters.Remove(parameter);
        }
Exemple #10
0
 public static FsmCondition NewSmallerThan(FsmParameter parameter, int value)
 {
     return(new FsmCondition(Type.SMALLER_THAN, parameter, value));
 }
Exemple #11
0
 public static FsmCondition NewGreaterThan(FsmParameter parameter, float value)
 {
     return(new FsmCondition(Type.GREATER_THAN, parameter, value));
 }
Exemple #12
0
 public static FsmCondition NewEquals(FsmParameter parameter, float value)
 {
     return(new FsmCondition(Type.EQUALS, parameter, value));
 }
Exemple #13
0
 public static FsmCondition NewTrigger(FsmParameter parameter)
 {
     return(new FsmCondition(Type.TRIGGER, parameter, false));
 }
Exemple #14
0
 public void OnAfterDeserialize()
 {
     // Parameter will be filled by FiniteStateMachine
     _parameter = null;
 }
Exemple #15
0
 public void ReplaceParameter(FsmParameter parameter)
 {
     _parameterName = parameter.name;
     _parameter     = parameter;
 }
Exemple #16
0
 public void RemoveParameter(FsmParameter parameter)
 {
     conditions.RemoveAll(c => c.Contains(parameter.name));
 }