Class: Delve

Inherits:
Object
  • Object
show all
Defined in:
lib/delve.rb,
lib/delve/version.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Delve

Returns a new instance of Delve.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/delve.rb', line 6

def initialize(name)
  raise 'Cannot create a new roguelike without a name' unless name
  @name = name

  @renderers = [:curses]
  @generators = [:noise, :rogue, :cellular]
  @renderer = :curses
  @generator = :rogue

  @statements = {
    :curses => {
      :renderer       => 'delve/display/curses_renderer',
      :input          => 'delve/input/curses_input',
      :new_renderer   => 'CursesRenderer.new',
      :new_input      => 'CursesInput.new'
    },
    :noise => {
      :generator      => 'delve/generator/noise',
      :new_generator  => 'NoiseGenerator.new(128, 64, :fine)'
    },
    :rogue => {
      :generator      => 'delve/generator/rogue',
      :new_generator  => 'RogueGenerator.new(128, 64)'
    }
  }
end

Class Method Details

.versionObject



2
3
4
# File 'lib/delve/version.rb', line 2

def self.version
  '0.0.8'
end

Instance Method Details

#create_game(path) ⇒ Object



51
52
53
54
55
56
57
58
59
60
# File 'lib/delve.rb', line 51

def create_game path
  raise "Cannot create roguelike when path already exists: #{path}/#{@name}" if Dir.exist?("#{path}/#{@name}")

  @base_path = File.join(path, @name).to_s
  create_directories
  create_gem_files
  create_bin_file
  create_screens
  create_game_classes
end

#generatorObject



47
48
49
# File 'lib/delve.rb', line 47

def generator
  @generator
end

#rendererObject



43
44
45
# File 'lib/delve.rb', line 43

def renderer
  @renderer
end

#use_generator(generator) ⇒ Object



38
39
40
41
# File 'lib/delve.rb', line 38

def use_generator(generator)
  raise "Cannot use unknown generator: #{generator}" unless @generators.include? generator
  @generator = generator
end

#use_renderer(renderer) ⇒ Object



33
34
35
36
# File 'lib/delve.rb', line 33

def use_renderer(renderer)
  raise "Cannot use unknown renderer: #{renderer}" unless @renderers.include? renderer
  @renderer = renderer
end