-
-
Notifications
You must be signed in to change notification settings - Fork 20
Breaking changes
Petr Pivoňka edited this page Jul 1, 2024
·
35 revisions
In case your interested version isn't documented enough, you can try using the FuGet Explorer and set the API diff version.
- Renamed
CPlugTree
Translation
toLocation
No breaking changes.
-
CGameCtnCollector
0x009
Version
has been removed -
CGameCtnChallenge
TMObjective_IsLapRace
andIsLapRace
have been merged toIsLapRace
-
CGameCtnChallenge
TMObjective_NbLaps
andNbLaps
have been merged toNbLaps
(could cause inexact behavior, report to me in case)
- Added more ways to construct
Ident
-
("", new(26), "")
for example does not work that well anymore. - For indexed collection, just do
("", 26, "")
, or for named one, go with("", "", "")
-
- Renamed
ClassManager.GetClassId
toGetId
CGameBlockItem
has changed
-
Dictionary<int, CPlugCrystal>
is nowIList<CGameBlockItem.Mobil>
-
Mobil
hasint Id
andCPlugCrystal Crystal
A LOT. For any problem not mentioned here, don't hesitate to hit me up on Discord.
TODO
Int4.Zero
returns Int4
now.
Removed Version
from CGameItemModel
0x009
.
In CGameCtnChallenge
, changing MapUid
or HashedPassword
tweaks with CRC32
now, which could be unexpected.
No breaking changes.
No breaking changes.
- Using GBX.NET reflection on Blazor WebAssembly projects or projects with enabled trimming can break. Consider turning off trimming of GBX.NET in this case.
TODO
-
CGameCtnGhost.PlayerInputData
propertyInputs
now implicitly appliesStartOffset
to individualTime
s ofIInput
-
CGameGhost.Data
- Constructor requires two parameters,
byte[] ghostData
andbool isOldData
- All
Read
methods have been privated
- Constructor requires two parameters,
-
CGameItemModel.Cameras
- changed fromCMwNod?[]?
toExternalNode<CMwNod>[]?
-
CGameObjectPhyModel
- changed a bunch of nullable properties to their not-nullable variant -
CPlugEntRecordData
- replacedSamples
with more exact solution, now there are multiple sample buffers insideEntList
instead -
CPlugShaderApply
- changed fromCPlugBitmapAddress?[]?
toExternalNode<CPlugBitmapAddress>[]?
-
GameBoxHeader
is no longer immutable - Removed
GBX.NET.Sample
- Older class names have been replaced with newer class names, usually
CSceneVehicle...
toCPlug
-
GameBoxWriter.WriteBigInt
has changed signature -
CPlugSolid2Model.MaterialUserInsts
renamed toMaterialInsts
(as it's the exact name)
- Changed a lot of
CGameCtnReplayRecord
arrays toIReadOnlyCollection
(I regret this change as you cannot index anymore, which I didn't know before)ControlEntries
Extras
Ghosts
InterfaceScriptInfos
SceneryVortexKeys
-
CGameCtnGhost
propertyLightTrailColor
typeVec3?
has been changed toVec3
- Made
Node.WriteAsync
internal (which should not have been public)
-
CGameCtnGhost.PlayerInputData
:-
InputChange
class has been changed toTrackmaniaInputChange
-
TrackmaniaInputChange
propertyIsRespawn
was changed toRespawn
-
-
CGameCtnCollector
propertyAuthor
was changed toIdent
(to apply namings considered from asserts in the code) -
CGameCtnGhost.Data
propertyNodeID
was changed toSavedMobilClassId
TODO
- Beginner
- Extracting basic map data
- Extracting ghosts from replays
- Extracting input data from ghosts
- Extracting checkpoints from ghosts (soon)
- Builders - create new nodes extremely easily (soon)
- Intermediate
- Basic map modification (soon)
- Embedding custom items to a map
- Working with script metadata
- Extracting samples from ghosts (later)
- Fast header reading and writing (later)
- Advanced
- Advanced map modification (soon)
- Creating a MediaTracker clip from scratch (soon)
- Lightmap modification (later)
-
TimeInt32
andTimeSingle
(soon) - Chunks in depth - why certain properties lag? (soon)
- High-performance parsing (later)
- Purpose of Async methods (soon)
- Compatibility, class ID remapping (soon)
- Class structure (soon)
- Class verification (soon)
- Class documentation
- Gbx from noob to master
- Reading chunks in your parser