载入中...
搜索中...
未找到
AssetCommand.cpp
浏览该文件的文档.
41 if (!bytes.empty()) input.read(reinterpret_cast<char*>(bytes.data()), static_cast<std::streamsize>(bytes.size()));
72Result<asset_import::UnitySourceFiles> readTree(const std::filesystem::path& root, std::uint64_t maximumBytes,
77 Diagnostic::error(DiagnosticCode::NotFound, "asset project root is not a readable directory", root.string(),
81 for (std::filesystem::recursive_directory_iterator it(root, std::filesystem::directory_options::none, ec), end;
108 DiagnosticCode::Failed, "cannot traverse asset project: " + ec.message(), root.string(), {}, "cmd.asset"));
123 return readTree(sourcePath, limits.maximumSourceBytes, std::uint64_t(limits.maximumAssets) * 2);
124 auto files = readTree(assetsRoot, limits.maximumSourceBytes, std::uint64_t(limits.maximumAssets) * 2);
161 std::string from, input, secondInput, output, packageId, packageName = "imported.asset", packageVersion = "1.0.0";
163 std::string descriptor, terrain, terrainDetails, prefab, colorSpace = "srgb", usage = "color", target;
166 assetCommand = app.add_subcommand("asset", "Import, validate, inspect and Cook EVEngine asset packages");
169 assetCommand->add_subcommand("scan", "Index a Unity package or source directory without importing");
171 importCommand = assetCommand->add_subcommand("import", "Import source content into a canonical .eva");
178 importCommand->add_option("--descriptor", descriptor, "UE adapter descriptor relative to input root");
189 inspectCommand = assetCommand->add_subcommand("inspect", "Print package identities and contents");
206 diffCommand = assetCommand->add_subcommand("diff", "Compare canonical assets and dependencies in two .eva files");
302 if (value) external.emplace(it->path().filename().generic_string(), std::move(value).takeValue());
306 {identity.value(), std::filesystem::path(input).filename().string(), std::move(source).takeValue(),
311 auto files = from == "unity" ? readUnityInput(input, limits) : readTree(input, limits.maximumSourceBytes);
334 std::cout << (finding.severity == asset_import::ImportSeverity::Warning ? "warning " : "finding ")
335 << static_cast<unsigned>(finding.disposition) << " " << finding.feature << " " << finding.message
343 auto source = readFile(input, std::max(evaLimits.maximumArchiveBytes, packLimits.maximumPackageBytes));
393 auto receipt = store.publishEva(output, candidate.manifest, std::move(candidate.entries), limits);
435 if (!change.beforeType.empty()) std::cout << " before=" << change.beforeType << "/" << change.beforeVersion.value();
436 if (!change.afterType.empty()) std::cout << " after=" << change.afterType << "/" << change.afterVersion.value();
Deterministic canonical .eva to capability-targeted .evpack Cook.
Deterministic semantic comparison of two `.eva` manifests.
Tool-side image and glTF importers producing canonical .eva candidates.
Transactional migrations for canonical definitions stored in .eva.
Reopen-verified atomic publication for .eva and .evpack files.
Migration of legacy `*.anim.txt` fixtures to `.eva`.
Direct Unity text-serialization adapter for TerrainData and Prefab assets.
Bounded Unity package ingestion and project identity index.
UE5/M⁴ landscape adapter that does not execute or link Unreal Engine.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
const std::string & source() const noexcept
Optional producer or subsystem that emitted the diagnostic.
Definition Diagnostic.h:153
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static std::optional< Id128 > parse(std::string_view text) noexcept
Parses canonical UUID text.
Definition Identity.h:151
@ Animation
Result< UnitySourceFiles > readUnityPackage(std::span< const std::uint8_t > bytes, const AssetImportLimits &limits)
Decode a gzip/tar .unitypackage into project-relative source bytes without extraction.
Definition UnityPackage.cpp:225
ImportSeverity
Severity of an importer finding, independent of its conversion disposition.
Definition AssetImporter.h:72
Result< PreparedAssetImport > prepareLegacyAnimationImport(const LegacyAnimationImportRequest &request)
Convert a legacy text fixture into canonical skeleton and animation-clip assets.
Definition LegacyAnimationImporter.cpp:218
GltfImportMode
Strict rejects invalid material factors; permissive clamps finite factors with warnings.
Definition AssetImporter.h:51
@ Permissive
std::map< std::string, std::vector< std::uint8_t > > UnitySourceFiles
Owning project-relative source bytes, including the original .meta files.
Definition UnitySource.h:12
UnitySourceKind
Source category; classification does not imply runtime conversion support.
Definition UnitySource.h:15
Result< PreparedAssetImport > prepareShaderImport(const ImportPackageIdentity &package, std::string_view json)
Prepare a canonical shader definition for the existing atomic .eva publisher.
Definition ShaderImporter.cpp:6
ImageColorSpace
Explicit source color semantics; importers never infer platform defaults.
Definition AssetImporter.h:27
Result< UnitySourceIndex > indexUnitySources(const UnitySourceFiles &files, const AssetImportLimits &limits)
Validate project paths and .meta identities and index serialized GUID/fileID references.
Definition UnitySource.cpp:121
Result< PreparedAssetImport > prepareUnityProjectImport(const UnityProjectImportRequest &request)
Import selected Unity assets, or discover a collection when both selectors are empty.
Definition UnityImporter.cpp:769
EVENGINE_API_PLATFORM Result< PreparedAssetImport > prepareImageImport(const ImageImportRequest &request)
Decode image metadata and prepare one canonical eve.image source asset.
Definition ImageImporter.cpp:80
Result< PreparedAssetImport > prepareUnrealM4Import(const UnrealProjectImportRequest &request)
Import an M⁴-style Landscape/material/grass slice without launching Unreal.
Definition UnrealImporter.cpp:132
EVENGINE_API_PLATFORM Result< PreparedAssetImport > prepareGltfImport(const GltfImportRequest &request)
Decode triangle primitives from glTF 2.0 into canonical typed mesh blobs.
Definition GltfImporter.cpp:205
Result< Evpack > parseEvpack(std::span< const std::uint8_t > bytes, const EvpackLimits &limits, const EvpackTrust &trust)
Parse, bound-check and hash-verify a complete untrusted .evpack.
Definition Evpack.cpp:542
Result< EvaArchive > parseEvaArchive(std::span< const std::uint8_t > bytes, const EvaArchiveLimits &limits)
Parse and fully verify an untrusted .eva ZIP64 image.
Definition EvaArchive.cpp:505
Result< EvaPackageDiff > diffEvaManifests(const EvaManifest &before, const EvaManifest &after)
Compare two admitted manifests without using paths, timestamps or archive order.
Definition AssetDiff.cpp:29
Result< AssetCookReceipt > cookEvaToEvpack(const EvaArchive &source, const AssetCookProfile &profile, const EvaArchiveLimits &evaLimits, const EvpackLimits &evpackLimits)
Cook an admitted source archive into one target-specific runtime pack.
Definition AssetCooker.cpp:150
Result< EvaArchive > migrateEvaArchive(EvaArchive source, const EvaArchiveLimits &limits)
Migrate every definition in an owning archive to its current schema.
Definition AssetMigration.cpp:537
Result< AssetCookProfile > assetCookProfileForTarget(std::string_view target)
Resolve a stable CLI/tool target name to its exact capability profile.
Definition AssetCooker.cpp:129
Definition Build.cpp:16
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
@ InvalidArgument
@ NotFound
@ Unsupported
@ Failed
@ Object
@ Warning
@ Audio
Definition Container.h:602