Releases: markus-wa/demoinfocs-golang
v1.0.0-beta.2
Additions
- Tracking of infernos (Molotovs & Incendiary fires) in
GameState.Infernos()
- Package
metadata
- currently contains translations between the game's world-coordinates and map-overview images. (#37 - thanks @micvbang) - Field
GrenadeProjectile.Trajectory
- contains the trajectory of a grenade (list of positions) - Event
NadeProjectileDestroyedEvent
- useful to get the final trajectory of aGrenadeProjectile
- Function
Entity.OnPositionUpdate()
- helper function for position updates - Function
Entity.BindPosition()
- helper function for binding the position of an entity to a pointer
Roadmap
See https://github.com/markus-wa/demoinfocs-golang/wiki/v1.0.0-Roadmap
v1.0.0-beta.1
API Breaking Changes
- Moved player information from
GameState.{[Playing]Participants(),TeamMembers()}
toGameState.Participants().{All(),Playing(),TeamMembers(),ByUserID(),ByEntityID(),FindByHandle()}
Additions
- Added
Entity.ServerClass()
back, in case we don't know what kind of entity we're dealing with - Added example for using unhandled entity-data
Roadmap
See https://github.com/markus-wa/demoinfocs-golang/wiki/v1.0.0-Roadmap
v1.0.0-beta.0
v1.0.0 Beta
After a long time the API is finally stable enough so we can comfortably go towards guaranteeing backwards compatibility for the foreseeable future.
The plan for releasing v1.0.0
is to have beta versions out for a while (1-2 months) without seeing a need for any breaking changes, then we should be ready to move forward.
This version aimed to clean up the mess that was sendtables
as well as some other issues (see #16). The new API should be more future-proof and expose less of the code that is only used internally.
API Breaking Changes
- Renamed
GameState.{T,CT}State()
functions toTeam{Terrorists,CounterTerrorists}()
so the functions are nicely ordered when sorted alphabetically - Moved
Parser.Entities()
toGameState.Entities()
- Replaced beta feature
Parser.SendTableParser()
withParser.ServerClasses()
(ServerClasses is fully supported for the future) - Refactored package
sendtables
- Moved
RoundEndReason
,RoundMVPReason
&HitGroup
types & constants toevents
package - Fixed typo in
events.RoundOfficiallyEndedEvent
(Officialy -> Officially)
Changes
- Improvements to the godoc
Features that were moved from beta status to fully supported
events.DataTablesParsedEvent
events.ParserWarnEvent
Parser.RegisterNetMessageHandler()
Roadmap
See https://github.com/markus-wa/demoinfocs-golang/wiki/v1.0.0-Roadmap
v0.5.4
Additions
- Added
GameState.GrenadeProjectiles()
, contains currently 'live' grenades i.e. flying around and smokes/mollies that are currently up. (#27 thanks @micvbang) - Added
NadeProjectileThrownEvent
, signals that a nade (projectile) has just been thrown - Added
NadeProjectileBouncedEvent
, signals that a nade just bounced off a wall or object - Added
NadeEventIf.Base()
to get the underlyingNadeEvent
- Added
Entity.Position()
helper function to get entity positions - Added
Entity.OnCreateFinished()
&Entity.OnDestroy()
for registering post-creation & pre-deletion actions respectively - Added
Entity.BindProperty()
&PropertyEntry.Bind()
utility functions for binding a property's value to a pointer
Changes
- Replaced unused
Player.Weapons
field withPlayer.Weapons()
method (#31) - Deprecated
PropertyEntry.RegisterPropertyUpdateHandler()
, addedPropertyEntry.OnUpdate()
- they are identical butOnUpdate
is shorter & easier to understand.
Fixes
v0.5.3
Changes
- Added
PropertyEntry.Value()
to allow access to property values (#26 thanks @zyphie) - Added
Parser.Entities()
to exposeParser.entities
(#22 thanks @zyphie) - Added
NadeEvent.NadeEntity
(#22) - Removed unnecessary property updates for baseline values (#24)
Fixes
- Fixed wrong Z coordinate for player positions (#28 thanks @micvbang)
- Fixed wrong property values on entities (#25)
Deprecation Notices
- Type
sendtables.PropValue
might be renamed toPropertyValue
or similar in the future. - Type
sendtables.FlattenedPropEntry
might be renamed toPropertyEntryMetadata
or similar in the future.
v0.5.2
v0.5.1
v0.5.0
API Breaking Changes
- Removed
warnHandler
parameter fromNewParser()
, replaced the old warning system withParserWarnEvent
- Replaced
NewParserWithBufferSize()
withNewParserWithConfig()
to allow for changes in the future without breaking the API
New Features
- Added
events.GenericGameEvent
which is fired for all currently unhandled events. - Parsing and handling of all net-messages via
Parser.RegisterNetMessageHandler()
. Currently unparsed net-messages can be parsed by adding an entry toParserConfig.AdditionalNetMessageCreators
. 1 - Added
ParserConfig.AdditionalEventEmitters
which can be used to enable fuzzy logic from thefuzzy
package. 1
Currently there is only oneEventEmitter
implementation which emitsfuzzy.TeamSwitchEvent
s for Valve MM demos. More will be added if this feature proves to be of use.
- Beta feature - this feature is subject to change / replacement without warning.
v0.4.0
This release has some breaking changes with the goal of cleaning up the API.
API Breaking Changes
- Moved game-state relevant info into
Parser.GameState()
(i.e. players, team states / scores etc.) - Moved
Parser.{FrameRate(),FrameTime()}
toDemoHeader.*
(Accessible viaParser.Header()
)
Changes
- Exposed access to DataTables (a.k.a. SendTables) via
Parser.SendTableParser()
1 - Added
StringTableCreatedEvent
1 - Print out demo-commands when debugging
Fixes
- Fixed
UpdateStringTable
messages not being handled correctly - Fixed
unassigned
players becoming CTs (Players who haven't chosen a side yet / some spectators)
- Beta feature - this feature is subject to change / replacement without warning.
v0.3.0
API Breaking Changes
- Changed bomb-events attribute
Site
to be of typebombsite
(eitherevents.BombsiteA
orevents.BombsiteB
) instead ofrune
- Changed name of field
BombBeginDefuseEvent.Defuser
toPlayer
so as to be in line with the other bomb-events
Changes
- Added build tag
debugdemoinfocs
for debugging game events etc. - Vendoring with
dep
- Bitread v0.2.1 (
BitReader.Skip()
)
Fixes
- Fixed
BombBeginDefuseEvent
not being handled byBombEventIf
handlers
Vendoring
We are using a separate repository for dependencies (https://github.com/markus-wa/demoinfocs-golang-vendor). The reason behind that is to avoid cluttering the repo and avoid search results on github returning irrelevant results.