gbtiles 0.0.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -0
  3. data/bin/gbm +0 -3
  4. data/bin/gbr +0 -3
  5. data/lib/gbtiles/gbm/cli/convert.rb +8 -17
  6. data/lib/gbtiles/gbm/export/asm/asm.h.erb +3 -3
  7. data/lib/gbtiles/gbm/export/asm/asm.rb +7 -1
  8. data/lib/gbtiles/gbm/export/asm/asm.s.erb +4 -4
  9. data/lib/gbtiles/gbm/import/gbm_file.rb +24 -13
  10. data/lib/gbtiles/gbm/layer.rb +9 -0
  11. data/lib/gbtiles/gbm/map/map_set.rb +22 -11
  12. data/lib/gbtiles/gbm/map/object.rb +0 -5
  13. data/lib/gbtiles/gbm/map/object_type.rb +8 -8
  14. data/lib/gbtiles/gbm/map/objects/map.rb +1 -14
  15. data/lib/gbtiles/gbm/map/objects/map_export_settings.rb +1 -28
  16. data/lib/gbtiles/gbm/map/objects/map_settings.rb +1 -26
  17. data/lib/gbtiles/gbm/map/objects/map_tile_data.rb +1 -2
  18. data/lib/gbtiles/gbm/map/objects/map_tile_data_record.rb +0 -9
  19. data/lib/gbtiles/gbm/map/objects/producer.rb +2 -7
  20. data/lib/gbtiles/gbm/map/objects/unknown.rb +0 -1
  21. data/lib/gbtiles/gbr/cli/convert.rb +2 -19
  22. data/lib/gbtiles/gbr/export/asm/asm.rb +0 -1
  23. data/lib/gbtiles/gbr/import/gbr_file.rb +37 -21
  24. data/lib/gbtiles/gbr/tile_set/color_set.rb +6 -6
  25. data/lib/gbtiles/gbr/tile_set/export_type.rb +7 -7
  26. data/lib/gbtiles/gbr/tile_set/object.rb +0 -3
  27. data/lib/gbtiles/gbr/tile_set/object_type.rb +10 -10
  28. data/lib/gbtiles/gbr/tile_set/objects/palettes.rb +1 -10
  29. data/lib/gbtiles/gbr/tile_set/objects/producer.rb +1 -6
  30. data/lib/gbtiles/gbr/tile_set/objects/tile_data.rb +2 -13
  31. data/lib/gbtiles/gbr/tile_set/objects/tile_export.rb +1 -42
  32. data/lib/gbtiles/gbr/tile_set/objects/tile_import.rb +1 -18
  33. data/lib/gbtiles/gbr/tile_set/objects/tile_pal.rb +1 -10
  34. data/lib/gbtiles/gbr/tile_set/objects/tile_settings.rb +1 -22
  35. data/lib/gbtiles/gbr/tile_set/objects/unknown.rb +0 -1
  36. data/lib/gbtiles/gbr/tile_set/sgb_palettes.rb +7 -7
  37. data/lib/gbtiles/gbr/tile_set/split_order.rb +6 -6
  38. data/lib/gbtiles/gbr/tile_set/tile_set.rb +20 -9
  39. data/lib/gbtiles/{data_type.rb → helpers/data_type.rb} +19 -11
  40. data/lib/gbtiles/version.rb +1 -1
  41. metadata +47 -4
@@ -5,46 +5,21 @@ module GBTiles
5
5
  class MapSettings < GBTiles::GBM::Map::Object
6
6
 
7
7
  attr_accessor :form_width
8
- @form_width
9
-
10
8
  attr_accessor :form_height
11
- @form_height
12
-
13
9
  attr_accessor :form_maximized
14
- @form_maximized
15
-
16
10
  attr_accessor :info_panel
17
- @info_panel
18
-
19
11
  attr_accessor :grid
20
- @grid
21
-
22
12
  attr_accessor :double_markers
23
- @double_markers
24
-
25
13
  attr_accessor :prop_colors
26
- @prop_colors
27
-
28
14
  attr_accessor :zoom
