Module: Renderer

Extended by:
ArgsUpdate
Defined in:
tomes/conjurations/renderer/renderer.rb

Class Method Summary collapse

Methods included from ArgsUpdate

update

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.

Parameters:

  • objects (*Object)

    1 or more objects.

Returns:

  • (Void)


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.

Parameters:

  • objects (Objects)

    1 or more objects.

Returns:

  • (Void)


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.

Parameters:

  • list (Array) (defaults to: render_list.flatten)

    Uses #flatten_render_list by default.

Returns:

  • (Array)


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

.renderVoid

Sends the render list to

Returns:

  • (Void)


40
41
42
# File 'tomes/conjurations/renderer/renderer.rb', line 40

def render
  args.outputs.primitives << parse_classes
end

.render_listArray

Returns the class render list.

Returns:

  • (Array)


12
13
14
# File 'tomes/conjurations/renderer/renderer.rb', line 12

def render_list
  @render_list
end