³ò
‚vOc           @   s|   d  Z  d d k Z d d k l Z d d d d d d	 d
 d d g	 Z d e f d „  ƒ  YZ e ƒ  Z d e f d „  ƒ  YZ	 d S(   sj   
$Rev: 628 $
$LastChangedBy: satoon101 $
$LastChangedDate: 2012-03-30 21:46:09 -0400 (Fri, 30 Mar 2012) $
iÿÿÿÿN(   t   PriorityAddont   es_map_startt   es_player_validatedt   player_activatet   player_teamt   player_disconnectt   gg_addon_loadedt   gg_addon_unloadedt   player_changenamet   server_cvart   _EventRegistryc           B   s    e  Z d  Z d „  Z d „  Z RS(   s;   Class that holds all _EventManager instances to call eventsc         C   s6   | |  j o t  | ƒ |  | <n |  | i | ƒ d S(   s3   Method that registers events to be fired for addonsN(   t   _EventManagert   append(   t   selft   eventt   callback(    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyt   register_for_event$   s    c         C   sM   | |  j o< |  | i  | ƒ |  | i p |  | i ƒ  |  | =qI n d S(   s   Method that unregisters eventsN(   t   removet
   _callbackst   _unregister(   R   R   R   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyt   unregister_for_event0   s
    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR
   !   s   	R   c           B   sJ   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „  ƒ Z	 RS(   s@   Class that registers an event and stores callbacks for the eventc         C   s2   | |  _  g  |  _ t i i |  |  i  |  i ƒ d S(   s   Registers the eventN(   t   _eventR   t   est   addonst   registerForEventt   _call_event(   R   R   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyt   __init__I   s    		c         C   s7   |  i  | ƒ } | |  i j o |  i i | ƒ n d S(   sU   Overrides the append method to make
            sure each callback is only added onceN(   t   _get_callbackR   R   (   R   R   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR   U   s    c         C   s7   |  i  | ƒ } | |  i j o |  i i | ƒ n d S(   s`   Overrides the remove method to make sure the
            callback is in the list before removingN(   R   R   R   (   R   R   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR   b   s    c         C   s]   xV |  i  D]K } t o0 | d t j o |  i t j o q
 qC qG n | d | ƒ q
 Wd S(   s/   Calls the event if there are no Priority Addonst   addonR   N(   R   R    R   t   _priority_events(   R   t	   event_varR   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR   o   s    
 c         C   s   t  i i |  |  i ƒ d S(   s   Unregisters the eventN(   R   R   t   unregisterForEventR   (   R   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR   „   s    c         C   s&   h  |  d <|  i  i d ƒ d d <S(   NR   t   .i    R   iÿÿÿÿ(   R   t   rsplit(   R   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR   Š   s    (
   R   R   R   R   R   R   R   R   t   staticmethodR   (    (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pyR   F   s   					(
   R   R   t   priorityR    R    t   dictR
   t   EventRegistryt   objectR   (    (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/addons/events.pys   <module>   s   	"	