Skip to content

Commit ff7819a

Browse files
committed
Added PlayerMixin.snap_to_position(origin=None, angles=None).
1 parent 1604995 commit ff7819a

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

Diff for: src/core/modules/players/players_entity.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
// >> EXTERNALS
4040
// ============================================================================
4141
extern IServerGameClients *servergameclients;
42+
extern IServerTools *servertools;
4243

4344

4445
// ============================================================================
@@ -81,6 +82,15 @@ bool PlayerMixin::IsWeapon()
8182
return false;
8283
}
8384

85+
void PlayerMixin::SnapToPosition(Vector *pOrigin, QAngle *pAngles)
86+
{
87+
servertools->SnapPlayerToPosition(
88+
(pOrigin ? *pOrigin : GetOrigin()) + GetViewOffset(),
89+
pAngles ? *pAngles : GetViewAngle(),
90+
(IClientEntity *)GetEdict()->GetIServerEntity()
91+
);
92+
}
93+
8494
// CBasePlayer
8595
float PlayerMixin::GetSpeed()
8696
{

Diff for: src/core/modules/players/players_entity.h

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ class PlayerMixin: public CBaseEntityWrapper
7272
bool IsPlayer();
7373
bool IsWeapon();
7474

75+
void SnapToPosition(Vector *pOrigin = NULL, QAngle *pAngles = NULL);
76+
7577
// CBasePlayer
7678
// TODO: Return for some of these the proper entity class instead of a handle/index
7779
// E. g. BaseEntity, Entity, Weapon, Player, etc.

Diff for: src/core/modules/players/players_wrap.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,16 @@ void export_player_wrapper(scope _players)
384384
":rtype: bool"
385385
);
386386

387+
_PlayerMixin.def(
388+
"snap_to_position",
389+
&PlayerMixin::SnapToPosition,
390+
"Teleports the player at the given position and angles.\n\n"
391+
":param Vector origin:\n"
392+
" The coordinates to teleport the player at.\n"
393+
":param QAngle angles:\n"
394+
" The angles to set the player's view to.",
395+
("self", arg("origin")=object(), arg("angles")=object()));
396+
387397
_PlayerMixin.add_property(
388398
"speed",
389399
&PlayerMixin::GetSpeed,

0 commit comments

Comments
 (0)