class Baku::Entity
Attributes
components[R]
Public Class Methods
new(tags = [])
click to toggle source
# File lib/baku/entity.rb, line 7 def initialize(tags = []) @tags = tags @components = {} end
Public Instance Methods
add_component(component)
click to toggle source
# File lib/baku/entity.rb, line 12 def add_component(component) if @components.has_key?(component.class) raise StandardError. new("Entity already has component: #{component.class}") end components[component.class] = component update_component_mask dispatch_event(:component_added, self, component) end
component_mask()
click to toggle source
# File lib/baku/entity.rb, line 47 def component_mask @component_mask ||= ComponentMask.from_components(@components) end
get_component(component_class)
click to toggle source
# File lib/baku/entity.rb, line 43 def get_component(component_class) @components[component_class] end
has_component?(component_class)
click to toggle source
# File lib/baku/entity.rb, line 39 def has_component?(component_class) @components.has_key?(component_class) end
remove_component(component_class)
click to toggle source
# File lib/baku/entity.rb, line 25 def remove_component(component_class) if !@components.has_key?(component_class) raise StandardError. new("Entity does not have component: #{component_class}") end removed_component = @components[component_class] @components.delete(component_class) update_component_mask dispatch_event(:component_removed, self, removed_component) end
Private Instance Methods
update_component_mask()
click to toggle source
# File lib/baku/entity.rb, line 53 def update_component_mask @component_mask = ComponentMask.from_components(@components) end