class Player(PlayerMixin):
def __init__(self, index):
super().__init__(index)
object.__setattr__(self, '_index', index)
self.playerinfo = playerinfo_from_index(index)
self.permissions = auth_manager.get_player_permissions_from_steamid(self.playerinfo.steamid)
@property
def index(self):
return self._index
@property
def name(self):
return self.playerinfo.name
def set_noclip(self, enable):
if enable:
self.move_type = MoveType.NOCLIP
else:
self.move_type = MoveType.WALK
def get_noclip(self):
return self.move_type == MoveType.NOCLIP
noclip = property(get_noclip, set_noclip)
@property
def view_coordinates(self):
start_vec = self.get_eye_location()
end_vec = start_vec + self.view_vector * MAX_TRACE_LENGTH
engine_trace.trace_ray(
Ray(start_vec, end_vec), ContentMasks.ALL, TraceFilterSimple((self, )), GAMETRACE
)
return GAMETRACE.end_position