mc_dot_art_maker 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe8bba8b3c0dd213bbc1373c7855a5e3e5d525ce
4
- data.tar.gz: 1e9ef111cc8d79258a25cc2b3150b2008ab8fc69
3
+ metadata.gz: 5c5eadce9ad342558d5269970693f1f110fbf5fe
4
+ data.tar.gz: 96bd5ac60f276ab5cacc97501336843cea8ccfff
5
5
  SHA512:
6
- metadata.gz: b156b06c04153393b1538c8c333914112df2a3e27519d03a6a308212ae238b35054f276384ef44dea3900bad695cc09b8022deb0f91ed6e923dec4cc9008f733
7
- data.tar.gz: 07e1adbf5b2a86e918f281528f0a188e53f9ce04de02349a4a6de90d7c90b7f6fddd96dc2dc24577aa17a1ebfeca5e460614695efa87cf595e271760be2c4f12
6
+ metadata.gz: 2e67e267ef5c97ee58c460f244a92f1abab1cc7abe26db8a9360d8b460de99ea9f987fe9be4ce38aae029eb9502094f961510fa96b27bc073402ff4472032693
7
+ data.tar.gz: c6a614fcd8e5f364657d5d5c0e15e668859857e4a8dadcfdfc7c8b7e10ae70367432a40d9b8a805c84cdbd48b02fb927eeffbf36c431ee1ebbcbc16afea69ff5
data/Gemfile CHANGED
@@ -3,4 +3,5 @@ gem 'color-rgb'
3
3
  gem 'rmagick'
4
4
  gem 'nbt_utils'
5
5
  gem 'rspec'
6
+ gem 'zip'
6
7
  # gem 'parallel'
data/bin/mc-dam ADDED
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env ruby
2
+ # coding: utf-8
3
+ require 'optparse'
4
+ require 'mc_dot_art_maker'
5
+
6
+
7
+ module MCDotArtMaker
8
+ input = nil
9
+ type = nil
10
+ filename = nil
11
+
12
+ OptionParser.new do |opt|
13
+ opt.banner = "Usage: mc-dam <input> [options]"
14
+ opt.separator "options are:"
15
+ opt.on('-h', '--help', "Show help") do
16
+ puts opt
17
+ exit
18
+ end
19
+ opt.on('-t type', "Type to convert [normal | texture | schematic]") do |v|
20
+ type = v
21
+
22
+ unless ["normal", "texture", "schematic"].include? type
23
+ puts "Invalid type"
24
+ exit
25
+ end
26
+ end
27
+ opt.on('-o output', "Write output to <file>") do |v|
28
+ filename = v
29
+ if filename.nil? || filename == ""
30
+ puts "Invalid filename"
31
+ exit
32
+ end
33
+ end
34
+ opt.on('-i input', "Input image") do |v|
35
+ input = v
36
+ if input.nil? || input == ""
37
+ puts "Invalid filename"
38
+ exit
39
+ end
40
+ end
41
+ opt.parse!(ARGV)
42
+ end
43
+
44
+
45
+ maker = Maker.new(input)
46
+ maker.resize_to_limit(500,500)
47
+
48
+ case type
49
+ when "normal"
50
+ maker.mosaic_image.write "#{filename}.png"
51
+ when "texture"
52
+ maker.texture_image.write "#{filename}.png"
53
+ when "schematic"
54
+ maker.write_schematic "#{filename}.schematic"
55
+ end
56
+ end
@@ -14,7 +14,7 @@ Dir::entries("src").reject{|e| e[0]=='.'}.each do |entry|
14
14
  maker = MCDotArtMaker::Maker.new("src/#{entry}")
15
15
  base = entry.split('.').first
16
16
 
17
- maker.resize_to_fit(500,500)
17
+ maker.resize_to_limit(500,500)
18
18
  maker.texture_image.write "output/texture/#{base}.png"
19
19
  maker.mosaic_image.write "output/mosaic/#{base}.png"
20
20
  maker.write_schematic "output/schematic/#{base}.schematic"
@@ -6,8 +6,6 @@ module MCDotArtMaker
6
6
  @loader = MCDotArtMaker::TextureLoader.new(jar_path)
7
7
  @blocks = []
8
8
 
9
- # できるだけ多くのブロックを使ったバージョン
10
-
11
9
  # block :stone, '1', 'stone.png'
12
10
  # block :granite, '1:1', 'stone_granite.png'
13
11
  # block :polished_granite, '1:2', 'stone_granite_smooth.png'
@@ -16,7 +14,7 @@ module MCDotArtMaker
16
14
  # block :andesite, '1:5', 'stone_andesite.png'
17
15
  # block :polished_andesite, '1:6', 'stone_andesite_smooth.png'
18
16
  # # block :grass, '2', ''
