Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1. class HUDHintManager(object):
  2.     """
  3.     This class will be used for HUDS management
  4.     """
  5.     def __init__(self):
  6.         """ Default constructor, initialize variables """
  7.         self._name = '%s(%s)' % (self.__class__.__name__, id(self))
  8.         self.players = {}
  9.         self._refresh()
  10.    
  11.     def stop(self):
  12.         """ Static method for stop all delays """
  13.         gamethread.cancelDelayed(self._name)
  14.         self.players.clear()
  15.    
  16.     def addLine(self, player, line, timeout=10):
  17.         """
  18.         Add a line to the HUD of a player
  19.        
  20.         @PARAM player  - UserID of the player
  21.         @PARAM line - Line to add
  22.         @PARAM timeout - The time after the line is deleted, 10 by default
  23.         """
  24.         if player not in self.players:
  25.             self.players[player] = collections.deque([], 10)
  26.         self.players[player].append(line)
  27.         gamethread.delayedname(timeout if timeout < 30 else 10, self._name, self.removeLine, (player, line))
  28.        
  29.     def removeLine(self, player, line):
  30.         """
  31.         Remove a line to the HUD of a player
  32.        
  33.         @PARAM player - UserID of the player
  34.         @PARAM line   - Line to remove
  35.         """
  36.         if line in self.players[player]:
  37.             self.players[player].remove(line)
  38.             if not len(self.players[player]):
  39.                 del self.players[player]
  40.        
  41.     def _refresh(self):
  42.         """ Class method only, used to auto-refresh the HUDs """
  43.         for player in self.players:
  44.             if len(self.players[player]):
  45.                 usermsg.keyhint(player, '\n'.join(self.players[player])
  46.         gamethread.delayedname(1, self._name, self._refresh)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement