O3DParse 1.4.6
dotnet add package O3DParse --version 1.4.6
NuGet\Install-Package O3DParse -Version 1.4.6
<PackageReference Include="O3DParse" Version="1.4.6" />
<PackageVersion Include="O3DParse" Version="1.4.6" />
<PackageReference Include="O3DParse" />
paket add O3DParse --version 1.4.6
#r "nuget: O3DParse, 1.4.6"
#:package O3DParse@1.4.6
#addin nuget:?package=O3DParse&version=1.4.6
#tool nuget:?package=O3DParse&version=1.4.6
O3DParse
Read and write OMSI model and configuration files. O3DParse provides extensible read and write support for a number of OMSI file formats. These include:
- O3D & RDY model files
- CFG model files
- OVH & BUS files
- SCO scenery object files
- CFG passenger cabin files
- SLI spline definition files
- CTI repaint files
- MAP map tile files
O3DParse also includes a mesh-generator for splines.
Usage
Loading an OMSI ini file (any of the cfg, bus, sco, etc... files) is as simple as:
using var fs = File.OpenRead(path);
var cfg = OmsiIniSerializer.DeserializeIniFile<OmsiCFGFile>(fs);
To reserialize back to a file, is equally straightforward:
using var fs = File.OpenWrite(path);
OmsiIniSerializer.SerializeIniFile(model, fs, leaveOpen:false, minifyCFG);
When minifyCFG
is set to false
, then all the original comments in the loaded file are re-exported,
allowing for relatively lossless exports (some items may be re-ordered when exporting).
Using the O3D importer/exporter can be done as shown:
// Read the file
O3DFile o3d = O3DParser.ReadO3D(path);
// Write the file
WriteO3D(path, o3d);
Extending the Library
The serializer can easily be extended to support more ini-like file formats. To add support for a new
format, simply define the data model in C# as a bunch of classes or structs, and annotate them with the
required O3DParse attributes. See the OmsiCFGFile.cs
file for an example of how to annotate a data model.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
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.
Version | Downloads | Last Updated |
---|---|---|
1.4.6 | 301 | 6/10/2025 |