--- Schematic serialization and deserialiation. -- @module worldedit.serialization worldedit.LATEST_SERIALIZATION_VERSION = 5 local LATEST_SERIALIZATION_HEADER = worldedit.LATEST_SERIALIZATION_VERSION .. ":" --[[ Serialization version history: 1: Original format. Serialized Lua table with a weird linked format... 2: Position and node seperated into sub-tables in fields `1` and `2`. 3: List of nodes, one per line, with fields seperated by spaces. Format: 4: Serialized Lua table containing a list of nodes with `x`, `y`, `z`, `name`, `param1`, `param2`, and `meta` fields. 5: Added header and made `param1`, `param2`, and `meta` fields optional. Header format: ,,...: --]] --- Reads the header of serialized data. -- @param value Serialized WorldEdit data. -- @return The version as a positive natural number, or 0 for unknown versions. -- @return Extra header fields as a list of strings, or nil if not supported. -- @return Content (data after header). function worldedit.read_header(value) if value:find("^[0-9]+[%-:]") then local header_end = value:find(":", 1, true) local header = value:sub(1, header_end - 1):split(",") local version = tonumber(header[1]) table.remove(header, 1) local content = value:sub(header_end + 1) return version, header, content end -- Old versions that didn't include a header with a version number if value:find("([+-]?%d+)%s+([+-]?%d+)%s+([+-]?%d+)") and not value:find("%{") then -- List format return 3, nil, value elseif value:find("^[^\"']+%{%d+%}") then if value:find("%[\"meta\"%]") then -- Meta flat table format return 2, nil, value end return 1, nil, value -- Flat table format elseif value:find("%{") then -- Raw nested table format return 4, nil, value end return nil end -- =================================================================== local function Set (list) local set = {} for _, l in ipairs (list) do set [l] = true end return set end -- local myset = Set{"while", "end", "function", "local", } -- =================================================================== --- Converts the region defined by positions `pos1` and `pos2` -- into a single string. -- @return The serialized data. -- @return The number of nodes serialized. -- =================================================================== local small_bowl = 0 -- =================================================================== -- Nodes which use "meta" should be listed in "needwe", but this isn't -- essential. "needwe" isn't presently used, but it might be used in -- the future. local needwe = Set{ "default:bookshelf" , "default:chest" , "default:chest_locked" , "default:furnace" , "default:sign_wall_steel" , "default:sign_wall_wood" , "locked_sign:sign_wall_locked" , "signs:sign_hanging" , "signs:sign_wall_blue" , "signs:sign_wall_brown" , "signs:sign_wall_green" , "signs:sign_wall_orange" , "signs:sign_wall_red" , "signs:sign_wall_white_black" , "signs:sign_wall_white_red" , "signs:sign_wall_yellow" , "signs:sign_yard" , "vessels:shelf" , } -- =================================================================== -- "rejectwe" should list the majority of common nodes that do *not* -- contain meta. -- The nodes listed in "rejectwe" may use "facedir", but are believed -- not to use "meta" per se. Nodes which turn out to use "meta" should -- be removed from the list. local rejectwe = Set{ "air" , "ignore" , "unknown" , "abriglass:clear_glass" , "abriglass:ghost_crystal" , "abriglass:glass_light_blue" , "abriglass:glass_light_green" , "abriglass:glass_light_red" , "abriglass:glass_light_yellow" , "abriglass:hidden_light" , "abriglass:oneway_glass_dark" , "abriglass:oneway_glass_pale" , "abriglass:oneway_wall_dark" , "abriglass:oneway_wall_pale" , "abriglass:stained_glass_frosted" , "air:air" , "air:ore" , "aluminum:ore" , "asteroid:atmos" , "asteroid:cobble" , "asteroid:copperore" , "asteroid:dust" , "asteroid:gravel" , "asteroid:ironore" , "asteroid:meteorite_block" , "asteroid:meteorite_chunk" , "asteroid:meteorite_chunks_ore" , "asteroid:stone" , "bacon:cookedblock" , "bacon:ore" , "bacon:rawblock" , "bakedclay:black" , "bakedclay:delphinium" , "bakedclay:lazarus" , "bakedclay:mannagrass" , "bakedclay:red" , "bakedclay:thistle" , "bakedclay:white" , "bamboo:bamboo" , "bat_blocks:bat_cobble" , "bat_blocks:bat_cobble_corner" , "bat_blocks:bat_cobble_tan" , "bat_blocks:bat_cobble_tan_corner" , "bat_blocks:bat_cobble_white" , "bat_lava:bat_lava_nw" , "bat_lava:bat_lava_w" , "bedrock:bedrock" , "bedrock:deepstone" , "beds:bed_bottom" , "beds:bed_top" , "beds:fancy_bed_bottom" , "beds:fancy_bed_top" , "beer_test:wild_oats" , "birthstones:alexandriteblock" , "birthstones:alexandriteore" , "birthstones:amethystblock" , "birthstones:amethystore" , "birthstones:aquamarineblock" , "birthstones:aquamarineore" , "birthstones:diamondblock" , "birthstones:diamondore" , "birthstones:emeraldblock" , "birthstones:emeraldore" , "birthstones:garnetblock" , "birthstones:garnetore" , "birthstones:opalblock" , "birthstones:opalore" , "birthstones:peridotblock" , "birthstones:peridotore" , "birthstones:rubyblock" , "birthstones:rubyore" , "birthstones:sapphireblock" , "birthstones:sapphireore" , "birthstones:stone_with_alexandrite" , "birthstones:stone_with_amethyst" , "birthstones:stone_with_aquamarine" , "birthstones:stone_with_diamond" , "birthstones:stone_with_emerald" , "birthstones:stone_with_garnet" , "birthstones:stone_with_opal" , "birthstones:stone_with_peridot" , "birthstones:stone_with_ruby" , "birthstones:stone_with_sapphire" , "birthstones:stone_with_topaz" , "birthstones:stone_with_zircon" , "birthstones:topazblock" , "birthstones:topazore" , "birthstones:zirconblock" , "birthstones:zirconore" , "bitchange:mineninth_in_ground" , "blox:glowore" , "bluelava:lava_flowing" , "bluelava:lava_source" , "bones:skeleton" , "bones:skeleton_body" , "building_blocks:Adobe" , "building_blocks:BWtile" , "building_blocks:Marble" , "building_blocks:Roofing" , "building_blocks:Tar" , "building_blocks:Tarmac_spread" , "building_blocks:brobble_spread" , "building_blocks:fakegrass" , "building_blocks:grate" , "building_blocks:gravel_spread" , "building_blocks:hardwood" , "building_blocks:slab_marble" , "building_blocks:smoothglass" , "building_blocks:terrycloth_towel" , "building_blocks:woodglass" , "bushes:BushLeaves1" , "bushes:BushLeaves2" , "bushes:blackberry_bush" , "bushes:blueberry_bush" , "bushes:bushbranches1" , "bushes:bushbranches2" , "bushes:bushbranches3" , "bushes:bushbranches4" , "bushes:fruitless_bush" , "bushes:gooseberry_bush" , "bushes:mixed_berry_bush" , "bushes:raspberry_bush" , "bushes:strawberry_bush" , "bushes:youngtree2_bottom" , "butterflies:butterfly_red" , "butterflies:butterfly_violet" , "butterflies:butterfly_white" , "butterflies:hidden_butterfly_red" , "butterflies:hidden_butterfly_violet" , "butterflies:hidden_butterfly_white" , "caverealms:coal_dust" , "caverealms:constant_flame" , "caverealms:dm_statue" , "caverealms:fire_vine" , "caverealms:fungus" , "caverealms:glow_amethyst" , "caverealms:glow_amethyst_ore" , "caverealms:glow_crystal" , "caverealms:glow_emerald" , "caverealms:glow_emerald_ore" , "caverealms:glow_gem" , "caverealms:glow_gem_2" , "caverealms:glow_gem_3" , "caverealms:glow_gem_4" , "caverealms:glow_gem_5" , "caverealms:glow_mese" , "caverealms:glow_obsidian" , "caverealms:glow_obsidian_2" , "caverealms:glow_obsidian_glass" , "caverealms:glow_ore" , "caverealms:glow_ruby" , "caverealms:glow_ruby_ore" , "caverealms:glow_worm" , "caverealms:glow_worm_green" , "caverealms:hanging_thin_ice" , "caverealms:hot_cobble" , "caverealms:icicle_down" , "caverealms:icicle_up" , "caverealms:micro_glow_crystal" , "caverealms:micro_glow_crystal_14" , "caverealms:micro_glow_emerald" , "caverealms:micro_glow_ruby" , "caverealms:micro_salt_crystal_4" , "caverealms:mushroom_cap" , "caverealms:mushroom_gills" , "caverealms:mushroom_sapling" , "caverealms:mushroom_stem" , "caverealms:mycena" , "caverealms:s_chest" , "caverealms:s_fortress" , "caverealms:s_fountain" , "caverealms:salt_crystal" , "caverealms:salt_gem" , "caverealms:salt_gem_2" , "caverealms:salt_gem_3" , "caverealms:salt_gem_4" , "caverealms:salt_gem_5" , "caverealms:slab_glow_crystal_1" , "caverealms:slab_glow_emerald_1" , "caverealms:spike" , "caverealms:spike_2" , "caverealms:spike_3" , "caverealms:spike_4" , "caverealms:spike_5" , "caverealms:stair_glow_crystal" , "caverealms:stair_glow_crystal_outer" , "caverealms:stone_with_algae" , "caverealms:stone_with_lichen" , "caverealms:stone_with_moss" , "caverealms:stone_with_salt" , "caverealms:thin_ice" , "cavestuff:desert_pebble_1" , "cavestuff:desert_pebble_2" , "cavestuff:pebble_1" , "cavestuff:pebble_2" , "cblocks:wood_brown" , "chains:chain" , "chains:chain_brass" , "chains:chain_top" , "chains:chain_top_brass" , "chains:chandelier" , "chains:chandelier_brass" , "clams:dirtalgae" , "clams:sandalgae" , "clams:sandalgaeused" , "coderblocks:glowstone" , "codermobs:chicken_egg" , "codermobs:monster_egg_cobble" , "codermobs:monster_egg_mossycobble" , "codermobs:monster_egg_stone" , "codermobs:monster_egg_stone_block" , "codermobs:ostrich_egg" , "codersea:dirt" , "codersea:dirtalgae" , "codersea:dirtgrow" , "codersea:dirtkelp" , "codersea:dirtseagrass" , "codersea:ethereal_coral2" , "codersea:ethereal_coral3" , "codersea:ethereal_coral4" , "codersea:ethereal_coral5" , "codersea:ethereal_seaweed" , "codersea:jellyfish_spawner" , "codersea:kelpbrown" , "codersea:kelpbrownmiddle" , "codersea:kelpgreen" , "codersea:kelpgreenmiddle" , "codersea:lantern" , "codersea:sand" , "codersea:sandalgae" , "codersea:sandgrow" , "codersea:sandkelp" , "codersea:sandseagrass" , "codersea:seabrick" , "codersea:seabrick_aqua" , "codersea:seabrick_cyan" , "codersea:seabrick_lime" , "codersea:seabrick_magenta" , "codersea:seabrick_redviolet" , "codersea:seabrick_skyblue" , "codersea:seacobble" , "codersea:seacobble_aqua" , "codersea:seacobble_cyan" , "codersea:seacobble_lime" , "codersea:seacobble_magenta" , "codersea:seacobble_redviolet" , "codersea:seacobble_skyblue" , "codersea:seaglass" , "codersea:seaglass_black" , "codersea:seaglass_black_off" , "codersea:seaglass_blue" , "codersea:seaglass_blue_off" , "codersea:seaglass_off" , "codersea:seaglass_red" , "codersea:seaglass_red_off" , "codersea:seaglass_white" , "codersea:seaglass_white_off" , "codersea:seaglass_yellow" , "codersea:seaglass_yellow_off" , "codersea:seaglassoff" , "codersea:seaglassoff_black" , "codersea:seaglassoff_blue" , "codersea:seaglassoff_red" , "codersea:seaglassoff_white" , "codersea:seaglassoff_yellow" , "codersea:seagrassgreen" , "codersea:seagrassred" , "codersea:seagravel" , "codersea:seagravel_aqua" , "codersea:seagravel_cyan" , "codersea:seagravel_lime" , "codersea:seagravel_magenta" , "codersea:seagravel_redviolet" , "codersea:seagravel_skyblue" , "codersea:seaplantsdirtkelpbrown" , "codersea:seaplantsdirtkelpgreen" , "codersea:seaplantsdirtseagrassgreen" , "codersea:seaplantsdirtseagrassred" , "codersea:seaplantssandkelpbrown" , "codersea:seaplantssandkelpgreen" , "codersea:seaplantssandseagrassgreen" , "codersea:seaplantssandseagrassred" , "codersea:seastone" , "codersea:seastone_aqua" , "codersea:seastone_cyan" , "codersea:seastone_lime" , "codersea:seastone_magenta" , "codersea:seastone_redviolet" , "codersea:seastone_skyblue" , "codersea:shine_slab_seaglass" , "codersea:shine_slab_seaglass_black" , "codersea:shine_slab_seaglass_black_off" , "codersea:shine_slab_seaglass_blue" , "codersea:shine_slab_seaglass_blue_off" , "codersea:shine_slab_seaglass_off" , "codersea:shine_slab_seaglass_red" , "codersea:shine_slab_seaglass_red_off" , "codersea:shine_slab_seaglass_white" , "codersea:shine_slab_seaglass_white_off" , "codersea:shine_slab_seaglass_yellow" , "codersea:shine_slab_seaglass_yellow_off" , "codersea:shine_stair_seaglass" , "codersea:shine_stair_seaglass_black" , "codersea:shine_stair_seaglass_black_off" , "codersea:shine_stair_seaglass_blue" , "codersea:shine_stair_seaglass_blue_off" , "codersea:shine_stair_seaglass_off" , "codersea:shine_stair_seaglass_red" , "codersea:shine_stair_seaglass_red_off" , "codersea:shine_stair_seaglass_white" , "codersea:shine_stair_seaglass_white_off" , "codersea:shine_stair_seaglass_yellow" , "codersea:shine_stair_seaglass_yellow_off" , "codersea:torch" , "codersea:uboot" , "codersea:water_flowing" , "codersea:water_source" , "codersea:woodship" , "computer:piepad" , "computer:printer" , "computer:router" , "computer:server" , "computer:server_on" , "computer:slaystation" , "computer:tetris_arcade" , "computer:tower" , "computer:vanio" , "computer:vanio_off" , "cottages:loam" , "darkage:adobe" , "darkage:basalt" , "darkage:chalk" , "darkage:darkdirt" , "darkage:desert_stone_with_iron" , "darkage:dry_leaves" , "darkage:gneiss" , "darkage:marble" , "darkage:mud" , "darkage:ors" , "darkage:reinforced_chalk" , "darkage:schist" , "darkage:serpentine" , "darkage:shale" , "darkage:silt" , "darkage:slate" , "darkage:slate_brick" , "darkage:slate_tile" , "darkage:straw" , "darkage:straw_bale" , "deeprealms:black_sand" , "deeprealms:glowing_fungal_stone" , "deeprealms:hot_brass" , "deeprealms:hot_cobble" , "deeprealms:hot_iron" , "deeprealms:hot_stone" , "deeprealms:icicle_down" , "deeprealms:polluted_dirt" , "deeprealms:thin_ice" , "deeprealms:water_death_flowing" , "deeprealms:water_death_source" , "deeprealms:water_poison_flowing" , "deeprealms:water_poison_source" , "default:acacia_bush_leaves" , "default:acacia_bush_sapling" , "default:acacia_bush_stem" , "default:acacia_leaves" , "default:acacia_sapling" , "default:acacia_tree" , "default:acacia_trunk" , "default:acacia_wood" , "default:acorn" , "default:apple" , "default:aspen_leaves" , "default:aspen_sapling" , "default:aspen_tree" , "default:aspen_trunk" , "default:aspen_wood" , "default:beech_leaves" , "default:beech_sapling" , "default:beech_trunk" , "default:big_apple_leaves" , "default:big_apple_sapling" , "default:big_apple_trunk" , "default:birch_leaves" , "default:birch_sapling" , "default:birch_trunk" , "default:blueberry_bush_leaves" , "default:blueberry_bush_leaves_with_berries" , "default:blueberry_bush_sapling" , "default:brick" , "default:bronzeblock" , "default:bush_leaves" , "default:bush_sapling" , "default:bush_stem" , "default:cactus" , "default:cave_ice" , "default:cedar_leaves" , "default:cedar_sapling" , "default:cedar_trunk" , "default:cherry_leaves" , "default:cherry_trunk" , "default:cherry_wood" , "default:clay" , "default:cloud" , "default:coalblock" , "default:cobble" , "default:cobble_microslab" , "default:coconut" , "default:conifer_leaves" , "default:copperblock" , "default:coral_brown" , "default:coral_cyan" , "default:coral_green" , "default:coral_orange" , "default:coral_pink" , "default:coral_skeleton" , "default:date" , "default:date_palm_leaves" , "default:date_palm_sapling" , "default:date_palm_trunk" , "default:desert_cobble" , "default:desert_sand" , "default:desert_sandstone" , "default:desert_sandstone_block" , "default:desert_sandstone_brick" , "default:desert_stone" , "default:desert_stone_block" , "default:desert_stonebrick" , "default:diamondblock" , "default:dirt" , "default:dirt_with_coniferous_litter" , "default:dirt_with_dry_grass" , "default:dirt_with_grass" , "default:dirt_with_grass_footsteps" , "default:dirt_with_rainforest_litter" , "default:dirt_with_snow" , "default:dry_grass_1" , "default:dry_grass_2" , "default:dry_grass_3" , "default:dry_grass_4" , "default:dry_grass_5" , "default:dry_shrub" , "default:fence_junglewood" , "default:fence_wood" , "default:fern_1" , "default:fern_2" , "default:fern_3" , "default:fir_cone" , "default:fir_leaves" , "default:fir_sapling" , "default:fir_trunk" , "default:glass" , "default:glowice" , "default:glowing_fungal_stone" , "default:goldblock" , "default:goldblock_microslab" , "default:grass_1" , "default:grass_2" , "default:grass_3" , "default:grass_4" , "default:grass_5" , "default:gravel" , "default:ice" , "default:jungle_leaves" , "default:jungle_sapling" , "default:jungle_trunk" , "default:junglegrass" , "default:jungleleaves" , "default:junglesapling" , "default:jungletree" , "default:junglewood" , "default:ladder_steel" , "default:ladder_wood" , "default:large_cactus_seedling" , "default:lava" , "default:lava_flowing" , "default:lava_source" , "default:leaves" , "default:lemon_leaves" , "default:lemon_trunk" , "default:maple_leaves" , "default:maple_trunk" , "default:marram_grass_1" , "default:marram_grass_2" , "default:marram_grass_3" , "default:mese" , "default:mese_post_light" , "default:meselamp" , "default:mossycobble" , "default:oak_leaves" , "default:oak_sapling" , "default:oak_trunk" , "default:oak_wood" , "default:obsidian" , "default:obsidian_block" , "default:obsidian_glass" , "default:obsidianbrick" , "default:palm_leaves" , "default:palm_sapling" , "default:palm_trunk" , "default:papyrus" , "default:permafrost" , "default:permafrost_with_moss" , "default:permafrost_with_stones" , "default:pine_bush_needles" , "default:pine_bush_stem" , "default:pine_leaves" , "default:pine_needles" , "default:pine_sapling" , "default:pine_tree" , "default:pine_trunk" , "default:pine_wood" , "default:poplar_leaves" , "default:poplar_sapling" , "default:poplar_trunk" , "default:river_water_flowing" , "default:river_water_source" , "default:rubber_leaves" , "default:rubber_sapling" , "default:rubber_trunk" , "default:rubber_wood" , "default:sand" , "default:sand_with_kelp" , "default:sandstone" , "default:sandstone_block" , "default:sandstonebrick" , "default:sapling" , "default:sequoia_leaves" , "default:sequoia_sapling" , "default:sequoia_trunk" , "default:sequoia_wood" , "default:silver_sand" , "default:silver_sandstone" , "default:silver_sandstone_block" , "default:silver_sandstone_brick" , "default:snow" , "default:snowblock" , "default:spruce_cone" , "default:spruce_leaves" , "default:spruce_sapling" , "default:spruce_spruce" , "default:spruce_trunk" , "default:steelblock" , "default:stick" , "default:stone" , "default:stone_block" , "default:stone_innerstair" , "default:stone_microslab" , "default:stone_panel" , "default:stone_with_coal" , "default:stone_with_copper" , "default:stone_with_diamond" , "default:stone_with_gold" , "default:stone_with_iron" , "default:stone_with_mese" , "default:stone_with_tin" , "default:stonebrick" , "default:stonebrick_microslab" , "default:tinblock" , "default:torch" , "default:torch_ceiling" , "default:torch_wall" , "default:tree" , "default:vacuum" , "default:water" , "default:water_flowing" , "default:water_source" , "default:willow_leaves" , "default:willow_sapling" , "default:willow_trunk" , "default:wonderhouse_sapling" , "default:wood" , "default:wood_leaves" , "default:wood_sapling" , "default:wood_trunk" , "default:wood_wood" , "diamonds:block" , "diamonds:diamond_in_ground" , "diamonds:garden" , "diamonds:garden_block" , "dmobs:egg" , "dryplants:grass" , "dryplants:grass_short" , "dryplants:hay" , "dryplants:juncus" , "dryplants:juncus_02" , "dryplants:reed" , "dryplants:reed_roof" , "dryplants:reed_roof_corner" , "dryplants:reed_roof_corner_2" , "dryplants:reed_slab" , "dryplants:reedmace_height_1" , "dryplants:reedmace_height_2" , "dryplants:reedmace_height_3" , "dryplants:reedmace_height_3_spikes" , "dryplants:reedmace_sapling" , "dryplants:reedmace_top" , "dryplants:wetreed" , "earthgen:bedrock" , "earthgen:dirt_with_dry_grass" , "earthgen:pine_leaves" , "earthgen:pine_tree" , "earthgen:pineleaves" , "earthgen:pinesapling" , "earthgen:pinetree" , "earthgen:savanna_leaves" , "earthgen:savanna_tree" , "earthgen:savannaleaves" , "earthgen:savannasapling" , "earthgen:savannatree" , "emeralds:ore" , "ethereal:bamboo" , "ethereal:bamboo_block" , "ethereal:bamboo_dirt" , "ethereal:bamboo_floor" , "ethereal:bamboo_leaves" , "ethereal:bamboo_sprout" , "ethereal:banana" , "ethereal:banana_tree_sapling" , "ethereal:banana_trunk" , "ethereal:banana_wood" , "ethereal:bananaleaves" , "ethereal:big_tree_sapling" , "ethereal:birch_leaves" , "ethereal:birch_sapling" , "ethereal:birch_trunk" , "ethereal:birch_wood" , "ethereal:bush" , "ethereal:bush2" , "ethereal:bush3" , "ethereal:candle" , "ethereal:coconut" , "ethereal:cold_dirt" , "ethereal:coral2" , "ethereal:coral3" , "ethereal:coral4" , "ethereal:coral5" , "ethereal:crystal_block" , "ethereal:crystal_dirt" , "ethereal:crystal_moss" , "ethereal:crystal_spike" , "ethereal:crystalgrass" , "ethereal:door_sakura_a" , "ethereal:door_sakura_b" , "ethereal:dry_dirt" , "ethereal:dry_shrub" , "ethereal:fence_banana" , "ethereal:fence_birch" , "ethereal:fence_frostwood" , "ethereal:fence_mushroom" , "ethereal:fence_olive" , "ethereal:fence_palm" , "ethereal:fence_redwood" , "ethereal:fence_sakura" , "ethereal:fence_scorched" , "ethereal:fence_willow" , "ethereal:fence_yellowwood" , "ethereal:fern" , "ethereal:fiery_dirt" , "ethereal:fiery_moss" , "ethereal:fire_flower" , "ethereal:firethorn" , "ethereal:frost_leaves" , "ethereal:frost_tree" , "ethereal:frost_tree_sapling" , "ethereal:frost_wood" , "ethereal:glostone" , "ethereal:golden_apple" , "ethereal:gray_dirt" , "ethereal:gray_moss" , "ethereal:green_moss" , "ethereal:grove_dirt" , "ethereal:icebrick" , "ethereal:illumishroom" , "ethereal:illumishroom2" , "ethereal:illumishroom3" , "ethereal:jungle_dirt" , "ethereal:lemon" , "ethereal:lemon_leaves" , "ethereal:lemon_tree_sapling" , "ethereal:lightstring" , "ethereal:micro_bamboo_wood" , "ethereal:micro_bamboo_wood_1" , "ethereal:micro_bamboo_wood_12" , "ethereal:micro_bamboo_wood_14" , "ethereal:micro_bamboo_wood_15" , "ethereal:micro_bamboo_wood_2" , "ethereal:micro_bamboo_wood_4" , "ethereal:micro_banana_wood" , "ethereal:micro_banana_wood_1" , "ethereal:micro_banana_wood_12" , "ethereal:micro_banana_wood_14" , "ethereal:micro_banana_wood_15" , "ethereal:micro_banana_wood_2" , "ethereal:micro_banana_wood_4" , "ethereal:micro_birch_wood" , "ethereal:micro_birch_wood_1" , "ethereal:micro_birch_wood_12" , "ethereal:micro_birch_wood_14" , "ethereal:micro_birch_wood_15" , "ethereal:micro_birch_wood_2" , "ethereal:micro_birch_wood_4" , "ethereal:micro_crystal_block" , "ethereal:micro_crystal_block_1" , "ethereal:micro_crystal_block_12" , "ethereal:micro_crystal_block_14" , "ethereal:micro_crystal_block_15" , "ethereal:micro_crystal_block_2" , "ethereal:micro_crystal_block_4" , "ethereal:micro_dry_dirt" , "ethereal:micro_dry_dirt_1" , "ethereal:micro_dry_dirt_12" , "ethereal:micro_dry_dirt_14" , "ethereal:micro_dry_dirt_15" , "ethereal:micro_dry_dirt_2" , "ethereal:micro_dry_dirt_4" , "ethereal:micro_frost_wood" , "ethereal:micro_frost_wood_1" , "ethereal:micro_frost_wood_12" , "ethereal:micro_frost_wood_14" , "ethereal:micro_frost_wood_15" , "ethereal:micro_frost_wood_2" , "ethereal:micro_frost_wood_4" , "ethereal:micro_icebrick" , "ethereal:micro_icebrick_1" , "ethereal:micro_icebrick_12" , "ethereal:micro_icebrick_14" , "ethereal:micro_icebrick_15" , "ethereal:micro_icebrick_2" , "ethereal:micro_icebrick_4" , "ethereal:micro_mushroom" , "ethereal:micro_mushroom_1" , "ethereal:micro_mushroom_12" , "ethereal:micro_mushroom_14" , "ethereal:micro_mushroom_15" , "ethereal:micro_mushroom_2" , "ethereal:micro_mushroom_4" , "ethereal:micro_mushroom_trunk" , "ethereal:micro_mushroom_trunk_1" , "ethereal:micro_mushroom_trunk_12" , "ethereal:micro_mushroom_trunk_14" , "ethereal:micro_mushroom_trunk_15" , "ethereal:micro_mushroom_trunk_2" , "ethereal:micro_mushroom_trunk_4" , "ethereal:micro_olive_wood" , "ethereal:micro_olive_wood_1" , "ethereal:micro_olive_wood_12" , "ethereal:micro_olive_wood_14" , "ethereal:micro_olive_wood_15" , "ethereal:micro_olive_wood_2" , "ethereal:micro_olive_wood_4" , "ethereal:micro_palm_wood" , "ethereal:micro_palm_wood_1" , "ethereal:micro_palm_wood_12" , "ethereal:micro_palm_wood_14" , "ethereal:micro_palm_wood_15" , "ethereal:micro_palm_wood_2" , "ethereal:micro_palm_wood_4" , "ethereal:micro_redwood_wood" , "ethereal:micro_redwood_wood_1" , "ethereal:micro_redwood_wood_12" , "ethereal:micro_redwood_wood_14" , "ethereal:micro_redwood_wood_15" , "ethereal:micro_redwood_wood_2" , "ethereal:micro_redwood_wood_4" , "ethereal:micro_sakura_wood" , "ethereal:micro_sakura_wood_1" , "ethereal:micro_sakura_wood_12" , "ethereal:micro_sakura_wood_14" , "ethereal:micro_sakura_wood_15" , "ethereal:micro_sakura_wood_2" , "ethereal:micro_sakura_wood_4" , "ethereal:micro_snowbrick" , "ethereal:micro_snowbrick_1" , "ethereal:micro_snowbrick_12" , "ethereal:micro_snowbrick_14" , "ethereal:micro_snowbrick_15" , "ethereal:micro_snowbrick_2" , "ethereal:micro_snowbrick_4" , "ethereal:micro_willow_wood" , "ethereal:micro_willow_wood_1" , "ethereal:micro_willow_wood_12" , "ethereal:micro_willow_wood_14" , "ethereal:micro_willow_wood_15" , "ethereal:micro_willow_wood_2" , "ethereal:micro_willow_wood_4" , "ethereal:micro_yellow_wood" , "ethereal:micro_yellow_wood_1" , "ethereal:micro_yellow_wood_12" , "ethereal:micro_yellow_wood_14" , "ethereal:micro_yellow_wood_15" , "ethereal:micro_yellow_wood_2" , "ethereal:micro_yellow_wood_4" , "ethereal:mushroom" , "ethereal:mushroom_dirt" , "ethereal:mushroom_moss" , "ethereal:mushroom_pore" , "ethereal:mushroom_sapling" , "ethereal:mushroom_trunk" , "ethereal:olive" , "ethereal:olive_leaves" , "ethereal:olive_tree_sapling" , "ethereal:olive_trunk" , "ethereal:olive_wood" , "ethereal:onion_1" , "ethereal:onion_2" , "ethereal:onion_3" , "ethereal:onion_4" , "ethereal:onion_5" , "ethereal:orange" , "ethereal:orange_leaves" , "ethereal:orange_tree_sapling" , "ethereal:palm_sapling" , "ethereal:palm_trunk" , "ethereal:palm_wood" , "ethereal:palmleaves" , "ethereal:panel_bamboo_wood" , "ethereal:panel_bamboo_wood_1" , "ethereal:panel_bamboo_wood_12" , "ethereal:panel_bamboo_wood_14" , "ethereal:panel_bamboo_wood_15" , "ethereal:panel_bamboo_wood_2" , "ethereal:panel_bamboo_wood_4" , "ethereal:panel_banana_wood" , "ethereal:panel_banana_wood_1" , "ethereal:panel_banana_wood_12" , "ethereal:panel_banana_wood_14" , "ethereal:panel_banana_wood_15" , "ethereal:panel_banana_wood_2" , "ethereal:panel_banana_wood_4" , "ethereal:panel_birch_wood" , "ethereal:panel_birch_wood_1" , "ethereal:panel_birch_wood_12" , "ethereal:panel_birch_wood_14" , "ethereal:panel_birch_wood_15" , "ethereal:panel_birch_wood_2" , "ethereal:panel_birch_wood_4" , "ethereal:panel_crystal_block" , "ethereal:panel_crystal_block_1" , "ethereal:panel_crystal_block_12" , "ethereal:panel_crystal_block_14" , "ethereal:panel_crystal_block_15" , "ethereal:panel_crystal_block_2" , "ethereal:panel_crystal_block_4" , "ethereal:panel_dry_dirt" , "ethereal:panel_dry_dirt_1" , "ethereal:panel_dry_dirt_12" , "ethereal:panel_dry_dirt_14" , "ethereal:panel_dry_dirt_15" , "ethereal:panel_dry_dirt_2" , "ethereal:panel_dry_dirt_4" , "ethereal:panel_frost_wood" , "ethereal:panel_frost_wood_1" , "ethereal:panel_frost_wood_12" , "ethereal:panel_frost_wood_14" , "ethereal:panel_frost_wood_15" , "ethereal:panel_frost_wood_2" , "ethereal:panel_frost_wood_4" , "ethereal:panel_icebrick" , "ethereal:panel_icebrick_1" , "ethereal:panel_icebrick_12" , "ethereal:panel_icebrick_14" , "ethereal:panel_icebrick_15" , "ethereal:panel_icebrick_2" , "ethereal:panel_icebrick_4" , "ethereal:panel_mushroom" , "ethereal:panel_mushroom_1" , "ethereal:panel_mushroom_12" , "ethereal:panel_mushroom_14" , "ethereal:panel_mushroom_15" , "ethereal:panel_mushroom_2" , "ethereal:panel_mushroom_4" , "ethereal:panel_mushroom_trunk" , "ethereal:panel_mushroom_trunk_1" , "ethereal:panel_mushroom_trunk_12" , "ethereal:panel_mushroom_trunk_14" , "ethereal:panel_mushroom_trunk_15" , "ethereal:panel_mushroom_trunk_2" , "ethereal:panel_mushroom_trunk_4" , "ethereal:panel_olive_wood" , "ethereal:panel_olive_wood_1" , "ethereal:panel_olive_wood_12" , "ethereal:panel_olive_wood_14" , "ethereal:panel_olive_wood_15" , "ethereal:panel_olive_wood_2" , "ethereal:panel_olive_wood_4" , "ethereal:panel_palm_wood" , "ethereal:panel_palm_wood_1" , "ethereal:panel_palm_wood_12" , "ethereal:panel_palm_wood_14" , "ethereal:panel_palm_wood_15" , "ethereal:panel_palm_wood_2" , "ethereal:panel_palm_wood_4" , "ethereal:panel_redwood_wood" , "ethereal:panel_redwood_wood_1" , "ethereal:panel_redwood_wood_12" , "ethereal:panel_redwood_wood_14" , "ethereal:panel_redwood_wood_15" , "ethereal:panel_redwood_wood_2" , "ethereal:panel_redwood_wood_4" , "ethereal:panel_sakura_wood" , "ethereal:panel_sakura_wood_1" , "ethereal:panel_sakura_wood_12" , "ethereal:panel_sakura_wood_14" , "ethereal:panel_sakura_wood_15" , "ethereal:panel_sakura_wood_2" , "ethereal:panel_sakura_wood_4" , "ethereal:panel_snowbrick" , "ethereal:panel_snowbrick_1" , "ethereal:panel_snowbrick_12" , "ethereal:panel_snowbrick_14" , "ethereal:panel_snowbrick_15" , "ethereal:panel_snowbrick_2" , "ethereal:panel_snowbrick_4" , "ethereal:panel_willow_wood" , "ethereal:panel_willow_wood_1" , "ethereal:panel_willow_wood_12" , "ethereal:panel_willow_wood_14" , "ethereal:panel_willow_wood_15" , "ethereal:panel_willow_wood_2" , "ethereal:panel_willow_wood_4" , "ethereal:panel_yellow_wood" , "ethereal:panel_yellow_wood_1" , "ethereal:panel_yellow_wood_12" , "ethereal:panel_yellow_wood_14" , "ethereal:panel_yellow_wood_15" , "ethereal:panel_yellow_wood_2" , "ethereal:panel_yellow_wood_4" , "ethereal:prairie_dirt" , "ethereal:quicksand" , "ethereal:quicksand2" , "ethereal:redwood_leaves" , "ethereal:redwood_sapling" , "ethereal:redwood_trunk" , "ethereal:redwood_wood" , "ethereal:sakura_leaves" , "ethereal:sakura_leaves2" , "ethereal:sakura_sapling" , "ethereal:sakura_trunk" , "ethereal:sakura_wood" , "ethereal:sandy" , "ethereal:scorched_tree" , "ethereal:seaweed" , "ethereal:slab_bamboo_wood" , "ethereal:slab_bamboo_wood_1" , "ethereal:slab_bamboo_wood_14" , "ethereal:slab_bamboo_wood_15" , "ethereal:slab_bamboo_wood_2" , "ethereal:slab_bamboo_wood_quarter" , "ethereal:slab_bamboo_wood_three_quarter" , "ethereal:slab_bamboo_wood_three_sides" , "ethereal:slab_bamboo_wood_three_sides_u" , "ethereal:slab_bamboo_wood_two_sides" , "ethereal:slab_banana_wood" , "ethereal:slab_banana_wood_1" , "ethereal:slab_banana_wood_14" , "ethereal:slab_banana_wood_15" , "ethereal:slab_banana_wood_2" , "ethereal:slab_banana_wood_quarter" , "ethereal:slab_banana_wood_three_quarter" , "ethereal:slab_banana_wood_three_sides" , "ethereal:slab_banana_wood_three_sides_u" , "ethereal:slab_banana_wood_two_sides" , "ethereal:slab_birch_wood" , "ethereal:slab_birch_wood_1" , "ethereal:slab_birch_wood_14" , "ethereal:slab_birch_wood_15" , "ethereal:slab_birch_wood_2" , "ethereal:slab_birch_wood_quarter" , "ethereal:slab_birch_wood_three_quarter" , "ethereal:slab_birch_wood_three_sides" , "ethereal:slab_birch_wood_three_sides_u" , "ethereal:slab_birch_wood_two_sides" , "ethereal:slab_crystal_block" , "ethereal:slab_crystal_block_1" , "ethereal:slab_crystal_block_14" , "ethereal:slab_crystal_block_15" , "ethereal:slab_crystal_block_2" , "ethereal:slab_crystal_block_quarter" , "ethereal:slab_crystal_block_three_quarter" , "ethereal:slab_crystal_block_three_sides" , "ethereal:slab_crystal_block_three_sides_u" , "ethereal:slab_crystal_block_two_sides" , "ethereal:slab_dry_dirt" , "ethereal:slab_dry_dirt_1" , "ethereal:slab_dry_dirt_14" , "ethereal:slab_dry_dirt_15" , "ethereal:slab_dry_dirt_2" , "ethereal:slab_dry_dirt_quarter" , "ethereal:slab_dry_dirt_three_quarter" , "ethereal:slab_dry_dirt_three_sides" , "ethereal:slab_dry_dirt_three_sides_u" , "ethereal:slab_dry_dirt_two_sides" , "ethereal:slab_frost_wood" , "ethereal:slab_frost_wood_1" , "ethereal:slab_frost_wood_14" , "ethereal:slab_frost_wood_15" , "ethereal:slab_frost_wood_2" , "ethereal:slab_frost_wood_quarter" , "ethereal:slab_frost_wood_three_quarter" , "ethereal:slab_frost_wood_three_sides" , "ethereal:slab_frost_wood_three_sides_u" , "ethereal:slab_frost_wood_two_sides" , "ethereal:slab_icebrick" , "ethereal:slab_icebrick_1" , "ethereal:slab_icebrick_14" , "ethereal:slab_icebrick_15" , "ethereal:slab_icebrick_2" , "ethereal:slab_icebrick_quarter" , "ethereal:slab_icebrick_three_quarter" , "ethereal:slab_icebrick_three_sides" , "ethereal:slab_icebrick_three_sides_u" , "ethereal:slab_icebrick_two_sides" , "ethereal:slab_mushroom" , "ethereal:slab_mushroom_1" , "ethereal:slab_mushroom_14" , "ethereal:slab_mushroom_15" , "ethereal:slab_mushroom_2" , "ethereal:slab_mushroom_quarter" , "ethereal:slab_mushroom_three_quarter" , "ethereal:slab_mushroom_three_sides" , "ethereal:slab_mushroom_three_sides_u" , "ethereal:slab_mushroom_trunk" , "ethereal:slab_mushroom_trunk_1" , "ethereal:slab_mushroom_trunk_14" , "ethereal:slab_mushroom_trunk_15" , "ethereal:slab_mushroom_trunk_2" , "ethereal:slab_mushroom_trunk_quarter" , "ethereal:slab_mushroom_trunk_three_quarter" , "ethereal:slab_mushroom_trunk_three_sides" , "ethereal:slab_mushroom_trunk_three_sides_u" , "ethereal:slab_mushroom_trunk_two_sides" , "ethereal:slab_mushroom_two_sides" , "ethereal:slab_olive_wood" , "ethereal:slab_olive_wood_1" , "ethereal:slab_olive_wood_14" , "ethereal:slab_olive_wood_15" , "ethereal:slab_olive_wood_2" , "ethereal:slab_olive_wood_quarter" , "ethereal:slab_olive_wood_three_quarter" , "ethereal:slab_olive_wood_three_sides" , "ethereal:slab_olive_wood_three_sides_u" , "ethereal:slab_olive_wood_two_sides" , "ethereal:slab_palm_wood" , "ethereal:slab_palm_wood_1" , "ethereal:slab_palm_wood_14" , "ethereal:slab_palm_wood_15" , "ethereal:slab_palm_wood_2" , "ethereal:slab_palm_wood_quarter" , "ethereal:slab_palm_wood_three_quarter" , "ethereal:slab_palm_wood_three_sides" , "ethereal:slab_palm_wood_three_sides_u" , "ethereal:slab_palm_wood_two_sides" , "ethereal:slab_redwood_wood" , "ethereal:slab_redwood_wood_1" , "ethereal:slab_redwood_wood_14" , "ethereal:slab_redwood_wood_15" , "ethereal:slab_redwood_wood_2" , "ethereal:slab_redwood_wood_quarter" , "ethereal:slab_redwood_wood_three_quarter" , "ethereal:slab_redwood_wood_three_sides" , "ethereal:slab_redwood_wood_three_sides_u" , "ethereal:slab_redwood_wood_two_sides" , "ethereal:slab_sakura_wood" , "ethereal:slab_sakura_wood_1" , "ethereal:slab_sakura_wood_14" , "ethereal:slab_sakura_wood_15" , "ethereal:slab_sakura_wood_2" , "ethereal:slab_sakura_wood_quarter" , "ethereal:slab_sakura_wood_three_quarter" , "ethereal:slab_sakura_wood_three_sides" , "ethereal:slab_sakura_wood_three_sides_u" , "ethereal:slab_sakura_wood_two_sides" , "ethereal:slab_snowbrick" , "ethereal:slab_snowbrick_1" , "ethereal:slab_snowbrick_14" , "ethereal:slab_snowbrick_15" , "ethereal:slab_snowbrick_2" , "ethereal:slab_snowbrick_quarter" , "ethereal:slab_snowbrick_three_quarter" , "ethereal:slab_snowbrick_three_sides" , "ethereal:slab_snowbrick_three_sides_u" , "ethereal:slab_snowbrick_two_sides" , "ethereal:slab_willow_wood" , "ethereal:slab_willow_wood_1" , "ethereal:slab_willow_wood_14" , "ethereal:slab_willow_wood_15" , "ethereal:slab_willow_wood_2" , "ethereal:slab_willow_wood_quarter" , "ethereal:slab_willow_wood_three_quarter" , "ethereal:slab_willow_wood_three_sides" , "ethereal:slab_willow_wood_three_sides_u" , "ethereal:slab_willow_wood_two_sides" , "ethereal:slab_yellow_wood" , "ethereal:slab_yellow_wood_1" , "ethereal:slab_yellow_wood_14" , "ethereal:slab_yellow_wood_15" , "ethereal:slab_yellow_wood_2" , "ethereal:slab_yellow_wood_quarter" , "ethereal:slab_yellow_wood_three_quarter" , "ethereal:slab_yellow_wood_three_sides" , "ethereal:slab_yellow_wood_three_sides_u" , "ethereal:slab_yellow_wood_two_sides" , "ethereal:slope_bamboo_wood" , "ethereal:slope_bamboo_wood_cut" , "ethereal:slope_bamboo_wood_half" , "ethereal:slope_bamboo_wood_half_raised" , "ethereal:slope_bamboo_wood_inner" , "ethereal:slope_bamboo_wood_inner_cut" , "ethereal:slope_bamboo_wood_inner_cut_half" , "ethereal:slope_bamboo_wood_inner_cut_half_raised" , "ethereal:slope_bamboo_wood_inner_half" , "ethereal:slope_bamboo_wood_inner_half_raised" , "ethereal:slope_bamboo_wood_outer" , "ethereal:slope_bamboo_wood_outer_cut" , "ethereal:slope_bamboo_wood_outer_cut_half" , "ethereal:slope_bamboo_wood_outer_cut_half_raised" , "ethereal:slope_bamboo_wood_outer_half" , "ethereal:slope_bamboo_wood_outer_half_raised" , "ethereal:slope_banana_wood" , "ethereal:slope_banana_wood_cut" , "ethereal:slope_banana_wood_half" , "ethereal:slope_banana_wood_half_raised" , "ethereal:slope_banana_wood_inner" , "ethereal:slope_banana_wood_inner_cut" , "ethereal:slope_banana_wood_inner_cut_half" , "ethereal:slope_banana_wood_inner_cut_half_raised" , "ethereal:slope_banana_wood_inner_half" , "ethereal:slope_banana_wood_inner_half_raised" , "ethereal:slope_banana_wood_outer" , "ethereal:slope_banana_wood_outer_cut" , "ethereal:slope_banana_wood_outer_cut_half" , "ethereal:slope_banana_wood_outer_cut_half_raised" , "ethereal:slope_banana_wood_outer_half" , "ethereal:slope_banana_wood_outer_half_raised" , "ethereal:slope_birch_wood" , "ethereal:slope_birch_wood_cut" , "ethereal:slope_birch_wood_half" , "ethereal:slope_birch_wood_half_raised" , "ethereal:slope_birch_wood_inner" , "ethereal:slope_birch_wood_inner_cut" , "ethereal:slope_birch_wood_inner_cut_half" , "ethereal:slope_birch_wood_inner_cut_half_raised" , "ethereal:slope_birch_wood_inner_half" , "ethereal:slope_birch_wood_inner_half_raised" , "ethereal:slope_birch_wood_outer" , "ethereal:slope_birch_wood_outer_cut" , "ethereal:slope_birch_wood_outer_cut_half" , "ethereal:slope_birch_wood_outer_cut_half_raised" , "ethereal:slope_birch_wood_outer_half" , "ethereal:slope_birch_wood_outer_half_raised" , "ethereal:slope_crystal_block" , "ethereal:slope_crystal_block_cut" , "ethereal:slope_crystal_block_half" , "ethereal:slope_crystal_block_half_raised" , "ethereal:slope_crystal_block_inner" , "ethereal:slope_crystal_block_inner_cut" , "ethereal:slope_crystal_block_inner_cut_half" , "ethereal:slope_crystal_block_inner_cut_half_raised" , "ethereal:slope_crystal_block_inner_half" , "ethereal:slope_crystal_block_inner_half_raised" , "ethereal:slope_crystal_block_outer" , "ethereal:slope_crystal_block_outer_cut" , "ethereal:slope_crystal_block_outer_cut_half" , "ethereal:slope_crystal_block_outer_cut_half_raised" , "ethereal:slope_crystal_block_outer_half" , "ethereal:slope_crystal_block_outer_half_raised" , "ethereal:slope_dry_dirt" , "ethereal:slope_dry_dirt_cut" , "ethereal:slope_dry_dirt_half" , "ethereal:slope_dry_dirt_half_raised" , "ethereal:slope_dry_dirt_inner" , "ethereal:slope_dry_dirt_inner_cut" , "ethereal:slope_dry_dirt_inner_cut_half" , "ethereal:slope_dry_dirt_inner_cut_half_raised" , "ethereal:slope_dry_dirt_inner_half" , "ethereal:slope_dry_dirt_inner_half_raised" , "ethereal:slope_dry_dirt_outer" , "ethereal:slope_dry_dirt_outer_cut" , "ethereal:slope_dry_dirt_outer_cut_half" , "ethereal:slope_dry_dirt_outer_cut_half_raised" , "ethereal:slope_dry_dirt_outer_half" , "ethereal:slope_dry_dirt_outer_half_raised" , "ethereal:slope_frost_wood" , "ethereal:slope_frost_wood_cut" , "ethereal:slope_frost_wood_half" , "ethereal:slope_frost_wood_half_raised" , "ethereal:slope_frost_wood_inner" , "ethereal:slope_frost_wood_inner_cut" , "ethereal:slope_frost_wood_inner_cut_half" , "ethereal:slope_frost_wood_inner_cut_half_raised" , "ethereal:slope_frost_wood_inner_half" , "ethereal:slope_frost_wood_inner_half_raised" , "ethereal:slope_frost_wood_outer" , "ethereal:slope_frost_wood_outer_cut" , "ethereal:slope_frost_wood_outer_cut_half" , "ethereal:slope_frost_wood_outer_cut_half_raised" , "ethereal:slope_frost_wood_outer_half" , "ethereal:slope_frost_wood_outer_half_raised" , "ethereal:slope_icebrick" , "ethereal:slope_icebrick_cut" , "ethereal:slope_icebrick_half" , "ethereal:slope_icebrick_half_raised" , "ethereal:slope_icebrick_inner" , "ethereal:slope_icebrick_inner_cut" , "ethereal:slope_icebrick_inner_cut_half" , "ethereal:slope_icebrick_inner_cut_half_raised" , "ethereal:slope_icebrick_inner_half" , "ethereal:slope_icebrick_inner_half_raised" , "ethereal:slope_icebrick_outer" , "ethereal:slope_icebrick_outer_cut" , "ethereal:slope_icebrick_outer_cut_half" , "ethereal:slope_icebrick_outer_cut_half_raised" , "ethereal:slope_icebrick_outer_half" , "ethereal:slope_icebrick_outer_half_raised" , "ethereal:slope_mushroom" , "ethereal:slope_mushroom_cut" , "ethereal:slope_mushroom_half" , "ethereal:slope_mushroom_half_raised" , "ethereal:slope_mushroom_inner" , "ethereal:slope_mushroom_inner_cut" , "ethereal:slope_mushroom_inner_cut_half" , "ethereal:slope_mushroom_inner_cut_half_raised" , "ethereal:slope_mushroom_inner_half" , "ethereal:slope_mushroom_inner_half_raised" , "ethereal:slope_mushroom_outer" , "ethereal:slope_mushroom_outer_cut" , "ethereal:slope_mushroom_outer_cut_half" , "ethereal:slope_mushroom_outer_cut_half_raised" , "ethereal:slope_mushroom_outer_half" , "ethereal:slope_mushroom_outer_half_raised" , "ethereal:slope_mushroom_trunk" , "ethereal:slope_mushroom_trunk_cut" , "ethereal:slope_mushroom_trunk_half" , "ethereal:slope_mushroom_trunk_half_raised" , "ethereal:slope_mushroom_trunk_inner" , "ethereal:slope_mushroom_trunk_inner_cut" , "ethereal:slope_mushroom_trunk_inner_cut_half" , "ethereal:slope_mushroom_trunk_inner_cut_half_raised" , "ethereal:slope_mushroom_trunk_inner_half" , "ethereal:slope_mushroom_trunk_inner_half_raised" , "ethereal:slope_mushroom_trunk_outer" , "ethereal:slope_mushroom_trunk_outer_cut" , "ethereal:slope_mushroom_trunk_outer_cut_half" , "ethereal:slope_mushroom_trunk_outer_cut_half_raised" , "ethereal:slope_mushroom_trunk_outer_half" , "ethereal:slope_mushroom_trunk_outer_half_raised" , "ethereal:slope_olive_wood" , "ethereal:slope_olive_wood_cut" , "ethereal:slope_olive_wood_half" , "ethereal:slope_olive_wood_half_raised" , "ethereal:slope_olive_wood_inner" , "ethereal:slope_olive_wood_inner_cut" , "ethereal:slope_olive_wood_inner_cut_half" , "ethereal:slope_olive_wood_inner_cut_half_raised" , "ethereal:slope_olive_wood_inner_half" , "ethereal:slope_olive_wood_inner_half_raised" , "ethereal:slope_olive_wood_outer" , "ethereal:slope_olive_wood_outer_cut" , "ethereal:slope_olive_wood_outer_cut_half" , "ethereal:slope_olive_wood_outer_cut_half_raised" , "ethereal:slope_olive_wood_outer_half" , "ethereal:slope_olive_wood_outer_half_raised" , "ethereal:slope_palm_wood" , "ethereal:slope_palm_wood_cut" , "ethereal:slope_palm_wood_half" , "ethereal:slope_palm_wood_half_raised" , "ethereal:slope_palm_wood_inner" , "ethereal:slope_palm_wood_inner_cut" , "ethereal:slope_palm_wood_inner_cut_half" , "ethereal:slope_palm_wood_inner_cut_half_raised" , "ethereal:slope_palm_wood_inner_half" , "ethereal:slope_palm_wood_inner_half_raised" , "ethereal:slope_palm_wood_outer" , "ethereal:slope_palm_wood_outer_cut" , "ethereal:slope_palm_wood_outer_cut_half" , "ethereal:slope_palm_wood_outer_cut_half_raised" , "ethereal:slope_palm_wood_outer_half" , "ethereal:slope_palm_wood_outer_half_raised" , "ethereal:slope_redwood_wood" , "ethereal:slope_redwood_wood_cut" , "ethereal:slope_redwood_wood_half" , "ethereal:slope_redwood_wood_half_raised" , "ethereal:slope_redwood_wood_inner" , "ethereal:slope_redwood_wood_inner_cut" , "ethereal:slope_redwood_wood_inner_cut_half" , "ethereal:slope_redwood_wood_inner_cut_half_raised" , "ethereal:slope_redwood_wood_inner_half" , "ethereal:slope_redwood_wood_inner_half_raised" , "ethereal:slope_redwood_wood_outer" , "ethereal:slope_redwood_wood_outer_cut" , "ethereal:slope_redwood_wood_outer_cut_half" , "ethereal:slope_redwood_wood_outer_cut_half_raised" , "ethereal:slope_redwood_wood_outer_half" , "ethereal:slope_redwood_wood_outer_half_raised" , "ethereal:slope_sakura_wood" , "ethereal:slope_sakura_wood_cut" , "ethereal:slope_sakura_wood_half" , "ethereal:slope_sakura_wood_half_raised" , "ethereal:slope_sakura_wood_inner" , "ethereal:slope_sakura_wood_inner_cut" , "ethereal:slope_sakura_wood_inner_cut_half" , "ethereal:slope_sakura_wood_inner_cut_half_raised" , "ethereal:slope_sakura_wood_inner_half" , "ethereal:slope_sakura_wood_inner_half_raised" , "ethereal:slope_sakura_wood_outer" , "ethereal:slope_sakura_wood_outer_cut" , "ethereal:slope_sakura_wood_outer_cut_half" , "ethereal:slope_sakura_wood_outer_cut_half_raised" , "ethereal:slope_sakura_wood_outer_half" , "ethereal:slope_sakura_wood_outer_half_raised" , "ethereal:slope_snowbrick" , "ethereal:slope_snowbrick_cut" , "ethereal:slope_snowbrick_half" , "ethereal:slope_snowbrick_half_raised" , "ethereal:slope_snowbrick_inner" , "ethereal:slope_snowbrick_inner_cut" , "ethereal:slope_snowbrick_inner_cut_half" , "ethereal:slope_snowbrick_inner_cut_half_raised" , "ethereal:slope_snowbrick_inner_half" , "ethereal:slope_snowbrick_inner_half_raised" , "ethereal:slope_snowbrick_outer" , "ethereal:slope_snowbrick_outer_cut" , "ethereal:slope_snowbrick_outer_cut_half" , "ethereal:slope_snowbrick_outer_cut_half_raised" , "ethereal:slope_snowbrick_outer_half" , "ethereal:slope_snowbrick_outer_half_raised" , "ethereal:slope_willow_wood" , "ethereal:slope_willow_wood_cut" , "ethereal:slope_willow_wood_half" , "ethereal:slope_willow_wood_half_raised" , "ethereal:slope_willow_wood_inner" , "ethereal:slope_willow_wood_inner_cut" , "ethereal:slope_willow_wood_inner_cut_half" , "ethereal:slope_willow_wood_inner_cut_half_raised" , "ethereal:slope_willow_wood_inner_half" , "ethereal:slope_willow_wood_inner_half_raised" , "ethereal:slope_willow_wood_outer" , "ethereal:slope_willow_wood_outer_cut" , "ethereal:slope_willow_wood_outer_cut_half" , "ethereal:slope_willow_wood_outer_cut_half_raised" , "ethereal:slope_willow_wood_outer_half" , "ethereal:slope_willow_wood_outer_half_raised" , "ethereal:slope_yellow_wood" , "ethereal:slope_yellow_wood_cut" , "ethereal:slope_yellow_wood_half" , "ethereal:slope_yellow_wood_half_raised" , "ethereal:slope_yellow_wood_inner" , "ethereal:slope_yellow_wood_inner_cut" , "ethereal:slope_yellow_wood_inner_cut_half" , "ethereal:slope_yellow_wood_inner_cut_half_raised" , "ethereal:slope_yellow_wood_inner_half" , "ethereal:slope_yellow_wood_inner_half_raised" , "ethereal:slope_yellow_wood_outer" , "ethereal:slope_yellow_wood_outer_cut" , "ethereal:slope_yellow_wood_outer_cut_half" , "ethereal:slope_yellow_wood_outer_cut_half_raised" , "ethereal:slope_yellow_wood_outer_half" , "ethereal:slope_yellow_wood_outer_half_raised" , "ethereal:snowbrick" , "ethereal:snowygrass" , "ethereal:stair_bamboo_wood" , "ethereal:stair_bamboo_wood_alt" , "ethereal:stair_bamboo_wood_alt_1" , "ethereal:stair_bamboo_wood_alt_2" , "ethereal:stair_bamboo_wood_alt_4" , "ethereal:stair_bamboo_wood_half" , "ethereal:stair_bamboo_wood_inner" , "ethereal:stair_bamboo_wood_outer" , "ethereal:stair_bamboo_wood_right_half" , "ethereal:stair_banana_wood" , "ethereal:stair_banana_wood_alt" , "ethereal:stair_banana_wood_alt_1" , "ethereal:stair_banana_wood_alt_2" , "ethereal:stair_banana_wood_alt_4" , "ethereal:stair_banana_wood_half" , "ethereal:stair_banana_wood_inner" , "ethereal:stair_banana_wood_outer" , "ethereal:stair_banana_wood_right_half" , "ethereal:stair_birch_wood" , "ethereal:stair_birch_wood_alt" , "ethereal:stair_birch_wood_alt_1" , "ethereal:stair_birch_wood_alt_2" , "ethereal:stair_birch_wood_alt_4" , "ethereal:stair_birch_wood_half" , "ethereal:stair_birch_wood_inner" , "ethereal:stair_birch_wood_outer" , "ethereal:stair_birch_wood_right_half" , "ethereal:stair_crystal_block" , "ethereal:stair_crystal_block_alt" , "ethereal:stair_crystal_block_alt_1" , "ethereal:stair_crystal_block_alt_2" , "ethereal:stair_crystal_block_alt_4" , "ethereal:stair_crystal_block_half" , "ethereal:stair_crystal_block_inner" , "ethereal:stair_crystal_block_outer" , "ethereal:stair_crystal_block_right_half" , "ethereal:stair_dry_dirt" , "ethereal:stair_dry_dirt_alt" , "ethereal:stair_dry_dirt_alt_1" , "ethereal:stair_dry_dirt_alt_2" , "ethereal:stair_dry_dirt_alt_4" , "ethereal:stair_dry_dirt_half" , "ethereal:stair_dry_dirt_inner" , "ethereal:stair_dry_dirt_outer" , "ethereal:stair_dry_dirt_right_half" , "ethereal:stair_frost_wood" , "ethereal:stair_frost_wood_alt" , "ethereal:stair_frost_wood_alt_1" , "ethereal:stair_frost_wood_alt_2" , "ethereal:stair_frost_wood_alt_4" , "ethereal:stair_frost_wood_half" , "ethereal:stair_frost_wood_inner" , "ethereal:stair_frost_wood_outer" , "ethereal:stair_frost_wood_right_half" , "ethereal:stair_icebrick" , "ethereal:stair_icebrick_alt" , "ethereal:stair_icebrick_alt_1" , "ethereal:stair_icebrick_alt_2" , "ethereal:stair_icebrick_alt_4" , "ethereal:stair_icebrick_half" , "ethereal:stair_icebrick_inner" , "ethereal:stair_icebrick_outer" , "ethereal:stair_icebrick_right_half" , "ethereal:stair_mushroom" , "ethereal:stair_mushroom_alt" , "ethereal:stair_mushroom_alt_1" , "ethereal:stair_mushroom_alt_2" , "ethereal:stair_mushroom_alt_4" , "ethereal:stair_mushroom_half" , "ethereal:stair_mushroom_inner" , "ethereal:stair_mushroom_outer" , "ethereal:stair_mushroom_right_half" , "ethereal:stair_mushroom_trunk" , "ethereal:stair_mushroom_trunk_alt" , "ethereal:stair_mushroom_trunk_alt_1" , "ethereal:stair_mushroom_trunk_alt_2" , "ethereal:stair_mushroom_trunk_alt_4" , "ethereal:stair_mushroom_trunk_half" , "ethereal:stair_mushroom_trunk_inner" , "ethereal:stair_mushroom_trunk_outer" , "ethereal:stair_mushroom_trunk_right_half" , "ethereal:stair_olive_wood" , "ethereal:stair_olive_wood_alt" , "ethereal:stair_olive_wood_alt_1" , "ethereal:stair_olive_wood_alt_2" , "ethereal:stair_olive_wood_alt_4" , "ethereal:stair_olive_wood_half" , "ethereal:stair_olive_wood_inner" , "ethereal:stair_olive_wood_outer" , "ethereal:stair_olive_wood_right_half" , "ethereal:stair_palm_wood" , "ethereal:stair_palm_wood_alt" , "ethereal:stair_palm_wood_alt_1" , "ethereal:stair_palm_wood_alt_2" , "ethereal:stair_palm_wood_alt_4" , "ethereal:stair_palm_wood_half" , "ethereal:stair_palm_wood_inner" , "ethereal:stair_palm_wood_outer" , "ethereal:stair_palm_wood_right_half" , "ethereal:stair_redwood_wood" , "ethereal:stair_redwood_wood_alt" , "ethereal:stair_redwood_wood_alt_1" , "ethereal:stair_redwood_wood_alt_2" , "ethereal:stair_redwood_wood_alt_4" , "ethereal:stair_redwood_wood_half" , "ethereal:stair_redwood_wood_inner" , "ethereal:stair_redwood_wood_outer" , "ethereal:stair_redwood_wood_right_half" , "ethereal:stair_sakura_wood" , "ethereal:stair_sakura_wood_alt" , "ethereal:stair_sakura_wood_alt_1" , "ethereal:stair_sakura_wood_alt_2" , "ethereal:stair_sakura_wood_alt_4" , "ethereal:stair_sakura_wood_half" , "ethereal:stair_sakura_wood_inner" , "ethereal:stair_sakura_wood_outer" , "ethereal:stair_sakura_wood_right_half" , "ethereal:stair_snowbrick" , "ethereal:stair_snowbrick_alt" , "ethereal:stair_snowbrick_alt_1" , "ethereal:stair_snowbrick_alt_2" , "ethereal:stair_snowbrick_alt_4" , "ethereal:stair_snowbrick_half" , "ethereal:stair_snowbrick_inner" , "ethereal:stair_snowbrick_outer" , "ethereal:stair_snowbrick_right_half" , "ethereal:stair_willow_wood" , "ethereal:stair_willow_wood_alt" , "ethereal:stair_willow_wood_alt_1" , "ethereal:stair_willow_wood_alt_2" , "ethereal:stair_willow_wood_alt_4" , "ethereal:stair_willow_wood_half" , "ethereal:stair_willow_wood_inner" , "ethereal:stair_willow_wood_outer" , "ethereal:stair_willow_wood_right_half" , "ethereal:stair_yellow_wood" , "ethereal:stair_yellow_wood_alt" , "ethereal:stair_yellow_wood_alt_1" , "ethereal:stair_yellow_wood_alt_2" , "ethereal:stair_yellow_wood_alt_4" , "ethereal:stair_yellow_wood_half" , "ethereal:stair_yellow_wood_inner" , "ethereal:stair_yellow_wood_outer" , "ethereal:stair_yellow_wood_right_half" , "ethereal:stone_ladder" , "ethereal:strawberry_1" , "ethereal:strawberry_2" , "ethereal:strawberry_3" , "ethereal:strawberry_4" , "ethereal:strawberry_5" , "ethereal:strawberry_6" , "ethereal:strawberry_7" , "ethereal:strawberry_8" , "ethereal:vine" , "ethereal:willow_sapling" , "ethereal:willow_trunk" , "ethereal:willow_twig" , "ethereal:willow_wood" , "ethereal:yellow_tree_sapling" , "ethereal:yellow_trunk" , "ethereal:yellow_wood" , "ethereal:yellowleaves" , "fake_fire:embers" , "fake_fire:fancy_fire" , "fake_fire:ice_fire" , "farming:barley_1" , "farming:barley_2" , "farming:barley_3" , "farming:barley_4" , "farming:barley_5" , "farming:barley_6" , "farming:barley_7" , "farming:beanbush" , "farming:beanpole" , "farming:beanpole_1" , "farming:beanpole_2" , "farming:beanpole_3" , "farming:beanpole_4" , "farming:beanpole_5" , "farming:beetroot_1" , "farming:beetroot_5" , "farming:big_pumpkin" , "farming:big_pumpkin_corner" , "farming:big_pumpkin_top" , "farming:blueberry_1" , "farming:blueberry_2" , "farming:blueberry_3" , "farming:blueberry_4" , "farming:bottle_ethanol" , "farming:carrot_1" , "farming:carrot_2" , "farming:carrot_3" , "farming:carrot_4" , "farming:carrot_5" , "farming:carrot_6" , "farming:carrot_7" , "farming:carrot_8" , "farming:chili_1" , "farming:chili_2" , "farming:chili_3" , "farming:chili_4" , "farming:chili_5" , "farming:chili_6" , "farming:chili_7" , "farming:chili_8" , "farming:cocoa_1" , "farming:cocoa_2" , "farming:cocoa_3" , "farming:cocoa_4" , "farming:coffee_1" , "farming:coffee_2" , "farming:coffee_3" , "farming:coffee_4" , "farming:coffee_5" , "farming:coffee_cup" , "farming:coffee_cup_hot" , "farming:corn_1" , "farming:corn_2" , "farming:corn_3" , "farming:corn_4" , "farming:corn_5" , "farming:corn_6" , "farming:corn_7" , "farming:corn_8" , "farming:cotton_1" , "farming:cotton_2" , "farming:cotton_3" , "farming:cotton_4" , "farming:cotton_5" , "farming:cotton_6" , "farming:cotton_7" , "farming:cotton_8" , "farming:cucumber_1" , "farming:cucumber_2" , "farming:cucumber_3" , "farming:cucumber_4" , "farming:desert_sand_soil" , "farming:desert_sand_soil_wet" , "farming:drinking_cup" , "farming:garlic_1" , "farming:garlic_5" , "farming:garlic_braid" , "farming:grapebush" , "farming:grapes_1" , "farming:grapes_2" , "farming:grapes_3" , "farming:grapes_4" , "farming:grapes_5" , "farming:grapes_6" , "farming:grapes_7" , "farming:grapes_8" , "farming:hemp_1" , "farming:hemp_2" , "farming:hemp_3" , "farming:hemp_4" , "farming:hemp_5" , "farming:hemp_6" , "farming:hemp_7" , "farming:hemp_8" , "farming:hemp_block" , "farming:hemp_oil" , "farming:hemp_rope" , "farming:jackolantern" , "farming:jackolantern_on" , "farming:melon_1" , "farming:melon_2" , "farming:melon_3" , "farming:melon_4" , "farming:melon_5" , "farming:melon_6" , "farming:melon_7" , "farming:melon_8" , "farming:oat_8" , "farming:onion_1" , "farming:onion_2" , "farming:onion_3" , "farming:onion_4" , "farming:onion_5" , "farming:pea_5" , "farming:pepper_1" , "farming:pepper_2" , "farming:pepper_3" , "farming:pepper_4" , "farming:pepper_5" , "farming:pepper_ground" , "farming:pineapple" , "farming:pineapple_5" , "farming:pineapple_8" , "farming:potato_1" , "farming:potato_2" , "farming:potato_3" , "farming:potato_4" , "farming:pumpkin" , "farming:pumpkin_1" , "farming:pumpkin_2" , "farming:pumpkin_3" , "farming:pumpkin_4" , "farming:pumpkin_5" , "farming:pumpkin_6" , "farming:pumpkin_7" , "farming:pumpkin_8" , "farming:raspberry_1" , "farming:raspberry_2" , "farming:raspberry_3" , "farming:raspberry_4" , "farming:rhubarb_1" , "farming:rhubarb_2" , "farming:rhubarb_3" , "farming:rhubarbpie_0" , "farming:rhubarbpie_1" , "farming:rhubarbpie_2" , "farming:rhubarbpie_3" , "farming:rice_1" , "farming:rice_8" , "farming:rose_water" , "farming:rye_8" , "farming:salt" , "farming:scarecrow" , "farming:scarecrow_bottom" , "farming:scarecrow_light" , "farming:seed_barley" , "farming:seed_cotton" , "farming:seed_hemp" , "farming:seed_wheat" , "farming:soil" , "farming:soil_wet" , "farming:straw" , "farming:tomato_1" , "farming:tomato_2" , "farming:tomato_3" , "farming:tomato_4" , "farming:tomato_5" , "farming:tomato_6" , "farming:tomato_7" , "farming:tomato_8" , "farming:trellis" , "farming:weed" , "farming:wheat_1" , "farming:wheat_2" , "farming:wheat_3" , "farming:wheat_4" , "farming:wheat_5" , "farming:wheat_6" , "farming:wheat_7" , "farming:wheat_8" , "farming_plus:banana" , "farming_plus:banana_leaves" , "farming_plus:banana_sapling" , "farming_plus:carrot" , "farming_plus:carrot_1" , "farming_plus:cocoa" , "farming_plus:cocoa_leaves" , "farming_plus:cocoa_sapling" , "farming_plus:orange" , "farming_plus:orange_1" , "farming_plus:potato" , "farming_plus:potato_1" , "farming_plus:rhubarb" , "farming_plus:rhubarb_1" , "farming_plus:strawberry" , "farming_plus:strawberry_1" , "farming_plus:tomato" , "farming_plus:tomato_1" , "ferns:fern_01" , "ferns:fern_02" , "ferns:fern_03" , "ferns:fern_trunk" , "ferns:fern_trunk_big" , "ferns:fern_trunk_big_top" , "ferns:horsetail_01" , "ferns:horsetail_02" , "ferns:horsetail_03" , "ferns:horsetail_04" , "ferns:sapling_giant_tree_fern" , "ferns:sapling_tree_fern" , "ferns:tree_fern_leave_big" , "ferns:tree_fern_leave_big_end" , "ferns:tree_fern_leaves" , "ferns:tree_fern_leaves_02" , "ferns:tree_fern_leaves_giant" , "fire:basic_flame" , "fire:permanent_flame" , "fireflies:firefly" , "fireflies:hidden_firefly" , "flowers:chrysanthemum_green" , "flowers:dandelion_white" , "flowers:dandelion_yellow" , "flowers:geranium" , "flowers:mushroom_brown" , "flowers:mushroom_red" , "flowers:potted_bonsai" , "flowers:rose" , "flowers:seaweed" , "flowers:seaweed_1" , "flowers:seaweed_2" , "flowers:seaweed_3" , "flowers:seaweed_4" , "flowers:sunflower" , "flowers:tulip" , "flowers:tulip_black" , "flowers:viola" , "flowers:waterlily" , "flowers:waterlily_225" , "flowers:waterlily_45" , "flowers:waterlily_675" , "flowers:waterlily_s1" , "flowers:waterlily_s2" , "flowers:waterlily_s3" , "flowers:waterlily_s4" , "gardening:dandelions" , "gardening:packed_dirt" , "gardening:rosebush" , "gloopblocks:obsidian_cooled" , "gloopblocks:stone_mossy" , "glooptest:mineral_akalin" , "glooptest:mineral_alatro" , "glooptest:mineral_amethyst" , "glooptest:mineral_arol" , "glooptest:mineral_desert_coal" , "glooptest:mineral_desert_iron" , "glooptest:mineral_emerald" , "glooptest:mineral_kalite" , "glooptest:mineral_ruby" , "glooptest:mineral_sapphire" , "glooptest:mineral_talinite" , "glooptest:mineral_topaz" , "glow:fireflies" , "glow:shrooms" , "glow:stone_with_worms" , "glowcrystals:ore" , "glowstone:glowstone" , "grassblock:block" , "halloween:pumpkin" , "handholds:climbable_air" , "handholds:desert_stone" , "handholds:ice" , "handholds:sandstone" , "handholds:stone" , "homedecor:armchair" , "homedecor:bathroom_tiles_dark" , "homedecor:bathroom_tiles_light" , "homedecor:bathroom_tiles_medium" , "homedecor:bed_kingsize" , "homedecor:bed_regular" , "homedecor:beer_mug" , "homedecor:beer_tap" , "homedecor:bench_large_2" , "homedecor:bottle_green" , "homedecor:ceiling_lantern" , "homedecor:coat_tree" , "homedecor:cobweb_centered" , "homedecor:cobweb_corner" , "homedecor:cobweb_flat" , "homedecor:cobweb_plantlike" , "homedecor:coffee_maker" , "homedecor:curtain_closed" , "homedecor:curtain_open" , "homedecor:curtainrod_wood" , "homedecor:cutlery_set" , "homedecor:desk_globe" , "homedecor:dishwasher_steel" , "homedecor:fence_wrought_iron" , "homedecor:fence_wrought_iron_2" , "homedecor:glowlight_half" , "homedecor:glowlight_quarter" , "homedecor:glowlight_small_cube" , "homedecor:grandfather_clock" , "homedecor:ground_lantern" , "homedecor:hanging_lantern" , "homedecor:japanese_wall_bottom" , "homedecor:japanese_wall_middle" , "homedecor:japanese_wall_top" , "homedecor:kitchen_chair_wood" , "homedecor:kitchen_faucet" , "homedecor:lattice_lantern_large" , "homedecor:lattice_lantern_small" , "homedecor:office_chair_basic" , "homedecor:piano" , "homedecor:plasma_lamp" , "homedecor:pool_table" , "homedecor:potted_geranium" , "homedecor:potted_tulip" , "homedecor:shingle_inner_corner_asphalt" , "homedecor:shingle_outer_corner_asphalt" , "homedecor:shingle_side_asphalt" , "homedecor:shingle_side_wood" , "homedecor:shingles_wood" , "homedecor:shower_head" , "homedecor:shrubbery_green" , "homedecor:shrubbery_large_green" , "homedecor:shrubbery_large_red" , "homedecor:shrubbery_large_yellow" , "homedecor:shrubbery_red" , "homedecor:shrubbery_yellow" , "homedecor:sink" , "homedecor:skylight" , "homedecor:skylight_frosted" , "homedecor:stained_glass" , "homedecor:stonepath" , "homedecor:table_lamp_hi" , "homedecor:table_mahogany" , "homedecor:taps" , "homedecor:tatami_mat" , "homedecor:toilet" , "homedecor:toilet_paper" , "homedecor:torch_wall" , "homedecor:trash_can" , "homedecor:trash_can_green" , "homedecor:wall_sconce" , "homedecor:welcome_mat_green" , "homedecor:window_plain" , "icetools:ice_crystal_block" , "icetools:stone_with_ice_crystal" , "ilights:light" , "lapis:lapis_block" , "lapis:lapis_brick" , "lapis:lapis_cobble" , "lapis:lapis_tile" , "lapis:lazurite_block" , "lapis:lazurite_brick" , "lapis:pyrite_block" , "lapis:pyrite_ore" , "lapis:rosace" , "lavalamp:lavalamp" , "lavalamp:lavalamp_off" , "lottblocks:snowycobble" , "lottblocks:tree_mossy" , "lottblocks:tree_vine" , "lottfarming:athelas_1" , "lottfarming:athelas_2" , "lottfarming:athelas_3" , "lottfarming:barley_1" , "lottfarming:barley_2" , "lottfarming:barley_3" , "lottfarming:berries_1" , "lottfarming:berries_2" , "lottfarming:berries_3" , "lottfarming:berries_4" , "lottfarming:blue_mushroom" , "lottfarming:blue_mushroom_1" , "lottfarming:blue_mushroom_2" , "lottfarming:blue_mushroom_3" , "lottfarming:blue_mushroom_4" , "lottfarming:brown_mushroom_1" , "lottfarming:brown_mushroom_2" , "lottfarming:brown_mushroom_3" , "lottfarming:brown_mushroom_4" , "lottfarming:cabbage" , "lottfarming:cabbage_1" , "lottfarming:cabbage_2" , "lottfarming:cabbage_3" , "lottfarming:corn_1" , "lottfarming:corn_21" , "lottfarming:corn_22" , "lottfarming:corn_23" , "lottfarming:corn_3" , "lottfarming:corn_31" , "lottfarming:corn_32" , "lottfarming:corn_4" , "lottfarming:decay_tree" , "lottfarming:green_mushroom" , "lottfarming:green_mushroom_1" , "lottfarming:green_mushroom_2" , "lottfarming:green_mushroom_3" , "lottfarming:green_mushroom_4" , "lottfarming:melon_1" , "lottfarming:melon_2" , "lottfarming:melon_3" , "lottfarming:pipeweed_1" , "lottfarming:pipeweed_2" , "lottfarming:pipeweed_3" , "lottfarming:pipeweed_4" , "lottfarming:potato_1" , "lottfarming:potato_2" , "lottfarming:potato_3" , "lottfarming:red_mushroom" , "lottfarming:red_mushroom_1" , "lottfarming:red_mushroom_3" , "lottfarming:red_mushroom_4" , "lottfarming:tomatoes_1" , "lottfarming:tomatoes_2" , "lottfarming:tomatoes_3" , "lottfarming:tomatoes_4" , "lottfarming:turnips_1" , "lottfarming:turnips_2" , "lottfarming:turnips_3" , "lottfarming:turnips_4" , "lottmapgen:angmarfort" , "lottmapgen:angsnowblock" , "lottmapgen:beechgen" , "lottmapgen:blackflowing" , "lottmapgen:blacksource" , "lottmapgen:default_grass" , "lottmapgen:dunland_grass" , "lottmapgen:fangorn_grass" , "lottmapgen:fog" , "lottmapgen:frozen_stone" , "lottmapgen:gondor_grass" , "lottmapgen:gondorfort" , "lottmapgen:hobbithole" , "lottmapgen:ironhill_grass" , "lottmapgen:ithilien_grass" , "lottmapgen:lorien_grass" , "lottmapgen:mallorngen" , "lottmapgen:mallornhouse" , "lottmapgen:mirkhouse" , "lottmapgen:mirkleaves" , "lottmapgen:mirktreegen" , "lottmapgen:mirkwood_grass" , "lottmapgen:mordor_stone" , "lottmapgen:orcfort" , "lottmapgen:rohan_grass" , "lottmapgen:rohanfort" , "lottmapgen:shire_grass" , "lottnpc:dwarven_guard_spawner" , "lottnpc:elven_guard_spawner" , "lottnpc:gondor_guard_spawner" , "lottnpc:orc_guard_spawner" , "lottnpc:rohan_guard_spawner" , "lottnpc:uruk_hai_guard_spawner" , "lottores:blue_gem_ore" , "lottores:galvorn_block" , "lottores:geodes_crystal_1" , "lottores:geodes_crystal_2" , "lottores:geodes_crystal_3" , "lottores:geodes_crystal_4" , "lottores:geodes_crystal_5" , "lottores:ithildin_0" , "lottores:ithildin_1" , "lottores:ithildin_lamp_0" , "lottores:ithildin_lamp_1" , "lottores:ithildin_stone_0" , "lottores:ithildin_stone_1" , "lottores:ithildin_stonelamp_0" , "lottores:ithildin_stonelamp_1" , "lottores:lead_block" , "lottores:lead_ore" , "lottores:limestone" , "lottores:limestone_ore" , "lottores:marble" , "lottores:mineral_pearl" , "lottores:mineral_salt" , "lottores:mithril_block" , "lottores:mithril_ore" , "lottores:pearl_block" , "lottores:red_gem_ore" , "lottores:rough_rock" , "lottores:salt" , "lottores:salt_block" , "lottores:silver_block" , "lottores:silver_ore" , "lottores:tilkal" , "lottores:tin_block" , "lottores:tin_ore" , "lottores:white_gem_ore" , "lottother:air" , "lottother:angmarms_off" , "lottother:blue_torch" , "lottother:bronzeblock" , "lottother:copperblock" , "lottother:diamondblock" , "lottother:dirt" , "lottother:elfms_off" , "lottother:galvorn_block" , "lottother:goldblock" , "lottother:gondorms_off" , "lottother:hobbitms_off" , "lottother:lead_block" , "lottother:meseblock" , "lottother:mithril_block" , "lottother:mordor_stone" , "lottother:mordorms_off" , "lottother:orc_torch" , "lottother:rohanms_off" , "lottother:rohanms_on" , "lottother:silver_block" , "lottother:snow" , "lottother:tilkal_block" , "lottother:tin_block" , "lottplants:alderleaf" , "lottplants:aldersapling" , "lottplants:aldertree" , "lottplants:alderwood" , "lottplants:anemones" , "lottplants:anemones_fake" , "lottplants:appleleaf" , "lottplants:asphodel" , "lottplants:asphodel_fake" , "lottplants:athelas" , "lottplants:barley_wild" , "lottplants:beechleaf" , "lottplants:berries_wild" , "lottplants:birchleaf" , "lottplants:birchsapling" , "lottplants:birchtree" , "lottplants:birchwood" , "lottplants:brambles_of_mordor" , "lottplants:brambles_of_mordor_fake" , "lottplants:cabbage_wild" , "lottplants:corn_wild" , "lottplants:culumaldaleaf" , "lottplants:culumaldasapling" , "lottplants:eglantive" , "lottplants:eglantive_fake" , "lottplants:elanor" , "lottplants:elanor_fake" , "lottplants:elmleaf" , "lottplants:elmsapling" , "lottplants:fireflies" , "lottplants:firleaf" , "lottplants:firsapling" , "lottplants:iris" , "lottplants:iris_fake" , "lottplants:lebethronleaf" , "lottplants:lebethronsapling" , "lottplants:lebethrontree" , "lottplants:lebethronwood" , "lottplants:lissuin" , "lottplants:lissuin_fake" , "lottplants:lorien_grass_1" , "lottplants:lorien_grass_2" , "lottplants:lorien_grass_3" , "lottplants:lorien_grass_4" , "lottplants:mallornleaf" , "lottplants:mallornsapling" , "lottplants:mallorntree" , "lottplants:mallorntree_young" , "lottplants:mallornwood" , "lottplants:mallos" , "lottplants:mallos_fake" , "lottplants:melon_wild" , "lottplants:mirkleaf" , "lottplants:mirksapling" , "lottplants:mushroom_wild" , "lottplants:niphredil" , "lottplants:niphredil_fake" , "lottplants:pilinehtar" , "lottplants:pilinehtar_fake" , "lottplants:pineleaf" , "lottplants:pinesapling" , "lottplants:pinetree" , "lottplants:pinewood" , "lottplants:pipeweed_wild" , "lottplants:plum" , "lottplants:plumleaf" , "lottplants:plumsapling" , "lottplants:potato_wild" , "lottplants:rowanberry" , "lottplants:rowanleaf" , "lottplants:rowansapling" , "lottplants:seregon" , "lottplants:seregon_fake" , "lottplants:tomatoes_wild" , "lottplants:turnips_wild" , "lottplants:whiteleaf" , "lottplants:whitesapling" , "lottplants:yavannamirefruit" , "lottplants:yavannamireleaf" , "lottplants:yavannamiresapling" , "lottplants:yellowflowers" , "lottpotion:orcdraught_power1" , "lottserver:marble" , "lottserver:tilkal" , "lottserver:war" , "loud_walking:basalt" , "loud_walking:blackened_shrub" , "loud_walking:cloud_scrith" , "loud_walking:controls" , "loud_walking:cracked_stone" , "loud_walking:dirt_with_odd_grass" , "loud_walking:granite" , "loud_walking:leaves_black" , "loud_walking:orchid" , "loud_walking:polluted_dirt" , "loud_walking:scrith" , "loud_walking:sky_scrith" , "loud_walking:sticks_default" , "loud_walking:stone_spike_1" , "loud_walking:stone_spike_2" , "loud_walking:stone_spike_3" , "loud_walking:stone_spike_4" , "loud_walking:strange_plant_1" , "loud_walking:strange_plant_2" , "loud_walking:transparent_scrith" , "loud_walking:water_poison_flowing" , "loud_walking:water_poison_source" , "lrfurn:armchair" , "lrfurn:coffeetable" , "lrfurn:endtable" , "lrfurn:longsofa" , "lrfurn:sofa" , "magmatools:stone_with_magma_crystal" , "maptools:black" , "maptools:brick" , "maptools:bronzeblock" , "maptools:cactus" , "maptools:clay" , "maptools:climb" , "maptools:coalblock" , "maptools:cobble" , "maptools:copperblock" , "maptools:desert_cobble" , "maptools:desert_sand" , "maptools:desert_sand_soil_wet" , "maptools:desert_stone" , "maptools:desert_stonebrick" , "maptools:diamondblock" , "maptools:dirt" , "maptools:fake_fire" , "maptools:fake_walkable" , "maptools:fake_walkable_pointable" , "maptools:fullclip" , "maptools:fullclip_face" , "maptools:fullgrass" , "maptools:glass" , "maptools:goldblock" , "maptools:grass" , "maptools:gravel" , "maptools:igniter" , "maptools:ignore_like" , "maptools:ignore_like_no_clip" , "maptools:ignore_like_no_clip_no_point" , "maptools:ignore_like_no_point" , "maptools:jungletree" , "maptools:junglewood" , "maptools:kill" , "maptools:ladder" , "maptools:leaves" , "maptools:lightbulb" , "maptools:mossycobble" , "maptools:nobuild" , "maptools:nointeract" , "maptools:papyrus" , "maptools:permanent_fire" , "maptools:playerclip" , "maptools:playerclip_bottom" , "maptools:playerclip_top" , "maptools:sand" , "maptools:sandstone" , "maptools:sandstone_brick" , "maptools:smoke" , "maptools:soil_wet" , "maptools:steelblock" , "maptools:stone" , "maptools:stonebrick" , "maptools:superapple" , "maptools:tree" , "maptools:white" , "maptools:wood" , "mese_crystals:mese_crystal_ore1" , "mese_crystals:mese_crystal_ore2" , "mese_crystals:mese_crystal_ore3" , "mese_crystals:mese_crystal_ore4" , "mg_villages:lava_source_tamed" , "mg_villages:road" , "mg_villages:soil" , "mg_villages:torch" , "mobs:cheeseblock" , "mobs:cobweb" , "mobs:egg" , "mobs:fence_wood" , "mobs:honey_block" , "molehills:molehill" , "moontest:air" , "moontest:apple" , "moontest:basalt" , "moontest:cobble" , "moontest:cobbleslab" , "moontest:cobblestair" , "moontest:compressed_dust" , "moontest:copperore" , "moontest:diamondore" , "moontest:dust" , "moontest:goldore" , "moontest:hlflowing" , "moontest:hlsource" , "moontest:ironore" , "moontest:leaves" , "moontest:light_stick" , "moontest:lightore" , "moontest:lunariumblock" , "moontest:lunariumore" , "moontest:meseore" , "moontest:phosphorusblock" , "moontest:phosphorusore" , "moontest:sapling" , "moontest:siliconore" , "moontest:soil" , "moontest:stone" , "moontest:titaniumore" , "moontest:tree" , "moontest:unlit_torch" , "moontest:vacuum" , "moontest:waterice" , "more_gold:legendary_gold" , "more_gold:purified_gold" , "more_gold:radiant_gold" , "more_gold:refined_gold" , "more_gold:true_gold" , "moreblocks:glow_glass" , "moreblocks:super_glow_glass" , "moreores:copper_rail" , "moreores:mineral_mithril" , "moreores:mineral_silver" , "moreores:mineral_tin" , "moresnow:autumnleaves_tree" , "moresnow:snow_fence_top" , "moresnow:snow_slab_top" , "moresnow:snow_stair_top" , "moresnow:snow_top" , "moresnow:winterleaves_tree" , "moresnow:wool_cyan" , "moretrees:acacia_sapling_ongen" , "moretrees:acorn" , "moretrees:apple_blossoms" , "moretrees:apple_tree_leaves" , "moretrees:apple_tree_sapling_ongen" , "moretrees:apple_tree_trunk" , "moretrees:beech_leaves" , "moretrees:beech_trunk" , "moretrees:birch_leaves" , "moretrees:birch_sapling_ongen" , "moretrees:birch_trunk" , "moretrees:cedar_cone" , "moretrees:cedar_leaves" , "moretrees:cedar_sapling" , "moretrees:cedar_sapling_ongen" , "moretrees:cedar_trunk" , "moretrees:coconut" , "moretrees:coconut_0" , "moretrees:coconut_1" , "moretrees:coconut_2" , "moretrees:coconut_3" , "moretrees:date_palm_ffruit_trunk" , "moretrees:date_palm_fruit_trunk" , "moretrees:date_palm_leaves" , "moretrees:date_palm_mfruit_trunk" , "moretrees:date_palm_sapling" , "moretrees:date_palm_sapling_ongen" , "moretrees:date_palm_trunk" , "moretrees:dates_f0" , "moretrees:dates_f1" , "moretrees:dates_f2" , "moretrees:dates_f3" , "moretrees:dates_f4" , "moretrees:dates_fn" , "moretrees:dates_m0" , "moretrees:dates_n" , "moretrees:fir_cone" , "moretrees:fir_leaves" , "moretrees:fir_leaves_bright" , "moretrees:fir_sapling_ongen" , "moretrees:fir_trunk" , "moretrees:jungletree_leaves_red" , "moretrees:jungletree_leaves_yellow" , "moretrees:jungletree_sapling_ongen" , "moretrees:jungletree_trunk" , "moretrees:micro_apple_tree_trunk_1" , "moretrees:micro_fir_trunk_15" , "moretrees:micro_spruce_trunk_14" , "moretrees:oak_leaves" , "moretrees:oak_sapling_ongen" , "moretrees:oak_trunk" , "moretrees:palm_fruit_trunk" , "moretrees:palm_fruit_trunk_gen" , "moretrees:palm_leaves" , "moretrees:palm_sapling" , "moretrees:palm_sapling_ongen" , "moretrees:palm_trunk" , "moretrees:pine_cone" , "moretrees:poplar_leaves" , "moretrees:poplar_sapling_ongen" , "moretrees:poplar_small_sapling_ongen" , "moretrees:poplar_trunk" , "moretrees:rubber_tree_leaves" , "moretrees:rubber_tree_sapling_ongen" , "moretrees:rubber_tree_trunk" , "moretrees:rubber_tree_trunk_empty" , "moretrees:sequoia_leaves" , "moretrees:sequoia_sapling_ongen" , "moretrees:sequoia_trunk" , "moretrees:spruce_cone" , "moretrees:spruce_leaves" , "moretrees:spruce_sapling_ongen" , "moretrees:spruce_trunk" , "moretrees:willow_leaves" , "moretrees:willow_sapling_ongen" , "moretrees:willow_trunk" , "mymillwork:base_fancy_default_sandstone" , "mymillwork:column_base_default_sandstone" , "mymillwork:column_default_sandstone" , "mymillwork:column_quarter_default_sandstone" , "mymillwork:column_quarter_fancybase_default_sandstone" , "mymillwork:crownmould_default_sandstone" , "mymillwork:crownmould_ic_default_sandstone" , "nature:blossom" , "nftools:alexandrite_ore" , "nftools:amber" , "nftools:amethyst_ore" , "nftools:aquamarine_ore" , "nftools:stone_with_amber" , "nftools:stone_with_bismuth" , "nftools:stone_with_blackopal" , "nftools:stone_with_turquoise" , "noairblocks:water_flowingx" , "noairblocks:water_sourcex" , "nssm:ant_dirt" , "nyancat:nyancat" , "nyancat:nyancat_rainbow" , "octutool:ladder" , "octutool:mese" , "octutool:string" , "octutool:string_shards" , "pbj_pup:pbj_pup" , "pie:choc_3" , "pie:pie_0" , "pizza:pizza" , "pizza:pizzabox" , "pizza:pizzabox_open" , "plasmascreen:stand" , "plasmascreen:tv" , "plasmascreen:tv_off" , "poisonivy:climbing" , "poisonivy:seedling" , "poisonivy:sproutling" , "pyramids:deco_stone2" , "pyramids:deco_stone3" , "pyramids:spawner_mummy" , "pyramids:trap" , "pyramids:trap_2" , "quartz:ore" , "quartz:quartz_ore" , "rhodochrosite:mineral_rhodochrosite" , "riesenpilz:brown" , "riesenpilz:brown45" , "riesenpilz:fly_agaric" , "riesenpilz:glowshroom" , "riesenpilz:ground" , "riesenpilz:head_binge" , "riesenpilz:head_blue" , "riesenpilz:head_blue_bright" , "riesenpilz:head_brown" , "riesenpilz:head_brown_bright" , "riesenpilz:head_brown_full" , "riesenpilz:head_orange" , "riesenpilz:head_red" , "riesenpilz:head_red_side" , "riesenpilz:head_white" , "riesenpilz:head_yellow" , "riesenpilz:lamellas" , "riesenpilz:lavashroom" , "riesenpilz:nether_shroom" , "riesenpilz:parasol" , "riesenpilz:red" , "riesenpilz:red45" , "riesenpilz:stem" , "riesenpilz:stem_blue" , "riesenpilz:stem_brown" , "ropes:rope" , "seaglass:seaglass" , "seaglass:seaglass_black" , "seaglass:seaglass_blue" , "seaglass:seaglass_red" , "seaglass:seaglass_white" , "seaglass:seaglassoff" , "seaglass:seaglassoff_black" , "sealamps:lantern" , "sealamps:torch" , "seaplants:kelpbrown" , "seaplants:kelpbrownmiddle" , "seaplants:kelpgreen" , "seaplants:kelpgreenmiddle" , "seaplants:seagrassgreen" , "seaplants:seagrassred" , "seaplants:seaplantsdirtkelpbrown" , "seaplants:seaplantsdirtkelpgreen" , "seaplants:seaplantsdirtseagrassgreen" , "seaplants:seaplantsdirtseagrassred" , "seaplants:seaplantssandkelpbrown" , "seaplants:seaplantssandkelpgreen" , "seaplants:seaplantssandseagrassgreen" , "seaplants:seaplantssandseagrassred" , "seastone:seastone_cyan" , "seastonebrick:seastonebrick" , "seawrecks:uboot" , "seawrecks:woodship" , "stairs:slab_bakedclay_white" , "stairs:slab_cobble" , "stairs:slab_glass" , "stairs:slab_hard_clay" , "stairs:slab_junglewood" , "stairs:slab_moonbrick" , "stairs:slab_mossycobble" , "stairs:slab_orc_brick" , "stairs:slab_pine_wood" , "stairs:slab_red" , "stairs:slab_silver_sandstone_block" , "stairs:slab_stone" , "stairs:slab_stone_block" , "stairs:slab_stone_tile" , "stairs:slab_stonebrick" , "stairs:slab_white" , "stairs:slab_wood" , "stairs:stair_bakedclay_red" , "stairs:stair_bakedclay_white" , "stairs:stair_brick" , "stairs:stair_cobble" , "stairs:stair_hard_clay" , "stairs:stair_inner_cobble" , "stairs:stair_inner_junglewood" , "stairs:stair_inner_stonebrick" , "stairs:stair_inner_wood" , "stairs:stair_junglewood" , "stairs:stair_moonbrick" , "stairs:stair_mossycobble" , "stairs:stair_orc_brick" , "stairs:stair_outer_moonbrick" , "stairs:stair_outer_stonebrick" , "stairs:stair_outer_wood" , "stairs:stair_pine_wood" , "stairs:stair_stone_tile" , "stairs:stair_stonebrick" , "stairs:stair_tree" , "stairs:stair_white" , "stairs:stair_wood" , "stairsshine:slab_seaglass_black" , "stairsshine:slab_seaglass_blue" , "stairsshine:stair_seaglass_black" , "technic:mineral_chromium" , "technic:mineral_zinc" , "titanium:ore" , "titanium:titanium_in_ground" , "tnt:boom" , "tnt:gunpowder" , "tnt:gunpowder_burning" , "tombs:dwarf_bottom" , "tombs:dwarf_head" , "torches:floor" , "torches:wall" , "trunks:apple_tree_trunkroot" , "trunks:birch_trunkroot" , "trunks:fir_trunkroot" , "trunks:jungletreeroot" , "trunks:moss" , "trunks:moss_fungus" , "trunks:oak_trunkroot" , "trunks:palm_trunkroot" , "trunks:pine_treeroot" , "trunks:rubber_tree_trunk_emptyroot" , "trunks:sequoia_trunkroot" , "trunks:spruce_trunkroot" , "trunks:treeroot" , "trunks:twig_1" , "trunks:twig_10" , "trunks:twig_11" , "trunks:twig_12" , "trunks:twig_13" , "trunks:twig_2" , "trunks:twig_3" , "trunks:twig_4" , "trunks:twig_5" , "trunks:twig_7" , "trunks:twig_8" , "trunks:twig_9" , "trunks:twigs" , "trunks:twigs_roof" , "trunks:twigs_roof_corner" , "trunks:twigs_roof_corner_2" , "trunks:twigs_slab" , "trunks:willow_trunkroot" , "uranium:uranium_ore" , "vessels:drinking_glass" , "vessels:glass_bottle" , "vessels:steel_bottle" , "vines:jungle_end" , "vines:jungle_middle" , "vines:root_end" , "vines:root_middle" , "vines:rope" , "vines:rope_block" , "vines:rope_end" , "vines:side_end" , "vines:side_middle" , "vines:vine_end" , "vines:vine_middle" , "vines:willow_end" , "vines:willow_middle" , "walls:cobble" , "walls:desertcobble" , "walls:mossycobble" , "walls_all:stone_brick" , "whiteshell:whiteshell" , "woodsoils:dirt_with_leaves_1" , "woodsoils:dirt_with_leaves_2" , "woodsoils:grass_with_leaves_1" , "woodsoils:grass_with_leaves_2" , "wool:blue" , "wool:dark_green" , "wool:green" , "wool:orange" , "wool:red" , "wool:white" , "wool:yellow" , "xdecor:candle" , "xdecor:cauldron_idle" , "xdecor:chair" , "xdecor:coalstone_tile" , "xdecor:cobweb" , "xdecor:hard_clay" , "xdecor:iron_lightbox" , "xdecor:ivy" , "xdecor:moonbrick" , "xdecor:potted_dandelion_white" , "xdecor:potted_geranium" , "xdecor:potted_rose" , "xdecor:potted_tulip" , "xdecor:potted_viola" , "xdecor:stone_rune" , "xdecor:stone_tile" , "xdecor:table" , "xdecor:wooden_lightbox" , "xdecor:woodframed_glass" , "xdecor:workbench" , "xpanes:bar_flat" , "xpanes:chainlink" , "xpanes:chainlink_flat" , "xpanes:pane_flat" , "youngtrees:bamboo" , "youngtrees:youngtree2_middle" , "youngtrees:youngtree_bottom" , "youngtrees:youngtree_middle" , "youngtrees:youngtree_top" , } -- =================================================================== function worldedit.serialize(pos1, pos2) pos1, pos2 = worldedit.sort_pos(pos1, pos2) worldedit.keep_loaded(pos1, pos2) local pos = {x=pos1.x, y=0, z=0} local count = 0 local result = {} local get_node, get_meta = minetest.get_node, minetest.get_meta while pos.x <= pos2.x do pos.y = pos1.y while pos.y <= pos2.y do pos.z = pos1.z while pos.z <= pos2.z do local node = get_node(pos) local nname = node.name local copyit = 0 if small_bowl == 0 then if nname ~= "air" and nname ~= "ignore" then copyit = 1 end else if rejectwe [nname] == nil then copyit = 1 end end if copyit == 1 then count = count + 1 local meta = get_meta(pos):to_table() local meta_empty = true -- Convert metadata item stacks to item strings for name, inventory in pairs(meta.inventory) do for index, stack in ipairs(inventory) do meta_empty = false inventory[index] = stack.to_string and stack:to_string() or stack end end for k in pairs(meta) do if k ~= "inventory" then meta_empty = false break end end result[count] = { x = pos.x - pos1.x, y = pos.y - pos1.y, z = pos.z - pos1.z, name = node.name, param1 = node.param1 ~= 0 and node.param1 or nil, param2 = node.param2 ~= 0 and node.param2 or nil, meta = not meta_empty and meta or nil, } end pos.z = pos.z + 1 end pos.y = pos.y + 1 end pos.x = pos.x + 1 end -- Serialize entries result = minetest.serialize(result) return LATEST_SERIALIZATION_HEADER .. result, count end -- =================================================================== function worldedit.cerealize (pos1, pos2) small_bowl = 1 local result, count = worldedit.serialize (pos1, pos2) small_bowl = 0 return result, count end -- =================================================================== --- Loads the schematic in `value` into a node list in the latest format. -- Contains code based on [table.save/table.load](http://lua-users.org/wiki/SaveTableToFile) -- by ChillCode, available under the MIT license. -- @return A node list in the latest format, or nil on failure. local function load_schematic(value) local version, header, content = worldedit.read_header(value) local nodes = {} if version == 1 or version == 2 then -- Original flat table format local tables = minetest.deserialize(content) if not tables then return nil end -- Transform the node table into an array of nodes for i = 1, #tables do for j, v in pairs(tables[i]) do if type(v) == "table" then tables[i][j] = tables[v[1]] end end end nodes = tables[1] if version == 1 then --original flat table format for i, entry in ipairs(nodes) do local pos = entry[1] entry.x, entry.y, entry.z = pos.x, pos.y, pos.z entry[1] = nil local node = entry[2] entry.name, entry.param1, entry.param2 = node.name, node.param1, node.param2 entry[2] = nil end end elseif version == 3 then -- List format for x, y, z, name, param1, param2 in content:gmatch( "([+-]?%d+)%s+([+-]?%d+)%s+([+-]?%d+)%s+" .. "([^%s]+)%s+(%d+)%s+(%d+)[^\r\n]*[\r\n]*") do param1, param2 = tonumber(param1), tonumber(param2) table.insert(nodes, { x = tonumber(x), y = tonumber(y), z = tonumber(z), name = name, param1 = param1 ~= 0 and param1 or nil, param2 = param2 ~= 0 and param2 or nil, }) end elseif version == 4 or version == 5 then -- Nested table format if not jit then -- This is broken for larger tables in the current version of LuaJIT nodes = minetest.deserialize(content) else -- XXX: This is a filthy hack that works surprisingly well - in LuaJIT, `minetest.deserialize` will fail due to the register limit nodes = {} content = content:gsub("return%s*{", "", 1):gsub("}%s*$", "", 1) -- remove the starting and ending values to leave only the node data local escaped = content:gsub("\\\\", "@@"):gsub("\\\"", "@@"):gsub("(\"[^\"]*\")", function(s) return string.rep("@", #s) end) local startpos, startpos1, endpos = 1, 1 while true do -- go through each individual node entry (except the last) startpos, endpos = escaped:find("},%s*{", startpos) if not startpos then break end local current = content:sub(startpos1, startpos) local entry = minetest.deserialize("return " .. current) table.insert(nodes, entry) startpos, startpos1 = endpos, endpos end local entry = minetest.deserialize("return " .. content:sub(startpos1)) -- process the last entry table.insert(nodes, entry) end else return nil end return nodes end --- Determines the volume the nodes represented by string `value` would occupy -- if deserialized at `origin_pos`. -- @return Low corner position. -- @return High corner position. -- @return The number of nodes. function worldedit.allocate(origin_pos, value) local nodes = load_schematic(value) if not nodes then return nil end return worldedit.allocate_with_nodes(origin_pos, nodes) end -- Internal function worldedit.allocate_with_nodes(origin_pos, nodes) local huge = math.huge local pos1x, pos1y, pos1z = huge, huge, huge local pos2x, pos2y, pos2z = -huge, -huge, -huge local origin_x, origin_y, origin_z = origin_pos.x, origin_pos.y, origin_pos.z for i, entry in ipairs(nodes) do local x, y, z = origin_x + entry.x, origin_y + entry.y, origin_z + entry.z if x < pos1x then pos1x = x end if y < pos1y then pos1y = y end if z < pos1z then pos1z = z end if x > pos2x then pos2x = x end if y > pos2y then pos2y = y end if z > pos2z then pos2z = z end end local pos1 = {x=pos1x, y=pos1y, z=pos1z} local pos2 = {x=pos2x, y=pos2y, z=pos2z} return pos1, pos2, #nodes end --- Loads the nodes represented by string `value` at position `origin_pos`. -- @return The number of nodes deserialized. function worldedit.deserialize(origin_pos, value) local nodes = load_schematic(value) if not nodes then return nil end local pos1, pos2 = worldedit.allocate_with_nodes(origin_pos, nodes) worldedit.keep_loaded(pos1, pos2) local origin_x, origin_y, origin_z = origin_pos.x, origin_pos.y, origin_pos.z local count = 0 local add_node, get_meta = minetest.add_node, minetest.get_meta for i, entry in ipairs(nodes) do entry.x, entry.y, entry.z = origin_x + entry.x, origin_y + entry.y, origin_z + entry.z -- Entry acts as both position and node add_node(entry, entry) if entry.meta then get_meta(entry):from_table(entry.meta) end end return #nodes end