Class: GBTiles::GBM::Export::ASM::ASM

Inherits:
Object
  • Object
show all
Includes:
ERB::Util
Defined in:
lib/gbtiles/gbm/export/asm/asm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeASM

Returns a new instance of ASM.



16
17
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 16

def initialize
end

Instance Attribute Details

#bankObject

Returns the value of attribute bank.



12
13
14
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 12

def bank
  @bank
end

#layerObject

Returns the value of attribute layer.



14
15
16
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 14

def layer
  @layer
end

#map_setObject

Returns the value of attribute map_set.



13
14
15
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 13

def map_set
  @map_set
end

Instance Method Details

#prerenderObject



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 19

def prerender
  if @map_set.nil? then
    raise "Missing required map"
  end

  if @layer.nil? then
    raise "Missing required layer (bkg, win, sprite)"
  end

  @bank ||= @map_set.map_export_settings.first.bank
end

#render_hObject



39
40
41
42
43
44
45
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 39

def render_h
  prerender

  template = File.open(File.join(__dir__, "asm.h.erb"), "r").read

  ERB.new(template, nil, "-").result(binding)
end

#render_sObject



31
32
33
34
35
36
37
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 31

def render_s
  prerender

  template = File.open(File.join(__dir__, "asm.s.erb"), "r").read

  ERB.new(template, nil, "-").result(binding)
end

#write(output_stream) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/gbtiles/gbm/export/asm/asm.rb', line 47

def write output_stream
  output_stream.write(render_s)

  if output_stream.is_a? File then
    header_filename = "#{File.basename(output_stream.path, ".s")}.h"
    header_path = "#{File.dirname(File.expand_path(output_stream.path))}/#{header_filename}"
    header_stream = File.open(header_path, "w")
    header_stream.write(render_h)
    header_stream.close
  end
end