29
- @zoom
30
-
31
15
  attr_accessor :color_set
32
- @color_set
33
-
34
16
  attr_accessor :bookmarks
35
- @bookmarks
36
-
37
17
  attr_accessor :block_fill_pattern
38
- @block_fill_pattern
39
-
40
18
  attr_accessor :block_fill_width
41
- @block_fill_width
42
-
43
19
  attr_accessor :block_fill_height
44
- @block_fill_height
45
20
 
46
21
  def initialize
47
- super GBTiles::GBM::Map::ObjectType::MAP_SETTINGS
22
+ super GBTiles::GBM::Map::OBJECT_TYPE[:map_settings]
48
23
  end
49
24
 
50
25
  def self.initFromBitString src
@@ -5,10 +5,9 @@ module GBTiles
5
5
  class MapTileData < GBTiles::GBM::Map::Object
6
6
 
7
7
  attr_accessor :records
8
- @records
9
8
 
10
9
  def initialize
11
- super GBTiles::GBM::Map::ObjectType::MAP_TILE_DATA
10
+ super GBTiles::GBM::Map::OBJECT_TYPE[:map_tile_data]
12
11
 
13
12
  @records = []
14
13
  end
@@ -5,19 +5,10 @@ module GBTiles
5
5
  class MapTileDataRecord
6
6
 
7
7
  attr_accessor :tile_number
8
- @tile_number
9
-
10
8
  attr_accessor :gbc_palette
11
- @gbc_palette
12
-
13
9
  attr_accessor :sgb_palette
14
- @sgb_palette
15
-
16
10
  attr_accessor :flipped_horizontally
17
- @flipped_horizontally
18
-
19
11
  attr_accessor :flipped_vertically
20
- @flipped_vertically
21
12
 
22
13
  def initialize
23
14
  end
@@ -5,19 +5,14 @@ module GBTiles
5
5
  class Producer < GBTiles::GBM::Map::Object
6
6
 
7
7
  attr_accessor :name
8
- @name
9
-
10
8
  attr_accessor :version
11
- @version
12
-
13
9
  attr_accessor :info
14
- @info
15
10
 
16
11
  def initialize
17
- super GBTiles::GBM::Map::ObjectType::PRODUCER
12
+ super GBTiles::GBM::Map::OBJECT_TYPE[:producer]
18
13
  end
19
14
 
20
- def self.initFromBitString(src)
15
+ def self.initFromBitString src
21
16
  object = GBTiles::GBM::Map::Objects::Producer.new
22
17
 
23
18
  object.name = GBTiles::DataType.string!(src, 128)
@@ -5,7 +5,6 @@ module GBTiles
5
5
  class Unknown < GBTiles::GBM::Map::Object
6
6
 
7
7
  attr_accessor :object_data
8
- @object_data
9
8
 
10
9
  end
11
10
  end
@@ -1,29 +1,12 @@
1
- require "gbtiles/data_type"
2
-
3
- require "gbtiles/gbr/tile_set/tile_set"
4
- require "gbtiles/gbr/tile_set/object"
5
- require "gbtiles/gbr/tile_set/object_type"
6
- require "gbtiles/gbr/tile_set/split_order"
7
- require "gbtiles/gbr/tile_set/color_set"
8
-
9
- require "gbtiles/gbr/tile_set/objects/palettes"
10
- require "gbtiles/gbr/tile_set/objects/producer"
11
- require "gbtiles/gbr/tile_set/objects/tile_data"
12
- require "gbtiles/gbr/tile_set/objects/tile_export"
13
- require "gbtiles/gbr/tile_set/objects/tile_import"
14
- require "gbtiles/gbr/tile_set/objects/tile_pal"
15
- require "gbtiles/gbr/tile_set/objects/tile_settings"
16
- require "gbtiles/gbr/tile_set/objects/unknown"
17
-
1
+ require "gbtiles/helpers/data_type"
18
2
  require "gbtiles/gbr/import/gbr_file"
19
-
20
3
  require "gbtiles/gbr/export/asm/asm"
