Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class HUDHintManager(object):
- """
- This class will be used for HUDS management
- """
- def __init__(self):
- """ Default constructor, initialize variables """
- self._name = '%s(%s)' % (self.__class__.__name__, id(self))
- self.players = {}
- self._refresh()
- def stop(self):
- """ Static method for stop all delays """
- gamethread.cancelDelayed(self._name)
- self.players.clear()
- def addLine(self, player, line, timeout=10):
- """
- Add a line to the HUD of a player
- @PARAM player - UserID of the player
- @PARAM line - Line to add
- @PARAM timeout - The time after the line is deleted, 10 by default
- """
- if player not in self.players:
- self.players[player] = collections.deque([], 10)
- self.players[player].append(line)
- gamethread.delayedname(timeout if timeout < 30 else 10, self._name, self.removeLine, (player, line))
- def removeLine(self, player, line):
- """
- Remove a line to the HUD of a player
- @PARAM player - UserID of the player
- @PARAM line - Line to remove
- """
- if line in self.players[player]:
- self.players[player].remove(line)
- if not len(self.players[player]):
- del self.players[player]
- def _refresh(self):
- """ Class method only, used to auto-refresh the HUDs """
- for player in self.players:
- if len(self.players[player]):
- usermsg.keyhint(player, '\n'.join(self.players[player])
- gamethread.delayedname(1, self._name, self._refresh)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement