Here are the changes made in August 2015:
- Major performance improvements for the BaseEntity.get_key_value_* methods. We rewrote them in C++ and added better error checking.
- Updated EntityPreHook and EntityPostHook decorators
- Added <PlayerEntity>.say(<message>) and <PlayerEntity>.say_team(<message>) to force a player to say something
- Added more dynamic and virtual functions for OrangeBox games and CS:GO
- Fixed a crash
- Exposed CUserCmd (useful to wrap the CUserCmd pointer in a CBasePlayer::PlayerRunCommand() hook)
- Added the ability to mute players. Available through the players.voice.mute_manager or directly by using PlayerEntity.mute/unmute/is_muted
- Added the ability to register a command callback with multiple decorators
- Improved _EngineTrace .enumerate_entities_in_box() (you don't need to care about the order of the first two Vector arguments)
- Fixed not being able to iterate over all output names
- Added the ability to register listeners for entity outputs (OnUse, OnStartTouch, OnKilled, etc.)
- Added CParticleSystem data
- Performance updates for all basehandle_from_* functions
- Fixed not being able to get the entity handle and classname from a non-networked entity
- Added <BaseEntity>.is_networked() to check if the entity is a networked entity or non-networked entity
- Added L4D2 team, weapon, CBaseEntity and CBasePlayer data
- Added more error checking to various objects
For the full changelog, please look here:
https://github.com/Source-Python-Dev-Team/Source.Python/compare/master@%7B2015-08-01%7D...master@%7B2015-09-01%7D
We appreciate every feedback!