mc_dot_art_maker 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +40 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +34 -0
- data/LICENSE +21 -0
- data/README.md +1 -0
- data/Rakefile +6 -0
- data/example/make_dot_art/make_dot_art.rb +9 -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/test_image.png +0 -0
- data/example/make_dot_art/src/test_image.jpg +0 -0
- data/lib/mc_dot_art_maker/block.rb +60 -0
- data/lib/mc_dot_art_maker/block_list.rb +471 -0
- data/lib/mc_dot_art_maker/cell.rb +31 -0
- data/lib/mc_dot_art_maker/schematic_helper.rb +167 -0
- data/lib/mc_dot_art_maker/seed.schematic +0 -0
- data/lib/mc_dot_art_maker/table.rb +147 -0
- data/lib/mc_dot_art_maker/textures/anvil_base.png +0 -0
- data/lib/mc_dot_art_maker/textures/anvil_top_damaged_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/anvil_top_damaged_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/anvil_top_damaged_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/beacon.png +0 -0
- data/lib/mc_dot_art_maker/textures/bed_feet_end.png +0 -0
- data/lib/mc_dot_art_maker/textures/bed_feet_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/bed_feet_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/bed_head_end.png +0 -0
- data/lib/mc_dot_art_maker/textures/bed_head_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/bed_head_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/bedrock.png +0 -0
- data/lib/mc_dot_art_maker/textures/bookshelf.png +0 -0
- data/lib/mc_dot_art_maker/textures/brewing_stand.png +0 -0
- data/lib/mc_dot_art_maker/textures/brewing_stand_base.png +0 -0
- data/lib/mc_dot_art_maker/textures/brick.png +0 -0
- data/lib/mc_dot_art_maker/textures/cactus_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/cactus_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/cactus_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/cake_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/cake_inner.png +0 -0
- data/lib/mc_dot_art_maker/textures/cake_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/cake_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/carrots_stage_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/carrots_stage_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/carrots_stage_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/carrots_stage_3.png +0 -0
- data/lib/mc_dot_art_maker/textures/cauldron_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/cauldron_inner.png +0 -0
- data/lib/mc_dot_art_maker/textures/cauldron_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/cauldron_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/clay.png +0 -0
- data/lib/mc_dot_art_maker/textures/coal_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/coal_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/coarse_dirt.png +0 -0
- data/lib/mc_dot_art_maker/textures/cobblestone.png +0 -0
- data/lib/mc_dot_art_maker/textures/cobblestone_mossy.png +0 -0
- data/lib/mc_dot_art_maker/textures/cocoa_stage_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/cocoa_stage_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/cocoa_stage_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/command_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/comparator_off.png +0 -0
- data/lib/mc_dot_art_maker/textures/comparator_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/crafting_table_front.png +0 -0
- data/lib/mc_dot_art_maker/textures/crafting_table_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/crafting_table_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/daylight_detector_inverted_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/daylight_detector_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/daylight_detector_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/deadbush.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_3.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_4.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_5.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_6.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_7.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_8.png +0 -0
- data/lib/mc_dot_art_maker/textures/destroy_stage_9.png +0 -0
- data/lib/mc_dot_art_maker/textures/diamond_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/diamond_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/dirt.png +0 -0
- data/lib/mc_dot_art_maker/textures/dirt_podzol_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/dirt_podzol_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/dispenser_front_horizontal.png +0 -0
- data/lib/mc_dot_art_maker/textures/dispenser_front_vertical.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_acacia_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_acacia_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_birch_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_birch_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_dark_oak_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_dark_oak_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_iron_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_iron_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_jungle_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_jungle_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_spruce_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_spruce_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_wood_lower.png +0 -0
- data/lib/mc_dot_art_maker/textures/door_wood_upper.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_fern_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_fern_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_grass_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_grass_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_paeonia_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_paeonia_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_rose_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_rose_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_sunflower_back.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_sunflower_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_sunflower_front.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_sunflower_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_syringa_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/double_plant_syringa_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/dragon_egg.png +0 -0
- data/lib/mc_dot_art_maker/textures/dropper_front_horizontal.png +0 -0
- data/lib/mc_dot_art_maker/textures/dropper_front_vertical.png +0 -0
- data/lib/mc_dot_art_maker/textures/emerald_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/emerald_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/enchanting_table_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/enchanting_table_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/enchanting_table_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/end_stone.png +0 -0
- data/lib/mc_dot_art_maker/textures/endframe_eye.png +0 -0
- data/lib/mc_dot_art_maker/textures/endframe_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/endframe_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/farmland_dry.png +0 -0
- data/lib/mc_dot_art_maker/textures/farmland_wet.png +0 -0
- data/lib/mc_dot_art_maker/textures/fern.png +0 -0
- data/lib/mc_dot_art_maker/textures/fire_layer_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/fire_layer_0.png.mcmeta +38 -0
- data/lib/mc_dot_art_maker/textures/fire_layer_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/fire_layer_1.png.mcmeta +3 -0
- data/lib/mc_dot_art_maker/textures/flower_allium.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_blue_orchid.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_dandelion.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_houstonia.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_oxeye_daisy.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_paeonia.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_pot.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_rose.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_tulip_orange.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_tulip_pink.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_tulip_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/flower_tulip_white.png +0 -0
- data/lib/mc_dot_art_maker/textures/furnace_front_off.png +0 -0
- data/lib/mc_dot_art_maker/textures/furnace_front_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/furnace_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/furnace_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_black.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_brown.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_cyan.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_gray.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_green.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_light_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_lime.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_magenta.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_orange.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_black.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_brown.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_cyan.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_gray.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_green.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_light_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_lime.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_magenta.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_orange.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_pink.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_purple.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_silver.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_white.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pane_top_yellow.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_pink.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_purple.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_silver.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_white.png +0 -0
- data/lib/mc_dot_art_maker/textures/glass_yellow.png +0 -0
- data/lib/mc_dot_art_maker/textures/glowstone.png +0 -0
- data/lib/mc_dot_art_maker/textures/gold_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/gold_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/grass_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/grass_side_overlay.png +0 -0
- data/lib/mc_dot_art_maker/textures/grass_side_snowed.png +0 -0
- data/lib/mc_dot_art_maker/textures/grass_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/gravel.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_black.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_brown.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_cyan.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_gray.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_green.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_light_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_lime.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_magenta.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_orange.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_pink.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_purple.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_silver.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_white.png +0 -0
- data/lib/mc_dot_art_maker/textures/hardened_clay_stained_yellow.png +0 -0
- data/lib/mc_dot_art_maker/textures/hay_block_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/hay_block_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/hopper_inside.png +0 -0
- data/lib/mc_dot_art_maker/textures/hopper_outside.png +0 -0
- data/lib/mc_dot_art_maker/textures/hopper_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/ice.png +0 -0
- data/lib/mc_dot_art_maker/textures/ice_packed.png +0 -0
- data/lib/mc_dot_art_maker/textures/iron_bars.png +0 -0
- data/lib/mc_dot_art_maker/textures/iron_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/iron_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/iron_trapdoor.png +0 -0
- data/lib/mc_dot_art_maker/textures/itemframe_background.png +0 -0
- data/lib/mc_dot_art_maker/textures/jukebox_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/jukebox_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/ladder.png +0 -0
- data/lib/mc_dot_art_maker/textures/lapis_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/lapis_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/lava_flow.png +0 -0
- data/lib/mc_dot_art_maker/textures/lava_flow.png.mcmeta +5 -0
- data/lib/mc_dot_art_maker/textures/lava_still.png +0 -0
- data/lib/mc_dot_art_maker/textures/lava_still.png.mcmeta +45 -0
- data/lib/mc_dot_art_maker/textures/leaves_acacia.png +0 -0
- data/lib/mc_dot_art_maker/textures/leaves_big_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/leaves_birch.png +0 -0
- data/lib/mc_dot_art_maker/textures/leaves_jungle.png +0 -0
- data/lib/mc_dot_art_maker/textures/leaves_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/leaves_spruce.png +0 -0
- data/lib/mc_dot_art_maker/textures/lever.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_acacia.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_acacia_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_big_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_big_oak_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_birch.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_birch_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_jungle.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_jungle_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_oak_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_spruce.png +0 -0
- data/lib/mc_dot_art_maker/textures/log_spruce_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/melon_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/melon_stem_connected.png +0 -0
- data/lib/mc_dot_art_maker/textures/melon_stem_disconnected.png +0 -0
- data/lib/mc_dot_art_maker/textures/melon_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/mob_spawner.png +0 -0
- data/lib/mc_dot_art_maker/textures/mushroom_block_inside.png +0 -0
- data/lib/mc_dot_art_maker/textures/mushroom_block_skin_brown.png +0 -0
- data/lib/mc_dot_art_maker/textures/mushroom_block_skin_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/mushroom_block_skin_stem.png +0 -0
- data/lib/mc_dot_art_maker/textures/mushroom_brown.png +0 -0
- data/lib/mc_dot_art_maker/textures/mushroom_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/mycelium_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/mycelium_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/nether_brick.png +0 -0
- data/lib/mc_dot_art_maker/textures/nether_wart_stage_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/nether_wart_stage_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/nether_wart_stage_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/netherrack.png +0 -0
- data/lib/mc_dot_art_maker/textures/noteblock.png +0 -0
- data/lib/mc_dot_art_maker/textures/obsidian.png +0 -0
- data/lib/mc_dot_art_maker/textures/piston_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/piston_inner.png +0 -0
- data/lib/mc_dot_art_maker/textures/piston_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/piston_top_normal.png +0 -0
- data/lib/mc_dot_art_maker/textures/piston_top_sticky.png +0 -0
- data/lib/mc_dot_art_maker/textures/planks_acacia.png +0 -0
- data/lib/mc_dot_art_maker/textures/planks_big_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/planks_birch.png +0 -0
- data/lib/mc_dot_art_maker/textures/planks_jungle.png +0 -0
- data/lib/mc_dot_art_maker/textures/planks_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/planks_spruce.png +0 -0
- data/lib/mc_dot_art_maker/textures/portal.png +0 -0
- data/lib/mc_dot_art_maker/textures/portal.png.mcmeta +3 -0
- data/lib/mc_dot_art_maker/textures/potatoes_stage_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/potatoes_stage_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/potatoes_stage_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/potatoes_stage_3.png +0 -0
- data/lib/mc_dot_art_maker/textures/prismarine_bricks.png +0 -0
- data/lib/mc_dot_art_maker/textures/prismarine_dark.png +0 -0
- data/lib/mc_dot_art_maker/textures/prismarine_rough.png +0 -0
- data/lib/mc_dot_art_maker/textures/prismarine_rough.png.mcmeta +30 -0
- data/lib/mc_dot_art_maker/textures/pumpkin_face_off.png +0 -0
- data/lib/mc_dot_art_maker/textures/pumpkin_face_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/pumpkin_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/pumpkin_stem_connected.png +0 -0
- data/lib/mc_dot_art_maker/textures/pumpkin_stem_disconnected.png +0 -0
- data/lib/mc_dot_art_maker/textures/pumpkin_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_chiseled.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_chiseled_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_lines.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_lines_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_block_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/quartz_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_activator.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_activator_powered.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_detector.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_detector_powered.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_golden.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_golden_powered.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_normal.png +0 -0
- data/lib/mc_dot_art_maker/textures/rail_normal_turned.png +0 -0
- data/lib/mc_dot_art_maker/textures/red_sand.png +0 -0
- data/lib/mc_dot_art_maker/textures/red_sandstone_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/red_sandstone_carved.png +0 -0
- data/lib/mc_dot_art_maker/textures/red_sandstone_normal.png +0 -0
- data/lib/mc_dot_art_maker/textures/red_sandstone_smooth.png +0 -0
- data/lib/mc_dot_art_maker/textures/red_sandstone_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_block.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_dust_cross.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_dust_cross_overlay.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_dust_line.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_dust_line_overlay.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_lamp_off.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_lamp_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_ore.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_torch_off.png +0 -0
- data/lib/mc_dot_art_maker/textures/redstone_torch_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/reeds.png +0 -0
- data/lib/mc_dot_art_maker/textures/repeater_off.png +0 -0
- data/lib/mc_dot_art_maker/textures/repeater_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/sand.png +0 -0
- data/lib/mc_dot_art_maker/textures/sandstone_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/sandstone_carved.png +0 -0
- data/lib/mc_dot_art_maker/textures/sandstone_normal.png +0 -0
- data/lib/mc_dot_art_maker/textures/sandstone_smooth.png +0 -0
- data/lib/mc_dot_art_maker/textures/sandstone_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/sapling_acacia.png +0 -0
- data/lib/mc_dot_art_maker/textures/sapling_birch.png +0 -0
- data/lib/mc_dot_art_maker/textures/sapling_jungle.png +0 -0
- data/lib/mc_dot_art_maker/textures/sapling_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/sapling_roofed_oak.png +0 -0
- data/lib/mc_dot_art_maker/textures/sapling_spruce.png +0 -0
- data/lib/mc_dot_art_maker/textures/sea_lantern.png +0 -0
- data/lib/mc_dot_art_maker/textures/sea_lantern.png.mcmeta +5 -0
- data/lib/mc_dot_art_maker/textures/slime.png +0 -0
- data/lib/mc_dot_art_maker/textures/snow.png +0 -0
- data/lib/mc_dot_art_maker/textures/soul_sand.png +0 -0
- data/lib/mc_dot_art_maker/textures/sponge.png +0 -0
- data/lib/mc_dot_art_maker/textures/sponge_wet.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_andesite.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_andesite_smooth.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_diorite.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_diorite_smooth.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_granite.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_granite_smooth.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_slab_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/stone_slab_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/stonebrick.png +0 -0
- data/lib/mc_dot_art_maker/textures/stonebrick_carved.png +0 -0
- data/lib/mc_dot_art_maker/textures/stonebrick_cracked.png +0 -0
- data/lib/mc_dot_art_maker/textures/stonebrick_mossy.png +0 -0
- data/lib/mc_dot_art_maker/textures/tallgrass.png +0 -0
- data/lib/mc_dot_art_maker/textures/tnt_bottom.png +0 -0
- data/lib/mc_dot_art_maker/textures/tnt_side.png +0 -0
- data/lib/mc_dot_art_maker/textures/tnt_top.png +0 -0
- data/lib/mc_dot_art_maker/textures/torch_on.png +0 -0
- data/lib/mc_dot_art_maker/textures/trapdoor.png +0 -0
- data/lib/mc_dot_art_maker/textures/trip_wire.png +0 -0
- data/lib/mc_dot_art_maker/textures/trip_wire_source.png +0 -0
- data/lib/mc_dot_art_maker/textures/vine.png +0 -0
- data/lib/mc_dot_art_maker/textures/water_flow.png +0 -0
- data/lib/mc_dot_art_maker/textures/water_flow.png.mcmeta +3 -0
- data/lib/mc_dot_art_maker/textures/water_still.png +0 -0
- data/lib/mc_dot_art_maker/textures/water_still.png.mcmeta +5 -0
- data/lib/mc_dot_art_maker/textures/waterlily.png +0 -0
- data/lib/mc_dot_art_maker/textures/web.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_0.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_1.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_2.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_3.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_4.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_5.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_6.png +0 -0
- data/lib/mc_dot_art_maker/textures/wheat_stage_7.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_black.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_brown.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_cyan.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_gray.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_green.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_light_blue.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_lime.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_magenta.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_orange.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_pink.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_purple.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_red.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_silver.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_white.png +0 -0
- data/lib/mc_dot_art_maker/textures/wool_colored_yellow.png +0 -0
- data/lib/mc_dot_art_maker/utils.rb +23 -0
- data/mc_dot_art_maker.gemspec +18 -0
- data/test/palette.png +0 -0
- data/test/test_block_palette.rb +8 -0
- data/test/test_dither_method.rb +9 -0
- data/test/test_image.jpg +0 -0
- data/test/test_image_FloydSteinbergDitherMethod.png +0 -0
- data/test/test_image_NoDitherMethod.png +0 -0
- data/test/test_image_RiemersmaDitherMethod.png +0 -0
- metadata +409 -1
@@ -0,0 +1,147 @@
|
|
1
|
+
module MCDotArtMaker
|
2
|
+
DEFAULT_DOT_SIZE = 5
|
3
|
+
#= ドット絵を表すクラス。Cellの集合体
|
4
|
+
class Table
|
5
|
+
attr_reader :width, :height, :cells
|
6
|
+
include Enumerable
|
7
|
+
|
8
|
+
def initialize(filename,dither_method = Magick::RiemersmaDitherMethod)
|
9
|
+
# モザイクにしたい元画像をセット
|
10
|
+
@image = Magick::ImageList.new(filename).first
|
11
|
+
# - width - 絵の横方向の大きさ
|
12
|
+
# - height - 絵の縦方向の大きさ
|
13
|
+
# 端っこは切り捨てる
|
14
|
+
@width = @image.columns
|
15
|
+
@height = @image.rows
|
16
|
+
@cells = []
|
17
|
+
@block_list = MCDotArtMaker::BlockList.instance
|
18
|
+
|
19
|
+
puts "remapping..."
|
20
|
+
@image = @image.remap(@block_list.to_remap_image,dither_method)
|
21
|
+
puts "Done!"
|
22
|
+
|
23
|
+
puts "Registering cells..."
|
24
|
+
(@width*@height).times do |i|
|
25
|
+
x = i % @width #列番号・横方向: x
|
26
|
+
y = i / @width #行番号・縦方向: y
|
27
|
+
@cells << Cell.new(@image,x,y)
|
28
|
+
end
|
29
|
+
puts "Done!"
|
30
|
+
|
31
|
+
|
32
|
+
@schematic_helper = MCDotArtMaker::SchematicHelper.instance
|
33
|
+
@schematic_helper.read File.expand_path('../seed.schematic', __FILE__)
|
34
|
+
|
35
|
+
@calculation_count = 0 # 近似ブロック計算が終わったらインクリメント
|
36
|
+
end
|
37
|
+
def [](row,col)
|
38
|
+
@cells[row*@width + col]
|
39
|
+
end
|
40
|
+
def []=(row,col,newValue)
|
41
|
+
@cells[row*@width + col] = newValue
|
42
|
+
end
|
43
|
+
def each(size = 1)
|
44
|
+
@cells.each_with_index do |c,i|
|
45
|
+
x = (i % @width) * size #列番号・横方向: x
|
46
|
+
y = (i/@width) * size #行番号・縦方向: y
|
47
|
+
yield c,x,y
|
48
|
+
# cell,cellの左上のx座標 ,cellの左上のy座標
|
49
|
+
end
|
50
|
+
end
|
51
|
+
def each_with_index(size = 1)
|
52
|
+
@cells.each_with_index do |c,i|
|
53
|
+
x = (i % @width) * size #列番号・横方向: x
|
54
|
+
y = (i/@width) * size #行番号・縦方向: y
|
55
|
+
yield c,i,x,y
|
56
|
+
# cell,cellの左上のx座標 ,cellの左上のy座標
|
57
|
+
end
|
58
|
+
end
|
59
|
+
def block_ids
|
60
|
+
tmp = []
|
61
|
+
each do |c|
|
62
|
+
tmp << c.block.id
|
63
|
+
end
|
64
|
+
tmp
|
65
|
+
end
|
66
|
+
def block_data
|
67
|
+
tmp = []
|
68
|
+
each do |c|
|
69
|
+
tmp << c.block.data
|
70
|
+
end
|
71
|
+
tmp
|
72
|
+
end
|
73
|
+
def mosaic_image
|
74
|
+
# モザイク化した画像を返す
|
75
|
+
calculate
|
76
|
+
|
77
|
+
new_image = Magick::Image.new(@width*TEXTURE_SIZE, @height*TEXTURE_SIZE){ self.background_color = "white" }
|
78
|
+
each(TEXTURE_SIZE) do |c,x,y|
|
79
|
+
idr = Magick::Draw.new
|
80
|
+
idr.fill = c.block.to_rmagic_color
|
81
|
+
idr.rectangle(x, y, x + TEXTURE_SIZE, y + TEXTURE_SIZE)
|
82
|
+
idr.draw(new_image)
|
83
|
+
end
|
84
|
+
new_image
|
85
|
+
end
|
86
|
+
def calculate
|
87
|
+
calc_nearest_block unless calculation_done?
|
88
|
+
end
|
89
|
+
|
90
|
+
def texture_image
|
91
|
+
# 近似ブロック色でのモザイク画像を返す
|
92
|
+
calculate
|
93
|
+
|
94
|
+
new_image = Magick::Image.new(@width*TEXTURE_SIZE, @height*TEXTURE_SIZE){ self.background_color = "white" }
|
95
|
+
each(TEXTURE_SIZE) do |c,x,y|
|
96
|
+
new_image.composite!(c.block.texture, x, y, Magick::OverCompositeOp)
|
97
|
+
end
|
98
|
+
new_image
|
99
|
+
end
|
100
|
+
|
101
|
+
def write_schematic(filename)
|
102
|
+
calc_nearest_block unless calculation_done?
|
103
|
+
|
104
|
+
@schematic_helper.blocks = block_ids
|
105
|
+
@schematic_helper.data = block_data
|
106
|
+
@schematic_helper.weOffsetX = 0
|
107
|
+
@schematic_helper.weOffsetY = 0
|
108
|
+
@schematic_helper.weOffsetZ = 0
|
109
|
+
@schematic_helper.weOriginX = 1
|
110
|
+
@schematic_helper.weOriginY = 0
|
111
|
+
@schematic_helper.weOriginZ = 0
|
112
|
+
@schematic_helper.height = 1
|
113
|
+
@schematic_helper.width = @width
|
114
|
+
@schematic_helper.length = @height
|
115
|
+
@schematic_helper.write filename
|
116
|
+
end
|
117
|
+
|
118
|
+
private
|
119
|
+
def calc_nearest_block
|
120
|
+
puts "Calc nearest block...."
|
121
|
+
@nearest_color_cash ||= {}
|
122
|
+
|
123
|
+
each_with_index do |cell,index|
|
124
|
+
puts "Calculating #{index+1} of #{@cells.size}" if (index % 10000 == 0)|| (index == @cells.size)
|
125
|
+
if @nearest_color_cash.include?(cell.color)
|
126
|
+
cell.block = @nearest_color_cash[cell.color]
|
127
|
+
else
|
128
|
+
comparitor = cell.comparitor
|
129
|
+
block_distance_list = {}
|
130
|
+
@block_list.each do |block|
|
131
|
+
block_distance_list[block] = comparitor.compare(block.color)
|
132
|
+
end
|
133
|
+
nearest_block = block_distance_list.min{ |x, y| x[1] <=> y[1] }[0] #[0]: key [1]: value
|
134
|
+
@nearest_color_cash[cell.color] = nearest_block
|
135
|
+
cell.block = nearest_block
|
136
|
+
|
137
|
+
puts "Cashed new color #{@nearest_color_cash.size} of #{@block_list.size}"
|
138
|
+
end
|
139
|
+
@calculation_count += 1
|
140
|
+
end
|
141
|
+
puts "Done!"
|
142
|
+
end
|
143
|
+
def calculation_done?
|
144
|
+
@cells.size == @calculation_count
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,38 @@
|
|
1
|
+
{
|
2
|
+
"animation": {
|
3
|
+
"frames": [
|
4
|
+
16,
|
5
|
+
17,
|
6
|
+
18,
|
7
|
+
19,
|
8
|
+
20,
|
9
|
+
21,
|
10
|
+
22,
|
11
|
+
23,
|
12
|
+
24,
|
13
|
+
25,
|
14
|
+
26,
|
15
|
+
27,
|
16
|
+
28,
|
17
|
+
29,
|
18
|
+
30,
|
19
|
+
31,
|
20
|
+
0,
|
21
|
+
1,
|
22
|
+
2,
|
23
|
+
3,
|
24
|
+
4,
|
25
|
+
5,
|
26
|
+
6,
|
27
|
+
7,
|
28
|
+
8,
|
29
|
+
9,
|
30
|
+
10,
|
31
|
+
11,
|
32
|
+
12,
|
33
|
+
13,
|
34
|
+
14,
|
35
|
+
15
|
36
|
+
]
|
37
|
+
}
|
38
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|