mc_dot_art_maker 0.4.1 → 0.5.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.
- 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
|