Releases: BigBang1112/gbx-net
GBX.NET 0.5.4
Fix camerapath writing and macroblock item placing
GBX.NET 0.5.3
Fix Unassigned1 writing, fix deflate stream reading
GBX.NET 0.5.2
.NET Framework 4.5 support, macroblock fixes, bugfix when setting skippable properties
GBX.NET 0.5.0
One of the last releases before 1.0.
- Added embed management to
CGameCtnChallenge
using native zipping fromSystem.IO.Compression
- Added gradual parsing ability, making it possible to track progress and use earlier data before the whole parse is finished
- Added
CGameCtnChallenge.BakedBlocks
- Added
GetBlock()
andGetBlocks()
toCGameCtnChallenge
- Added
BlockInfoManager
for managing units and clips without having to read official block GBX - Added logging to GBX writing/saving
- Added
AdditionalMath
for few handy math functions - Increased write speed by avoiding
dynamic
GameBox.ParseHeader
now also reads reference table- Removed
Microsoft.CSharp
andSharpZipLib.NETStandard
dependencies - Minor fixes
GBX.NET 0.4.1
Fixed null exception when reading very old Trackmania tracks.
GBX.NET 0.4.0
- Moved GBX header back to the Node class
- Flags while debugging are now displayed in series of 0 and 1 for easier visualization
- Bunch of minor fixes
GBX.NET 0.3.0
This one took way too long, but it's out either way!
Tons of changes, major ones:
- CGameCtnBlockInfoClassic (EDClassic.Gbx) parsing added
- Introduced embed reading in CGameCtnChallenge
- Merged Block.cs with CGameCtnBlock.cs
- Added RaceValidateGhost to CGameCtnChallengeParameters
- Added more implicit operators to data types used in GBX
- Added a new Collection class to distinguish types of collection storage in Meta.
- Slightly simplified header access (full system will be coming soon)
- Improved node debug views using DebuggerTypeProxy
- Enhanced the documentation
GBX.NET 0.2.1
This release mainly fixes a major issue with reading Items from maps.
- Remove
body
parameter fromNode.Parse<T>()
- Fixed
null
errors related to chunks - Fixed header writing with no user data
- Experimental error avoidance of reading node reference
- Fixed thumbnail write if
Thumbnail
isnull
- Custom exception if the node is missing
GBX.NET 0.2.0
A big step closer to 1.0.0!
- Now compatible with .NET Standard 2.0
- Improved Node parsing algorithm, mainly by eliminating dynamic declaration while reading
- Up to 35% improvement in reading speed!
- No requirement to have an inherited constructor
- Improved GBX header parsing, small boost in there as well
- Added
CCtnMediaBlockEventTrackMania
, tracking stunt timestamps from TMS, lovely node that got deprecated in TMUF - Widen
CGameCtnReplayRecord
support - Avoided
CGameCtnMediaBlockTriangles
andCGameCtnMediaBlockFxColors
crash when reading TMUF maps- Proper read not supported yet
- Enhanced data types
- Changed
Vector2
andVector3
to new structsVec2
andVec3
- Moved body chunks from
GameBoxBody
toNode
for consistency with aux nodes - Added
ReadToEnd()
,ReadStringTillFacade()
andReadArrayTillFacade()
- Renamed ChunkList to ChunkSet
Includes a release GBX.NET.Json 0.1.1 which very simply just downgrades the required framework to .NET Standard 2.0.
You can also test the Island Converter port to .NET Framework 4.6.1 by cloning the project.
GBX.NET 0.1.0
This release rewrites the entire system of chunk data storing. Now available on NuGet. This release still works under .NET Standard 2.1.
- Added
GameBox.Parse
to simplify the GBX parsing.GameBox.Load()
is now obsolete. - Introduced a chunk system of
HeaderChunk<T> : SkippableChunk<T> : Chunk<T> : Chunk
- Necessary rework to make the simplest possible chunk read/write mechanism - method arguing the specific node class
SkippableChunk<T>
additionally implementsISkippableChunk
andHeaderChunk<T>
implementsIHeaderChunk
for simplified non-type specific actions
- Header chunks are not part of the
Node
properties anymore (obsoletes weren't included so if you have worked with the library already, you may experience errors)- At the moment, you have to read them through
GameBoxHeader
- At the moment, you have to read them through
- Added wider expand of chunk management
- Added a new class
ChunkList
for easier list management - Added
ReadBytes()
andReadArray<T>()
which read the number of elements first - Added
ReadTill(uint)
andReadTillFacade()
which read bytes until hitting the number, or0xFACADE01
- Modernized the
ChunkAttribute
- Added tons of MediaTracker blocks:
- CGameCtnMediaBlockVehicleLight
- CGameCtnMediaBlock3dStereo
- CGameCtnMediaBlockBloomHdr
- CGameCtnMediaBlockTime
- ... many more ...
- Expanded
CGameCtnReplayRecord
support - Fixed
CGameCtnGhost
for TM® - Added
GhostTrigram
property toCGameCtnGhost
, available in TM® - Added
CGameCtnMediaClip
chunks0x008
and0x009
- Expanded the documentation
- Tons of minor changes
The new approach right now for the chunk reading is:
- Inherit generic
Chunk<T>
/SkippableChunk<T>
where theT
is theNode
the class is nested in - Override the Read/Write/ReadWrite with the
T node
included - Implement known values to the desired
Node
class and set them throughT n
- Implement unknown values in the chunk or through the
Unknown
stream, just as before - No need to implement the constructor,
Chunk
now has a parameterless constructor
A new subcomponent has been added called GBX.NET.Json:
- Library for simplified JSON serialization of GBX, useful for comparing data for example
GameBox
andNode
classes are extended by a new methodToJson()
after including
Another version 0.2.0 is gonna be coming out next week that will expand the library compatibility to .NET Standard 2.0.