void Write_UE_Value(UE_Value value, PositionToken position) { Type value_cs_type = value.GetType(); // Non-container Type if (value_cs_type == typeof(UE_ <bool>)) { Write((UE_ <bool>)value, position); } else if (value_cs_type == typeof(UE_ <byte>)) { Write((UE_ <byte>)value, position); } else if (value_cs_type == typeof(UE_Enum)) { Write((UE_Enum)value, position); } else if (value_cs_type == typeof(UE_ <float>)) { Write((UE_ <float>)value, position); } else if (value_cs_type == typeof(UE_ <int>)) { Write((UE_ <int>)value, position); } else if (value_cs_type == typeof(UE_ <string>)) { Write((UE_ <string>)value, position); } // Container Type else if (value_cs_type == typeof(UE_Map)) { Write((UE_Map)value, position); } else if (value_cs_type == typeof(UE_Array)) { Write((UE_Array)value, position); } else if (value_cs_type == typeof(UE_StructArray)) { Write((UE_StructArray)value, position); } // Struct Type else if (value_cs_type == typeof(UE_Struct_Vector)) { Write((UE_Struct_Vector)value, position); } else if (value_cs_type == typeof(UE_Struct_Quat)) { Write((UE_Struct_Quat)value, position); } else if (value_cs_type == typeof(UE_Struct_Generic)) { Write((UE_Struct_Generic)value, position); } else { throw new NotImplementedException(value_cs_type.ToString()); } }