Sha256: 2e44e03f50a92cb5e03fc53a483a5695bdd2205d199dbd37b6c02ae1999d0f65

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

#!/usr/bin/env ruby
$: << "#{File.dirname(__FILE__)}/../config"

begin
  # optional file
  require "environment"
rescue LoadError => err
end

class GameboxApp
  attr_reader :context, :game

  def self.run(argv,env)
    GameboxApp.new.start argv, env
  end

  def initialize
    @context = Conject.default_object_context
  end

  def start(argv,env)
    setup(argv,env)
    main_loop
    shutdown
  end

  def setup(argv,env)
    @game = @context[:game]
    @game.configure
    self.class.post_setup_handlers.each { |handler| handler.setup(argv, env, @context[:config_manager]) }
  end

  def main_loop
    @input_manager = @context[:input_manager]
    @input_manager.register @game
    @input_manager.show
  end

  def shutdown ; end

  def self.register_post_setup_handler(handler)
    post_setup_handlers.push handler
  end

  def self.post_setup_handlers
    @post_setup_handlers ||= [ ]
  end

end

GameboxApp.register_post_setup_handler PostSetupHandlers::FileWatcher
GameboxApp.register_post_setup_handler PostSetupHandlers::GameboxAppAddDebugHelpers
GameboxApp.register_post_setup_handler PostSetupHandlers::PryRemoteServer

if $0 == __FILE__
  GameboxApp.run ARGV, ENV
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gamebox-0.5.5 lib/gamebox/gamebox_application.rb
gamebox-0.5.4 lib/gamebox/gamebox_application.rb
gamebox-0.5.2 lib/gamebox/gamebox_application.rb
gamebox-0.5.1 lib/gamebox/gamebox_application.rb
gamebox-0.5.0 lib/gamebox/gamebox_application.rb
gamebox-0.4.1 lib/gamebox/gamebox_application.rb
gamebox-0.4.0 lib/gamebox/gamebox_application.rb
gamebox-0.4.0.rc11 lib/gamebox/gamebox_application.rb