Example #1
0
        private static void RunSimple()
        {
            UEnum unrealEnum = UEnum.GetEnum <Test_SimpleEnum>();

            Tests.Assert(unrealEnum != null, "Test_SimpleEnum");

            Tests.AssertEnumValue(unrealEnum, "Val1", 0);
            Tests.AssertEnumValue(unrealEnum, "Val2", 2);
            Tests.AssertEnumValue(unrealEnum, "Val3", 4);
        }
            internal static unsafe Name Invoke(UEnum UEnum, byte EnumeratorValue)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0)) = UEnum;
                *(b + 8)             = EnumeratorValue;
                Main.GetProcessEvent(KismetNodeHelperLibrary.DefaultObject, GetEnumeratorName_ptr, new IntPtr(p));;
                return(*((Name *)(b + 12)));
            }
        }
Example #3
0
        private static void RunAdvanced()
        {
            UEnum unrealEnum = UEnum.GetEnum <Test_AdvancedEnum>();

            Tests.Assert(unrealEnum != null, "Test_AdvancedEnum");

            Tests.AssertEnumValue(unrealEnum, "Val1", 1);
            Tests.AssertEnumValue(unrealEnum, "Val2", 2);
            Tests.AssertEnumValue(unrealEnum, "Val3", 5);
            Tests.AssertEnumValue(unrealEnum, "Val4", 0x0001000000000000);
            Tests.AssertEnumValue(unrealEnum, "Val5", 0x0020000000000000);
        }
Example #4
0
        private static void PrintEnumValues(UEnum unrealEnum)
        {
            Dictionary <string, long> values = new Dictionary <string, long>();
            int numValues = unrealEnum.NumEnums() - 1;// skip Max value

            for (int i = 0; i < numValues; i++)
            {
                values[unrealEnum.GetNameStringByIndex(i)] = unrealEnum.GetValueByIndex(i);
            }

            foreach (KeyValuePair <string, long> value in values)
            {
                Debug.WriteLine(value.Key + ":" + value.Value);
            }
        }
Example #5
0
            public async Task <List <string> > GetNames()
            {
                if (ObjEnum.Empty())
                {
                    ObjEnum = await Object.Cast <UEnum>();
                }

                // Get Names
                IntPtr dataAddress = ObjEnum.Names.Data;

                if (ObjEnum.Names.Count > 300)
                {
                    throw new IndexOutOfRangeException("Enum have more than 300 value !!, Maybe EngineStructs Problem.!");
                }

                var cls    = Utils.MemObj.ReadClassArray <FUEnumItem>(dataAddress, ObjEnum.Names.Count);
                var buffer = cls
                             .Where(e => e.Key.Index < NamesStore.GNames.Names.Count || e.Key.Index != 0)
                             .Select(e => NamesStore.GetByIndex(e.Key.Index))
                             .ToList();

                return(buffer);
            }
Example #6
0
        /// <summary>
        /// @param Enum - Enumeration
        /// @param EnumeratorIndex - Input index
        /// @return - The value of the enumerator, or INDEX_NONE
        /// </summary>
        public static byte GetEnumeratorValueFromIndex(UEnum Enum, byte EnumeratorIndex)
        {
            int ___ret = GetEnumeratorValueFromIndex(IntPtr.Zero, Enum, EnumeratorIndex);

            return((byte)___ret);
        }
Example #7
0
 public static void AssertEnumValue(UEnum unrealEnum, string name, long value)
 {
     Tests.AssertEqual(unrealEnum.GetValueByNameString(name), value, unrealEnum.GetName() + "." + name);
 }
 ///<summary>@</summary>
 ///<remarks>
 ///param Enum - Enumeration
 ///@param EnumeratorIndex - Input value
 ///@return - if EnumeratorIndex is valid return EnumeratorIndex, otherwise return MAX value of Enum
 ///</remarks>
 public static byte GetValidValue(UEnum UEnum, byte EnumeratorValue) =>
 KismetNodeHelperLibrary_methods.GetValidValue_method.Invoke(UEnum, EnumeratorValue);
