gbtiles 0.0.1

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 (44) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +19 -0
  3. data/README.md +48 -0
  4. data/bin/gbm +27 -0
  5. data/bin/gbr +27 -0
  6. data/lib/gbtiles/data_type.rb +73 -0
  7. data/lib/gbtiles/gbm/cli/convert.rb +56 -0
  8. data/lib/gbtiles/gbm/export/asm/asm.h.erb +19 -0
  9. data/lib/gbtiles/gbm/export/asm/asm.rb +52 -0
  10. data/lib/gbtiles/gbm/export/asm/asm.s.erb +30 -0
  11. data/lib/gbtiles/gbm/import/gbm_file.rb +82 -0
  12. data/lib/gbtiles/gbm/map/map_set.rb +55 -0
  13. data/lib/gbtiles/gbm/map/object.rb +21 -0
  14. data/lib/gbtiles/gbm/map/object_type.rb +14 -0
  15. data/lib/gbtiles/gbm/map/objects/map.rb +49 -0
  16. data/lib/gbtiles/gbm/map/objects/map_export_settings.rb +77 -0
  17. data/lib/gbtiles/gbm/map/objects/map_settings.rb +73 -0
  18. data/lib/gbtiles/gbm/map/objects/map_tile_data.rb +40 -0
  19. data/lib/gbtiles/gbm/map/objects/map_tile_data_record.rb +40 -0
  20. data/lib/gbtiles/gbm/map/objects/producer.rb +33 -0
  21. data/lib/gbtiles/gbm/map/objects/unknown.rb +14 -0
  22. data/lib/gbtiles/gbr/cli/convert.rb +58 -0
  23. data/lib/gbtiles/gbr/export/asm/asm.h.erb +15 -0
  24. data/lib/gbtiles/gbr/export/asm/asm.rb +52 -0
  25. data/lib/gbtiles/gbr/export/asm/asm.s.erb +17 -0
  26. data/lib/gbtiles/gbr/import/gbr_file.rb +70 -0
  27. data/lib/gbtiles/gbr/tile_set/color_set.rb +12 -0
  28. data/lib/gbtiles/gbr/tile_set/export_type.rb +13 -0
  29. data/lib/gbtiles/gbr/tile_set/object.rb +18 -0
  30. data/lib/gbtiles/gbr/tile_set/object_type.rb +16 -0
  31. data/lib/gbtiles/gbr/tile_set/objects/palettes.rb +41 -0
  32. data/lib/gbtiles/gbr/tile_set/objects/producer.rb +33 -0
  33. data/lib/gbtiles/gbr/tile_set/objects/tile_data.rb +82 -0
  34. data/lib/gbtiles/gbr/tile_set/objects/tile_export.rb +105 -0
  35. data/lib/gbtiles/gbr/tile_set/objects/tile_import.rb +57 -0
  36. data/lib/gbtiles/gbr/tile_set/objects/tile_pal.rb +41 -0
  37. data/lib/gbtiles/gbr/tile_set/objects/tile_settings.rb +65 -0
  38. data/lib/gbtiles/gbr/tile_set/objects/unknown.rb +14 -0
  39. data/lib/gbtiles/gbr/tile_set/sgb_palettes.rb +13 -0
  40. data/lib/gbtiles/gbr/tile_set/split_order.rb +13 -0
  41. data/lib/gbtiles/gbr/tile_set/tile_set.rb +57 -0
  42. data/lib/gbtiles/helpers/fixnum.rb +6 -0
  43. data/lib/gbtiles/version.rb +3 -0
  44. metadata +104 -0
