³ò
šõÜNc        	   @€  s´   d  d k  l Z d  d k l Z d  d k Z d  d k l Z d  d k l Z d g Z h  d d <e
 d <e d	 <e d
 <e d <e d <e d <Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   with_statement(   t   pathN(   t	   KeyValues(   t   ESEventErrort   ResourceFilet   nonet   boolt   bytet   shortt   longt   floatt   stringc           B€  sV   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z g  e d „ Z d „  Z	 d „  Z
 RS(   c         C€  sg   t  t | ƒ i d d ƒ ƒ } | i d j p t  t | ƒ d ƒ |  _  n
 | |  _  |  i  i |  _ d  S(   Ns   \t   /s   .res(   R   t   strt   replacet   extt   namebaset   name(   t   selft   path_to_res(    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   __init__   s
    	c         C€  s   |  i  S(   N(   R   (   R   (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   __str__%   s    c         C€  s   t  i d t |  ƒ ƒ d S(   sU   Declares the resource file. Typically used when a script is
        loaded.

        t   declareN(   t   est
   loadeventsR   (   R   (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyR   (   s    c         C€  s   t  i t |  ƒ ƒ d S(   sc   Loads the resource file. Typically used on map start and when a
        script is loaded.

        N(   R   R   R   (   R   (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   load/   s    c         C€  s-   t  i d t |  ƒ ƒ t  i t |  ƒ ƒ d S(   s_   Declares and loads the resource file. Typically used when a script
        is loaded.

        R   N(   R   R   R   (   R   (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   declare_and_load6   s    c         C€  sV  | p |  i  i ƒ  o d Sq# n d |  i d g } x| D]•} | ƒ  i ƒ  } | i } | oQ d i g  } | i i d ƒ D]$ } | i ƒ  o | | i ƒ  q q ~ ƒ } n | i d d | | o d | n d	 f ƒ | i d
 ƒ g  }	 | i	 i
 ƒ  D]  \ }
 } |	 |
 | i	 |
 f q~	 } | i d „  ƒ g  } | D]U \ }
 } | h  d |
 d <d | i d <d d | i o
 | i n d	 d <qE~ } x | D] } | i d | ƒ qªW| i d ƒ q= W| i d ƒ g  } | D] } | d | i ƒ  qî~ } t |  i  d ƒ i } i ƒ  } z | ~ } | i | ƒ Wd | ~ QXd S(   sº   Writes the given events to the resource file. If the overwrite
        argument is set to False and the resource file exists, the resource
        file will not be overwritten.

        Ns   "%s"
s   {
t    s   
s   	%-29s%ss   "%s"s   // %st    s   	{c         S€  s   t  |  d  i | d  i ƒ S(   i   (   t   cmpt   creation_counter(   t   xt   y(    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   <lambda>_   s   t   nt   ks   %st   cs   		%(n)-25s%(k)-25s%(c)-25ss   	}t   }s   %s
t   w(   R   t   existsR   t   get_event_namet   __doc__t   joint   splitt   stript   appendt   _fieldst   itemst   sortt   data_keyt   commentt   rstript   opent   __exit__t	   __enter__t
   writelines(   R   t   eventst	   overwritet	   line_listt   eventt
   event_namet   doct   _[1]R   t   _[2]R   t   objt   fieldst   _[3]t   fieldt
   field_listt
   field_dictt   _[4]t   _[5]t   _[6]t   f(    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   write>   s6     	#.6b ++c         C€  s¥   |  i  i ƒ  p t d |  i  d ƒ ‚ n h  } t d |  i  ƒ } x[ | D]S } h  | t | ƒ <x: | | D]. } t | | | ƒ | t | ƒ t | ƒ <qk WqJ W| S(   sÊ   Converts a resource file to a python dictionary which contains the
        event names as keys and a sub-dictionary containing the event variables
        as keys, and the data keys as values.

        s   Resource file (%s) does not s   exist!t   filename(   R   R'   R   R   R   (   R   t   return_dictt   resR;   t   ev(    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt   to_dicty   s      0c         C€  sA   |  i  i ƒ  p t d |  i  d ƒ ‚ n t d |  i  ƒ i ƒ  S(   s4   Returns a list of events found in the resource file.s   Resource file (%s) does not s   exist!RK   (   R   R'   R   R   t   keys(   R   (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyt
   get_events“   s    (   t   __name__t
   __module__R   R   R   R   R   t   FalseRJ   RO   RQ   (    (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pyR      s   						;	(   t
   __future__R    R   R   t	   keyvaluesR   t
   exceptionsR   t   __all__t   NoneR   t   intR
   R   t   DATAKEYSt   objectR   (    (    (    sa   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/events/eventlib/resource.pys   <module>   s   	(