Sha256: 7f85f7fbaa3a808a632e394266195d4939d6e0578faa4101d41fd6d4ea26df1f
Contents?: true
Size: 901 Bytes
Versions: 8
Compression:
Stored size: 901 Bytes
Contents
# Directors manage actors. class Director attr_accessor :actors def initialize @actors = [] @dead_actors = [] setup end def setup end def add_actor(actor) @actors << actor actor.when :remove_me do remove_actor actor end actor_added actor actor end def remove_actor(actor) @dead_actors << actor end def actor_removed(actor) end def actor_added(actor) end def empty? @actors.empty? end def pause @paused_actors = @actors @actors = [] end def unpause unless @paused_actors.nil? @actors.each{|actor| actor.remove_self } @actors = @paused_actors @paused_actors = nil end end def update(time) for act in @dead_actors @actors.delete act actor_removed act end @dead_actors = [] for act in @actors act.update time if act.alive? end end end
Version data entries
8 entries across 8 versions & 1 rubygems