21
4
 
22
5
  desc "Convert a file from GBR format"
23
6
  arg_name "input"
24
7
  command :convert do |c|
25
8
 
26
- c.desc "Output filename (*.s)"
9
+ c.desc "Output filename [*.s]"
27
10
  c.flag :output
28
11
 
29
12
  c.action do |global_options,options,args|
@@ -8,7 +8,6 @@ module GBTiles
8
8
  include ERB::Util
9
9
 
10
10
  attr_accessor :tile_set
11
- @tile_set
12
11
 
13
12
  def initialize
14
13
  end
@@ -1,22 +1,38 @@
1
+ require "gbtiles/helpers/fixnum"
2
+
3
+ require "gbtiles/gbr/tile_set/tile_set"
4
+ require "gbtiles/gbr/tile_set/object"
5
+ require "gbtiles/gbr/tile_set/object_type"
6
+ require "gbtiles/gbr/tile_set/split_order"
7
+ require "gbtiles/gbr/tile_set/color_set"
8
+
9
+ require "gbtiles/gbr/tile_set/objects/palettes"
10
+ require "gbtiles/gbr/tile_set/objects/producer"
11
+ require "gbtiles/gbr/tile_set/objects/tile_data"
12
+ require "gbtiles/gbr/tile_set/objects/tile_export"
13
+ require "gbtiles/gbr/tile_set/objects/tile_import"
14
+ require "gbtiles/gbr/tile_set/objects/tile_pal"
15
+ require "gbtiles/gbr/tile_set/objects/tile_settings"
16
+ require "gbtiles/gbr/tile_set/objects/unknown"
17
+
1
18
  module GBTiles
2
19
  module GBR
3
20
  module Import
4
21
  class GBRFile
5
- attr_accessor :version, :tile_set
6
22
 
7
- @version
8
- @tile_set
23
+ attr_accessor :version
24
+ attr_accessor :tile_set
9
25
 
10
- def initialize()
26
+ def initialize
11
27
  @tile_set = GBTiles::GBR::TileSet::TileSet.new
12
28
  end
13
29
 
14
- def self.open(file)
30
+ def self.open file
15
31
  import = GBTiles::GBR::Import::GBRFile.new
16
32
 
17
33
  # Check to see if this is a valid file type
18
34
  if (file.read(3) != "GBO") then
19
- raise "Invalid file, header does not start with GBO"
35
+ raise IOError, "Not a valid file (expected: GBO)"
20
36
  end
21
37
 
22
38
  # Version number
@@ -29,27 +45,27 @@ module GBTiles
29
45
  object_len = GBTiles::DataType.long(file.read(4))
30
46
  object_data = file.read(object_len)
31
47
 
32
- case object_type
33
- when GBTiles::GBR::TileSet::ObjectType::PRODUCER
34
- object = GBTiles::GBR::TileSet::Objects::Producer.initFromBitString object_data
48
+ case GBTiles::GBR::TileSet::OBJECT_TYPE.key(object_type)
49
+ when :producer
50
+ object = GBTiles::GBR::TileSet::Objects::Producer.initFromBitString(object_data)
35
51
 
36
- when GBTiles::GBR::TileSet::ObjectType::TILE_DATA
37
- object = GBTiles::GBR::TileSet::Objects::TileData.initFromBitString object_data
52
+ when :tile_data
53
+ object = GBTiles::GBR::TileSet::Objects::TileData.initFromBitString(object_data)
38
54
 
39
- when GBTiles::GBR::TileSet::ObjectType::TILE_SETTINGS
40
- object = GBTiles::GBR::TileSet::Objects::TileSettings.initFromBitString object_data
55
+ when :tile_settings
56
+ object = GBTiles::GBR::TileSet::Objects::TileSettings.initFromBitString(object_data)
41
57
 
42
- when GBTiles::GBR::TileSet::ObjectType::TILE_EXPORT
43
- object = GBTiles::GBR::TileSet::Objects::TileExport.initFromBitString object_data
58
+ when :tile_export
59
+ object = GBTiles::GBR::TileSet::Objects::TileExport.initFromBitString(object_data)
44
60
 
