Module: Renderer
- Extended by:
- ArgsUpdate
- Defined in:
- tomes/conjurations/renderer/renderer.rb
Class Method Summary collapse
-
.add(*objects) ⇒ Void
Individually adds given objects to the render list.
-
.delete(*objects) ⇒ Void
(also: remove)
Deletes given objects from the render list.
-
.parse_classes(list = render_list.flatten) ⇒ Array
Maps each object in a list onto its renderable state, based on class; returns said list.
-
.render ⇒ Void
Sends the render list to.
-
.render_list ⇒ Array
Returns the class render list.
Methods included from ArgsUpdate
Class Method Details
.add(*objects) ⇒ Void
Individually adds given objects to the render list. If an object is already in the list it gets skipped in this process.
20 21 22 23 24 25 26 |
# File 'tomes/conjurations/renderer/renderer.rb', line 20 def add(*objects) objects.each do |object| next if render_list.include? object render_list << object end end |
.delete(*objects) ⇒ Void Also known as: remove
Deletes given objects from the render list.
31 32 33 34 35 |
# File 'tomes/conjurations/renderer/renderer.rb', line 31 def delete(*objects) objects.each do |object| render_list.delete(object) end end |
.parse_classes(list = render_list.flatten) ⇒ Array
Maps each object in a list onto its renderable state, based on class; returns said list.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'tomes/conjurations/renderer/renderer.rb', line 47 def parse_classes(list = render_list.flatten) list.map do |object| if object.respond_to? 'primitives' # Most objects should fall into this category. object.primitives elsif object.respond_to? 'rect' object.rect elsif object.respond_to? 'visible' # This applies to Scenes. parse_classes(object.visible) # This method will call itself on the Scene's #visible list. elsif object.is_a? Hash object else puts "Render Object not accounted for: #{object}" end end end |
.render ⇒ Void
Sends the render list to
40 41 42 |
# File 'tomes/conjurations/renderer/renderer.rb', line 40 def render args.outputs.primitives << parse_classes end |
.render_list ⇒ Array
Returns the class render list.
12 13 14 |
# File 'tomes/conjurations/renderer/renderer.rb', line 12 def render_list @render_list end |