@@ -0,0 +1,57 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ module Objects
5
+ class TileImport < GBTiles::GBR::TileSet::Object
6
+
7
+ attr_accessor :tile_id
8
+ @tile_id
9
+
10
+ attr_accessor :file_name
11
+ @file_name
12
+
13
+ attr_accessor :file_type
14
+ @file_type
15
+
16
+ attr_accessor :from_tile
17
+ @from_tile
18
+
19
+ attr_accessor :to_tile
20
+ @to_tile
21
+
22
+ attr_accessor :tile_count
23
+ @tile_count
24
+
25
+ attr_accessor :color_conversion
26
+ @color_conversion
27
+
28
+ attr_accessor :first_byte
29
+ @first_byte
30
+
31
+ attr_accessor :binary_file_type
32
+ @binary_file_type
33
+
34
+ def initialize
35
+ super GBTiles::GBR::TileSet::ObjectType::TILE_IMPORT
36
+ end
37
+
38
+ def self.initFromBitString src
39
+ object = GBTiles::GBR::TileSet::Objects::TileImport.new
40
+
41
+ object.tile_id = GBTiles::DataType.word!(src)
42
+ object.file_name = GBTiles::DataType.string!(src, 128)
43
+ object.file_type = GBTiles::DataType.byte!(src)
44
+ object.from_tile = GBTiles::DataType.word!(src)
45
+ object.to_tile = GBTiles::DataType.word!(src)
46
+ object.tile_count = GBTiles::DataType.word!(src)
47
+ object.color_conversion = GBTiles::DataType.byte!(src)
48
+ object.first_byte = GBTiles::DataType.long!(src)
49
+ object.binary_file_type = GBTiles::DataType.byte!(src)
50
+
51
+ object
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,41 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ module Objects
5
+ class TilePal < GBTiles::GBR::TileSet::Object
6
+
7
+ attr_accessor :id
8
+ @id
9
+
10
+ attr_accessor :count
11
+ @count
12
+
13
+ attr_accessor :color_set
14
+ @color_set
15
+
16
+ attr_accessor :sgb_count
17
+ @sgb_count
18
+
19
+ attr_accessor :sgb_color_set
20
+ @sgb_color_set
21
+
22
+ def initialize
23
+ super GBTiles::GBR::TileSet::ObjectType::TILE_PAL
24
+ end
25
+
26
+ def self.initFromBitString src
27
+ object = GBTiles::GBR::TileSet::Objects::TilePal.new
28
+
29
+ object.id = GBTiles::DataType.word!(src)
30
+ object.count = GBTiles::DataType.word!(src)
31
+ object.color_set = src.slice!(0, object.count)
32
+ object.sgb_count = GBTiles::DataType.word!(src)
33
+ object.sgb_color_set = src.slice!(0, object.sgb_count)
34
+
35
+ object
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,65 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ module Objects
5
+ class TileSettings < GBTiles::GBR::TileSet::Object
6
+
7
+ attr_accessor :tile_id
8
+ @tile_id
9
+
10
+ attr_accessor :simple
11
+ @simple
12
+
13
+ attr_accessor :flags
14
+ @flags
15
+
16
+ attr_accessor :left_color
17
+ @left_color
18
+
19
+ attr_accessor :right_color
20
+ @right_color
21
+
22
+ attr_accessor :split_width
23
+ @split_width
24
+
25
+ attr_accessor :split_height
26
+ @split_height
27
+
28
+ attr_accessor :split_order
29
+ @split_order
30
+
31
+ attr_accessor :color_set
32
+ @color_set
33
+
34
+ attr_accessor :bookmarks
35
+ @bookmarks
36
+
37
+ attr_accessor :auto_update
38
+ @auto_update
39
+
40
+ def initialize
41
+ super GBTiles::GBR::TileSet::ObjectType::TILE_SETTINGS
42
+ end
43
+
44
+ def self.initFromBitString src
45
+ object = GBTiles::GBR::TileSet::Objects::TileSettings.new
46
+
47
+ object.tile_id = GBTiles::DataType.word!(src)
48
+ object.simple = GBTiles::DataType.boolean!(src)
49
+ object.flags = GBTiles::DataType.byte!(src)
50
+ object.left_color = GBTiles::DataType.byte!(src)
51
+ object.right_color = GBTiles::DataType.byte!(src)
52
+ object.split_width = GBTiles::DataType.word!(src)
53
+ object.split_height = GBTiles::DataType.word!(src)
54
+ object.split_order = GBTiles::DataType.long!(src)
55
+ object.color_set = GBTiles::DataType.byte!(src)
56
+ # @bookmarks Word(3)
57
+ # @auto_update Boolean
58
+
59
+ object
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,14 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ module Objects
5
+ class Unknown < GBTiles::GBR::TileSet::Object
6
+
7
+ attr_accessor :object_data
8
+ @object_data
9
+
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ module SGBPalettes
5
+ NONE = 0
6
+ CONSTANT_PER_ENTRY = 1
7
+ 2_BITS_PER_ENTRY = 2
8
+ 4_BITS_PER_ENTRY = 3
9
+ 1_BYTE_PER_ENTRY = 4
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ module SplitOrder
5
+ LRTB = 0
6
+ HORIZONTAL = 0
7
+
8
+ TBLR = 1
9
+ VERTICAL = 1
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,57 @@
1
+ module GBTiles
2
+ module GBR
3
+ module TileSet
4
+ class TileSet
5
+
6
+ attr_accessor :objects
7
+ @objects
8
+
9
+ def initialize
10
+ @objects = []
11
+ end
12
+
13
+ def producers
14
+ @objects.select{ |a|
15
+ a.is_a? GBTiles::GBR::TileSet::Objects::Producer
16
+ }
17
+ end
18
+
19
+ def tile_data
20
+ @objects.select{ |a|
21
+ a.is_a? GBTiles::GBR::TileSet::Objects::TileData
22
+ }
23
+ end
24
+
25
+ def tile_settings
26
+ @objects.select{ |a|
27
+ a.is_a? GBTiles::GBR::TileSet::Objects::TileSettings
28
+ }
29
+ end
30
+
31
+ def tile_export
32
+ @objects.select{ |a|
33
+ a.is_a? GBTiles::GBR::TileSet::Objects::TileExport
34
+ }
35
+ end
36
+
37
+ def tile_import
38
+ @objects.select{ |a|
39
+ a.is_a? GBTiles::GBR::TileSet::Objects::TileImport
40
+ }
41
+ end
42
+
43
+ def palettes
44
+ @objects.select{ |a|
45
+ a.is_a? GBTiles::GBR::TileSet::Objects::Palettes
46
+ }
47
+ end
48
+
49
+ def tile_pal
50
+ @objects.select{ |a|
51
+ a.is_a? GBTiles::GBR::TileSet::Objects::TilePal
52
+ }
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,6 @@
1
+ class Fixnum
2
+ def bits range
3
+ len = range.last - range.first + 1
4
+ self >> range.first & ~(-1 >> len << len)
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module GBTiles
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gbtiles
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Bashkim Isai
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gli
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.12.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.12.2
27
+ description: 'Allows files created by Harry Mulder''s Game Boy Map Builder and Game
28
+ Boy Tile Designer to be converted in to different file formats for use in Game Boy
29
+ game development (e.g.: with GBDK)'
30
+ email:
31
+ executables:
32
+ - gbr
33
+ - gbm
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - LICENSE
38
+ - README.md
39
+ - bin/gbm
40
+ - bin/gbr
41
+ - lib/gbtiles/data_type.rb
42
+ - lib/gbtiles/gbm/cli/convert.rb
43
+ - lib/gbtiles/gbm/export/asm/asm.h.erb
44
+ - lib/gbtiles/gbm/export/asm/asm.rb
45
+ - lib/gbtiles/gbm/export/asm/asm.s.erb
46
+ - lib/gbtiles/gbm/import/gbm_file.rb
47
+ - lib/gbtiles/gbm/map/map_set.rb
48
+ - lib/gbtiles/gbm/map/object.rb
49
+ - lib/gbtiles/gbm/map/object_type.rb
50
+ - lib/gbtiles/gbm/map/objects/map.rb
51
+ - lib/gbtiles/gbm/map/objects/map_export_settings.rb
52
+ - lib/gbtiles/gbm/map/objects/map_settings.rb
53
+ - lib/gbtiles/gbm/map/objects/map_tile_data.rb
54
+ - lib/gbtiles/gbm/map/objects/map_tile_data_record.rb
55
+ - lib/gbtiles/gbm/map/objects/producer.rb
56
+ - lib/gbtiles/gbm/map/objects/unknown.rb
57
+ - lib/gbtiles/gbr/cli/convert.rb
58
+ - lib/gbtiles/gbr/export/asm/asm.h.erb
59
+ - lib/gbtiles/gbr/export/asm/asm.rb
60
+ - lib/gbtiles/gbr/export/asm/asm.s.erb
61
+ - lib/gbtiles/gbr/import/gbr_file.rb
62
+ - lib/gbtiles/gbr/tile_set/color_set.rb
63
+ - lib/gbtiles/gbr/tile_set/export_type.rb
64
+ - lib/gbtiles/gbr/tile_set/object.rb
65
+ - lib/gbtiles/gbr/tile_set/object_type.rb
66
+ - lib/gbtiles/gbr/tile_set/objects/palettes.rb
67
+ - lib/gbtiles/gbr/tile_set/objects/producer.rb
68
+ - lib/gbtiles/gbr/tile_set/objects/tile_data.rb
69
+ - lib/gbtiles/gbr/tile_set/objects/tile_export.rb
70
+ - lib/gbtiles/gbr/tile_set/objects/tile_import.rb
71
+ - lib/gbtiles/gbr/tile_set/objects/tile_pal.rb
72
+ - lib/gbtiles/gbr/tile_set/objects/tile_settings.rb
73
+ - lib/gbtiles/gbr/tile_set/objects/unknown.rb
74
+ - lib/gbtiles/gbr/tile_set/sgb_palettes.rb
75
+ - lib/gbtiles/gbr/tile_set/split_order.rb
76
+ - lib/gbtiles/gbr/tile_set/tile_set.rb
77
+ - lib/gbtiles/helpers/fixnum.rb
78
+ - lib/gbtiles/version.rb
79
+ homepage: http://github.com/bashaus/gbtiles
80
+ licenses:
81
+ - MIT
82
+ metadata: {}
83
+ post_install_message:
84
+ rdoc_options: []
85
+ require_paths:
86
+ - lib
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project:
100
+ rubygems_version: 2.2.2
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: Converts .GBR and .GBM files to different Game Boy formats
104
+ test_files: []