45
- when GBTiles::GBR::TileSet::ObjectType::TILE_IMPORT
46
- object = GBTiles::GBR::TileSet::Objects::TileImport.initFromBitString object_data
61
+ when :tile_import
62
+ object = GBTiles::GBR::TileSet::Objects::TileImport.initFromBitString(object_data)
47
63
 
48
- when GBTiles::GBR::TileSet::ObjectType::PALETTES
49
- object = GBTiles::GBR::TileSet::Objects::Palettes.initFromBitString object_data
64
+ when :palettes
65
+ object = GBTiles::GBR::TileSet::Objects::Palettes.initFromBitString(object_data)
50
66
 
51
- when GBTiles::GBR::TileSet::ObjectType::TILE_PAL
52
- object = GBTiles::GBR::TileSet::Objects::TilePal.initFromBitString object_data
67
+ when :tile_pal
68
+ object = GBTiles::GBR::TileSet::Objects::TilePal.initFromBitString(object_data)
53
69
 
54
70
  else
55
71
  object = GBTiles::GBR::TileSet::Objects::Unknown.new object_type
@@ -1,12 +1,12 @@
1
1
  module GBTiles
2
2
  module GBR
3
3
  module TileSet
4
- module ColorSet
5
- POCKET = 0
6
- GAME_BOY = 1
7
- GBC = 2
8
- SGB = 3
9
- end
4
+ COLOR_SET = {
5
+ :pocket => 0,
6
+ :game_boy => 1,
7
+ :gbc => 2,
8
+ :sgb => 3
9
+ }
10
10
  end
11
11
  end
12
12
  end
@@ -1,13 +1,13 @@
1
1
  module GBTiles
2
2
  module GBR
3
3
  module TileSet
4
- module ExportType
5
- RGBDS_ASSEMBLY = 0x00
6
- RGBDS_OBJECT = 0x01
7
- TASM_ASSEMBLY = 0x02
8
- GBDK_C = 0x03
9
- BINARY = 0x04
10
- end
4
+ EXPORT_TYPE = {
5
+ :rgbds_assembly => 0x00,
6
+ :rgbds_object => 0x01,
7
+ :tasm_assembly => 0x02,
8
+ :gbdk_c => 0x03,
9
+ :binary => 0x04
10
+ }
11
11
  end
12
12
  end
13
13
  end
@@ -4,10 +4,7 @@ module GBTiles
4
4
  class Object
5
5
 
6
6
  attr_accessor :object_id
7
- @object_id
8
-
9
7
  attr_accessor :object_type
10
- @object_type
11
8
 
12
9
  def initialize object_type
13
10
  @object_type = object_type
@@ -1,16 +1,16 @@
1
1
  module GBTiles
2
2
  module GBR
3
3
  module TileSet
4
- module ObjectType
5
- PRODUCER = 0x01
6
- TILE_DATA = 0x02
7
- TILE_SETTINGS = 0x03
8
- TILE_EXPORT = 0x04
9
- TILE_IMPORT = 0x05
10
- PALETTES = 0x0D
11
- TILE_PAL = 0x0E
12
- DELETED = 0xFF
13
- end
4
+ OBJECT_TYPE = {
5
+ :producer => 0x01,
6
+ :tile_data => 0x02,
7
+ :tile_settings => 0x03,
8
+ :tile_export => 0x04,
9
+ :tile_import => 0x05,
10
+ :palettes => 0x0D,
11
+ :tile_pal => 0x0E,
12
+ :deleted => 0xFF
13
+ }
14
14
  end
15
15
  end
16
16
  end
@@ -5,22 +5,13 @@ module GBTiles
5
5
  class Palettes < GBTiles::GBR::TileSet::Object
6
6
 
7
7
  attr_accessor :id
8
- @id
9
-
10
8
  attr_accessor :count
11
- @count
12
-
13
9
  attr_accessor :colors
14
- @colors
15
-
16
10
  attr_accessor :sgb_count
