Skip to content

Releases: BigBang1112/gbx-net

GBX.NET 0.10.2

06 Jun 15:24
c7e72db
Compare
Choose a tag to compare
  • Fixed exception related to EventsDuration == 0
  • Fixed problems with CGameCtnMediaBlockTime

GBX.NET 0.10.1

05 Jun 22:04
fbeebb3
Compare
Choose a tag to compare
  • Added GBX.NET.IO
  • Added null check on GameBox.AssignBodyToNode
  • Fixed parse of CGameCtnMediaTrack 0x004
  • Other fixes

GBX.NET 0.10.0

01 Jun 17:55
f9aa906
Compare
Choose a tag to compare

Version 0.10.0 is finally out together with GBX.NET.LZO and GBX.NET.Imaging.

The library successfully drops System.Drawing.Common from its needed supports, making the library package-independent in .NET Standard 2.0.

  • The library is now separated into GBX.NET and GBX.NET.LZO
    • GBX.NET, GBX.NET.Imaging, and GBX.NET.Json are now distributed under MIT
    • GBX.NET.LZO stays GNU GPL 3.0, which means you have to use GNU GPL 3.0 after referencing
    • More details available in README
  • Added support for TM2020 ghost sample data reading
    • CPlugEntRecordData has been successfully reverse-engineered
    • The ghost now provides the same data as a usual TM ghost (position, rotation, velocity, speed)
    • Shootmania ghost samples are also retrievable, but the only position that is accurate
  • CSystemConfig (.SystemConfig.Gbx) is now officially supported
  • Added support for input reading ranging TM1.0 - TM2
  • Added experimental readUncompressedBodyDirectly parameter recommended for parsing internal GBX files from the internet
  • Added support for reading nodes in streams with CanSeek: false
  • Added map lightmap read/write support
    • Methods currently missing in GBX.NET.Imaging
  • Map thumbnail is now presented as a byte array
    • GBX.NET.Imaging has extensions that convert them into Bitmap
  • Collector icons are now presented as 2D arrays of colors
    • GBX.NET.Imaging has extensions that convert them into Bitmap
  • Added INodeHeader to CGameCtnChallenge and CGameCtnReplayRecord
    • An interface that shows only the properties that can be read from the header
  • Added CGameCtnMediaBlockTimeSpeed
  • Added CCtnMediaBlockUiTMSimpleEvtsDisplay
  • Added GameBox.TryNode method
  • DiscoverAll method has now parallel and serial methods
  • Enhanced CGamePlayerProfile
  • GameBoxReader.ReadArray method now has an optional length parameter
  • Fixed ghost parse for TM Turbo
  • Fixed ghost checkpoints for TMUF and lower ghosts
  • Fixed light trail color for TM2 not showing
  • Fixed BakedBlocks property not discovering its chunks
  • Fixed name collisions with reference table classes
  • Removed more obsoletes
  • Class reorganizations
  • Tons of more minor changes

Renames:

  • Renamed CGameGhost.Data to CGameGhost.SampleData
  • Renamed MediaBlockKey to CGameCtnMediaBlock.Key
  • Renamed MapOrigin and MapTarget to MapCoordOrigin and MapCoordTarget
  • Renamed Embeds to EmbeddedObjects
  • Renamed SecondaryPackDesc to ForegroundPackDesc

GBX.NET 0.9.0

04 Mar 18:05
0d5e068
Compare
Choose a tag to compare
  • Project now supports AnyCPU and x64 for reading purposes
  • New parsing strategy so that GBX streams with CanSeek set to false can be parsed
  • Improved ghost's control entries to support analog input with ControlEntryAnalog class
  • Added a new contrustor GameBox<T>(T node) to make saving Node to GBX format easier
  • Added CGameCtnGhostData.GetSampleLerp for sample data interpolation
  • Added CGameCtnChallenge chunks 0x01A, 0x01B, 0x01D
  • Added CGameCtnReplayRecord chunk 0x018
  • Added CGameCtnGhost chunk 0x025, fixed parse of 0x000
  • Added AnchorTreeId to CGameCtnAnchoredObject
  • Added TriggerSize to offzones
  • Added CompressedStream to reduce repetitiveness
  • Added better handle of ghost data exceptions
  • Added more classes to ClassID.txt
  • Added GameBoxReader.HasMagic method
  • Added TimeSpan.ToStringTM method for a string representation similar to Trackmania's
  • Added Lerp methods for Vec2, Vec3 and Quaternion
  • DiscoverAll methods now discovers chunk in parallel
  • Block coords now substract by 1,1,1 only if chunk version >= 6
  • Changed FileRef LocatorUrl to Uri type
  • Removed DebugViews on nodes
  • Removed more obsolete features

GBX.NET 0.9.0-rc

28 Feb 19:14
1446cbc
Compare
Choose a tag to compare
GBX.NET 0.9.0-rc Pre-release
Pre-release

Full changelog will come on full release.

GBX.NET 0.8.0

