Sha256: af15ebf9e47956a33336e8ffe30b2745934284e7889e04b08b58867a0a63f9dd

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 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
    gamebox_objects = YAML.load(File.read(GAMEBOX_PATH + 'data/config/objects.yml'))

    game_objects_file = APP_ROOT + '/config/objects.yml'
    game_specific_objects = {}
    if File.exist? game_objects_file
      game_specific_objects = YAML.load(File.read(game_objects_file))
    end
    objects = gamebox_objects.merge! game_specific_objects

    @context = DIY::Context.from_yaml(YAML.dump(objects))
  end
  
  def setup
    @game = @context[:game]
    
    @config_manager = @context[:config_manager]
    setup_debug_server if @config_manager[:debug_server] || ARGV.include?("-debug-server")
  end
  
  def setup_debug_server
    Thread.new do
      loop do
        binding.remote_pry
      end
    end
  end
  
  def main_loop
    @input_manager = @context[:input_manager]
    @input_manager.main_loop @game
  end

  def shutdown
  end

  def start(argv,env)
    setup

    main_loop

    shutdown
  end
end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gamebox-0.3.4 lib/gamebox/gamebox_application.rb
gamebox-0.3.3 lib/gamebox/gamebox_application.rb
gamebox-0.3.2 lib/gamebox/gamebox_application.rb