@@ -381,18 +381,18 @@ private static void ApplyDefaultFunction(FunctionEntity functionEntity, Entity e
381381 return parameters ;
382382 }
383383
384- /* Get metadata about a parameter on an entity */
385- public static ( ParameterVariant ? , DataType ? ) GetParameterMetadata ( Entity entity , string parameter )
384+ /* Get metadata about a parameter on an entity: variant, type, and function/composite that implements (if applicable) */
385+ public static ( ParameterVariant ? , DataType ? , ShortGuid ) GetParameterMetadata ( Entity entity , string parameter )
386386 {
387387 return GetParameterMetadata ( entity , ShortGuidUtils . Generate ( parameter ) ) ;
388388 }
389- public static ( ParameterVariant ? , DataType ? ) GetParameterMetadata ( Entity entity , ShortGuid parameter )
389+ public static ( ParameterVariant ? , DataType ? , ShortGuid ) GetParameterMetadata ( Entity entity , ShortGuid parameter )
390390 {
391391 switch ( entity . variant )
392392 {
393393 case EntityVariant . VARIABLE :
394394 if ( parameter == ( ( VariableEntity ) entity ) . name )
395- return ( ParameterVariant . PARAMETER , ( ( VariableEntity ) entity ) . type ) ;
395+ return ( ParameterVariant . PARAMETER , ( ( VariableEntity ) entity ) . type , ShortGuid . Invalid ) ;
396396 break ;
397397 case EntityVariant . FUNCTION :
398398 FunctionEntity functionEntity = ( FunctionEntity ) entity ;
@@ -403,7 +403,7 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(Entity entity,
403403 {
404404 var metadata = GetParameterMetadata ( functionType . Value , parameter ) ;
405405 if ( metadata . Item1 != null )
406- return metadata ;
406+ return ( metadata . Item1 , metadata . Item2 , metadata . Item3 == null ? ShortGuid . Invalid : new ShortGuid ( ( UInt32 ) metadata . Item3 ) ) ;
407407 functionType = GetInheritedFunction ( functionType . Value ) ;
408408 if ( functionType == null ) break ;
409409 }
@@ -412,7 +412,7 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(Entity entity,
412412 {
413413 var metadata = GetParameterMetadata ( FunctionType . CompositeInterface , parameter ) ;
414414 if ( metadata . Item1 != null )
415- return metadata ;
415+ return ( metadata . Item1 , metadata . Item2 , metadata . Item3 == null ? ShortGuid . Invalid : new ShortGuid ( ( UInt32 ) metadata . Item3 ) ) ;
416416 Composite composite = _commands . GetComposite ( functionEntity . function ) ;
417417 if ( composite != null )
418418 {
@@ -421,10 +421,10 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(Entity entity,
421421 {
422422 CompositePinInfoTable . PinInfo info = CompositeUtils . GetParameterInfo ( composite , var ) ;
423423 if ( info == null )
424- return ( ParameterVariant . PARAMETER , var . type ) ;
424+ return ( ParameterVariant . PARAMETER , var . type , composite . shortGUID ) ;
425425 else
426426 {
427- return ( CompositeUtils . PinTypeToParameterVariant ( info . PinTypeGUID ) , var . type ) ;
427+ return ( CompositeUtils . PinTypeToParameterVariant ( info . PinTypeGUID ) , var . type , composite . shortGUID ) ;
428428 }
429429 }
430430 }
@@ -434,7 +434,7 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(Entity entity,
434434 {
435435 var metadata = GetParameterMetadata ( FunctionType . ProxyInterface , parameter ) ;
436436 if ( metadata . Item1 != null )
437- return metadata ;
437+ return ( metadata . Item1 , metadata . Item2 , metadata . Item3 == null ? ShortGuid . Invalid : new ShortGuid ( ( UInt32 ) metadata . Item3 ) ) ;
438438 ProxyEntity proxyEntity = ( ProxyEntity ) entity ;
439439 Entity proxiedEntity = proxyEntity . proxy . GetPointedEntity ( _commands ) ;
440440 if ( proxiedEntity != null )
@@ -448,26 +448,26 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(Entity entity,
448448 return GetParameterMetadata ( aliasedEntity , parameter ) ;
449449 break ;
450450 }
451- return ( null , null ) ;
451+ return ( null , null , ShortGuid . Invalid ) ;
452452 }
453453
454- /* Get metadata about a parameter on a function */
455- public static ( ParameterVariant ? , DataType ? ) GetParameterMetadata ( FunctionType function , string parameter )
454+ /* Get metadata about a parameter on a function: variant, type, and function that implements */
455+ public static ( ParameterVariant ? , DataType ? , FunctionType ? ) GetParameterMetadata ( FunctionType function , string parameter )
456456 {
457457 return GetParameterMetadata ( function , ShortGuidUtils . Generate ( parameter ) ) ;
458458 }
459- public static ( ParameterVariant ? , DataType ? ) GetParameterMetadata ( FunctionType function , ShortGuid parameter )
459+ public static ( ParameterVariant ? , DataType ? , FunctionType ? ) GetParameterMetadata ( FunctionType function , ShortGuid parameter )
460460 {
461461 Dictionary < ParameterVariant , int > offsets = _functionVariantOffsets [ function ] ;
462462 foreach ( KeyValuePair < ParameterVariant , int > entry in offsets )
463463 {
464- ( ParameterVariant ? , DataType ? ) data = GetParameterMetadata ( function , parameter , entry . Key ) ;
465- if ( data . Item1 != null && data . Item2 != null )
464+ ( ParameterVariant ? , DataType ? , FunctionType ? ) data = GetParameterMetadata ( function , parameter , entry . Key ) ;
465+ if ( data . Item1 != null && data . Item2 != null && data . Item3 != null )
466466 return data ;
467467 }
468- return ( null , null ) ;
468+ return ( null , null , null ) ;
469469 }
470- public static ( ParameterVariant ? , DataType ? ) GetParameterMetadata ( FunctionType function , ShortGuid parameter , ParameterVariant variant )
470+ public static ( ParameterVariant ? , DataType ? , FunctionType ? ) GetParameterMetadata ( FunctionType function , ShortGuid parameter , ParameterVariant variant )
471471 {
472472 List < ( ShortGuid , ParameterVariant , DataType ) > parameters = new List < ( ShortGuid , ParameterVariant , DataType ) > ( ) ;
473473 using ( BinaryReader reader = new BinaryReader ( new MemoryStream ( _functionInfo ) ) )
@@ -485,12 +485,12 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(FunctionType f
485485 case ParameterVariant . METHOD_FUNCTION :
486486 case ParameterVariant . METHOD_PIN :
487487 if ( isCorrectParam )
488- return ( variant , DataType . FLOAT ) ;
488+ return ( variant , DataType . FLOAT , function ) ;
489489 break ;
490490 default :
491491 DataType dataType = ( DataType ) reader . ReadInt32 ( ) ;
492492 if ( isCorrectParam )
493- return ( variant , dataType ) ;
493+ return ( variant , dataType , function ) ;
494494 switch ( dataType )
495495 {
496496 case DataType . BOOL :
@@ -540,7 +540,7 @@ public static (ParameterVariant?, DataType?) GetParameterMetadata(FunctionType f
540540 }
541541 }
542542 }
543- return ( null , null ) ;
543+ return ( null , null , null ) ;
544544 }
545545
546546 /* Create ParameterData with default values for the given entity's parameter */
@@ -747,8 +747,8 @@ public static ParameterData CreateDefaultParameterData(FunctionType function, Sh
747747 reader . BaseStream . Position += 4 ;
748748 break ;
749749 default :
750- return new cFloat ( ) ;
751- //Any other types have no default values.
750+ if ( isCorrectParam )
751+ return new cFloat ( ) ; //Any other types have no default values.
752752 break ;
753753 }
754754 break ;
0 commit comments