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 +4 -4
- data/Gemfile +1 -0
- data/bin/mc-dam +56 -0
- data/example/make_dot_art/make_dot_art.rb +1 -1
- data/example/make_dot_art/output/mosaic/conoha_stamp__original.png +0 -0
- data/example/make_dot_art/output/mosaic/test_image.png +0 -0
- data/example/make_dot_art/output/schematic/test_image.schematic +0 -0
- data/example/make_dot_art/output/texture/conoha_stamp__original.png +0 -0
- data/example/make_dot_art/output/texture/test_image.png +0 -0
- data/example/make_dot_art/src/conoha_stamp__original.jpg +0 -0
- data/lib/mc_dot_art_maker/block_list.rb +12 -10
- data/lib/mc_dot_art_maker/maker.rb +10 -0
- data/lib/mc_dot_art_maker/texture_loader.rb +1 -1
- data/mc_dot_art_maker.gemspec +9 -4
- metadata +29 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c5eadce9ad342558d5269970693f1f110fbf5fe
|
4
|
+
data.tar.gz: 96bd5ac60f276ab5cacc97501336843cea8ccfff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e67e267ef5c97ee58c460f244a92f1abab1cc7abe26db8a9360d8b460de99ea9f987fe9be4ce38aae029eb9502094f961510fa96b27bc073402ff4472032693
|
7
|
+
data.tar.gz: c6a614fcd8e5f364657d5d5c0e15e668859857e4a8dadcfdfc7c8b7e10ae70367432a40d9b8a805c84cdbd48b02fb927eeffbf36c431ee1ebbcbc16afea69ff5
|
data/Gemfile
CHANGED
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.
|
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"
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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
|
-
#
|
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
|
-
#
|
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
|
-
#
|
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
|
-
#
|
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::
|
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))
|
data/mc_dot_art_maker.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'mc_dot_art_maker'
|
3
|
-
s.version = '0.
|
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
|
+
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:
|
11
|
+
date: 2017-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
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: :
|
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:
|
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: :
|
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:
|
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: :
|
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.
|
202
|
+
rubygems_version: 2.6.11
|
184
203
|
signing_key:
|
185
204
|
specification_version: 4
|
186
205
|
summary: Dot Art Maker for Minecraft
|