///Invoke Break callback. public void Break(FlowNode context) { if ( breakCall == null ) { context.Warn("Called Break without anything to break out from."); return; } breakCall(); }
///Invoke Return callback with provided return value public void Return(object value, FlowNode context) { if ( returnData.returnCall == null ) { context.Fail("Called Return without anything to return out from."); return; } if ( returnData.returnType != null ) { var valueType = value != null ? value.GetType() : null; if ( valueType == null || !valueType.RTIsAssignableTo(returnData.returnType) ) { context.Fail(string.Format("Return Value is not of expected type '{0}'", returnData.returnType.FriendlyName())); return; } } if ( returnData.returnType == null && value != null ) { context.Warn("Returning a value when no value is required."); } returnData.returnCall(value); }