diff --git a/dist/uasset-reader.js b/dist/uasset-reader.js index 89ed690..af32af4 100644 --- a/dist/uasset-reader.js +++ b/dist/uasset-reader.js @@ -1,5 +1,5 @@ /** - * uasset-reader-js (v1.0.0) + * uasset-reader-js (v1.0.1) * https://github.com/blueprintue/uasset-reader-js * * MIT License @@ -162,6 +162,7 @@ PACKAGE_FILE_TAG_SWAPPED: 0xC1832A9E }; + // https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Core/Public/UObject/ObjectVersion.h#L83 var EUnrealEngineObjectUE4Version = { VER_UE4_OLDEST_LOADABLE_PACKAGE: { value: 214, comment: "Oldest package managed by Unreal Engine" }, VER_UE4_BLUEPRINT_VARS_NOT_READ_ONLY: { value: 215, comment: "Removed restriction on blueprint-exposed variables from being read-only" }, @@ -476,6 +477,7 @@ VER_UE4_AUTOMATIC_VERSION: { value: 522, comment: "Fixed corrupt licensee flag in 4.26 assets" } }; + // https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Core/Public/UObject/ObjectVersion.h#L39 var EUnrealEngineObjectUE5Version = { VER_UE5_INITIAL_VERSION: { value: 1000, comment: "The original UE5 version, at the time this was added the UE4 version was 522, so UE5 will start from 1000 to show a clear difference" }, VER_UE5_NAMES_REFERENCED_FROM_EXPORT_DATA: { value: 1001, comment: "Support stripping names that are not referenced from export data" }, @@ -487,11 +489,14 @@ VER_UE5_FSOFTOBJECTPATH_REMOVE_ASSET_PATH_FNAMES: { value: 1007, comment: "Replace FName asset path in FSoftObjectPath with (package name, asset name) pair FTopLevelAssetPath" }, VER_UE5_ADD_SOFTOBJECTPATH_LIST: { value: 1008, comment: "Add a soft object path list to the package summary for fast remap" }, VER_UE5_DATA_RESOURCES: { value: 1009, comment: "Added bulk/data resource table" }, - VER_UE5_AUTOMATIC_VERSION_PLUS_ONE: { value: 1010, comment: "Last version +1" }, - VER_UE5_AUTOMATIC_VERSION: { value: 1009, comment: "Large world coordinates converts a number of core types to double components by default." } + VER_UE5_SCRIPT_SERIALIZATION_OFFSET: { value: 1010, comment: "Added script property serialization offset to export table entries for saved, versioned packages" }, + VER_UE5_PROPERTY_TAG_EXTENSION_AND_OVERRIDABLE_SERIALIZATION: { value: 1011, comment: "Adding property tag extension, Support for overridable serialization on UObject, Support for overridable logic in containers" }, + VER_UE5_AUTOMATIC_VERSION_PLUS_ONE: { value: 1012, comment: "Last version +1" }, + VER_UE5_AUTOMATIC_VERSION: { value: 1011, comment: "Large world coordinates converts a number of core types to double components by default." } }; /* eslint-disable */ + // https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/CoreUObject/Public/UObject/ObjectMacros.h#L116 var PackageFlags = { PKG_None: { value: 0x00000000, comment: "No flags" }, PKG_NewlyCreated: { value: 0x00000001, comment: "Newly created package, not saved yet. In editor only." }, @@ -504,7 +509,7 @@ PKG_UncookedOnly: { value: 0x00000100, comment: "Loaded only in uncooked builds (i.e. runtime in editor)" }, PKG_Cooked: { value: 0x00000200, comment: "Package is cooked" }, PKG_ContainsNoAsset: { value: 0x00000400, comment: "Package doesn't contain any asset object (although asset tags can be present)" }, - PKG_ExternallyReferenceable: { value: 0x00000800, comment: "(Not Implemented) Objects in this package can be referenced in a different plugin or mount point (i.e /Game -> /Engine)" }, + PKG_NotExternallyReferenceable: { value: 0x00000800, comment: "Objects in this package cannot be referenced in a different plugin or mount point (i.e /Game -> /Engine)" }, PKG_Unused_1000: { value: 0x00001000, comment: "Unused" }, PKG_UnversionedProperties: { value: 0x00002000, comment: "Uses unversioned property serialization instead of versioned tagged property serialization" }, PKG_ContainsMapData: { value: 0x00004000, comment: "Contains map data (UObjects only referenced by a single ULevel) but is stored in a different package" }, @@ -520,7 +525,7 @@ PKG_Unused_1000000: { value: 0x01000000, comment: "Unused" }, PKG_Unused_2000000: { value: 0x02000000, comment: "Unused" }, PKG_Unused_4000000: { value: 0x04000000, comment: "Unused" }, - PKG_Unused_8000000: { value: 0x08000000, comment: "Unused" }, + PKG_CookGenerated: { value: 0x08000000, comment: "This package was generated by the cooker and does not exist in the WorkspaceDomain" }, PKG_DynamicImports: { value: 0x10000000, comment: "This package should resolve dynamic imports from its export at runtime." }, PKG_RuntimeGenerated: { value: 0x20000000, comment: "This package contains elements that are runtime generated, and may not follow standard loading order rules" }, PKG_ReloadingForCooker: { value: 0x40000000, comment: "This package is reloading in the cooker, try to avoid getting data we will never need. We won't save this package." }, diff --git a/dist/uasset-reader.min.js b/dist/uasset-reader.min.js index 67a4f1b..c0364c4 100644 --- a/dist/uasset-reader.min.js +++ b/dist/uasset-reader.min.js @@ -1,5 +1,5 @@ /** - * uasset-reader-js (v1.0.0) + * uasset-reader-js (v1.0.1) * https://github.com/blueprintue/uasset-reader-js * * MIT License diff --git a/package-lock.json b/package-lock.json index 4560bc6..1e34e85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uasset-reader-js", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uasset-reader-js", - "version": "1.0.0", + "version": "1.0.1", "license": "MIT", "devDependencies": { "@babel/core": "^7.23.7", diff --git a/package.json b/package.json index 7919218..8c42c2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uasset-reader-js", - "version": "1.0.0", + "version": "1.0.1", "description": "Read .uasset files from Unreal Engine in javascript", "scripts": { "test": "jest --coverage --coverageDirectory=./coverage -- tests/main.test.js", diff --git a/src/js/enums/enums.js b/src/js/enums/enums.js index d294260..f65cebe 100644 --- a/src/js/enums/enums.js +++ b/src/js/enums/enums.js @@ -3,6 +3,7 @@ var EPackageFileTag = { PACKAGE_FILE_TAG_SWAPPED: 0xC1832A9E }; +// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Core/Public/UObject/ObjectVersion.h#L83 var EUnrealEngineObjectUE4Version = { VER_UE4_OLDEST_LOADABLE_PACKAGE: {value: 214, comment: "Oldest package managed by Unreal Engine"}, VER_UE4_BLUEPRINT_VARS_NOT_READ_ONLY: {value: 215, comment: "Removed restriction on blueprint-exposed variables from being read-only"}, @@ -317,6 +318,7 @@ var EUnrealEngineObjectUE4Version = { VER_UE4_AUTOMATIC_VERSION: {value: 522, comment: "Fixed corrupt licensee flag in 4.26 assets"} }; +// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Core/Public/UObject/ObjectVersion.h#L39 var EUnrealEngineObjectUE5Version = { VER_UE5_INITIAL_VERSION: {value: 1000, comment: "The original UE5 version, at the time this was added the UE4 version was 522, so UE5 will start from 1000 to show a clear difference"}, VER_UE5_NAMES_REFERENCED_FROM_EXPORT_DATA: {value: 1001, comment: "Support stripping names that are not referenced from export data"}, @@ -328,11 +330,14 @@ var EUnrealEngineObjectUE5Version = { VER_UE5_FSOFTOBJECTPATH_REMOVE_ASSET_PATH_FNAMES: {value: 1007, comment: "Replace FName asset path in FSoftObjectPath with (package name, asset name) pair FTopLevelAssetPath"}, VER_UE5_ADD_SOFTOBJECTPATH_LIST: {value: 1008, comment: "Add a soft object path list to the package summary for fast remap"}, VER_UE5_DATA_RESOURCES: {value: 1009, comment: "Added bulk/data resource table"}, - VER_UE5_AUTOMATIC_VERSION_PLUS_ONE: {value: 1010, comment: "Last version +1"}, - VER_UE5_AUTOMATIC_VERSION: {value: 1009, comment: "Large world coordinates converts a number of core types to double components by default."} + VER_UE5_SCRIPT_SERIALIZATION_OFFSET: {value: 1010, comment: "Added script property serialization offset to export table entries for saved, versioned packages"}, + VER_UE5_PROPERTY_TAG_EXTENSION_AND_OVERRIDABLE_SERIALIZATION: {value: 1011, comment: "Adding property tag extension, Support for overridable serialization on UObject, Support for overridable logic in containers"}, + VER_UE5_AUTOMATIC_VERSION_PLUS_ONE: {value: 1012, comment: "Last version +1"}, + VER_UE5_AUTOMATIC_VERSION: {value: 1011, comment: "Large world coordinates converts a number of core types to double components by default."} }; /* eslint-disable */ +// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/CoreUObject/Public/UObject/ObjectMacros.h#L116 var PackageFlags = { PKG_None: {value: 0x00000000, comment: "No flags"}, PKG_NewlyCreated: {value: 0x00000001, comment: "Newly created package, not saved yet. In editor only."}, @@ -345,7 +350,7 @@ var PackageFlags = { PKG_UncookedOnly: {value: 0x00000100, comment: "Loaded only in uncooked builds (i.e. runtime in editor)"}, PKG_Cooked: {value: 0x00000200, comment: "Package is cooked"}, PKG_ContainsNoAsset: {value: 0x00000400, comment: "Package doesn't contain any asset object (although asset tags can be present)"}, - PKG_ExternallyReferenceable: {value: 0x00000800, comment: "(Not Implemented) Objects in this package can be referenced in a different plugin or mount point (i.e /Game -> /Engine)"}, + PKG_NotExternallyReferenceable: {value: 0x00000800, comment: "Objects in this package cannot be referenced in a different plugin or mount point (i.e /Game -> /Engine)"}, PKG_Unused_1000: {value: 0x00001000, comment: "Unused"}, PKG_UnversionedProperties: {value: 0x00002000, comment: "Uses unversioned property serialization instead of versioned tagged property serialization"}, PKG_ContainsMapData: {value: 0x00004000, comment: "Contains map data (UObjects only referenced by a single ULevel) but is stored in a different package"}, @@ -361,7 +366,7 @@ var PackageFlags = { PKG_Unused_1000000: {value: 0x01000000, comment: "Unused"}, PKG_Unused_2000000: {value: 0x02000000, comment: "Unused"}, PKG_Unused_4000000: {value: 0x04000000, comment: "Unused"}, - PKG_Unused_8000000: {value: 0x08000000, comment: "Unused"}, + PKG_CookGenerated: {value: 0x08000000, comment: "This package was generated by the cooker and does not exist in the WorkspaceDomain"}, PKG_DynamicImports: {value: 0x10000000, comment: "This package should resolve dynamic imports from its export at runtime."}, PKG_RuntimeGenerated: {value: 0x20000000, comment: "This package contains elements that are runtime generated, and may not follow standard loading order rules"}, PKG_ReloadingForCooker: {value: 0x40000000, comment: "This package is reloading in the cooker, try to avoid getting data we will never need. We won't save this package."},