Пример #1
0
    def eventtest(self):

        filename = sys.path[0] + "/data/eventtest.data"

        # -- add data directory to python search path
        sys.path.insert(0, "data")

        fty = event.factory()
        svd = 0

        # -- first event
        ev1 = event.time_event("0m30s")
        ev1.set_repeat("30s", 6)

        lst = fty.add(ev1)
        lst.connect_callback("time_events", "event_script", "callback_1",
                             ("#1", 1))

        # -- second event
        ev2 = event.time_event("1m05s")
        ev2.set_repeat("30s", 4)

        lst = fty.add(ev2)
        lst.connect_callback("time_events", "event_script", "callback_2")

        # -- run for 3:20 gametime minutes
        while event.date.time() < 200:
            # -- save factory to disk
            if event.date.time() == 100 and svd == 0:
                print "   Saving state"
                record = base.diskio(base.diskio.GZ_FILE)
                fty.put_state(record)
                record.put_record(filename)
                svd = 1

            base.Timer.update()
            event.date.update()

        # -- resume with saved state
        print "   Returning to previously saved state"
        fty.clear()

        # -- need absolute filename for loading or file has to sit in
        #    Adonthell's search path
        record = base.diskio(base.diskio.GZ_FILE)
        record.get_record(filename)
        success = fty.get_state(record)
        if success == 1: print "OK"
        else:
Пример #2
0
    def eventtest (self):

        filename = sys.path[0] + "/data/eventtest.data"

        # -- add data directory to python search path
        sys.path.insert (0, "data")

        fty = event.factory ()
        svd = 0
        
        # -- first event
        ev1 = event.time_event ("0m30s")
        ev1.set_repeat ("30s", 6)
        
        lst = fty.add (ev1)
        lst.connect_callback ("time_events", "event_script", "callback_1", ("#1", 1))
        
        # -- second event
        ev2 = event.time_event ("1m05s")
        ev2.set_repeat ("30s", 4)
        
        lst = fty.add (ev2)
        lst.connect_callback ("time_events", "event_script", "callback_2")
        
        # -- run for 3:20 gametime minutes
        while event.date.time () < 200:
            # -- save factory to disk
            if event.date.time () == 100 and svd == 0:
                print "   Saving state"
                record = base.diskio (base.diskio.GZ_FILE)
                fty.put_state (record)
                record.put_record (filename)
                svd = 1
                
            base.Timer.update ()
            event.date.update ()
    
        # -- resume with saved state
        print "   Returning to previously saved state"
        fty.clear ()
       
        # -- need absolute filename for loading or file has to sit in
        #    Adonthell's search path 
        record = base.diskio (base.diskio.GZ_FILE)
        record.get_record (filename)
        success = fty.get_state (record)
        if success == 1: print "OK"
        else:
Пример #3
0
    def eventtest (self):
        #Add data to the path
        path = "data"
        sys.path.insert (0, path)
        
        self.init_modules (main.app.AUDIO)

        self.sound = audio.sound('at-demo-1.ogg')
        self.sound.play()

        fty = event.factory ()
        svd = 0
        
        music = bgmusic()
  
        # -- first event
        ev1 = event.time_event ("0m30s")
        ev1.set_repeat ("10m00s", -1)
        
        lst = fty.add (ev1)
        if not lst.connect_callback ("audio_events", "event_script", "timer", (music, )):
            event_script_error()
        
        # run for a while
        while True:
            base.Timer.update ()
            event.date.update ()
            audio.update ()
Пример #4
0
    def use (self, user):
		# -- turn it on
        if self.IsBurning == 0:

            # -- does it have enough charge?
            if self.Charge == 0: return
            
            # -- resume event
            self.Events.resume ()

            # -- get listener associated with the torch
            ConsumeLstnr = self.Events.get_listener ("consume")
            
            if ConsumeLstnr == None:
                # -- register time event so it is consumed while burning
                #    a charge will last 5 minutes
                ConsumeEvent = event.time_event (self.Duration)

                # -- repeat event as often as item has charges
                ConsumeEvent.set_repeat (self.Duration, self.Charge)

                # -- register consume event with event_list
                ConsumeLstnr = self.Events.add (ConsumeEvent)

                # -- callback to execute whenever a charge has been used
                #    up.
                ConsumeLstnr.connect_callback ("item_events", "item_events", "on_charge_used", self)

                # -- id to retrieve event later on
                ConsumeLstnr.set_id ("consume")
                
            
            self.IsBurning = 1

            # -- while it's burning, make it a lightsource
            self.add_category ("Lightsource")

            # -- start any graphical effects, etc
            # ...
  
        # -- switch it off
        else:
            self.IsBurning = 0
            
            # -- make sure event is not repeated
            self.Events.pause ()
            
            # -- not burning, so no lightsource
            self.remove_category ("Lightsource")
Пример #5
0
    def use(self, user):
        # -- turn it on
        if self.IsBurning == 0:

            # -- does it have enough charge?
            if self.Charge == 0: return

            # -- resume event
            self.Events.resume()

            # -- get listener associated with the torch
            ConsumeLstnr = self.Events.get_listener("consume")

            if ConsumeLstnr == None:
                # -- register time event so it is consumed while burning
                #    a charge will last 5 minutes
                ConsumeEvent = event.time_event(self.Duration)

                # -- repeat event as often as item has charges
                ConsumeEvent.set_repeat(self.Duration, self.Charge)

                # -- register consume event with event_list
                ConsumeLstnr = self.Events.add(ConsumeEvent)

                # -- callback to execute whenever a charge has been used
                #    up.
                ConsumeLstnr.connect_callback("item_events", "item_events",
                                              "on_charge_used", self)

                # -- id to retrieve event later on
                ConsumeLstnr.set_id("consume")

            self.IsBurning = 1

            # -- while it's burning, make it a lightsource
            self.add_category("Lightsource")

            # -- start any graphical effects, etc
            # ...

        # -- switch it off
        else:
            self.IsBurning = 0

            # -- make sure event is not repeated
            self.Events.pause()

            # -- not burning, so no lightsource
            self.remove_category("Lightsource")