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,471 @@
|
|
1
|
+
module MCDotArtMaker
|
2
|
+
class BlockList
|
3
|
+
include Enumerable
|
4
|
+
include Singleton
|
5
|
+
def initialize
|
6
|
+
@blocks = []
|
7
|
+
|
8
|
+
# できるだけ多くのブロックを使ったバージョン
|
9
|
+
|
10
|
+
# block :stone, '1', 'stone.png'
|
11
|
+
# block :granite, '1:1', 'stone_granite.png'
|
12
|
+
# block :polished_granite, '1:2', 'stone_granite_smooth.png'
|
13
|
+
# block :diorite, '1:3', 'stone_diorite.png'
|
14
|
+
# block :polished_diorite, '1:4', 'stone_diorite_smooth.png'
|
15
|
+
# block :andesite, '1:5', 'stone_andesite.png'
|
16
|
+
# block :polished_andesite, '1:6', 'stone_andesite_smooth.png'
|
17
|
+
# # block :grass, '2', ''
|
18
|
+
# # テクスチャがグレースケールでたぶんバイオームごとに色を変えてる
|
19
|
+
# block :dirt, '3', 'dirt.png'
|
20
|
+
# block :coarse_dirt, '3:1', 'coarse_dirt.png'
|
21
|
+
# block :podzol, '3:2', 'dirt_podzol_top.png'
|
22
|
+
# block :cobblestone, '4', 'cobblestone.png'
|
23
|
+
# block :oak_wood_plank, '5', 'planks_oak.png'
|
24
|
+
# block :spruce_wood_plank, '5:1', 'planks_spruce.png'
|
25
|
+
# block :birch_wood_plank, '5:2', 'planks_birch.png'
|
26
|
+
# block :jungle_wood_plank, '5:3', 'planks_jungle.png'
|
27
|
+
# block :acacia_wood_plank, '5:4', 'planks_acacia.png'
|
28
|
+
# block :dark_oak_wood_plank, '5:5', 'planks_big_oak.png'
|
29
|
+
#
|
30
|
+
# block :bedrock, '7', 'bedrock.png'
|
31
|
+
#
|
32
|
+
# block :sand, '12', 'sand.png'
|
33
|
+
# block :red_sand, '12:1', 'red_sand.png'
|
34
|
+
# block :gravel, '13', 'gravel.png'
|
35
|
+
# block :gold_ore, '14', 'gold_ore.png'
|
36
|
+
# block :iron_ore, '15', 'iron_ore.png'
|
37
|
+
# block :coal_ore, '16', 'coal_ore.png'
|
38
|
+
# block :oak_wood, '17', 'log_oak_top.png' # TODO: テクスチャ注意
|
39
|
+
# # block :spruce_wood, '17:1', 'spruce_wood.png'
|
40
|
+
# # block :birch_wood, '17:2', 'birch_wood.png'
|
41
|
+
# # block :jungle_wood, '17:3', 'jungle_wood.png'
|
42
|
+
#
|
43
|
+
# # block :oak_leaves, '18', 'oak_leaves.png'
|
44
|
+
# # block :spruce_leaves, '18:1', 'spruce_leaves.png'
|
45
|
+
# # block :birch_leaves, '18:2', 'birch_leaves.png'
|
46
|
+
# # block :jungle_leaves, '18:3', 'jungle_leaves.png'
|
47
|
+
# # テクスチャがグレースケールでたぶんバイオームごとに色を変えてる
|
48
|
+
# block :sponge, '19', 'sponge.png'
|
49
|
+
# block :wet_sponge, '19:1', 'sponge_wet.png'
|
50
|
+
# block :glass, '20', 'glass.png'
|
51
|
+
# block :lapis_lazuli_ore, '21', 'lapis_ore.png'
|
52
|
+
# block :lapis_lazuli_block, '22', 'lapis_block.png'
|
53
|
+
# block :dispenser, '23', 'dispenser_front_vertical.png'
|
54
|
+
# block :sandstone, '24', 'sandstone_top.png'
|
55
|
+
# # block :chiseled_sandstone, '24:1', 'chiseled_sandstone.png'
|
56
|
+
# # block :smooth_sandstone, '24:2', 'smooth_sandstone.png'
|
57
|
+
# block :note_block, '25', 'noteblock.png'
|
58
|
+
#
|
59
|
+
# block :white_wool,'35','wool_colored_white.png'
|
60
|
+
# block :orange_wool,'35:1','wool_colored_orange.png'
|
61
|
+
# block :magenta_wool,'35:2','wool_colored_magenta.png'
|
62
|
+
# block :light_blue_wool,'35:3','wool_colored_light_blue.png'
|
63
|
+
# block :yellow_wool,'35:4','wool_colored_yellow.png'
|
64
|
+
# block :lime_wool,'35:5','wool_colored_lime.png'
|
65
|
+
# block :pink_wool,'35:6','wool_colored_pink.png'
|
66
|
+
# block :gray_wool,'35:7','wool_colored_gray.png'
|
67
|
+
# block :silver_wool,'35:8','wool_colored_silver.png'
|
68
|
+
# block :cyan_wool,'35:9','wool_colored_cyan.png'
|
69
|
+
# block :purple_wool,'35:10','wool_colored_purple.png'
|
70
|
+
# block :blue_wool,'35:11','wool_colored_blue.png'
|
71
|
+
# block :brown_wool,'35:12','wool_colored_brown.png'
|
72
|
+
# block :green_wool,'35:13','wool_colored_green.png'
|
73
|
+
# block :red_wool,'35:14','wool_colored_red.png'
|
74
|
+
# block :black_wool,'35:15','wool_colored_black.png'
|
75
|
+
#
|
76
|
+
# block :gold_block, '41', 'gold_block.png'
|
77
|
+
# block :iron_block, '42', 'iron_block.png'
|
78
|
+
# block :double_stone_slab, '43', 'stone_slab_top.png'
|
79
|
+
# # block :double_sandstone_slab, '43:1', 'double_sandstone_slab.png'
|
80
|
+
# # block :double_wooden_slab, '43:2', 'double_wooden_slab.png'
|
81
|
+
# # block :double_cobblestone_slab, '43:3', 'double_cobblestone_slab.png'
|
82
|
+
# # block :double_brick_slab, '43:4', 'double_brick_slab.png'
|
83
|
+
# # block :double_stone_brick_slab, '43:5', 'double_stone_brick_slab.png'
|
84
|
+
# # block :double_nether_brick_slab, '43:6', 'double_nether_brick_slab.png'
|
85
|
+
# # block :double_quartz_slab, '43:7', 'double_quartz_slab.png'
|
86
|
+
#
|
87
|
+
# block :bricks, '45', 'brick.png'
|
88
|
+
# block :tnt, '46', 'tnt_top.png'
|
89
|
+
# # block :bookshelf, '47', 'bookshelf.png'
|
90
|
+
# block :moss_stone, '48', 'cobblestone_mossy.png'
|
91
|
+
# block :obsidian, '49', 'obsidian.png'
|
92
|
+
#
|
93
|
+
# block :diamond_ore, '56', 'diamond_ore.png'
|
94
|
+
# block :diamond_block, '57', 'diamond_block.png'
|
95
|
+
# block :crafting_table, '58', 'crafting_table_top.png'
|
96
|
+
#
|
97
|
+
# block :farmland, '60', 'farmland_dry.png'
|
98
|
+
#
|
99
|
+
# block :redstone_ore, '73', 'redstone_ore.png'
|
100
|
+
#
|
101
|
+
# block :snow, '78', 'snow.png'
|
102
|
+
# block :ice, '79', 'ice.png'
|
103
|
+
# # block :snow_block, '80', 'snow_block.png'
|
104
|
+
#
|
105
|
+
# block :clay, '82', 'clay.png'
|
106
|
+
#
|
107
|
+
# block :jukebox, '84', 'jukebox_top.png'
|
108
|
+
#
|
109
|
+
# block :pumpkin, '86', 'pumpkin_top.png'
|
110
|
+
# block :netherrack, '87', 'netherrack.png'
|
111
|
+
# block :soul_sand, '88', 'soul_sand.png'
|
112
|
+
# block :glowstone, '89', 'glowstone.png'
|
113
|
+
#
|
114
|
+
# # block :jack_o_lantern, '91', 'jack_o_lantern.png'
|
115
|
+
# block :cake_block, '92', 'cake_top.png'
|
116
|
+
#
|
117
|
+
# block :white_stained_glass, '95', 'glass_white.png'
|
118
|
+
# block :orange_stained_glass, '95:1', 'glass_orange.png'
|
119
|
+
# block :magenta_stained_glass, '95:2', 'glass_magenta.png'
|
120
|
+
# block :light_blue_stained_glass, '95:3', 'glass_light_blue.png'
|
121
|
+
# block :yellow_stained_glass, '95:4', 'glass_yellow.png'
|
122
|
+
# block :lime_stained_glass, '95:5', 'glass_lime.png'
|
123
|
+
# block :pink_stained_glass, '95:6', 'glass_pink.png'
|
124
|
+
# block :gray_stained_glass, '95:7', 'glass_gray.png'
|
125
|
+
# block :silver_stained_glass, '95:8', 'glass_silver.png'
|
126
|
+
# block :cyan_stained_glass, '95:9', 'glass_cyan.png'
|
127
|
+
# block :purple_stained_glass, '95:10', 'glass_purple.png'
|
128
|
+
# block :blue_stained_glass, '95:11', 'glass_blue.png'
|
129
|
+
# block :brown_stained_glass, '95:12', 'glass_brown.png'
|
130
|
+
# block :green_stained_glass, '95:13', 'glass_green.png'
|
131
|
+
# block :red_stained_glass, '95:14', 'glass_red.png'
|
132
|
+
# block :black_stained_glass, '95:15', 'glass_black.png'
|
133
|
+
#
|
134
|
+
# # block :stone_monster_egg, '97', 'stone_monster_egg.png'
|
135
|
+
# # block :cobblestone_monster_egg, '97:1', 'cobblestone_monster_egg.png'
|
136
|
+
# # block :stone_brick_monster_egg, '97:2', 'stone_brick_monster_egg.png'
|
137
|
+
# # block :mossy_stone_brick_monster_egg, '97:3', 'mossy_stone_brick_monster_egg.png'
|
138
|
+
# # block :cracked_stone_brick_monster_egg, '97:4', 'cracked_stone_brick_monster_egg.png'
|
139
|
+
# # block :chiseled_stone_brick_monster_egg, '97:5', 'chiseled_stone_brick_monster_egg.png'
|
140
|
+
# block :stone_bricks, '98', 'stonebrick.png'
|
141
|
+
# block :mossy_stone_bricks, '98:1', 'stonebrick_mossy.png'
|
142
|
+
# block :cracked_stone_bricks, '98:2', 'stonebrick_cracked.png'
|
143
|
+
# block :chiseled_stone_bricks, '98:3', 'stonebrick_carved.png'
|
144
|
+
# block :brown_mushroom_block, '99', 'mushroom_block_skin_brown.png'
|
145
|
+
# block :red_mushroom_block, '100', 'mushroom_block_skin_red.png'
|
146
|
+
#
|
147
|
+
# block :melon_block, '103', 'melon_top.png'
|
148
|
+
#
|
149
|
+
# block :mycelium, '110', 'mycelium_top.png'
|
150
|
+
#
|
151
|
+
# block :nether_brick, '112', 'nether_brick.png'
|
152
|
+
# block :end_portal_frame, '120', 'endframe_top.png'
|
153
|
+
# block :end_stone, '121', 'end_stone.png'
|
154
|
+
#
|
155
|
+
# # block :double_oak_wood_slab, '125', 'double_oak_wood_slab.png'
|
156
|
+
# # block :double_spruce_wood_slab, '125:1', 'double_spruce_wood_slab.png'
|
157
|
+
# # block :double_birch_wood_slab, '125:2', 'double_birch_wood_slab.png'
|
158
|
+
# # block :double_jungle_wood_slab, '125:3', 'double_jungle_wood_slab.png'
|
159
|
+
# # block :double_acacia_wood_slab, '125:4', 'double_acacia_wood_slab.png'
|
160
|
+
# # block :double_dark_oak_wood_slab, '125:5', 'double_dark_oak_wood_slab.png'
|
161
|
+
#
|
162
|
+
# block :emerald_ore, '129', 'emerald_ore.png'
|
163
|
+
#
|
164
|
+
# block :emerald_block, '133', 'emerald_block.png'
|
165
|
+
#
|
166
|
+
# block :command_block, '137', 'command_block.png'
|
167
|
+
#
|
168
|
+
# block :redstone_block, '152', 'redstone_block.png'
|
169
|
+
# block :nether_quartz_ore, '153', 'quartz_ore.png'
|
170
|
+
# block :quartz_block, '155', 'quartz_block_top.png'
|
171
|
+
# block :chiseled_quartz_block, '155:1', 'quartz_block_chiseled_top.png'
|
172
|
+
# block :pillar_quartz_block, '155:2', 'quartz_block_lines_top.png'
|
173
|
+
#
|
174
|
+
# block :dropper, '158', 'dropper_front_vertical.png'
|
175
|
+
# block :white_stained_clay, '159', 'hardened_clay_stained_white.png'
|
176
|
+
# block :orange_stained_clay, '159:1', 'hardened_clay_stained_orange.png'
|
177
|
+
# block :magenta_stained_clay, '159:2', 'hardened_clay_stained_magenta.png'
|
178
|
+
# block :light_blue_stained_clay, '159:3', 'hardened_clay_stained_light_blue.png'
|
179
|
+
# block :yellow_stained_clay, '159:4', 'hardened_clay_stained_yellow.png'
|
180
|
+
# block :lime_stained_clay, '159:5', 'hardened_clay_stained_lime.png'
|
181
|
+
# block :pink_stained_clay, '159:6', 'hardened_clay_stained_pink.png'
|
182
|
+
# block :gray_stained_clay, '159:7', 'hardened_clay_stained_gray.png'
|
183
|
+
# block :silver_stained_clay, '159:8', 'hardened_clay_stained_silver.png'
|
184
|
+
# block :cyan_stained_clay, '159:9', 'hardened_clay_stained_cyan.png'
|
185
|
+
# block :purple_stained_clay, '159:10', 'hardened_clay_stained_purple.png'
|
186
|
+
# block :blue_stained_clay, '159:11', 'hardened_clay_stained_blue.png'
|
187
|
+
# block :brown_stained_clay, '159:12', 'hardened_clay_stained_brown.png'
|
188
|
+
# block :green_stained_clay, '159:13', 'hardened_clay_stained_green.png'
|
189
|
+
# block :red_stained_clay, '159:14', 'hardened_clay_stained_red.png'
|
190
|
+
# block :black_stained_clay, '159:15', 'hardened_clay_stained_black.png'
|
191
|
+
# block :white_stained_glass_pane, '160', 'glass_white.png'
|
192
|
+
# block :orange_stained_glass_pane, '160:1', 'glass_orange.png'
|
193
|
+
# block :magenta_stained_glass_pane, '160:2', 'glass_magenta.png'
|
194
|
+
# block :light_blue_stained_glass_pane, '160:3', 'glass_light_blue.png'
|
195
|
+
# block :yellow_stained_glass_pane, '160:4', 'glass_yellow.png'
|
196
|
+
# block :lime_stained_glass_pane, '160:5', 'glass_lime.png'
|
197
|
+
# block :pink_stained_glass_pane, '160:6', 'glass_pink.png'
|
198
|
+
# block :gray_stained_glass_pane, '160:7', 'glass_gray.png'
|
199
|
+
# block :silver_stained_glass_pane, '160:8', 'glass_silver.png'
|
200
|
+
# block :cyan_stained_glass_pane, '160:9', 'glass_cyan.png'
|
201
|
+
# block :purple_stained_glass_pane, '160:10', 'glass_purple.png'
|
202
|
+
# block :blue_stained_glass_pane, '160:11', 'glass_blue.png'
|
203
|
+
# block :brown_stained_glass_pane, '160:12', 'glass_brown.png'
|
204
|
+
# block :green_stained_glass_pane, '160:13', 'glass_green.png'
|
205
|
+
# block :red_stained_glass_pane, '160:14', 'glass_red.png'
|
206
|
+
# block :black_stained_glass_pane, '160:15', 'glass_black.png'
|
207
|
+
# # block :acacia_leaves, '161', 'acacia_leaves.png'
|
208
|
+
# # block :dark_oak_leaves, '161:1', 'dark_oak_leaves.png'
|
209
|
+
# # block :acacia_wood, '162', 'acacia_wood.png'
|
210
|
+
# block :dark_oak_wood, '162:1', 'log_big_oak_top.png'
|
211
|
+
#
|
212
|
+
# block :slime_block, '165', 'slime.png'
|
213
|
+
#
|
214
|
+
# # block :prismarine, '168', 'prismarine.png'
|
215
|
+
# # TODO: 複数フレームでアニメーションあり
|
216
|
+
# block :prismarine_bricks, '168:1', 'prismarine_bricks.png'
|
217
|
+
# block :dark_prismarine, '168:2', 'prismarine_dark.png'
|
218
|
+
# # block :sea_lantern, '169', 'sea_lantern.png'
|
219
|
+
# # TODO: 複数フレームでアニメーションあり
|
220
|
+
# block :hay_bale, '170', 'hay_block_top.png'
|
221
|
+
#
|
222
|
+
# block :hardened_clay, '172', 'hardened_clay.png'
|
223
|
+
# block :block_of_coal, '173', 'coal_block.png'
|
224
|
+
# block :packed_ice, '174', 'ice_packed.png'
|
225
|
+
#
|
226
|
+
# block :red_sandstone, '179', 'red_sandstone_top.png'
|
227
|
+
# block :chiseled_red_sandstone, '179:1', 'red_sandstone_carved.png'
|
228
|
+
# block :smooth_red_sandstone, '179:2', 'red_sandstone_smooth.png'
|
229
|
+
# # block :double_red_sandstone_slab, '181', 'double_red_sandstone_slab.png'
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
# http://imgur.com/a/MTv0r
|
234
|
+
# このカラーパレットを採用したバージョン
|
235
|
+
# block :stone, '1', 'stone.png'
|
236
|
+
# block :granite, '1:1', 'stone_granite.png'
|
237
|
+
# block :polished_granite, '1:2', 'stone_granite_smooth.png'
|
238
|
+
# block :diorite, '1:3', 'stone_diorite.png'
|
239
|
+
# block :polished_diorite, '1:4', 'stone_diorite_smooth.png'
|
240
|
+
# block :andesite, '1:5', 'stone_andesite.png'
|
241
|
+
# block :polished_andesite, '1:6', 'stone_andesite_smooth.png'
|
242
|
+
#
|
243
|
+
# block :dirt, '3', 'dirt.png'
|
244
|
+
# block :coarse_dirt, '3:1', 'coarse_dirt.png'
|
245
|
+
# block :podzol, '3:2', 'dirt_podzol_top.png'
|
246
|
+
# block :cobblestone, '4', 'cobblestone.png'
|
247
|
+
block :oak_wood_plank, '5', 'planks_oak.png'
|
248
|
+
block :spruce_wood_plank, '5:1', 'planks_spruce.png'
|
249
|
+
block :birch_wood_plank, '5:2', 'planks_birch.png'
|
250
|
+
block :jungle_wood_plank, '5:3', 'planks_jungle.png'
|
251
|
+
# block :acacia_wood_plank, '5:4', 'planks_acacia.png'
|
252
|
+
# block :dark_oak_wood_plank, '5:5', 'planks_big_oak.png'
|
253
|
+
#
|
254
|
+
# block :bedrock, '7', 'bedrock.png'
|
255
|
+
#
|
256
|
+
# block :sand, '12', 'sand.png'
|
257
|
+
# block :red_sand, '12:1', 'red_sand.png'
|
258
|
+
# block :gravel, '13', 'gravel.png'
|
259
|
+
# block :gold_ore, '14', 'gold_ore.png'
|
260
|
+
# block :iron_ore, '15', 'iron_ore.png'
|
261
|
+
# block :coal_ore, '16', 'coal_ore.png'
|
262
|
+
# block :oak_wood, '17', 'log_oak_top.png' # TODO: テクスチャ注意
|
263
|
+
block :sponge, '19', 'sponge.png'
|
264
|
+
# block :wet_sponge, '19:1', 'sponge_wet.png'
|
265
|
+
# block :glass, '20', 'glass.png'
|
266
|
+
# block :lapis_lazuli_ore, '21', 'lapis_ore.png'
|
267
|
+
block :lapis_lazuli_block, '22', 'lapis_block.png'
|
268
|
+
# block :dispenser, '23', 'dispenser_front_vertical.png'
|
269
|
+
block :sandstone, '24', 'sandstone_top.png'
|
270
|
+
# block :note_block, '25', 'noteblock.png'
|
271
|
+
#
|
272
|
+
#
|
273
|
+
block :white_wool,'35','wool_colored_white.png'
|
274
|
+
#
|
275
|
+
block :orange_wool,'35:1','wool_colored_orange.png'
|
276
|
+
#
|
277
|
+
block :magenta_wool,'35:2','wool_colored_magenta.png'
|
278
|
+
#
|
279
|
+
block :light_blue_wool,'35:3','wool_colored_light_blue.png'
|
280
|
+
#
|
281
|
+
block :yellow_wool,'35:4','wool_colored_yellow.png'
|
282
|
+
#
|
283
|
+
block :lime_wool,'35:5','wool_colored_lime.png'
|
284
|
+
block :pink_wool,'35:6','wool_colored_pink.png'
|
285
|
+
#
|
286
|
+
block :gray_wool,'35:7','wool_colored_gray.png'
|
287
|
+
#
|
288
|
+
block :silver_wool,'35:8','wool_colored_silver.png'
|
289
|
+
block :cyan_wool,'35:9','wool_colored_cyan.png'
|
290
|
+
#
|
291
|
+
block :purple_wool,'35:10','wool_colored_purple.png'
|
292
|
+
#
|
293
|
+
block :blue_wool,'35:11','wool_colored_blue.png'
|
294
|
+
block :brown_wool,'35:12','wool_colored_brown.png'
|
295
|
+
block :green_wool,'35:13','wool_colored_green.png'
|
296
|
+
#
|
297
|
+
block :red_wool,'35:14','wool_colored_red.png'
|
298
|
+
#
|
299
|
+
block :black_wool,'35:15','wool_colored_black.png'
|
300
|
+
#
|
301
|
+
block :gold_block, '41', 'gold_block.png'
|
302
|
+
block :iron_block, '42', 'iron_block.png'
|
303
|
+
# block :double_stone_slab, '43', 'stone_slab_top.png'
|
304
|
+
#
|
305
|
+
block :bricks, '45', 'brick.png'
|
306
|
+
# block :tnt, '46', 'tnt_top.png'
|
307
|
+
#
|
308
|
+
# block :moss_stone, '48', 'cobblestone_mossy.png'
|
309
|
+
block :obsidian, '49', 'obsidian.png'
|
310
|
+
#
|
311
|
+
# block :diamond_ore, '56', 'diamond_ore.png'
|
312
|
+
block :diamond_block, '57', 'diamond_block.png'
|
313
|
+
# block :crafting_table, '58', 'crafting_table_top.png'
|
314
|
+
#
|
315
|
+
# block :farmland, '60', 'farmland_dry.png'
|
316
|
+
#
|
317
|
+
# block :redstone_ore, '73', 'redstone_ore.png'
|
318
|
+
#
|
319
|
+
# block :snow, '78', 'snow.png'
|
320
|
+
block :ice, '79', 'ice.png'
|
321
|
+
#
|
322
|
+
# block :clay, '82', 'clay.png'
|
323
|
+
#
|
324
|
+
# block :jukebox, '84', 'jukebox_top.png'
|
325
|
+
#
|
326
|
+
# block :pumpkin, '86', 'pumpkin_top.png'
|
327
|
+
# block :netherrack, '87', 'netherrack.png'
|
328
|
+
# block :soul_sand, '88', 'soul_sand.png'
|
329
|
+
block :glowstone, '89', 'glowstone.png'
|
330
|
+
#
|
331
|
+
# block :cake_block, '92', 'cake_top.png'
|
332
|
+
#
|
333
|
+
# block :white_stained_glass, '95', 'glass_white.png'
|
334
|
+
# block :orange_stained_glass, '95:1', 'glass_orange.png'
|
335
|
+
# block :magenta_stained_glass, '95:2', 'glass_magenta.png'
|
336
|
+
# block :light_blue_stained_glass, '95:3', 'glass_light_blue.png'
|
337
|
+
# block :yellow_stained_glass, '95:4', 'glass_yellow.png'
|
338
|
+
# block :lime_stained_glass, '95:5', 'glass_lime.png'
|
339
|
+
# block :pink_stained_glass, '95:6', 'glass_pink.png'
|
340
|
+
# block :gray_stained_glass, '95:7', 'glass_gray.png'
|
341
|
+
# block :silver_stained_glass, '95:8', 'glass_silver.png'
|
342
|
+
# block :cyan_stained_glass, '95:9', 'glass_cyan.png'
|
343
|
+
# block :purple_stained_glass, '95:10', 'glass_purple.png'
|
344
|
+
# block :blue_stained_glass, '95:11', 'glass_blue.png'
|
345
|
+
# block :brown_stained_glass, '95:12', 'glass_brown.png'
|
346
|
+
# block :green_stained_glass, '95:13', 'glass_green.png'
|
347
|
+
# block :red_stained_glass, '95:14', 'glass_red.png'
|
348
|
+
# block :black_stained_glass, '95:15', 'glass_black.png'
|
349
|
+
#
|
350
|
+
# block :stone_bricks, '98', 'stonebrick.png'
|
351
|
+
block :mossy_stone_bricks, '98:1', 'stonebrick_mossy.png'
|
352
|
+
# block :cracked_stone_bricks, '98:2', 'stonebrick_cracked.png'
|
353
|
+
block :chiseled_stone_bricks, '98:3', 'stonebrick_carved.png'
|
354
|
+
# block :brown_mushroom_block, '99', 'mushroom_block_skin_brown.png'
|
355
|
+
# block :red_mushroom_block, '100', 'mushroom_block_skin_red.png'
|
356
|
+
#
|
357
|
+
block :melon_block, '103', 'melon_top.png'
|
358
|
+
#
|
359
|
+
# block :mycelium, '110', 'mycelium_top.png'
|
360
|
+
#
|
361
|
+
block :nether_brick, '112', 'nether_brick.png'
|
362
|
+
# block :end_portal_frame, '120', 'endframe_top.png'
|
363
|
+
# block :end_stone, '121', 'end_stone.png'
|
364
|
+
#
|
365
|
+
# block :emerald_ore, '129', 'emerald_ore.png'
|
366
|
+
#
|
367
|
+
block :emerald_block, '133', 'emerald_block.png'
|
368
|
+
#
|
369
|
+
# block :command_block, '137', 'command_block.png'
|
370
|
+
#
|
371
|
+
block :redstone_block, '152', 'redstone_block.png'
|
372
|
+
# block :nether_quartz_ore, '153', 'quartz_ore.png'
|
373
|
+
# block :quartz_block, '155', 'quartz_block_top.png'
|
374
|
+
block :chiseled_quartz_block, '155:1', 'quartz_block_chiseled_top.png'
|
375
|
+
# block :pillar_quartz_block, '155:2', 'quartz_block_lines_top.png'
|
376
|
+
#
|
377
|
+
# block :dropper, '158', 'dropper_front_vertical.png'
|
378
|
+
|
379
|
+
#
|
380
|
+
block :white_stained_clay, '159', 'hardened_clay_stained_white.png'
|
381
|
+
block :orange_stained_clay, '159:1', 'hardened_clay_stained_orange.png'
|
382
|
+
#
|
383
|
+
block :magenta_stained_clay, '159:2', 'hardened_clay_stained_magenta.png'
|
384
|
+
block :light_blue_stained_clay, '159:3', 'hardened_clay_stained_light_blue.png'
|
385
|
+
block :yellow_stained_clay, '159:4', 'hardened_clay_stained_yellow.png'
|
386
|
+
block :lime_stained_clay, '159:5', 'hardened_clay_stained_lime.png'
|
387
|
+
#
|
388
|
+
block :pink_stained_clay, '159:6', 'hardened_clay_stained_pink.png'
|
389
|
+
#
|
390
|
+
block :gray_stained_clay, '159:7', 'hardened_clay_stained_gray.png'
|
391
|
+
#
|
392
|
+
block :silver_stained_clay, '159:8', 'hardened_clay_stained_silver.png'
|
393
|
+
block :cyan_stained_clay, '159:9', 'hardened_clay_stained_cyan.png'
|
394
|
+
block :purple_stained_clay, '159:10', 'hardened_clay_stained_purple.png'
|
395
|
+
block :blue_stained_clay, '159:11', 'hardened_clay_stained_blue.png'
|
396
|
+
block :brown_stained_clay, '159:12', 'hardened_clay_stained_brown.png'
|
397
|
+
block :green_stained_clay, '159:13', 'hardened_clay_stained_green.png'
|
398
|
+
block :red_stained_clay, '159:14', 'hardened_clay_stained_red.png'
|
399
|
+
block :black_stained_clay, '159:15', 'hardened_clay_stained_black.png'
|
400
|
+
# block :white_stained_glass_pane, '160', 'glass_white.png'
|
401
|
+
# block :orange_stained_glass_pane, '160:1', 'glass_orange.png'
|
402
|
+
# block :magenta_stained_glass_pane, '160:2', 'glass_magenta.png'
|
403
|
+
# block :light_blue_stained_glass_pane, '160:3', 'glass_light_blue.png'
|
404
|
+
# block :yellow_stained_glass_pane, '160:4', 'glass_yellow.png'
|
405
|
+
# block :lime_stained_glass_pane, '160:5', 'glass_lime.png'
|
406
|
+
# block :pink_stained_glass_pane, '160:6', 'glass_pink.png'
|
407
|
+
# block :gray_stained_glass_pane, '160:7', 'glass_gray.png'
|
408
|
+
# block :silver_stained_glass_pane, '160:8', 'glass_silver.png'
|
409
|
+
# block :cyan_stained_glass_pane, '160:9', 'glass_cyan.png'
|
410
|
+
# block :purple_stained_glass_pane, '160:10', 'glass_purple.png'
|
411
|
+
# block :blue_stained_glass_pane, '160:11', 'glass_blue.png'
|
412
|
+
# block :brown_stained_glass_pane, '160:12', 'glass_brown.png'
|
413
|
+
# block :green_stained_glass_pane, '160:13', 'glass_green.png'
|
414
|
+
# block :red_stained_glass_pane, '160:14', 'glass_red.png'
|
415
|
+
# block :black_stained_glass_pane, '160:15', 'glass_black.png'
|
416
|
+
# block :dark_oak_wood, '162:1', 'log_big_oak_top.png'
|
417
|
+
#
|
418
|
+
# block :slime_block, '165', 'slime.png'
|
419
|
+
#
|
420
|
+
# block :prismarine_bricks, '168:1', 'prismarine_bricks.png'
|
421
|
+
# block :dark_prismarine, '168:2', 'prismarine_dark.png'
|
422
|
+
block :hay_bale, '170', 'hay_block_top.png'
|
423
|
+
#
|
424
|
+
block :hardened_clay, '172', 'hardened_clay.png'
|
425
|
+
block :block_of_coal, '173', 'coal_block.png'
|
426
|
+
# block :packed_ice, '174', 'ice_packed.png'
|
427
|
+
#
|
428
|
+
# block :red_sandstone, '179', 'red_sandstone_top.png'
|
429
|
+
# block :chiseled_red_sandstone, '179:1', 'red_sandstone_carved.png'
|
430
|
+
# block :smooth_red_sandstone, '179:2', 'red_sandstone_smooth.png'
|
431
|
+
|
432
|
+
end
|
433
|
+
def add(b)
|
434
|
+
@blocks << b
|
435
|
+
end
|
436
|
+
alias_method :<<,:add
|
437
|
+
|
438
|
+
def size
|
439
|
+
@blocks.size
|
440
|
+
end
|
441
|
+
alias_method :length,:size
|
442
|
+
|
443
|
+
def each
|
444
|
+
@blocks.each do |b|
|
445
|
+
yield b
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
def to_remap_image
|
450
|
+
# Make color palette
|
451
|
+
new_image = Magick::Image.new(@blocks.size,1){ self.background_color = "white" }
|
452
|
+
@blocks.each_with_index do |block,index|
|
453
|
+
new_image.pixel_color(index,0,block.to_rmagic_color)
|
454
|
+
end
|
455
|
+
new_image
|
456
|
+
end
|
457
|
+
|
458
|
+
private
|
459
|
+
def block(name, id_data_label, filename)
|
460
|
+
# ブロックをリストに入れるためのヘルパーメソッド
|
461
|
+
image = Magick::ImageList.new(File.expand_path("../textures/#{filename}", __FILE__))
|
462
|
+
r,g,b = MCDotArtMaker.calc_average_color(image.get_pixels(0,0,image.columns,image.rows))
|
463
|
+
id = id_data_label.split(':')[0].to_i
|
464
|
+
data = id_data_label.split(':')[1].to_i
|
465
|
+
|
466
|
+
block = Block.new(name,id, data,r,g,b, image[0])
|
467
|
+
@blocks << block
|
468
|
+
puts "Block #{name} registered. R:#{r} G:#{g} B:#{b}"
|
469
|
+
end
|
470
|
+
end
|
471
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module MCDotArtMaker
|
2
|
+
#= マイクラドット絵のpixelにあたるもの。ブロック1つで表現する
|
3
|
+
class Cell
|
4
|
+
attr_reader :color
|
5
|
+
attr_accessor :block
|
6
|
+
def initialize(image,x,y)
|
7
|
+
pixel = image.pixel_color(x,y)
|
8
|
+
r = pixel.red / 256
|
9
|
+
g = pixel.green / 256
|
10
|
+
b = pixel.blue / 256
|
11
|
+
@color = Color::RGB.new(r, g, b)
|
12
|
+
end
|
13
|
+
# def set_color(r,g,b)
|
14
|
+
# @color = Color::RGB.new(r, g, b)
|
15
|
+
# # p "set color #{r} #{g} #{b}"
|
16
|
+
# end
|
17
|
+
def to_lab
|
18
|
+
@color.to_lab
|
19
|
+
end
|
20
|
+
def to_rmagic_color
|
21
|
+
# p "calc color :#{@color.r} #{@color.g} #{@color.b}"
|
22
|
+
Magick::Pixel.new(@color.r*256, @color.g*256, @color.b*256)
|
23
|
+
end
|
24
|
+
def comparitor
|
25
|
+
Color::Comparison.new(@color)
|
26
|
+
end
|
27
|
+
# def image=(other)
|
28
|
+
# @image = other.resize(16,16)
|
29
|
+
# end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
# NBTUtilsを開いてデータ書き換えのためのメソッドを定義する
|
2
|
+
module NBTUtils
|
3
|
+
module Tag
|
4
|
+
class ByteArray
|
5
|
+
def payload=(new_value)
|
6
|
+
@payload = ::BinData::String.new(new_value)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
module NBTUtils
|
12
|
+
module Tag
|
13
|
+
class Int
|
14
|
+
def payload=(new_value)
|
15
|
+
@payload = ::BinData::Int32be.new(new_value)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
module NBTUtils
|
21
|
+
module Tag
|
22
|
+
class Short
|
23
|
+
def payload=(new_value)
|
24
|
+
@payload = ::BinData::Int16be.new(new_value)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
module MCDotArtMaker
|
31
|
+
class IllegalBlockSizeError < StandardError ; end
|
32
|
+
|
33
|
+
#= .schematicを処理するためのクラス
|
34
|
+
# nbt_utilsをラップして書き込み機能を追加する
|
35
|
+
class SchematicHelper
|
36
|
+
include Singleton
|
37
|
+
attr_reader :blocks,:data
|
38
|
+
attr_reader :weOffsetX,:weOffsetY,:weOffsetZ
|
39
|
+
attr_reader :weOriginX,:weOriginY,:weOriginZ
|
40
|
+
attr_reader :height,:width,:length
|
41
|
+
attr_reader :modified
|
42
|
+
# @blocks: ブロックのIDデータ
|
43
|
+
# ブロックの並び順は -Xから +X方向
|
44
|
+
# 次に+Z方向に進んで -Xから +X方向
|
45
|
+
# XZ平面のブロックを記述し終えたら +Y方向に1進む
|
46
|
+
def initialize
|
47
|
+
@file = NBTUtils::File.new
|
48
|
+
end
|
49
|
+
def read(filename)
|
50
|
+
@filename = filename
|
51
|
+
init
|
52
|
+
@modified = false
|
53
|
+
end
|
54
|
+
def refresh
|
55
|
+
init
|
56
|
+
@modified = false
|
57
|
+
end
|
58
|
+
def to_s
|
59
|
+
@tag.to_s
|
60
|
+
end
|
61
|
+
|
62
|
+
def blocks=(other)
|
63
|
+
# - other - BlockID の配列
|
64
|
+
@blocks = other
|
65
|
+
@modified = true
|
66
|
+
end
|
67
|
+
def data=(other)
|
68
|
+
# - other - Data の配列
|
69
|
+
@data = other
|
70
|
+
@modified = true
|
71
|
+
end
|
72
|
+
def weOffsetX=(other)
|
73
|
+
@weOffsetX = other
|
74
|
+
@modified = true
|
75
|
+
end
|
76
|
+
def weOffsetY=(other)
|
77
|
+
@weOffsetY = other
|
78
|
+
@modified = true
|
79
|
+
end
|
80
|
+
def weOffsetZ=(other)
|
81
|
+
@weOffsetZ = other
|
82
|
+
@modified = true
|
83
|
+
end
|
84
|
+
def weOriginX=(other)
|
85
|
+
@weOriginX = other
|
86
|
+
@modified = true
|
87
|
+
end
|
88
|
+
def weOriginY=(other)
|
89
|
+
@weOriginY = other
|
90
|
+
@modified = true
|
91
|
+
end
|
92
|
+
def weOriginZ=(other)
|
93
|
+
@weOriginZ = other
|
94
|
+
@modified = true
|
95
|
+
end
|
96
|
+
def height=(other)
|
97
|
+
@height = other
|
98
|
+
@modified = true
|
99
|
+
end
|
100
|
+
def width=(other)
|
101
|
+
@width = other
|
102
|
+
@modified = true
|
103
|
+
end
|
104
|
+
def length=(other)
|
105
|
+
@length = other
|
106
|
+
@modified = true
|
107
|
+
end
|
108
|
+
def write(name)
|
109
|
+
raise(IllegalBlockSizeError,"Blocks or Data size doesn't match length*width*height") unless verify
|
110
|
+
|
111
|
+
@tag.find_tag("Blocks").payload = to_nbt_block
|
112
|
+
@tag.find_tag("Data").payload = to_nbt_data
|
113
|
+
@tag.find_tag("WEOffsetX").payload = @weOffsetX
|
114
|
+
@tag.find_tag("WEOffsetY").payload = @weOffsetY
|
115
|
+
@tag.find_tag("WEOffsetZ").payload = @weOffsetZ
|
116
|
+
@tag.find_tag("WEOriginX").payload = @weOriginX
|
117
|
+
@tag.find_tag("WEOriginY").payload = @weOriginY
|
118
|
+
@tag.find_tag("WEOriginZ").payload = @weOriginZ
|
119
|
+
|
120
|
+
@tag.find_tag("Height").payload = @height
|
121
|
+
@tag.find_tag("Width").payload = @width
|
122
|
+
@tag.find_tag("Length").payload = @length
|
123
|
+
|
124
|
+
@file.write(name, @tag, true)
|
125
|
+
@modified = false
|
126
|
+
end
|
127
|
+
|
128
|
+
private
|
129
|
+
def init
|
130
|
+
# .schematicを読みこんで、プロパティを初期化
|
131
|
+
@tag = @file.read(@filename)
|
132
|
+
|
133
|
+
@blocks = []
|
134
|
+
@tag.find_tag("Blocks").payload.to_s.split("").each do |s|
|
135
|
+
# p blockdata[s.unpack("H*")[0].hex]
|
136
|
+
@blocks << s.unpack("H*")[0].hex
|
137
|
+
end
|
138
|
+
@data = []
|
139
|
+
@tag.find_tag("Data").payload.to_s.split("").each do |s|
|
140
|
+
# p blockdata[s.unpack("H*")[0].hex]
|
141
|
+
@data << s.unpack("H*")[0].hex
|
142
|
+
end
|
143
|
+
|
144
|
+
@weOffsetX = @tag.find_tag("WEOffsetX").payload
|
145
|
+
@weOffsetY = @tag.find_tag("WEOffsetY").payload
|
146
|
+
@weOffsetZ = @tag.find_tag("WEOffsetZ").payload
|
147
|
+
@weOriginX = @tag.find_tag("WEOriginX").payload
|
148
|
+
@weOriginY = @tag.find_tag("WEOriginY").payload
|
149
|
+
@weOriginZ = @tag.find_tag("WEOriginZ").payload
|
150
|
+
|
151
|
+
@height = @tag.find_tag("Height").payload
|
152
|
+
@width = @tag.find_tag("Width").payload
|
153
|
+
@length = @tag.find_tag("Length").payload
|
154
|
+
end
|
155
|
+
def to_nbt_block
|
156
|
+
[@blocks.map{|b| b.to_s(16).rjust(2,"0") }.join].pack("H*")
|
157
|
+
end
|
158
|
+
def to_nbt_data
|
159
|
+
[@data.map{|d| d.to_s(16).rjust(2,"0") }.join].pack("H*")
|
160
|
+
end
|
161
|
+
def verify
|
162
|
+
# ブロック数とデータ数が等しいか、Width * Length * height がブロック数と等しいか計算
|
163
|
+
size = @width * @height * @length
|
164
|
+
(@blocks.size == size) && (@data.size == size)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
Binary file
|