Sha256: e876a290103ddfe946a4035cca0f52aefb31ec5bca5befa0629d5bbd5484d45d

Contents?: true

Size: 581 Bytes

Versions: 1

Compression:

Stored size: 581 Bytes

Contents

module Baku
  class System
    attr_reader :components, :game_loop_step
    attr_accessor :world
    
    def initialize(components, game_loop_step)
      @components = components
      @game_loop_step = game_loop_step
    end

    def execute
      entities =
        @world.entity_manager.get_entities_for_system(self)

      entities.each do |entity|
        entity_components = @components.map { |c| entity.get_component(c) }
        process_entity(entity, *entity_components)
      end
    end

    def process_entity(entity)
      raise NotImplementedError
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
baku-0.1.0 lib/baku/system.rb