17
- @sgb_count
18
-
19
11
  attr_accessor :sgb_colors
20
- @sgb_colors
21
12
 
22
13
  def initialize
23
- super GBTiles::GBR::TileSet::ObjectType::PALETTES
14
+ super GBTiles::GBR::TileSet::OBJECT_TYPE[:palettes]
24
15
  end
25
16
 
26
17
  def self.initFromBitString src
@@ -5,16 +5,11 @@ module GBTiles
5
5
  class Producer < GBTiles::GBR::TileSet::Object
6
6
 
7
7
  attr_accessor :name
8
- @name
9
-
10
8
  attr_accessor :version
11
- @version
12
-
13
9
  attr_accessor :info
14
- @info
15
10
 
16
11
  def initialize
17
- super GBTiles::GBR::TileSet::ObjectType::PRODUCER
12
+ super GBTiles::GBR::TileSet::OBJECT_TYPE[:producer]
18
13
  end
19
14
 
20
15
  def self.initFromBitString src
@@ -5,25 +5,14 @@ module GBTiles
5
5
  class TileData < GBTiles::GBR::TileSet::Object
6
6
 
7
7
  attr_accessor :name
8
- @name
9
-
10
8
  attr_accessor :width
11
- @width
12
-
13
9
  attr_accessor :height
14
- @height
15
-
16
10
  attr_accessor :count
17
- @count
18
-
19
11
  attr_accessor :color_set
20
- @color_set
21
-
22
12
  attr_accessor :data
23
- @data
24
13
 
25
14
  def initialize
26
- super GBTiles::GBR::TileSet::ObjectType::TILE_DATA
15
+ super GBTiles::GBR::TileSet::OBJECT_TYPE[:tile_data]
27
16
  end
28
17
 
29
18
  def self.initFromBitString src
@@ -39,7 +28,7 @@ module GBTiles
39
28
  object
40
29
  end
41
30
 
42
- def render_tile(tile_index)
31
+ def render_tile tile_index
43
32
  tile = []
44
33
 
45
34
  tile_data = @data.slice(
@@ -5,70 +5,29 @@ module GBTiles
5
5
  class TileExport < GBTiles::GBR::TileSet::Object
6
6
 
7
7
  attr_accessor :tile_id
8
- @tile_id
9
-
10
8
  attr_accessor :file_name
11
- @file_name
12
-
13
9
  attr_accessor :file_type
14
- @file_type
15
-
16
10
  attr_accessor :section_name
17
- @section_name
18
-
19
11
  attr_accessor :label_name
20
- @label_name
21
-
22
12
  attr_accessor :bank
23
- @bank
24
-
25
13
  attr_accessor :tile_array
26
- @tile_array
27
-
28
14
  attr_accessor :format
29
- @format
30
-
31
15
  attr_accessor :counter
32
- @counter
33
-
34
16
  attr_accessor :from
35
- @from
36
-
37
17
  attr_accessor :upto
38
- @upto
39
-
40
18
  attr_accessor :compression
41
- @compression
42
-
43
19
  attr_accessor :include_colors
44
- @include_colors
45
-
46
20
  attr_accessor :sgb_palettes
47
- @sgb_palettes
48
-
49
21
  attr_accessor :gbc_palettes
50
- @gbc_palettes
51
-
52
22
  attr_accessor :make_meta_tiles
53
- @make_meta_tiles
54
-
55
23
  attr_accessor :meta_offset
56
- @meta_offset
57
-
58
24
  attr_accessor :meta_counter
59
- @meta_counter
60
-
61
25
  attr_accessor :split
62
- @split
63
-
64
26
  attr_accessor :block_size
65
- @block_size
66
-
67
27
  attr_accessor :sel_tab
68
- @sel_tab
69
28
 
70
29
  def initialize
71
- super GBTiles::GBR::TileSet::ObjectType::TILE_EXPORT
30
+ super GBTiles::GBR::TileSet::OBJECT_TYPE[:tile_export]
72
31
  end
73
32
 
74
33
  def self.initFromBitString src