19
- # # テクスチャがグレースケールでたぶんバイオームごとに色を変えてる
17
+ # @note texture color may chanege dependingon biomes.
20
18
  # block :dirt, '3', 'dirt.png'
21
19
  # block :coarse_dirt, '3:1', 'coarse_dirt.png'
22
20
  # block :podzol, '3:2', 'dirt_podzol_top.png'
@@ -36,7 +34,8 @@ module MCDotArtMaker
36
34
  # block :gold_ore, '14', 'gold_ore.png'
37
35
  # block :iron_ore, '15', 'iron_ore.png'
38
36
  # block :coal_ore, '16', 'coal_ore.png'
39
- # block :oak_wood, '17', 'log_oak_top.png' # TODO: テクスチャ注意
37
+ # @note take notice of texture
38
+ # block :oak_wood, '17', 'log_oak_top.png'
40
39
  # # block :spruce_wood, '17:1', 'spruce_wood.png'
41
40
  # # block :birch_wood, '17:2', 'birch_wood.png'
42
41
  # # block :jungle_wood, '17:3', 'jungle_wood.png'
@@ -45,7 +44,7 @@ module MCDotArtMaker
45
44
  # # block :spruce_leaves, '18:1', 'spruce_leaves.png'
46
45
  # # block :birch_leaves, '18:2', 'birch_leaves.png'
47
46
  # # block :jungle_leaves, '18:3', 'jungle_leaves.png'
48
- # # テクスチャがグレースケールでたぶんバイオームごとに色を変えてる
47
+ # @note texture color may chanege dependingon biomes.
49
48
  # block :sponge, '19', 'sponge.png'
50
49
  # block :wet_sponge, '19:1', 'sponge_wet.png'
51
50
  # block :glass, '20', 'glass.png'
@@ -213,11 +212,11 @@ module MCDotArtMaker
213
212
  # block :slime_block, '165', 'slime.png'
214
213
  #
215
214
  # # block :prismarine, '168', 'prismarine.png'
216
- # # TODO: 複数フレームでアニメーションあり
215
+ # @note this texture may be animated
217
216
  # block :prismarine_bricks, '168:1', 'prismarine_bricks.png'
218
217
  # block :dark_prismarine, '168:2', 'prismarine_dark.png'
219
218
  # # block :sea_lantern, '169', 'sea_lantern.png'
220
- # # TODO: 複数フレームでアニメーションあり
219
+ # @note this texture may be animated
221
220
  # block :hay_bale, '170', 'hay_block_top.png'
222
221
  #
223
222
  # block :hardened_clay, '172', 'hardened_clay.png'
@@ -231,8 +230,7 @@ module MCDotArtMaker
231
230
 
232
231
 
233
232
 
234
- # http://imgur.com/a/MTv0r
235
- # このカラーパレットを採用したバージョン
233
+ # @note used this color pallete: http://imgur.com/a/MTv0r
236
234
  # block :stone, '1', 'stone.png'
237
235
  # block :granite, '1:1', 'stone_granite.png'
238
236
  # block :polished_granite, '1:2', 'stone_granite_smooth.png'
@@ -260,7 +258,8 @@ module MCDotArtMaker
260
258
  # block :gold_ore, '14', 'gold_ore.png'
261
259
  # block :iron_ore, '15', 'iron_ore.png'
262
260
  # block :coal_ore, '16', 'coal_ore.png'
263
- # block :oak_wood, '17', 'log_oak_top.png' # TODO: テクスチャ注意
261
+ # @note take notice of texture
262
+ # block :oak_wood, '17', 'log_oak_top.png'
264
263
  block :sponge, '19', 'sponge.png'
265
264
  # block :wet_sponge, '19:1', 'sponge_wet.png'
266
265
  # block :glass, '20', 'glass.png'
@@ -431,11 +430,13 @@ module MCDotArtMaker
431
430
  # block :smooth_red_sandstone, '179:2', 'red_sandstone_smooth.png'
432
431
 
433
432
  end
433
+ # @param [MCDotArtMaker::Block]
434
434
  def add(b)
435
435
  @blocks << b
436
436
  end
437
437
  alias_method :<<,:add
438
438
 
439
+ # @return [Fixnum] size of block list
439
440
  def size
440
441
  @blocks.size
441
442
  end
@@ -447,6 +448,7 @@ module MCDotArtMaker
447
448
  end
448
449
  end
449
450
 
451
+ # @return [Magick::Image] color palette of block list for remapping input image
450
452
  def color_palette
451
453
  # Make color palette
452
454
  new_image = Magick::Image.new(@blocks.size,1){ self.background_color = "white" }
@@ -36,6 +36,16 @@ module MCDotArtMaker
36
36
  raise(ArgumentError, "Should return Magick::Image object") unless image.class == Magick::Image
