This is a mega-issue covering various requests for implementing AS binding for pre-existing cpp classes. These will live here.
Client Side
- Potentially expose pano to AS? Would help for interfacing with UI and game
MaterialSystem
Server Side
CBaseEntity
- Core
- Effect Flags (
EF_)
- Entity and Behavior Flags (
EFL_, FL_)
- Thinking
CBaseAnimating
CBasePlayer
Triggers
Additional entity classes
Global Functions
Gameplay
AI
- Need
CBaseCombatCharacter, CAI_BaseNPC and CNPC_PlayerCompanion properly exposed to get a basic NPC going
- Potentially re-add NextBot support to game build and expose to AS?
- NPC animations, attacks, capabilities, tasks, schedules, classifications (e.g.:
CLASS_PLAYER_ALLY_VITAL, CLASS_COMBINE), relationships, line-of-sight/Potentially Visible Set
- Weapon interactions are being tracked as part of weapons binding requests below (acttables, attacks, et al.)
Player
- Expose
CBasePlayer, CPortal_Player
Weapons
Misc
Portal-specific
Portals
Testing elements
These will not be directly exposed. Instead an ECS type system is planned for these to add behaviors to them instead.
Engine
Tools
Hammer
Misc
- Could potentially bring in AS support for faceposer and hlmv?
- Would also help to have custom AS-based engine tools...
Mathlib
This is a mega-issue covering various requests for implementing AS binding for pre-existing cpp classes. These will live here.
Client Side
MaterialSystem
IMatRenderContextServer Side
CBaseEntitySetName()Right now the name can be changed, but it has to be done withCBaseEntity::KeyValue("targetname", name)EF_)EF_bitflagsEF_ITEM_BLINKandEF_PARENT_ANIMATESare not exposed. Latter might not be needed. Also currently the dump is saying thatEF_MAX_BITSis earlier in the Enum than where it is in 2013SDK. Unsure if this means that it was defined with a lower value incorrectly or the dumper is weird.EFL_,FL_)float GetNextThink( int nContextIndex )void SetLastThink( int nContextIndex, float thinkTime )int GetNextThinkTick( int nContextIndex )CBaseAnimatingIgniteNumHitboxFires()IgniteHitboxFireScale()CBasePlayerTriggers
CTriggerOnceCTriggerMultipleAdditional entity classes
CPhysicsPropCDynamicPropCPropScalableGlobal Functions
Gameplay
AI
CBaseCombatCharacter,CAI_BaseNPCandCNPC_PlayerCompanionproperly exposed to get a basic NPC goingCLASS_PLAYER_ALLY_VITAL,CLASS_COMBINE), relationships, line-of-sight/Potentially Visible SetPlayer
CBasePlayer,CPortal_Player+USE, grab/pickup controllers (CGrabController,CPlayerPickupController)IBotController)void ForceButtons( int nButtons )Sort of works, does register, but actions based on those buttons dont occurWeapons
Vector AngleVectors()Misc
CAI_PassengerBehavior+ possibly genericize and refactor alyx/zombie behaviors?)ToBasePlayer(arg1)(used to get a pointer to the owner player class or invoking command client, seeentity_tools_server.cppand the various weapon obj files in sdk2013) - bedrock requirement for weapons!!Portal-specific
Portals
CPropPortal(prop_portal)CWeaponPortalgun(weapon_portalgun)CLinkedPortalDoor(prop_linked_portal_door; statically-placed world portals)CTriggerPortalCleanser)CFuncPortalDetector,CFuncPortalBumper)Testing elements
These will not be directly exposed. Instead an ECS type system is planned for these to add behaviors to them instead.
CPropButton,CPropUnderButton,CPropFloorButton)CPropWeightedCube,CPropMonsterBox)CPropIndicatorPanel)CNPC_Portal_FloorTurret)CBaseTurret(base HL2 turret class; dependency ofCNPC_Portal_FloorTurret)CNPC_FloorTurret(dependency ofCNPC_Portal_FloorTurret)CNPC_RocketTurret,CPropRocketTripwire)CPaintSprayerCPaintStreamCPropPaintBomb- [ ]Will not implementCTEWallPaintedEventCTriggerPaintCleanserCWeaponPaintGunCBaseProjectorCPropWallProjectorCPropTractorBeamProjectorCProjectedTractorBeamEntityCTrigger_TractorBeamCTriggerCatapult)Vector CalculateLaunchVector( CBaseEntity *pVictim, CBaseEntity *pTarget )Vector CalculateLaunchVectorPreserve( Vector vecInitialVelocity, CBaseEntity *pVictim, CBaseEntity *pTarget, bool bForcePlayer )void LaunchByTarget( CBaseEntity *pVictim, CBaseEntity *pTarget )void LaunchByDirection( CBaseEntity *pVictim )void PlayerPassesTriggerFiltersThink()CPropTestChamberSign)CPortalLaserCPropWeightedCube(reflection cube + schrodinger)CPropGlassFutbolCPropExplodingFutbolCPropFutbolSocketCPropFutbolSpawnerEngine
Tools
Hammer
Misc
Mathlib
QAngle::GetForward(),QAngle::GetUp(),QAngle::GetRight()to match Quaternions