/// <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); } }
/// <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); } }
/// <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); }
/// <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)); }
/// <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); }
/// <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); }
/// <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))); }
/// <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)); }