from enum import IntEnum, auto


class UE4Version(IntEnum):
    Cooked = 0  # not a real ObjectVersion
    OLDEST_LOADABLE_PACKAGE = 214

    BLUEPRINT_VARS_NOT_READ_ONLY = auto()
    STATIC_MESH_STORE_NAV_COLLISION = auto()
    ATMOSPHERIC_FOG_DECAY_NAME_CHANGE = auto()
    SCENECOMP_TRANSLATION_TO_LOCATION = auto()
    MATERIAL_ATTRIBUTES_REORDERING = auto()
    COLLISION_PROFILE_SETTING = auto()
    BLUEPRINT_SKEL_TEMPORARY_TRANSIENT = auto()
    BLUEPRINT_SKEL_SERIALIZED_AGAIN = auto()
    BLUEPRINT_SETS_REPLICATION = auto()
    WORLD_LEVEL_INFO = auto()
    AFTER_CAPSULE_HALF_HEIGHT_CHANGE = auto()
    ADDED_NAMESPACE_AND_KEY_DATA_TO_FTEXT = auto()
    ATTENUATION_SHAPES = auto()
    LIGHTCOMPONENT_USE_IES_TEXTURE_MULTIPLIER_ON_NON_IES_BRIGHTNESS = auto()
    REMOVE_INPUT_COMPONENTS_FROM_BLUEPRINTS = auto()
    VARK2NODE_USE_MEMBERREFSTRUCT = auto()
    REFACTOR_MATERIAL_EXPRESSION_SCENECOLOR_AND_SCENEDEPTH_INPUTS = auto()
    SPLINE_MESH_ORIENTATION = auto()
    REVERB_EFFECT_ASSET_TYPE = auto()
    MAX_TEXCOORD_INCREASED = auto()
    SPEEDTREE_STATICMESH = auto()
    LANDSCAPE_COMPONENT_LAZY_REFERENCES = auto()
    SWITCH_CALL_NODE_TO_USE_MEMBER_REFERENCE = auto()
    ADDED_SKELETON_ARCHIVER_REMOVAL = auto()
    ADDED_SKELETON_ARCHIVER_REMOVAL_SECOND_TIME = auto()
    BLUEPRINT_SKEL_CLASS_TRANSIENT_AGAIN = auto()
    ADD_COOKED_TO_UCLASS = auto()
    DEPRECATED_STATIC_MESH_THUMBNAIL_PROPERTIES_REMOVED = auto()
    COLLECTIONS_IN_SHADERMAPID = auto()
    REFACTOR_MOVEMENT_COMPONENT_HIERARCHY = auto()
    FIX_TERRAIN_LAYER_SWITCH_ORDER = auto()
    ALL_PROPS_TO_CONSTRAINTINSTANCE = auto()
    LOW_QUALITY_DIRECTIONAL_LIGHTMAPS = auto()
    ADDED_NOISE_EMITTER_COMPONENT = auto()
    ADD_TEXT_COMPONENT_VERTICAL_ALIGNMENT = auto()
    ADDED_FBX_ASSET_IMPORT_DATA = auto()
    REMOVE_LEVELBODYSETUP = auto()
    REFACTOR_CHARACTER_CROUCH = auto()
    SMALLER_DEBUG_MATERIALSHADER_UNIFORM_EXPRESSIONS = auto()
    APEX_CLOTH = auto()
    SAVE_COLLISIONRESPONSE_PER_CHANNEL = auto()
    ADDED_LANDSCAPE_SPLINE_EDITOR_MESH = auto()
    CHANGED_MATERIAL_REFACTION_TYPE = auto()
    REFACTOR_PROJECTILE_MOVEMENT = auto()
    REMOVE_PHYSICALMATERIALPROPERTY = auto()
    PURGED_FMATERIAL_COMPILE_OUTPUTS = auto()
    ADD_COOKED_TO_LANDSCAPE = auto()
    CONSUME_INPUT_PER_BIND = auto()
    SOUND_CLASS_GRAPH_EDITOR = auto()
    FIXUP_TERRAIN_LAYER_NODES = auto()
    RETROFIT_CLAMP_EXPRESSIONS_SWAP = auto()
    REMOVE_LIGHT_MOBILITY_CLASSES = auto()
    REFACTOR_PHYSICS_BLENDING = auto()
    WORLD_LEVEL_INFO_UPDATED = auto()
    STATIC_SKELETAL_MESH_SERIALIZATION_FIX = auto()
    REMOVE_STATICMESH_MOBILITY_CLASSES = auto()
    REFACTOR_PHYSICS_TRANSFORMS = auto()
    REMOVE_ZERO_TRIANGLE_SECTIONS = auto()
    CHARACTER_MOVEMENT_DECELERATION = auto()
    CAMERA_ACTOR_USING_CAMERA_COMPONENT = auto()
    CHARACTER_MOVEMENT_DEPRECATE_PITCH_ROLL = auto()
    REBUILD_TEXTURE_STREAMING_DATA_ON_LOAD = auto()
    SUPPORT_32BIT_STATIC_MESH_INDICES = auto()
    ADDED_CHUNKID_TO_ASSETDATA_AND_UPACKAGE = auto()
    CHARACTER_DEFAULT_MOVEMENT_BINDINGS = auto()
    APEX_CLOTH_LOD = auto()
    ATMOSPHERIC_FOG_CACHE_DATA = auto()
    VAR_UE4_ARRAY_PROPERTY_INNER_TAGS = auto()
    KEEP_SKEL_MESH_INDEX_DATA = auto()
    BODYSETUP_COLLISION_CONVERSION = auto()
    REFLECTION_CAPTURE_COOKING = auto()
    REMOVE_DYNAMIC_VOLUME_CLASSES = auto()
    STORE_HASCOOKEDDATA_FOR_BODYSETUP = auto()
    REFRACTION_BIAS_TO_REFRACTION_DEPTH_BIAS = auto()
    REMOVE_SKELETALPHYSICSACTOR = auto()
    PC_ROTATION_INPUT_REFACTOR = auto()
    LANDSCAPE_PLATFORMDATA_COOKING = auto()
    CREATEEXPORTS_CLASS_LINKING_FOR_BLUEPRINTS = auto()
    REMOVE_NATIVE_COMPONENTS_FROM_BLUEPRINT_SCS = auto()
    REMOVE_SINGLENODEINSTANCE = auto()
    CHARACTER_BRAKING_REFACTOR = auto()
    VOLUME_SAMPLE_LOW_QUALITY_SUPPORT = auto()
    SPLIT_TOUCH_AND_CLICK_ENABLES = auto()
    HEALTH_DEATH_REFACTOR = auto()
    SOUND_NODE_ENVELOPER_CURVE_CHANGE = auto()
    POINT_LIGHT_SOURCE_RADIUS = auto()
    SCENE_CAPTURE_CAMERA_CHANGE = auto()
    MOVE_SKELETALMESH_SHADOWCASTING = auto()
    CHANGE_SETARRAY_BYTECODE = auto()
    MATERIAL_INSTANCE_BASE_PROPERTY_OVERRIDES = auto()
    COMBINED_LIGHTMAP_TEXTURES = auto()
    BUMPED_MATERIAL_EXPORT_GUIDS = auto()
    BLUEPRINT_INPUT_BINDING_OVERRIDES = auto()
    FIXUP_BODYSETUP_INVALID_CONVEX_TRANSFORM = auto()
    FIXUP_STIFFNESS_AND_DAMPING_SCALE = auto()
    REFERENCE_SKELETON_REFACTOR = auto()
    K2NODE_REFERENCEGUIDS = auto()
    FIXUP_ROOTBONE_PARENT = auto()
    TEXT_RENDER_COMPONENTS_WORLD_SPACE_SIZING = auto()
    MATERIAL_INSTANCE_BASE_PROPERTY_OVERRIDES_PHASE_2 = auto()
    CLASS_NOTPLACEABLE_ADDED = auto()
    WORLD_LEVEL_INFO_LOD_LIST = auto()
    CHARACTER_MOVEMENT_VARIABLE_RENAMING_1 = auto()
    FSLATESOUND_CONVERSION = auto()
    WORLD_LEVEL_INFO_ZORDER = auto()
    PACKAGE_REQUIRES_LOCALIZATION_GATHER_FLAGGING = auto()
    BP_ACTOR_VARIABLE_DEFAULT_PREVENTING = auto()
    TEST_ANIMCOMP_CHANGE = auto()
    EDITORONLY_BLUEPRINTS = auto()
    EDGRAPHPINTYPE_SERIALIZATION = auto()
    NO_MIRROR_BRUSH_MODEL_COLLISION = auto()
    CHANGED_CHUNKID_TO_BE_AN_ARRAY_OF_CHUNKIDS = auto()
    WORLD_NAMED_AFTER_PACKAGE = auto()
    SKY_LIGHT_COMPONENT = auto()
    WORLD_LAYER_ENABLE_DISTANCE_STREAMING = auto()
    REMOVE_ZONES_FROM_MODEL = auto()
    FIX_ANIMATIONBASEPOSE_SERIALIZATION = auto()
    SUPPORT_8_BONE_INFLUENCES_SKELETAL_MESHES = auto()
    ADD_OVERRIDE_GRAVITY_FLAG = auto()
    SUPPORT_GPUSKINNING_8_BONE_INFLUENCES = auto()
    ANIM_SUPPORT_NONUNIFORM_SCALE_ANIMATION = auto()
    ENGINE_VERSION_OBJECT = auto()
    PUBLIC_WORLDS = auto()
    SKELETON_GUID_SERIALIZATION = auto()
    CHARACTER_MOVEMENT_WALKABLE_FLOOR_REFACTOR = auto()
    INVERSE_SQUARED_LIGHTS_DEFAULT = auto()
    DISABLED_SCRIPT_LIMIT_BYTECODE = auto()
    PRIVATE_REMOTE_ROLE = auto()
    FOLIAGE_STATIC_MOBILITY = auto()
    BUILD_SCALE_VECTOR = auto()
    FOLIAGE_COLLISION = auto()
    SKY_BENT_NORMAL = auto()
    LANDSCAPE_COLLISION_DATA_COOKING = auto()
    MORPHTARGET_CPU_TANGENTZDELTA_FORMATCHANGE = auto()
    SOFT_CONSTRAINTS_USE_MASS = auto()
    REFLECTION_DATA_IN_PACKAGES = auto()
    FOLIAGE_MOVABLE_MOBILITY = auto()
    UNDO_BREAK_MATERIALATTRIBUTES_CHANGE = auto()
    ADD_CUSTOMPROFILENAME_CHANGE = auto()
    FLIP_MATERIAL_COORDS = auto()
    MEMBERREFERENCE_IN_PINTYPE = auto()
    VEHICLES_UNIT_CHANGE = auto()
    ANIMATION_REMOVE_NANS = auto()
    SKELETON_ASSET_PROPERTY_TYPE_CHANGE = auto()
    FIX_BLUEPRINT_VARIABLE_FLAGS = auto()
    VEHICLES_UNIT_CHANGE2 = auto()
    UCLASS_SERIALIZE_INTERFACES_AFTER_LINKING = auto()
    STATIC_MESH_SCREEN_SIZE_LODS = auto()
    FIX_MATERIAL_COORDS = auto()
    SPEEDTREE_WIND_V7 = auto()
    LOAD_FOR_EDITOR_GAME = auto()
    SERIALIZE_RICH_CURVE_KEY = auto()
    MOVE_LANDSCAPE_MICS_AND_TEXTURES_WITHIN_LEVEL = auto()
    FTEXT_HISTORY = auto()
    FIX_MATERIAL_COMMENTS = auto()
    STORE_BONE_EXPORT_NAMES = auto()
    MESH_EMITTER_INITIAL_ORIENTATION_DISTRIBUTION = auto()
    DISALLOW_FOLIAGE_ON_BLUEPRINTS = auto()
    FIXUP_MOTOR_UNITS = auto()
    DEPRECATED_MOVEMENTCOMPONENT_MODIFIED_SPEEDS = auto()
    RENAME_CANBECHARACTERBASE = auto()
    GAMEPLAY_TAG_CONTAINER_TAG_TYPE_CHANGE = auto()
    FOLIAGE_SETTINGS_TYPE = auto()
    STATIC_SHADOW_DEPTH_MAPS = auto()
    ADD_TRANSACTIONAL_TO_DATA_ASSETS = auto()
    ADD_LB_WEIGHTBLEND = auto()
    ADD_ROOTCOMPONENT_TO_FOLIAGEACTOR = auto()
    FIX_MATERIAL_PROPERTY_OVERRIDE_SERIALIZE = auto()
    ADD_LINEAR_COLOR_SAMPLER = auto()
    ADD_STRING_ASSET_REFERENCES_MAP = auto()
    BLUEPRINT_USE_SCS_ROOTCOMPONENT_SCALE = auto()
    LEVEL_STREAMING_DRAW_COLOR_TYPE_CHANGE = auto()
    CLEAR_NOTIFY_TRIGGERS = auto()
    SKELETON_ADD_SMARTNAMES = auto()
    ADDED_CURRENCY_CODE_TO_FTEXT = auto()
    ENUM_CLASS_SUPPORT = auto()
    FIXUP_WIDGET_ANIMATION_CLASS = auto()
    SOUND_COMPRESSION_TYPE_ADDED = auto()
    AUTO_WELDING = auto()
    RENAME_CROUCHMOVESCHARACTERDOWN = auto()
    LIGHTMAP_MESH_BUILD_SETTINGS = auto()
    RENAME_SM3_TO_ES3_1 = auto()
    DEPRECATE_UMG_STYLE_ASSETS = auto()
    POST_DUPLICATE_NODE_GUID = auto()
    RENAME_CAMERA_COMPONENT_VIEW_ROTATION = auto()
    CASE_PRESERVING_FNAME = auto()
    RENAME_CAMERA_COMPONENT_CONTROL_ROTATION = auto()
    FIX_REFRACTION_INPUT_MASKING = auto()
    GLOBAL_EMITTER_SPAWN_RATE_SCALE = auto()
    CLEAN_DESTRUCTIBLE_SETTINGS = auto()
    CHARACTER_MOVEMENT_UPPER_IMPACT_BEHAVIOR = auto()
    BP_MATH_VECTOR_EQUALITY_USES_EPSILON = auto()
    FOLIAGE_STATIC_LIGHTING_SUPPORT = auto()
    SLATE_COMPOSITE_FONTS = auto()
    REMOVE_SAVEGAMESUMMARY = auto()

    REMOVE_SKELETALMESH_COMPONENT_BODYSETUP_SERIALIZATION = auto()
    SLATE_BULK_FONT_DATA = auto()
    ADD_PROJECTILE_FRICTION_BEHAVIOR = auto()
    MOVEMENTCOMPONENT_AXIS_SETTINGS = auto()
    GRAPH_INTERACTIVE_COMMENTBUBBLES = auto()
    LANDSCAPE_SERIALIZE_PHYSICS_MATERIALS = auto()
    RENAME_WIDGET_VISIBILITY = auto()
    ANIMATION_ADD_TRACKCURVES = auto()
    MONTAGE_BRANCHING_POINT_REMOVAL = auto()
    BLUEPRINT_ENFORCE_CONST_IN_FUNCTION_OVERRIDES = auto()
    ADD_PIVOT_TO_WIDGET_COMPONENT = auto()
    PAWN_AUTO_POSSESS_AI = auto()
    FTEXT_HISTORY_DATE_TIMEZONE = auto()
    SORT_ACTIVE_BONE_INDICES = auto()
    PERFRAME_MATERIAL_UNIFORM_EXPRESSIONS = auto()
    MIKKTSPACE_IS_DEFAULT = auto()
    LANDSCAPE_GRASS_COOKING = auto()
    FIX_SKEL_VERT_ORIENT_MESH_PARTICLES = auto()
    LANDSCAPE_STATIC_SECTION_OFFSET = auto()
    ADD_MODIFIERS_RUNTIME_GENERATION = auto()
    MATERIAL_MASKED_BLENDMODE_TIDY = auto()
    MERGED_ADD_MODIFIERS_RUNTIME_GENERATION_TO_4_7_DEPRECATED = auto()
    AFTER_MERGED_ADD_MODIFIERS_RUNTIME_GENERATION_TO_4_7_DEPRECATED = auto()
    MERGED_ADD_MODIFIERS_RUNTIME_GENERATION_TO_4_7 = auto()
    AFTER_MERGING_ADD_MODIFIERS_RUNTIME_GENERATION_TO_4_7 = auto()
    SERIALIZE_LANDSCAPE_GRASS_DATA = auto()
    OPTIONALLY_CLEAR_GPU_EMITTERS_ON_INIT = auto()
    SERIALIZE_LANDSCAPE_GRASS_DATA_MATERIAL_GUID = auto()
    BLUEPRINT_GENERATED_CLASS_COMPONENT_TEMPLATES_PUBLIC = auto()
    ACTOR_COMPONENT_CREATION_METHOD = auto()
    K2NODE_EVENT_MEMBER_REFERENCE = auto()
    STRUCT_GUID_IN_PROPERTY_TAG = auto()
    REMOVE_UNUSED_UPOLYS_FROM_UMODEL = auto()
    REBUILD_HIERARCHICAL_INSTANCE_TREES = auto()
    PACKAGE_SUMMARY_HAS_COMPATIBLE_ENGINE_VERSION = auto()
    TRACK_UCS_MODIFIED_PROPERTIES = auto()
    LANDSCAPE_SPLINE_CROSS_LEVEL_MESHES = auto()
    DEPRECATE_USER_WIDGET_DESIGN_SIZE = auto()
    ADD_EDITOR_VIEWS = auto()
    FOLIAGE_WITH_ASSET_OR_CLASS = auto()
    BODYINSTANCE_BINARY_SERIALIZATION = auto()
    SERIALIZE_BLUEPRINT_EVENTGRAPH_FASTCALLS_IN_UFUNCTION = auto()
    INTERPCURVE_SUPPORTS_LOOPING = auto()
    MATERIAL_INSTANCE_BASE_PROPERTY_OVERRIDES_DITHERED_LOD_TRANSITION = auto()
    SERIALIZE_LANDSCAPE_ES2_TEXTURES = auto()
    CONSTRAINT_INSTANCE_MOTOR_FLAGS = auto()
    SERIALIZE_PINTYPE_CONST = auto()
    LIBRARY_CATEGORIES_AS_FTEXT = auto()
    SKIP_DUPLICATE_EXPORTS_ON_SAVE_PACKAGE = auto()
    SERIALIZE_TEXT_IN_PACKAGES = auto()
    ADD_BLEND_MODE_TO_WIDGET_COMPONENT = auto()
    NEW_LIGHTMASS_PRIMITIVE_SETTING = auto()
    REPLACE_SPRING_NOZ_PROPERTY = auto()
    TIGHTLY_PACKED_ENUMS = auto()
    ASSET_IMPORT_DATA_AS_JSON = auto()
    TEXTURE_LEGACY_GAMMA = auto()
    ADDED_NATIVE_SERIALIZATION_FOR_IMMUTABLE_STRUCTURES = auto()
    DEPRECATE_UMG_STYLE_OVERRIDES = auto()
    STATIC_SHADOWMAP_PENUMBRA_SIZE = auto()
    NIAGARA_DATA_OBJECT_DEV_UI_FIX = auto()
    FIXED_DEFAULT_ORIENTATION_OF_WIDGET_COMPONENT = auto()
    REMOVED_MATERIAL_USED_WITH_UI_FLAG = auto()
    CHARACTER_MOVEMENT_ADD_BRAKING_FRICTION = auto()
    BSP_UNDO_FIX = auto()
    DYNAMIC_PARAMETER_DEFAULT_VALUE = auto()
    STATIC_MESH_EXTENDED_BOUNDS = auto()
    ADDED_NON_LINEAR_TRANSITION_BLENDS = auto()
    AO_MATERIAL_MASK = auto()
    NAVIGATION_AGENT_SELECTOR = auto()
    MESH_PARTICLE_COLLISIONS_CONSIDER_PARTICLE_SIZE = auto()
    BUILD_MESH_ADJ_BUFFER_FLAG_EXPOSED = auto()
    MAX_ANGULAR_VELOCITY_DEFAULT = auto()
    APEX_CLOTH_TESSELLATION = auto()
    DECAL_SIZE = auto()
    KEEP_ONLY_PACKAGE_NAMES_IN_STRING_ASSET_REFERENCES_MAP = auto()
    COOKED_ASSETS_IN_EDITOR_SUPPORT = auto()
    DIALOGUE_WAVE_NAMESPACE_AND_CONTEXT_CHANGES = auto()
    MAKE_ROT_RENAME_AND_REORDER = auto()
    K2NODE_VAR_REFERENCEGUIDS = auto()
    SOUND_CONCURRENCY_PACKAGE = auto()
    USERWIDGET_DEFAULT_FOCUSABLE_FALSE = auto()
    BLUEPRINT_CUSTOM_EVENT_CONST_INPUT = auto()
    USE_LOW_PASS_FILTER_FREQ = auto()
    NO_ANIM_BP_CLASS_IN_GAMEPLAY_CODE = auto()
    SCS_STORES_ALLNODES_ARRAY = auto()
    FBX_IMPORT_DATA_RANGE_ENCAPSULATION = auto()
    CAMERA_COMPONENT_ATTACH_TO_ROOT = auto()
    INSTANCED_STEREO_UNIFORM_UPDATE = auto()
    STREAMABLE_TEXTURE_MIN_MAX_DISTANCE = auto()
    INJECT_BLUEPRINT_STRUCT_PIN_CONVERSION_NODES = auto()
    INNER_ARRAY_TAG_INFO = auto()
    FIX_SLOT_NAME_DUPLICATION = auto()
    STREAMABLE_TEXTURE_AABB = auto()
    PROPERTY_GUID_IN_PROPERTY_TAG = auto()
    NAME_HASHES_SERIALIZED = auto()
    INSTANCED_STEREO_UNIFORM_REFACTOR = auto()
    COMPRESSED_SHADER_RESOURCES = auto()
    PRELOAD_DEPENDENCIES_IN_COOKED_EXPORTS = auto()
    TemplateIndex_IN_COOKED_EXPORTS = auto()
    PROPERTY_TAG_SET_MAP_SUPPORT = auto()
    ADDED_SEARCHABLE_NAMES = auto()
    _64BIT_EXPORTMAP_SERIALSIZES = auto()
    SKYLIGHT_MOBILE_IRRADIANCE_MAP = auto()
    ADDED_SWEEP_WHILE_WALKING_FLAG = auto()
    ADDED_SOFT_OBJECT_PATH = auto()
    POINTLIGHT_SOURCE_ORIENTATION = auto()
    ADDED_PACKAGE_SUMMARY_LOCALIZATION_ID = auto()
    FIX_WIDE_STRING_CRC = auto()
    ADDED_PACKAGE_OWNER = auto()
    SKINWEIGHT_PROFILE_DATA_LAYOUT_CHANGES = auto()
    # Added import that can have package different than their outer
    NON_OUTER_PACKAGE_IMPORT = auto()
    # Added DependencyFlags to AssetRegistry
    ASSETREGISTRY_DEPENDENCYFLAGS = auto()
    # Fixed corrupt licensee flag in 4.26 assets
    CORRECT_LICENSEE_FLAG = auto()

    AUTOMATIC_VERSION_PLUS_ONE = auto()
    # AUTOMATIC_VERSION = AUTOMATIC_VERSION_PLUS_ONE.value - 1
