Class: Engine::Components::SpriteRenderer

Inherits:
Engine::Component show all
Defined in:
lib/engine/components/renderers/sprite_renderer.rb

Instance Attribute Summary collapse

Attributes inherited from Engine::Component

#game_object

Instance Method Summary collapse

Methods inherited from Engine::Component

#_erase!, #destroy!, #destroyed?, destroyed_components, erase_destroyed_components, method_added, #set_game_object, #ui_renderer?, #update

Methods included from Serializable

allowed_class?, #awake, get_class, included, register_class, #uuid

Instance Attribute Details

#materialObject (readonly)

Returns the value of attribute material.



7
8
9
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 7

def material
  @material
end

Instance Method Details

#colour=(value) ⇒ Object



9
10
11
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 9

def colour=(value)
  material.set_vec4("spriteColor", colour_to_vec4(value))
end

#colour_to_vec4(value) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 13

def colour_to_vec4(value)
  if value.is_a?(Array)
    value
  else
    [value[:r], value[:g], value[:b], value[:a] || 1.0]
  end
end

#destroyObject



36
37
38
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 36

def destroy
  @mesh_renderer.destroy
end

#renderer?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 21

def renderer?
  true
end

#startObject



25
26
27
28
29
30
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 25

def start
  @mesh_renderer = MeshRenderer.create(mesh: Engine::Mesh.quad, material: material)
  @mesh_renderer.set_game_object(game_object)
  @mesh_renderer.start
  set_default_frame_coords
end

#sync_transformObject



32
33
34
# File 'lib/engine/components/renderers/sprite_renderer.rb', line 32

def sync_transform
  @mesh_renderer.sync_transform
end