public override void RegisterPorts(FlowNode node)
        {
            instanceInput = null;
            var instance = Params.instanceDef;

            if (instance.paramMode != ParamMode.Undefined)
            {
                instanceInput = node.AddValueInput(instance.portName, instance.paramType, instance.portId);
            }
            var list = Params.paramDefinitions;

            if (list == null)
            {
                return;
            }
            for (var i = 0; i <= list.Count - 1; i++)
            {
                var def = list[i];
                if (def.paramMode != ParamMode.Out)
                {
                    continue;
                }
                ValueHandlerObject handler = null;
                var field = def.presentedInfo as FieldInfo;
                if (field != null)
                {
                    handler = GetPortHandler(field);
                }
                var method = def.presentedInfo as MethodInfo;
                if (method != null)
                {
                    handler = GetPortHandler(method);
                }
                if (handler != null)
                {
                    node.AddValueOutput(def.portName, def.paramType, handler, def.portId);
                }
            }
        }
Exemplo n.º 2
0
 ///Creates a generic instance of ValueOutput
 public static ValueOutput CreateInstance(Type t, FlowNode parent, string name, string ID, ValueHandlerObject getter)
 {
     return((ValueOutput)Activator.CreateInstance(typeof(ValueOutput <>).RTMakeGenericType(t), new object[] { parent, name, ID, getter }));
 }
Exemplo n.º 3
0
 public ValueOutput AddValueOutput(string name, Type type, ValueHandlerObject getter, string ID = "")
 {
     QualifyPortNameAndID(ref name, ref ID, outputPorts);
     return((ValueOutput)(outputPorts[ID] = ValueOutput.CreateInstance(type, this, name, ID, getter)));
 }
Exemplo n.º 4
0
 ///Add an object port of unkown runtime type. getter is a function to get the port value from. Returns the new ValueOutput object.
 ///It is always recommended to use the generic versions to avoid value boxing/unboxing!
 public ValueOutput AddValueOutput(string name, string ID, Type type, ValueHandlerObject getter)
 {
     return(AddValueOutput(name, type, getter, ID));
 }