Changeset 231

Show
Ignore:
Timestamp:
Sat Apr 1 07:01:13 2006
Author:
foof
Message:

Events and stuff

Files:

Legend:

Unmodified
Added
Removed
Modified
  • subprojects/CoveCrisis/spritestream/player.py

    r224 r231  
    1 1 '''spritestream/player.py  
    2 2 '''  
    3   from xix.utils import container  
      3 from spritestream import container  
    3 3  
    4 4  
  • subprojects/CoveCrisis/spritestream/__init__.py

    r223 r231  
    8 8 configFactory.addResource('spritestream.cfg', cfgfilename)  
    9 9  
    10   from spritestream.events import EventSource  
  • subprojects/CoveCrisis/spritestream/events.py

    r230 r231  
    1 1 '''spritstream/events.py  
    2 2 '''  
      3 from pygame import event  
    3 4 from spritestream import containers  
    4 5  
    5   class EventSource:(containers.Containable):  
    6       pass  
      6 EV_PRE = 'ev_'  
    7 7  
      8 class Master(containers.Container):  
      9     def init(self):  
      10         self.listeners = {}  
      11  
      12     def addListener(self, listener):  
      13         listeners = self.listeners  
      14         for act_evn in listener.active_evnames:  
      15             listeners[act_evn] = listener  
      16  
      17     def removeListener(self, evname, *listeners):  
      18         pass  
      19          
      20     def notify(self, evname, *args, **kwargs):  
      21         try:  
      22             active_listeners = self.listeners[evname]  
      23         except KeyError, e:  
      24             return  
      25  
      26         for l in active_listeners:  
      27             l.notify(evname, *args, **kwargs)  
      28  
      29     def start(self):  
      30         pass  
      31  
      32  
      33 master = Master()  
    8 34  
    9   class FrameRate(EventSource):  
    10       pass  
    11 35  
      36 class Listener(containers.Containable):  
      37     def __init__(self, obj, *active_evnames):  
      38         self.obj = obj  
      39         self.active_evnames = active_evnames  
      40         self.callbacks = {}  
      41         self.init()  
    12 42  
    13   class EventMaster(containers.Container):  
      43     def init(self):  
      44         # find and register callbacks   
      45         cbs = self.callbacks  
      46         obj = self.obj  
      47         for key in dir(obj):  
      48             if key.startswith(EV_PRE):         
      49                 cbs[key[len(EV_PRE):] = getattr(obj, key)  
      50  
      51         master.registerListener(self)  
      52  
      53     def notify(self, evname, *args, **kwargs):  
      54         try:  
      55             cb = self.callbacks[evname]  
      56         except KeyError, e:  
      57             return  
      58         cb(*args, **kwargs)  
      59  
      60  
      61 class Source(containers.Containable):  
      62     evname = None  
      63     def init(self):  
      64         pass  
      65  
      66  
      67 class FrameRate(Source):  
      68     evname = 'tick'  
    14 69     pass  
    15 70  
      71  
  • subprojects/CoveCrisis/spritestream/containers.py

    r230 r231  
    2 2 '''  
    3 3  
      4 from zope.interface import Interface, implements  
      5  
      6 class IContainer(Interface):  
      7     """Hmmm.... is is interface requires nothing?  
      8     """  
      9  
      10 class IContainable(Interface):  
      11     """...  
      12     """  
      13  
    4 14 class Container(object):  
      15     """  
      16  
      17     >>> from zope.interface.verify import verifyClass  
      18     >>> verifyClass(IContainer, Container)  
      19     True  
      20     """  
      21     implements(IContainer)  
    5 22     pass  
    6 23  
    7 24  
    8 25 class Containable(object):  
      26     """  
      27  
      28     >>> from zope.interface.verify import verifyClass  
      29     >>> verifyClass(IContainable, Containable)  
      30     True  
      31     """  
      32     implements(IContainable)  
    9 33     pass  
      34  
      35      
  • subprojects/CoveCrisis/spritestream/game.py

    r222 r231  
    30 30         self.sprites = sprites  
    31 31         self.players = players  
    32           self.listener = events.Listener(self)  
      32         self.listener = events.Listener(self, 'tick')  
    32 32         self.init()  
    33 33  
  • subprojects/CoveCrisis/bin/CoveCrisis.py

    r224 r231  
    5 5  
    6 6 import cove  
    7   import spritestream  
      7 from spritestream import events  
    7 7 from spritesteam.plat.pygame import display  
    8 8  
     
    16 16 def main(argv):  
    17 17     # We want to have specific configs for these  
    18       src = spritestream.EventMaster()  
      18     evs = events.master  
    18 18     m = cove.Menus()  
    19 19     l = cove.Levels()  
     
    22 22     p = cove.Players()  
    23 23     g = cove.Game(display.PygameDisplay, m, l, s, p)  
    24       src.start()  
      24     evs.start()  
    24 24  
    25 25 if __name__ == '__main__':  
  • subprojects/CoveCrisis/runtests.py

    r218 r231  
    17 17 import spritestream.loaders.svg  
    18 18 import spritestream.plat.opengl.display  
      19 import spritestream.containers  
    19 20  
    20 21 __copyright__ = 'Copyright (c) 2006 teamfoo'  
     
    30 31 docfiles.sort()  
    31 32  
    32   doctests = (spritestream.loaders.svg, spritestream.plat.opengl.display)  
      33 doctests = (spritestream.loaders.svg, spritestream.plat.opengl.display, spritestream.containers)  
    32 33          
    33 34 def main():