~impiaaa/hivesystem/blender

« back to all changes in this revision

Viewing changes to dragonfly/sound/bind.py

  • Committer: Spencer Alves
  • Date: 2012-07-12 08:33:44 UTC
  • Revision ID: spencer@boatcake.net-20120712083344-ickztw2vxcpdxjra
device improvements

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
  b_handle = buffer("pull", ("id", "soundhandle"))
12
12
  connect(handle, b_handle)
13
13
  t_handle = triggerfunc(b_handle)
14
 
  def set_set_entity(self, set_entity):
15
 
    self.handle_set_entity = set_entity
16
 
  def set_update(self, update):
17
 
    self.handle_update = update
18
14
  
19
15
  entity = antenna("push", "id")
20
16
  v_entity = variable("id")
23
19
  def set_entity(self):
24
20
    self.t_handle()
25
21
    # Mutate the handle here… :(
26
 
    self.set_entity(self.b_handle, self.get_entity(self.v_entity))
 
22
    self.set_entity(self.b_handle, self.v_entity)
27
23
  trigger(v_entity, set_entity)
28
24
  
29
 
  # Update on every tick
30
 
  @modifier
31
 
  def do_update(self):
32
 
    if self.update == None: return
33
 
    self.t_handle()
34
 
    self.update(self.b_handle)
35
 
  t_update = triggerfunc(do_update)
36
 
 
37
 
  start = antenna("push", "trigger")
38
 
  @modifier
39
 
  def m_start(self):
40
 
    if self.listener != None: return
41
 
    self.listener = self.add_listener("trigger", self.t_update, "tick")
42
 
  trigger(start, m_start)
43
 
  
44
 
  stop = antenna("push", "trigger")
45
 
  @modifier
46
 
  def m_stop(self):
47
 
    self.remove_listener(self.listener)
48
 
    self.listener = None
49
 
  trigger(stop, m_stop)
50
 
 
51
 
  def set_add_listener(self, add_listener):
52
 
    self.add_listener = add_listener
53
 
    
54
 
  def set_remove_listener(self, remove_listener):
55
 
    self.remove_listener = remove_listener
56
 
 
57
25
  def place(self):
58
26
    libcontext.socket(("handle", "set_entity"), socket_single_required(self.set_set_entity))
59
 
    self.update = None
60
 
    libcontext.socket(("handle", "update"), socket_single_optional(self.set_update))
61
 
    libcontext.socket(("get_entity", "AxisSystem"), socket_single_required(self.set_get_entity))
62
 
    libcontext.socket(("evin","add_listener"), socket_single_required(self.set_add_listener))
63
 
    libcontext.socket(("evin","remove_listener"), socket_single_required(self.set_remove_listener))
64
 
    self.listener = None
65
 
    libcontext.plugin(("bee", "init"), plugin_single_required(self.m_start))