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); } } } } }
private FsmCondition(Type type, FsmParameter parameter, float value) { _type = type; _parameter = parameter; _boolValue = false; _intValue = (int)value; _floatValue = value; }
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); }
public static FsmParameter NewFloat(string name, float value = 0f) { FsmParameter p = new FsmParameter { name = name, type = Type.FLOAT, floatValue = value }; return(p); }
public static FsmParameter NewInteger(string name, int value = 0) { FsmParameter p = new FsmParameter { name = name, type = Type.INTEGER, intValue = value }; return(p); }
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); }
public static FsmCondition NewSmallerThan(FsmParameter parameter, int value) { return(new FsmCondition(Type.SMALLER_THAN, parameter, value)); }
public static FsmCondition NewGreaterThan(FsmParameter parameter, float value) { return(new FsmCondition(Type.GREATER_THAN, parameter, value)); }
public static FsmCondition NewEquals(FsmParameter parameter, float value) { return(new FsmCondition(Type.EQUALS, parameter, value)); }
public static FsmCondition NewTrigger(FsmParameter parameter) { return(new FsmCondition(Type.TRIGGER, parameter, false)); }
public void OnAfterDeserialize() { // Parameter will be filled by FiniteStateMachine _parameter = null; }
public void ReplaceParameter(FsmParameter parameter) { _parameterName = parameter.name; _parameter = parameter; }
public void RemoveParameter(FsmParameter parameter) { conditions.RemoveAll(c => c.Contains(parameter.name)); }