Releases: BigBang1112/gbx-net
GBX.NET 2.1.1
- Added support for
Shader.Gbx
,CtrlCam.Gbx
,CtrlCamTarget.Gbx
,CtrlCamOrbital3d.Gbx
,CtrlCamTmRace.Gbx
,CtrlCamTmRace2.Gbx
,CtrlCamTmRace3.Gbx
,DecoSolid.Gbx
,TrackManiaVehicle.Gbx
,TMVehicle.Gbx
/ConstructionVehicle.Gbx
,VehicleStruct.Gbx
,FuncClouds.Gbx
,FuncShader.Gbx
,AmbientOcc.Gbx
,ParticleModel.Gbx
(only TMUF),Scene3d.Gbx
(only TMUF), andRefBuffer.Gbx
. - Added support for reading external nodes directly inside Pak files
GbxRefTable
ExternalData
is nowExternalNodes
- Fixed header chunks for
CGameCtnCollection
andCGameCtnDecoration
- Recognized many member names from various classes (mostly TMUF, but some TMS too)
- Named some TMUnlimiter classes
- Fixed many classes for TMUF Pak export
GBX.NET.PAK 2.1.0
- Added v6+ support for unencrypted parts (decryption coming soon!)
Pak6
class inheritsPak
, butPak.Parse
can recognize the version. To view Pak v6 specifics, gotta cast toPak6
class.
- Added possibility to not pass the key to read the unencrypted parts
OpenGbxFile
now fillsGbxRefTable.ExternalNodes
whenimportExternalNodesFromRefTable=true
Gbx Explorer (yo updates to Explorer?)
- Chunk IDs in Value Explorer are no longer masked to the last 3 digits
- Hovering over class grouping shows the namespace of the class
- Fixed some CSS on unknown class names
Assets were automatically generated using the publish workflow.
GBX.NET 2.1.0
- Added experimental Gbx text format support (it hasn't been tested for a long time, please let me know about any issues)
- Added
DataUInt32
, binary scope, and other internal things to help with text format Gbx files - Added lightmap UV support to
CPlugCrystal
- Added color palette support (TM2020)
- Added
EncryptionInitializer
toGbxReadSettings
for handling ivXor tricks in Pak files - Implemented
CPlugDecoratorSolid
- Improved
Normal
andColor
support forCPlugVisual3D
- Filled
CPlugVehicleCarPhyTuning
with many new member names (by @GreffMASTER ) - Changed all generated
IList
toList
, which provides better options for optimizatoin - Changed
CPlugTree.Flags
fromint
toulong
CGameCtnBlock
Variant
andSubVariant
are no longer nullable- Moved
CGamePodiumInfo
toGame
namespace - Various block info read/write improvements for TM2 Gbxs
CMwNod.IsGameVersion
is nowvirtual
to specify concrete game version cases manuallyCGameCtnGhost
can now distinguish MP4 from TM2020 with this function
- Extended
CGameCtnZone
with TM2 features - Fixed map embedding reporting missing items (even when they were embedded)
- Fixed consistency issues with
CGameCtnChallenge
NbLaps
- Fixed
CGameCtnChallenge
AuthorLogin
being set to empty string accidentally - Fixed
CGameCtnBlockInfoVariant
Mobils
property not being public - Fixed
CPlugParticleEmitterSubModel
for TMUF - Fixed
CGameBlockItem
ArchetypeBlockInfoCollectionId
issues with numeric collections - failing to modify custom blocks from TM2020 - Added normals support to
ObjExporter
CPlugSolid
- Various
ObjExporter
fixes related to LOD - Various chunk fixes and improvements
- Updated to .NET 9 (.NET 8/6 and Standard 2 is still kept)
Various updates to other sub-libraries due to .NET 9 update.
New package GBX.NET.PAK!
Assets were automatically generated using the publish workflow.
GBX.NET 1.2.9
- Fixed constraint of map item chunk version being 8 instead of 9
GBX.NET 1.2.8
- Fixed map item chunk of Fall 2024 update
GBX.NET 2.0.9
- Added
Gbx.IsCompressed
andGbx.IsUncompressed
(throws on non-Gbx data) - Fixed map item chunk read/write as Nadeo might have changed it a little
Tool framework:
- Refactored tool execution to be possible to generate compile-time in the future
- Warning can now be eliminated with methods suffixed with
Statically
- Warning can now be eliminated with methods suffixed with
- Added stdin support
Assets were automatically generated using the publish workflow.
GBX.NET 2.0.8
An update released earlier before the Platform update to reduce chaos with UOTD and Envimix bots.
CPlugCrystal
: AddedLightLayer
CPlugCrystal
: Added message for unsupported layersCPlugCrystal
: FixedMaterials.Count == 0
being handled incorrectlyCGameCtnChallenge
: Added item chunk version 8 support (leak from TOTD map made in alpha)CGameCtnChallenge
: LinkedMapType
andMapStyle
withChallengeParameters
CGameCtnChallenge
: Fixed no lightmap frames writing compressed dataCGameCtnBlockInfo
: AddedSpawnLocAir
andSpawnLocGround
CPlugMaterialUserInst
: Changed types ofSurfacePhysicId
andSurfaceGameplayId
CGameGhost
: Fixed chunk0x003
(very old TM games)CPlugShader
: Implemented missing0x01F
chunk- Added
CPlugVisualQuads
- Fixed optimized ints when the length is exactly 255 or 65535
- Fixed face writing in
ObjExporter
Tool framework
- Added
IComplexConfig
to avoid loading the whole complex configuration into memory on each tool instance - Added more YML features
Assets were automatically generated using the publish workflow.
GBX.NET 2.0.7
- Added
CPlugSolid2Model.ExportToObj()
- Added missing
DefaultZone
toCGameCtnCollection
- Added missing
CGameUserFileList
from v1 - Added
CPlugWeatherModel
/CMotionManagerWeathers
support - Added missing
IGbx
interface members - Added concrete exception for text format Gbxs
- Added
GetValidFileName()
,InvalidFileNameChars
, andInvalidFileNameCharSearchValues
toGbxPath
- Implemented
CFuncKeysSkel
0x001
- Implemented missing
CGameCtnGhost.Checkpoint
ToString
from v1 - Made
CGameCtnReplayRecord.InterfaceScriptInfos
nullable (fixes JSON serialization) - Changed
CPlugSurface.SurfMaterial.SurfaceId
fromshort
toCPlugSurface.MaterialId?
- Fixed
CPlugTree
all children methods to properly handle mips - Fixed
CPlugMaterial
for TMF - Fixed
CPlugCrystal.SpawnPositionLayer
being wrongly de/serialized - Fixed various serialization problems (often meshes and metadata) when values were between 255-65534
- Fixed some class IDs not being mapped properly
New package GBX.NET.Crypto!
GBX.NET.Tool.CLI 0.2.0:
- Added YML support
- Added
HidePath
toConsoleSettings
- Added
JsonOptions
toToolConsoleOptions
- Renamed
JsonSerializerContext
toJsonContext
inToolConsoleOptions
- Enhanced logging
GBX.NET.LZO 2.1.1:
- Made
Lzo.Compress
thread-safe due to unknown parallel issues
Assets were automatically generated using the publish workflow.
GBX.NET 1.2.7
- Fixed
CGameCtnMediaBlockCameraCustom
of Summer 2024 update
GBX.NET 2.0.6
- Enhanced
CGameCtnBlock
properties (by @tomek0055)Unassigned1
blocks have been discovered as decal properties of the previous block:DecalId
,DecalIntensity
,DecalVariant
- Added
IsPillar
andIsReplacement
- Added
PhyCharSpecialProperty
(classCScenePhyCharSpecialProperty
) - Added
SquareCardEventIds
- Some
CGameCtnChallenge
method signatures have been updated to address the change (breaking change) HasFlags
andBit17
are now obsolete
- Added full
CPlugPrefab
support - Added
CPlugDynaObjectModel
support (moving items in TM2020) - Block's X and Z coordinates are now subtracted by 1 in TM2 and TM2020 maps (breaking change)
- Reworked
CPlugTreeVisualMip
(breaking change)IDictionary<float, CPlugTree> Levels
is nowIList<CPlugTreeVisualMip.Level>
Level
hasfloat FarZ
andCPlugTree Tree
- Enabled lightmap support properly in
CGameCtnChallenge
- Added new read setting
SafeSkippableChunks
- Reads skippable chunks more expensively (similarly to GBX.NET 1) while allowing to ignore skippable chunk data
- Saving Gbx files with these errors can lead to unpredictable issues
- Added
exceptions = true
to external node properties - Updated
GetChallenge
methods inCGameCtnReplayRecord
with asyncs and parse configuration - Implemented some missing
CPlugMaterial
andCPlugShader
chunks from v1 - Added
CGameCtnChallenge.GenerateMapUid()
- Added
Color.ToRgba()
Gbx.Compress
now attempts to recompress, which can result in better or worse compressionGbx.Compress
andGbx.Decompress
no longer returnbool
(breaking change)- Removed
Gbx.Recompress
to reduce confusion (breaking change) - Fixed
Gbx.Compress
incorrectly copying over - Fixed map metadata writing string lengths to write byte lengths instead of character lengths
- Fixed
CPlugSolid
0x000
version15-28
not being properly written - Fixed
CPlugVehicleCarPhyTuning
for ManiaPlanet - Fixed
CGameCtnCollection
for ManiaPlanet - Attempts to fix
CPlugSurface
for TM2020 - Updated TmEssentials to 2.5.0
- Updated some attributes
GBX.NET.LZO 2.1.0 now uses native LZO implementation with 999 compression by default. This compression has been tested on all Trackmania games with success.
GBX.NET.Imaging.SkiaSharp 1.1.0:
- Added
ImportIcon
toCGameCtnCollector
extensions - Fixed incorrect colors on WebAssembly build
GBX.NET.NewtonsoftJson 1.0.1:
- Added static
GbxJson
class and trimming annotations
New package GBX.NET.Imaging.ImageSharp, GBX.NET.Tool and GBX.NET.Tool.CLI!
Assets were automatically generated using the publish workflow.
GBX.NET 2.0.6-beta3
Assets were automatically generated using the publish workflow.