Sha256: 0d0dc7d38adec79f8ed2daa9842ccdcace625998a5d63a81af4af74b6af96237

Contents?: true

Size: 603 Bytes

Versions: 2

Compression:

Stored size: 603 Bytes

Contents

module Darkholme
  class System
    class << self
      attr_reader :family

      def has_family(*component_classes)
        @family = Family.for(*component_classes) 
      end
    end

    attr_accessor :engine

    def update(delta)
      raise NotImplementedError.new("You must override #update(delta)")
    end

    def added_to_engine(engine)
      self.engine = engine
    end

    def removed_from_engine(engine)
      self.engine = nil if self.engine == engine
    end

    def entities
      engine.entities_for_family(family)
    end

    def family
      self.class.family
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
darkholme-0.9.1 lib/darkholme/system.rb
darkholme-0.9.0 lib/darkholme/system.rb