Example #9
0
 /// <summary>
 /// Gets enumerator name as FString. Use DeisplayName when possible.
 /// @param Enum - Enumeration
 /// @param EnumeratorValue - Value of searched enumeration
 /// @return - name of the searched enumerator, or NAME_None
 /// </summary>
 public extern static FString GetEnumeratorUserFriendlyName(UEnum Enum, byte EnumeratorValue);
Example #10
0
 /// <summary>
 /// @param Enum - Enumeration
 /// @param EnumeratorIndex - Input value
 /// @return - if EnumeratorIndex is valid return EnumeratorIndex, otherwise return MAX value of Enum
 /// </summary>
 public extern static byte GetValidValue(UEnum Enum, byte EnumeratorValue);
Example #11
0
 /// <summary>
 /// @param Enum - Enumeration
 /// @param EnumeratorIndex - Input index
 /// @return - The value of the enumerator, or INDEX_NONE
 /// </summary>
 public extern static byte GetEnumeratorValueFromIndex(UEnum Enum, byte EnumeratorIndex);
 ///<summary>@</summary>
 ///<remarks>
 ///param Enum - Enumeration
 ///@param EnumeratorIndex - Input index
 ///@return - The value of the enumerator, or INDEX_NONE
 ///</remarks>
 public static byte GetEnumeratorValueFromIndex(UEnum UEnum, byte EnumeratorIndex) =>
 KismetNodeHelperLibrary_methods.GetEnumeratorValueFromIndex_method.Invoke(UEnum, EnumeratorIndex);
 ///<summary>Gets enumerator name as FString.</summary>
 ///<remarks>
 ///Use DeisplayName when possible.
 ///
 ///@param Enum - Enumeration
 ///@param EnumeratorValue - Value of searched enumeration
 ///@return - name of the searched enumerator, or NAME_None
 ///</remarks>
 public static string GetEnumeratorUserFriendlyName(UEnum UEnum, byte EnumeratorValue) =>
 KismetNodeHelperLibrary_methods.GetEnumeratorUserFriendlyName_method.Invoke(UEnum, EnumeratorValue);
 ///<summary>Gets enumerator name.</summary>
 ///<remarks>
 ///@param Enum - Enumeration
 ///@param EnumeratorValue - Value of searched enumeration
 ///@return - name of the searched enumerator, or NAME_None
 ///</remarks>
 public static Name GetEnumeratorName(UEnum UEnum, byte EnumeratorValue) =>
 KismetNodeHelperLibrary_methods.GetEnumeratorName_method.Invoke(UEnum, EnumeratorValue);
Example #15
0
        /// <summary>
        /// @param Enum - Enumeration
        /// @param EnumeratorIndex - Input value
        /// @return - if EnumeratorIndex is valid return EnumeratorIndex, otherwise return MAX value of Enum
        /// </summary>
        public static byte GetValidValue(UEnum Enum, byte EnumeratorValue)
        {
            int ___ret = GetValidValue(IntPtr.Zero, Enum, EnumeratorValue);

            return((byte)___ret);
        }
Example #16
0
        /// <summary>
        /// Gets enumerator name.
        /// @param Enum - Enumeration
        /// @param EnumeratorValue - Value of searched enumeration
        /// @return - name of the searched enumerator, or NAME_None
        /// </summary>
        public static string GetEnumeratorName(UEnum Enum, byte EnumeratorValue)
        {
            string ___ret = GetEnumeratorName(IntPtr.Zero, Enum, EnumeratorValue);

            return(___ret);
        }
Example #17
0
 /// <summary>
 /// Gets enumerator name.
 /// @param Enum - Enumeration
 /// @param EnumeratorValue - Value of searched enumeration
 /// @return - name of the searched enumerator, or NAME_None
 /// </summary>
 public extern static FName GetEnumeratorName(UEnum Enum, byte EnumeratorValue);