FF7R2.DataObject.API
0.1.1
See the version list below for details.
dotnet add package FF7R2.DataObject.API --version 0.1.1
NuGet\Install-Package FF7R2.DataObject.API -Version 0.1.1
<PackageReference Include="FF7R2.DataObject.API" Version="0.1.1" />
paket add FF7R2.DataObject.API --version 0.1.1
#r "nuget: FF7R2.DataObject.API, 0.1.1"
// Install FF7R2.DataObject.API as a Cake Addin #addin nuget:?package=FF7R2.DataObject.API&version=0.1.1 // Install FF7R2.DataObject.API as a Cake Tool #tool nuget:?package=FF7R2.DataObject.API&version=0.1.1
A C# parser for FF7 Rebirth's DataObject files.
Installation
<br>
https://www.nuget.org/packages/FF7R2.DataObject.API<br>
Eitehr install the NuGet package, or clone this and add the "DataObject API" project as a project reference to your own project.
Description
To say this works would be a massive overstatement.<br> There's layers and layers of compression and re-use here, and whilst this can read the files, writing is experimental at best.
There's two save modes. I'm just gonna copy the doc because I'm lazy:
/// <see cref="Mode.OG_MODIFIED_BYTES"/> works in conjunction with the `DataAsByteProxy` property and just reads/writes to/from the bytes at specific offsets.
/// This works, at the cost of immutable array sizes.
/// <see cref="Mode.WRITE_PARSED_DATA"/>
/// This tries to write out the parsed file, and results are buggy in-game at best.
/// Tests pass for few files, and the ones that do (like equipment) just result in the items being gone in-game.
Example usage (for the edit-via-bytes method, though switching is fairly simple:
var asset = IoStoreAsset.Load(@"path\to\in\Equipment.uasset");
foreach (var (key, value) in asset.innerAsset.frozenObject.DataTable) {
value.propertyValues[EquipmentProperties.MateriaSlotDouble]!.As<ByteProperty>()!.DataAsByteProxy = 4;
value.propertyValues[EquipmentProperties.MateriaSlotSingle]!.As<ByteProperty>()!.DataAsByteProxy = 0;
}
asset.Save(@"path\to\out\Equipment.uasset", IoStoreAsset.Mode.OG_MODIFIED_BYTES);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- CUE4Parse (>= 1.2.1)
- System.Data.HashFunction.CityHash (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.