37
37
  @image = image
38
38
  end
39
+ def resize_to_limit(width, height)
40
+ manipulate do |img|
41
+ geometry = Magick::Geometry.new(width, height, 0, 0, Magick::GreaterGeometry)
42
+ new_img = img.change_geometry(geometry) do |new_width, new_height|
43
+ img.resize(new_width, new_height)
44
+ end
45
+ img.destroy!
46
+ new_img
47
+ end
48
+ end
39
49
 
40
50
  def calculate
41
51
  # load_image unless image_loaded?
@@ -30,7 +30,7 @@ module MCDotArtMaker
30
30
  jar_file_path = File.join(TEXTURE_TMP_DIR,jar_basename)
31
31
  FileUtils.cp(@jar,jar_file_path) if Dir.glob(File.join(TEXTURE_TMP_DIR,'*.jar')).empty?
32
32
 
33
- Zip::File.open(jar_file_path) do |zip|
33
+ Zip::ZipFile.open(jar_file_path) do |zip|
34
34
  zip.each do |entry|
35
35
  if md = /\Aassets\/minecraft\/textures\/blocks\/#{filename}\Z/.match(entry.to_s)
36
36
  entry.extract(File.join(TEXTURE_DIR, filename))
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mc_dot_art_maker'
3
- s.version = '0.4.1'
3
+ s.version = '0.5.0'
4
4
  s.licenses = ['MIT']
5
5
  s.summary = 'Dot Art Maker for Minecraft'
6
6
  s.description = 'Converting images to mosaic arts using Minecraft textures and .schematic files.'
@@ -8,12 +8,17 @@ Gem::Specification.new do |s|
8
8
  s.files = `git ls-files -z`.split("\x0")
9
9
  s.homepage = 'https://github.com/Kumassy/MCDotArtMaker'
10
10
 
11
+ s.executables = ["mc-dam"]
12
+ s.require_paths = ["lib"]
13
+
11
14
  s.required_ruby_version = '>= 2.1.0'
12
15
 
16
+ s.add_runtime_dependency 'zip'
17
+ s.add_runtime_dependency 'nbt_utils'
18
+ s.add_runtime_dependency 'color-rgb'
19
+ s.add_runtime_dependency 'rmagick'
20
+
13
21
  s.add_development_dependency 'bindata'
14
- s.add_development_dependency 'color-rgb'
15
- s.add_development_dependency 'nbt_utils'
16
- s.add_development_dependency 'rmagick'
17
22
  s.add_development_dependency "bundler", "~> 1.11"
18
23
  s.add_development_dependency "rake", "~> 10.0"
19
24
  s.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,23 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mc_dot_art_maker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kumassy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-06 00:00:00.000000000 Z
11
+ date: 2017-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bindata
14
+ name: zip
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- type: :development
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
@@ -25,13 +25,13 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: color-rgb
28
+ name: nbt_utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :development
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
@@ -39,13 +39,13 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: nbt_utils
42
+ name: color-rgb
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
- type: :development
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
@@ -54,6 +54,20 @@ dependencies:
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rmagick
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bindata
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -111,7 +125,8 @@ dependencies:
111
125
  description: Converting images to mosaic arts using Minecraft textures and .schematic
112
126
  files.
113
127
  email:
114
- executables: []
128
+ executables:
129
+ - mc-dam
115
130
  extensions: []
116
131
  extra_rdoc_files: []
117
132
  files:
@@ -121,12 +136,16 @@ files:
121
136
  - LICENSE
122
137
  - README.md
123
138
  - Rakefile
139
+ - bin/mc-dam
124
140
  - deprecated/lib/mc_dot_art_maker/cell.rb
125
141
  - deprecated/lib/mc_dot_art_maker/table.rb
126
142
  - example/make_dot_art/make_dot_art.rb
143
+ - example/make_dot_art/output/mosaic/conoha_stamp__original.png
127
144
  - example/make_dot_art/output/mosaic/test_image.png
128
145
  - example/make_dot_art/output/schematic/test_image.schematic
146
+ - example/make_dot_art/output/texture/conoha_stamp__original.png
129
147
  - example/make_dot_art/output/texture/test_image.png
148
+ - example/make_dot_art/src/conoha_stamp__original.jpg
130
149
  - example/make_dot_art/src/test_image.jpg
131
150
  - lib/mc_dot_art_maker.rb
132
151
  - lib/mc_dot_art_maker/block.rb
@@ -180,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
199
  version: '0'
181
200
  requirements: []
182
201
  rubyforge_project:
183
- rubygems_version: 2.4.8
202
+ rubygems_version: 2.6.11
184
203
  signing_key:
185
204
  specification_version: 4
186
205
  summary: Dot Art Maker for Minecraft