FF16Framework.Interfaces
1.1.2
dotnet add package FF16Framework.Interfaces --version 1.1.2
NuGet\Install-Package FF16Framework.Interfaces -Version 1.1.2
<PackageReference Include="FF16Framework.Interfaces" Version="1.1.2" />
<PackageVersion Include="FF16Framework.Interfaces" Version="1.1.2" />
<PackageReference Include="FF16Framework.Interfaces" />
paket add FF16Framework.Interfaces --version 1.1.2
#r "nuget: FF16Framework.Interfaces, 1.1.2"
#addin nuget:?package=FF16Framework.Interfaces&version=1.1.2
#tool nuget:?package=FF16Framework.Interfaces&version=1.1.2
ff16.utility.framework
Mod Framework for FFXVI using Reloaded-II.
Currently only Nex interfaces.
Nex Interface
You should grab the FF16Tools.Files NuGet Package to be able to read rows.
First, grab a INextExcelDBApiManaged
:
_nexApi = _modLoader.GetController<INextExcelDBApiManaged>();
if (!_nexApi.TryGetTarget(out INextExcelDBApiManaged nextExcelDBApi))
{
_logger.WriteLine($"[{_modConfig.ModId}] Could not get INextExcelDBApi.");
return;
}
Then, subscribe to an event when the game has loaded the nex database:
nextExcelDBApi.OnNexLoaded += NextExcelDBApi_OnNexLoaded;
You can use this to apply nex changes immediately once the event fires.
Always ensure that the database is initialized before attempting to do any changes (especially if you are applying changes again from a configuration change through ConfigurationUpdated
).
if (!nextExcelDBApi.Initialized)
return;
Basic usage
INexTable? photoTable = nextExcelDBApi.GetTable(NexTableIds.photocameraparam);
if (photoTable is null)
{
// Handle error
}
// Get a specific row
INexRow? row = photoTable.GetRow(7);
if (row is null)
{
// Handle error
}
// Iterate through rows/get keys
uint numSets = photoTable.GetNumSets();
for (uint i = 0; i < numSets; i++)
{
uint key1 = photoTable.GetMainKeyByIndex(i);
// ...
}
// Double keyed (example)
INexTable? gamemap = nextExcelDBApi.GetTable(NexTableIds.gamemap);
uint numSubSets = gamemap.GetSubSetCount(200000);
IReadOnlyList<NexSubSetInfo> allSubSets = photoTable.GetSubSetInfos(200000);
for (uint i = 0; i < numSubSets; i++)
{
NexSubSetInfo? subSetInfo = gamemap.GetSubSetInfoByIndex(200000, i);
if (subSetInfo is null)
{
// Handle error
}
}
// Manipulate/Fetch row
NexTableLayout layout = TableMappingReader.ReadTableLayout("photocameraparam", ...); // From FF16Tools.Files
float collisionSphereRadius = row.GetSingle((uint)layout.Columns["CollisionSphereRadius"].Offset);
row.SetSingle((uint)layout.Columns["CollisionSphereRadius"].Offset, 133.7f;
It is not yet possible to add/remove rows, access/manipulate structure arrays or edit strings.
INextExcelDBApi
is still supported, but you should use the managed api instead to avoid dealing with pointers/unsafe code.
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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.