public FScriptSetHelper(IntPtr setProperty, IntPtr set) { this.setProperty = setProperty; this.set = (FScriptSet *)set; setLayout = Native_USetProperty.Get_SetLayout(setProperty); elementProp = Native_USetProperty.Get_ElementProp(setProperty); elementSize = Native_UProperty.Get_ElementSize(elementProp); elementArrayDim = Native_UProperty.Get_ArrayDim(elementProp); }
public void Add(string propertyName, ELifetimeCondition condition = ELifetimeCondition.None, ELifetimeRepNotifyCondition repNotifyCondition = ELifetimeRepNotifyCondition.OnChanged) { IntPtr property = FindProperty(propertyName); int arrayDim = Native_UProperty.Get_ArrayDim(property); ushort repIndex = Native_UProperty.Get_RepIndex(property); for (ushort i = 0; i < arrayDim; i++) { dest.Add(new FLifetimeProperty((ushort)(repIndex + i), condition, repNotifyCondition)); } }
public FScriptMapHelper(IntPtr mapProperty, IntPtr map) { this.mapProperty = mapProperty; this.map = (FScriptMap *)map; mapLayout = Native_UMapProperty.Get_MapLayout(mapProperty); keyProp = Native_UMapProperty.Get_KeyProp(mapProperty); keySize = Native_UProperty.Get_ElementSize(keyProp); keyArrayDim = Native_UProperty.Get_ArrayDim(keyProp); valueProp = Native_UMapProperty.Get_ValueProp(mapProperty); valueSize = Native_UProperty.Get_ElementSize(valueProp); valueArrayDim = Native_UProperty.Get_ArrayDim(valueProp); }
public bool Update(IntPtr address) { if (Address != address) { Address = address; Size = 0; ArrayDim = 0; IsEditConst = false; IsBlueprintReadOnly = false; GenericArg1Address = IntPtr.Zero; GenericArg1Size = 0; GenericArg1ArrayDim = 0; GenericArg2Address = IntPtr.Zero; GenericArg2Size = 0; GenericArg2ArrayDim = 0; PropertyType = EPropertyType.Unknown; if (address == IntPtr.Zero) { return(true); } EPropertyType propertyType = NativeReflection.GetPropertyType(address); if (propertyType != EPropertyType.Unknown) { PropertyType = propertyType; Size = Native_UProperty.Get_ElementSize(address); ArrayDim = Native_UProperty.Get_ArrayDim(address); IsEditConst = Native_UProperty.HasAnyPropertyFlags(address, EPropertyFlags.EditConst); IsBlueprintReadOnly = Native_UProperty.HasAnyPropertyFlags(address, EPropertyFlags.BlueprintReadOnly); switch (propertyType) { case EPropertyType.Array: GenericArg1Address = Native_UArrayProperty.Get_Inner(address); if (GenericArg1Address != IntPtr.Zero) { GenericArg1Size = Native_UProperty.Get_ElementSize(GenericArg1Address); GenericArg1ArrayDim = Native_UProperty.Get_ArrayDim(GenericArg1Address); } break; case EPropertyType.Map: GenericArg1Address = Native_UMapProperty.Get_KeyProp(address); if (GenericArg1Address != IntPtr.Zero) { GenericArg1Size = Native_UProperty.Get_ElementSize(GenericArg1Address); GenericArg1ArrayDim = Native_UProperty.Get_ArrayDim(GenericArg1Address); } GenericArg2Address = Native_UMapProperty.Get_ValueProp(address); if (GenericArg2Address != IntPtr.Zero) { GenericArg2Size = Native_UProperty.Get_ElementSize(GenericArg2Address); GenericArg2ArrayDim = Native_UProperty.Get_ArrayDim(GenericArg2Address); } break; case EPropertyType.Set: GenericArg1Address = Native_USetProperty.Get_ElementProp(address); if (GenericArg1Address != IntPtr.Zero) { GenericArg1Size = Native_UProperty.Get_ElementSize(GenericArg1Address); GenericArg1ArrayDim = Native_UProperty.Get_ArrayDim(GenericArg1Address); } break; } } return(true); } return(false); }