• Jump To … +
    agentset.coffee animator.coffee color.coffee colormaps.coffee colormixin.coffee evented.coffee link.coffee links.coffee model.coffee patch.coffee patches.coffee shapes.coffee turtle.coffee turtles.coffee util.coffee
  • evented.coffee

  • ¶

    Evented

  • ¶

    Modified from https://gist.github.com/contra/2759355.

  • ¶

    Instances of Model emit 'step' and 'draw' events so that an arbitrary function can be triggered every time the model is stepped or drawn (e.g. the patch inspector).

    class Evented
      constructor: () ->
        @events = {}
    
      emit: (name, args...) ->
        if @events[name]
          cb args... for cb in @events[name]
    
      on: (name, cb) ->
        (@events[name]?=[]).push cb
    
      off: (name, cb) ->
        if @events[name]
          if cb then @events[name] = (l for l in @events[name] when l isnt cb)
          else delete @events[name]