Esempio n. 1
0
 /// <summary>
 /// Set the value of any numeric type from a string point
 /// CAUTION: This routine does not do enum name conversion
 /// </summary>
 /// <param name="data">pointer to property data to set</param>
 /// <param name="value">Value (as a string) to set</param>
 public void SetNumericPropertyValueFromString(IntPtr data, string value)
 {
     using (FStringUnsafe valueUnsafe = new FStringUnsafe(value))
     {
         Native_UNumericProperty.SetNumericPropertyValueFromString(Address, data, ref valueUnsafe.Array);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Get the value of any numeric type and return it as a string
 /// CAUTION: This routine does not do enum name conversion
 /// </summary>
 /// <param name="data">pointer to property data to get</param>
 /// <returns>Data as a string</returns>
 public string GetNumericPropertyValueToString(IntPtr data)
 {
     using (FStringUnsafe resultUnsafe = new FStringUnsafe())
     {
         Native_UNumericProperty.GetNumericPropertyValueToString(Address, data, ref resultUnsafe.Array);
         return(resultUnsafe.Value);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Validates that the given property exists and matches the given UProperty class (e.g. UBoolProperty::StaticClass())
        /// </summary>
        /// <param name="unrealStruct">The address of the structure which owns the property</param>
        /// <param name="propertyName">The name of the property</param>
        /// <param name="propertyClass">The expected UProperty class of the property</param>
        /// <returns></returns>
        public static bool ValidatePropertyClass(IntPtr unrealStruct, string propertyName, IntPtr propertyClass)
        {
            IntPtr field = FindField(unrealStruct, propertyName);

            if (field == IntPtr.Zero || !Native_UObjectBaseUtility.IsA(field, Classes.UProperty))
            {
                return(false);
            }
            IntPtr actualClass = Native_UObjectBase.GetClass(field);

            if (actualClass == propertyClass)
            {
                return(true);
            }
            if (actualClass != IntPtr.Zero && propertyClass == Classes.UEnumProperty &&
                Native_UStruct.IsChildOf(actualClass, Classes.UNumericProperty))
            {
                return(Native_UNumericProperty.IsEnum(field));
            }
            return(false);
        }
Esempio n. 4
0
 /// <summary>
 /// Gets the value of a signed integral property type
 /// </summary>
 /// <param name="data">pointer to property data to get</param>
 /// <returns>Data as a signed int</returns>
 public long GetSignedIntPropertyValue(IntPtr data)
 {
     return(Native_UNumericProperty.GetSignedIntPropertyValue(Address, data));
 }
Esempio n. 5
0
 /// <summary>
 /// Set the value of a floating point property type
 /// </summary>
 /// <param name="data">pointer to property data to set</param>
 /// <param name="value">Value to set data to</param>
 public void SetFloatingPointPropertyValue(IntPtr data, double value)
 {
     Native_UNumericProperty.SetFloatingPointPropertyValue(Address, data, value);
 }
Esempio n. 6
0
 /// <summary>
 /// Set the value of a signed integral property type
 /// </summary>
 /// <param name="data">pointer to property data to set</param>
 /// <param name="value">Value to set data to</param>
 public void SetIntPropertyValue(IntPtr data, long value)
 {
     Native_UNumericProperty.SetIntPropertyValueSigned(Address, data, value);
 }
Esempio n. 7
0
 /// <summary>
 /// Return the UEnum if this property is a UByteProperty with a non-null Enum
 /// </summary>
 /// <returns></returns>
 public UEnum GetIntPropertyEnum()
 {
     return(GCHelper.Find <UEnum>(Native_UNumericProperty.GetIntPropertyEnum(Address)));
 }
Esempio n. 8
0
 /// <summary>
 /// Gets the value of an floating point property type
 /// </summary>
 /// <param name="data">pointer to property data to get</param>
 /// <returns>Data as a double</returns>
 public double GetFloatingPointPropertyValue(IntPtr data)
 {
     return(Native_UNumericProperty.GetFloatingPointPropertyValue(Address, data));
 }