29 Jan 15:49
d8e6f52
Compare
Choose a tag to compare
  • Item.Gbx and Block.Gbx parsing has been expanded
    • Added CGameCommonItemEntityModelEdition
    • Added support for mesh reading (+ ToOBJ method converting the mesh to .obj) through CPlugCrystal
    • CGameItemPlacementParam now reflects map editor placement values
    • New properties for CGameItemModel and CGameBlockItem
    • Added CPlugVehiclePhyModelCustom for custom vehicle item reading
  • Data type classes rename
    • LookbackString to Id and Meta to Ident, including renames in GameBoxReader, GameBoxWriter and GameBoxReaderWriter
  • Wrongly parsed unskippable chunk now throws an exception
  • Added new chunk support:
    • CGameCtnChallenge: 0x050 (offzones), 0x052 (deco height), 0x053 (bot paths), 0x056 (light settings)
    • CGameCtnMediaBlockCameraGame: 0x005
    • CGameCtnMediaBlockBloomHdr: 0x001
  • Fixed chunks:
    • CGameCtnMediaBlockCameraPath: 0x003
    • CGameCtnMediaBlockGhost: 0x002
    • CGameCtnReplayRecord: 0x003
  • Added TriggerSize property for CGameCtnChallenge 0x049 (MediaTracker).
  • Added a new clean way of reading+writing chunks through ref keyword
  • Added new methods for GameBoxReader, GameBoxWriter and GameBoxReaderWriter to reduce parse code repetition.
  • Added vector magnitude methods
  • Added AdditionalMath.Lerp() method
  • Prefer km/h over m/s in ghost speed measures
  • Support ghost sample reading from CGameGhost 0x003 chunk
  • GBX saving can be now controlled with other streams other than MemoryStream
    • However there might be actions involving seeking, so check that your stream supports seeking!

This update also reveals a road to the x64 platform library support. A new check has been added for GameBox.Save() to throw an exception if the library is running in x64 (as the bug is with the LZO compressing). In this version though, the library is still x86 only. x64 platform support for reading-only is planned for 0.9.0.

Island Converter 1.0.0

  • Program now runs on .NET Framework 4.5.2, included natively in every Windows since Win7
    • Fixes problems with opening the exe file. If Nations Converter did open to you, Island Converter will also open.
  • Added clip support for all blocks
  • Added Platform gamemode conversion support
  • Added official port of some TMS sign skins
  • Fixed TONS of blocks
  • Fixed problems with 32x32 (+ 31x31) base
    • Converting multiple maps at once won't break the maps
    • Fixed MediaTracker trigger and camera alignment
    • Fixed invisible water underground in 32x32 base
    • Fixed centering being off by 1 unit
    • Fixed item height for 31x31
  • New water-removing system that properly handles water cleanup under terrain
  • Fixed crash when selecting a map without thumbnail
  • GBX.NET has been updated to 0.8.0
    • Better performance, minor conversion fixes, MediaTracker parsing fixes

How to install Island Converter

  1. Download the IslandConverter.zip
  2. Extract it anywhere (on Desktop for example)
  3. Open the folder
  4. Open IslandConverter.exe

Island Converter 1.0.0-rc2

23 Jan 01:04
474b8cd
Compare
Choose a tag to compare
Pre-release
  • Added clip system with clips currently available only on highway road start and finish
  • Added Platform gamemode conversion support
  • Added official port of some TMS skins
  • Fixed bugged water blocks in 32x32
  • Fixed invisible water underground in 32x32 base
  • Fixed item height for 31x31
  • Fixed crash when selecting a map without thumbnail
  • Many block fixes (very close to all-fixed). Look around for remaining bugs!

How to install Island Converter

  1. Download the IslandConverter-rc2.zip
  2. Extract it anywhere (on Desktop for example)
  3. Open the folder
  4. Open IslandConverter.exe

GBX.NET 0.8.0-rc2

20 Jan 19:37
22856bc
Compare
Choose a tag to compare
GBX.NET 0.8.0-rc2 Pre-release
Pre-release
  • Fixed parse of CGameCtnMediaClip chunk 0x005
  • Improved logging for WriteNodes() method
  • Added TriggerSize property to 0x049
  • Added logging Push event intended for moving log report display cursor up

Island Converter 1.0.0-rc1

  • Program now runs on .NET Framework 4.5.2, included natively in every Windows since Win7
    • Fixes problems with opening the exe file. If Nations Converter did open to you, Island Converter will also open.
  • GBX.NET has been updated to 0.8.0-rc2
    • Better performance, minor conversion fixes, MediaTracker parsing fixes
  • Fixed problems with 32x32 (+ 31x31) base
    • Converting multiple maps at once won't break the maps
    • MediaTracker triggers and cameras are correctly aligned
    • Fixed centering being off by 1 unit
  • New water-removing system which should improve with less water in tunnels

Please report load-related, conversion-related and block-related issues. A full release is planned at the end of the week.

How to install Island Converter

  1. Download the IslandConverter-rc1.zip
  2. Extract it anywhere (on Desktop for example)
  3. Open the folder
  4. Open IslandConverter.exe

GBX.NET 0.8.0-rc

19 Jan 00:55
95a12b7
Compare
Choose a tag to compare
GBX.NET 0.8.0-rc Pre-release
Pre-release
v0.8.0gbx-rc

Fix IslandConverter errors

GBX.NET 0.7.0

04 Jan 21:49
23f872c
Compare
Choose a tag to compare
  • Added the new CGameGhost.Data member providing CGameGhostData, which contains the most basic sample data of a ghost at the moment
  • Added some of the missing chunks related to MediaTracker, maps, and replays
  • Added Quaternion struct and more AdditionalMath features
  • Fixed some improper time values, added GameBoxReader.ReadTimeSpan() and GameBoxWriter.Write(TimeSpan? timeSpan)
  • Provided a less wordy method of parsing arrays in ReaderWriter methods

Doc Generator has been also added to the repository which helps with partially automating the chunk navigation in markdown.