Skip to content

Releases: BigBang1112/gbx-net

GBX.NET 0.5.4

10 Dec 15:08
520be97
Compare
Choose a tag to compare

Fix camerapath writing and macroblock item placing

GBX.NET 0.5.3

22 Nov 20:17
a590d76
Compare
Choose a tag to compare

Fix Unassigned1 writing, fix deflate stream reading

GBX.NET 0.5.2

19 Nov 14:48
8a8a8cc
Compare
Choose a tag to compare

.NET Framework 4.5 support, macroblock fixes, bugfix when setting skippable properties

GBX.NET 0.5.0

18 Nov 21:36
744ed03
Compare
Choose a tag to compare

One of the last releases before 1.0.

  • Added embed management to CGameCtnChallenge using native zipping from System.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() and GetBlocks() to CGameCtnChallenge
  • 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 and SharpZipLib.NETStandard dependencies
  • Minor fixes

GBX.NET 0.4.1

11 Nov 15:39
00d08d6
Compare
Choose a tag to compare

Fixed null exception when reading very old Trackmania tracks.

GBX.NET 0.4.0

29 Oct 14:21
108e3a1
Compare
Choose a tag to compare
  • 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

13 Oct 18:09
571b372
Compare
Choose a tag to compare

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

19 Sep 22:19
7f8ac5e
Compare
Choose a tag to compare

This release mainly fixes a major issue with reading Items from maps.

  • Remove body parameter from Node.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 is null
  • Custom exception if the node is missing

GBX.NET 0.2.0

19 Sep 17:30
b0123ae
Compare
Choose a tag to compare

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 and CGameCtnMediaBlockFxColors crash when reading TMUF maps
    • Proper read not supported yet
  • Enhanced data types
  • Changed Vector2 and Vector3 to new structs Vec2 and Vec3
  • Moved body chunks from GameBoxBody to Node for consistency with aux nodes
  • Added ReadToEnd(), ReadStringTillFacade() and ReadArrayTillFacade()
  • 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

12 Sep 13:49
ddf9959
Compare
Choose a tag to compare

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 implements ISkippableChunk and HeaderChunk<T> implements IHeaderChunk 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
  • Added wider expand of chunk management
  • Added a new class ChunkList for easier list management
  • Added ReadBytes() and ReadArray<T>() which read the number of elements first
  • Added ReadTill(uint) and ReadTillFacade() which read bytes until hitting the number, or 0xFACADE01
  • Modernized the ChunkAttribute
  • Added tons of MediaTracker blocks:
    • CGameCtnMediaBlockVehicleLight
    • CGameCtnMediaBlock3dStereo
    • CGameCtnMediaBlockBloomHdr
    • CGameCtnMediaBlockTime
    • ... many more ...
  • Expanded CGameCtnReplayRecord support
  • Fixed CGameCtnGhost for TM®
  • Added GhostTrigram property to CGameCtnGhost, available in TM®
  • Added CGameCtnMediaClip chunks 0x008 and 0x009
  • Expanded the documentation
  • Tons of minor changes

The new approach right now for the chunk reading is:

  • Inherit generic Chunk<T>/SkippableChunk<T> where the T is the Node 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 through T 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 and Node classes are extended by a new method ToJson() 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.