diff --git a/raspberryjammod/block.lua b/raspberryjammod/block.lua index d66da87..0b44170 100644 --- a/raspberryjammod/block.lua +++ b/raspberryjammod/block.lua @@ -1,432 +1,463 @@ -local block = {} - -function block.Block(id,meta) - if meta == nil then meta = 0 end - return id + 0x1000 * meta +if minetest.request_insecure_environment then + ie=minetest.request_insecure_environment() +else + ie=_G end -block.AIR = block.Block(0) -block.STONE = block.Block(1) -block.GRASS = block.Block(2) -block.DIRT = block.Block(3) -block.COBBLESTONE = block.Block(4) -block.WOOD_PLANKS = block.Block(5) -block.SAPLING = block.Block(6) -block.BEDROCK = block.Block(7) -block.WATER_FLOWING = block.Block(8) -block.WATER_STATIONARY = block.Block(9) -block.LAVA_FLOWING = block.Block(10) -block.LAVA_STATIONARY = block.Block(11) -block.SAND = block.Block(12) -block.GRAVEL = block.Block(13) -block.GOLD_ORE = block.Block(14) -block.IRON_ORE = block.Block(15) -block.COAL_ORE = block.Block(16) -block.WOOD = block.Block(17) -block.LEAVES = block.Block(18) -block.GLASS = block.Block(20) -block.LAPIS_LAZULI_ORE = block.Block(21) -block.LAPIS_LAZULI_BLOCK = block.Block(22) -block.SANDSTONE = block.Block(24) -block.BED = block.Block(26) -block.COBWEB = block.Block(30) -block.GRASS_TALL = block.Block(31) -block.WOOL = block.Block(35) -block.FLOWER_YELLOW = block.Block(37) -block.FLOWER_CYAN = block.Block(38) -block.MUSHROOM_BROWN = block.Block(39) -block.MUSHROOM_RED = block.Block(40) -block.GOLD_BLOCK = block.Block(41) -block.IRON_BLOCK = block.Block(42) -block.STONE_SLAB_DOUBLE = block.Block(43) -block.STONE_SLAB = block.Block(44) -block.BRICK_BLOCK = block.Block(45) -block.TNT = block.Block(46) -block.BOOKSHELF = block.Block(47) -block.MOSS_STONE = block.Block(48) -block.OBSIDIAN = block.Block(49) -block.TORCH = block.Block(50) -block.FIRE = block.Block(51) -block.STAIR_WOOD = block.Block(53) -block.CHEST = block.Block(54) -block.DIAMOND_ORE = block.Block(56) -block.DIAMOND_BLOCK = block.Block(57) -block.CRAFTING_TABLE = block.Block(58) -block.FARMLAND = block.Block(60) -block.FURNACE_INACTIVE = block.Block(61) -block.FURNACE_ACTIVE = block.Block(62) -block.DOOR_WOOD = block.Block(64) -block.LADDER = block.Block(65) -block.STAIR_COBBLESTONE = block.Block(67) -block.DOOR_IRON = block.Block(71) -block.REDSTONE_ORE = block.Block(73) -block.STONE_BUTTON = block.Block(77) -block.SNOW = block.Block(78) -block.ICE = block.Block(79) -block.SNOW_BLOCK = block.Block(80) -block.CACTUS = block.Block(81) -block.CLAY = block.Block(82) -block.SUGAR_CANE = block.Block(83) -block.FENCE = block.Block(85) -block.GLOWSTONE_BLOCK = block.Block(89) -block.BEDROCK_INVISIBLE = block.Block(95) -block.STAINED_GLASS = block.Block(95) -block.TRAPDOOR = block.Block(96) -block.IRON_TRAPDOOR = block.Block(167) -block.STONE_BRICK = block.Block(98) -block.GLASS_PANE = block.Block(102) -block.MELON = block.Block(103) -block.FENCE_GATE = block.Block(107) -block.WATERLILY = block.Block(111) -block.WOOD_SLAB_DOUBLE = block.Block(125) -block.WOOD_SLAB = block.Block(126) -block.WOOD_BUTTON = block.Block(143) -block.REDSTONE_BLOCK = block.Block(152) -block.QUARTZ_BLOCK = block.Block(155) -block.HARDENED_CLAY_STAINED = block.Block(159) -block.SEA_LANTERN = block.Block(169) -block.CARPET = block.Block(171) -block.COAL_BLOCK = block.Block(173) -block.REDSTONE_LAMP_INACTIVE = block.Block(123) -block.REDSTONE_LAMP_ACTIVE = block.Block(124) -block.SUNFLOWER = block.Block(175,0) -block.LILAC = block.Block(175,1) -block.DOUBLE_TALLGRASS = block.Block(175,2) -block.LARGE_FERN = block.Block(175,3) -block.ROSE_BUSH = block.Block(175,4) -block.PEONY = block.Block(175,5) -block.WOOL_WHITE = block.Block(block.WOOL, 0) -block.WOOL_ORANGE = block.Block(block.WOOL, 1) -block.WOOL_MAGENTA = block.Block(block.WOOL, 2) -block.WOOL_LIGHT_BLUE = block.Block(block.WOOL, 3) -block.WOOL_YELLOW = block.Block(block.WOOL, 4) -block.WOOL_LIME = block.Block(block.WOOL, 5) -block.WOOL_PINK = block.Block(block.WOOL, 6) -block.WOOL_GRAY = block.Block(block.WOOL, 7) -block.WOOL_LIGHT_GRAY = block.Block(block.WOOL, 8) -block.WOOL_CYAN = block.Block(block.WOOL, 9) -block.WOOL_PURPLE = block.Block(block.WOOL, 10) -block.WOOL_BLUE = block.Block(block.WOOL, 11) -block.WOOL_BROWN = block.Block(block.WOOL, 12) -block.WOOL_GREEN = block.Block(block.WOOL, 13) -block.WOOL_RED = block.Block(block.WOOL, 14) -block.WOOL_BLACK = block.Block(block.WOOL, 15) -block.CARPET_WHITE = block.Block(block.CARPET, 0) -block.CARPET_ORANGE = block.Block(block.CARPET, 1) -block.CARPET_MAGENTA = block.Block(block.CARPET, 2) -block.CARPET_LIGHT_BLUE = block.Block(block.CARPET, 3) -block.CARPET_YELLOW = block.Block(block.CARPET, 4) -block.CARPET_LIME = block.Block(block.CARPET, 5) -block.CARPET_PINK = block.Block(block.CARPET, 6) -block.CARPET_GRAY = block.Block(block.CARPET, 7) -block.CARPET_LIGHT_GRAY = block.Block(block.CARPET, 8) -block.CARPET_CYAN = block.Block(block.CARPET, 9) -block.CARPET_PURPLE = block.Block(block.CARPET, 10) -block.CARPET_BLUE = block.Block(block.CARPET, 11) -block.CARPET_BROWN = block.Block(block.CARPET, 12) -block.CARPET_GREEN = block.Block(block.CARPET, 13) -block.CARPET_RED = block.Block(block.CARPET, 14) -block.CARPET_BLACK = block.Block(block.CARPET, 15) -block.STAINED_GLASS_WHITE = block.Block(block.STAINED_GLASS, 0) -block.STAINED_GLASS_ORANGE = block.Block(block.STAINED_GLASS, 1) -block.STAINED_GLASS_MAGENTA = block.Block(block.STAINED_GLASS, 2) -block.STAINED_GLASS_LIGHT_BLUE = block.Block(block.STAINED_GLASS, 3) -block.STAINED_GLASS_YELLOW = block.Block(block.STAINED_GLASS, 4) -block.STAINED_GLASS_LIME = block.Block(block.STAINED_GLASS, 5) -block.STAINED_GLASS_PINK = block.Block(block.STAINED_GLASS, 6) -block.STAINED_GLASS_GRAY = block.Block(block.STAINED_GLASS, 7) -block.STAINED_GLASS_LIGHT_GRAY = block.Block(block.STAINED_GLASS, 8) -block.STAINED_GLASS_CYAN = block.Block(block.STAINED_GLASS, 9) -block.STAINED_GLASS_PURPLE = block.Block(block.STAINED_GLASS, 10) -block.STAINED_GLASS_BLUE = block.Block(block.STAINED_GLASS, 11) -block.STAINED_GLASS_BROWN = block.Block(block.STAINED_GLASS, 12) -block.STAINED_GLASS_GREEN = block.Block(block.STAINED_GLASS, 13) -block.STAINED_GLASS_RED = block.Block(block.STAINED_GLASS, 14) -block.STAINED_GLASS_BLACK = block.Block(block.STAINED_GLASS, 15) -block.HARDENED_CLAY_STAINED_WHITE = block.Block(block.HARDENED_CLAY_STAINED, 0) -block.HARDENED_CLAY_STAINED_ORANGE = block.Block(block.HARDENED_CLAY_STAINED, 1) -block.HARDENED_CLAY_STAINED_MAGENTA = block.Block(block.HARDENED_CLAY_STAINED, 2) -block.HARDENED_CLAY_STAINED_LIGHT_BLUE = block.Block(block.HARDENED_CLAY_STAINED, 3) -block.HARDENED_CLAY_STAINED_YELLOW = block.Block(block.HARDENED_CLAY_STAINED, 4) -block.HARDENED_CLAY_STAINED_LIME = block.Block(block.HARDENED_CLAY_STAINED, 5) -block.HARDENED_CLAY_STAINED_PINK = block.Block(block.HARDENED_CLAY_STAINED, 6) -block.HARDENED_CLAY_STAINED_GRAY = block.Block(block.HARDENED_CLAY_STAINED, 7) -block.HARDENED_CLAY_STAINED_LIGHT_GRAY = block.Block(block.HARDENED_CLAY_STAINED, 8) -block.HARDENED_CLAY_STAINED_CYAN = block.Block(block.HARDENED_CLAY_STAINED, 9) -block.HARDENED_CLAY_STAINED_PURPLE = block.Block(block.HARDENED_CLAY_STAINED, 10) -block.HARDENED_CLAY_STAINED_BLUE = block.Block(block.HARDENED_CLAY_STAINED, 11) -block.HARDENED_CLAY_STAINED_BROWN = block.Block(block.HARDENED_CLAY_STAINED, 12) -block.HARDENED_CLAY_STAINED_GREEN = block.Block(block.HARDENED_CLAY_STAINED, 13) -block.HARDENED_CLAY_STAINED_RED = block.Block(block.HARDENED_CLAY_STAINED, 14) -block.HARDENED_CLAY_STAINED_BLACK = block.Block(block.HARDENED_CLAY_STAINED, 15) -block.LEAVES_OAK_DECAYABLE = block.Block(block.LEAVES, 0) -block.LEAVES_SPRUCE_DECAYABLE = block.Block(block.LEAVES, 1) -block.LEAVES_BIRCH_DECAYABLE = block.Block(block.LEAVES, 2) -block.LEAVES_JUNGLE_DECAYABLE = block.Block(block.LEAVES, 3) -block.LEAVES_SPRUCE_DECAYABLE_CD = block.Block(block.LEAVES, 9) -block.LEAVES_JUNGLE_DECAYABLE_CD = block.Block(block.LEAVES, 11) -block.LEAVES_OAK_PERMANENT = block.Block(block.LEAVES, 4) -block.LEAVES_SPRUCE_PERMANENT = block.Block(block.LEAVES, 5) -block.LEAVES_BIRCH_PERMANENT = block.Block(block.LEAVES, 6) -block.LEAVES_JUNGLE_PERMANENT = block.Block(block.LEAVES, 7) -block.LEAVES_OAK_PERMANENT_CD = block.Block(block.LEAVES, 12) -block.LEAVES_SPRUCE_PERMANENT_CD = block.Block(block.LEAVES, 13) -block.LEAVES_BIRCH_PERMANENT_CD = block.Block(block.LEAVES, 14) -block.LEAVES_JUNGLE_PERMANENT_CD = block.Block(block.LEAVES, 15) -block.LEAVES2 = block.Block(161) -block.LEAVES_ACACIA_DECAYABLE = block.Block(block.LEAVES2, 0) -block.LEAVES_DARK_OAK_DECAYABLE = block.Block(block.LEAVES2, 1) -block.LEAVES_ACACIA_PERMANENT = block.Block(block.LEAVES2, 4) -block.LEAVES_DARK_OAK_PERMANENT = block.Block(block.LEAVES2, 5) -block.LEAVES_ACACIA_DECAYABLE_CD = block.Block(block.LEAVES2, 8) -block.LEAVES_DARK_OAK_DECAYABLE_CD = block.Block(block.LEAVES2, 9) -block.LEAVES_ACACIA_PERMANENT_CD = block.Block(block.LEAVES2, 12) -block.LEAVES_DARK_OAK_PERMANENT_CD = block.Block(block.LEAVES2, 13) +local bit=ie.require("bit") -block.BLOCK = {} -block.BLOCK[block.AIR] = {name="air"} -block.BLOCK[block.STONE] = {name="default:stone"} -block.BLOCK[block.GRASS] = {name="default:dirt_with_grass"} -block.BLOCK[block.DIRT] = {name="default:dirt"} -block.BLOCK[block.COBBLESTONE] = {name="default:cobble"} -block.BLOCK[block.WOOD_PLANKS]={name="default:wood"} -block.BLOCK[block.SAPLING]={name="default:sapling"} -block.BLOCK[block.BEDROCK]={name="default:obsidian"} -block.BLOCK[block.WATER_FLOWING]={name="default:water_flowing"} -block.BLOCK[block.WATER_STATIONARY]={name="default:water_source"} -block.BLOCK[block.LAVA_FLOWING]={name="default:lava_flowing"} -block.BLOCK[block.LAVA_STATIONARY]={name="default:lava_source"} -block.BLOCK[block.SAND]={name="default:sand"} -block.BLOCK[block.GRAVEL]={name="default:gravel"} -block.BLOCK[block.GOLD_ORE]={name="default:stone_with_gold"} -block.BLOCK[block.IRON_ORE]={name="default:stone_with_iron"} -block.BLOCK[block.COAL_ORE]={name="default:stone_with_coal"} -block.BLOCK[block.WOOD]={name="default:wood"} -block.BLOCK[block.LEAVES]={name="default:leaves"} -block.BLOCK[block.GLASS]={name="default:glass"} -block.BLOCK[block.LAPIS_LAZULI_ORE]={name="wool:blue"} -- fix -block.BLOCK[block.LAPIS_LAZULI_BLOCK]={name="wool:blue"} -block.BLOCK[block.SANDSTONE]={name="default:sandstone"} --- block.BLOCK[block.BED]={name="default:"} --- block.BLOCK[block.COBWEB]={name="default:"} -block.BLOCK[block.GRASS_TALL]={name="default:junglegrass"} -block.BLOCK[block.WOOL]={name="wool:white"} -block.BLOCK[block.WATERLILY]={name="flowers:dandelion_white"} --fix -block.BLOCK[block.FLOWER_YELLOW]={name="flowers:dandelion_yellow"} -block.BLOCK[block.FLOWER_CYAN]={name="flowers:geranium"} -block.BLOCK[block.MUSHROOM_BROWN]={name="flowers:mushroom_brown"} -block.BLOCK[block.MUSHROOM_RED]={name="flowers:mushroom_red"} -block.BLOCK[block.GOLD_BLOCK]={name="default:goldblock"} -block.BLOCK[block.IRON_BLOCK]={name="default:steelblock"} ---block.BLOCK[block.STONE_SLAB_DOUBLE]={name="default:"} -block.BLOCK[block.BRICK_BLOCK]={name="default:brick"} -block.BLOCK[block.TNT]={name="tnt:tnt"} -block.BLOCK[block.BOOKSHELF]={name="default:bookshelf"} -block.BLOCK[block.MOSS_STONE]={name="default:mossycobble"} -block.BLOCK[block.OBSIDIAN]={name="default:obsidian"} -block.BLOCK[block.TORCH]={name="default:torch"} -block.BLOCK[block.FIRE]={name="fire:basic_flame"} -block.BLOCK[block.CHEST]={name="default:chest"} -block.BLOCK[block.DIAMOND_ORE]={name="default:stone_with_diamond"} -block.BLOCK[block.DIAMOND_BLOCK]={name="default:diamondblock"} ---block.BLOCK[block.CRAFTING_TABLE]={name="default:"} -block.BLOCK[block.FARMLAND]={name="farming:soil"} -block.BLOCK[block.FURNACE_INACTIVE]={name="default:furnace"} -block.BLOCK[block.FURNACE_ACTIVE]={name="default:furnace_active"} -block.BLOCK[block.LADDER]={name="default:ladder"} -block.BLOCK[block.REDSTONE_ORE]={name="wool:red"} -- fix ---block.BLOCK[block.STONE_BUTTON]={name="default:"} -block.BLOCK[block.SNOW]={name="default:snow"} -block.BLOCK[block.ICE]={name="default:ice"} -block.BLOCK[block.SNOW_BLOCK]={name="default:snowblock"} -block.BLOCK[block.CACTUS]={name="default:cactus"} -block.BLOCK[block.CLAY]={name="default:clay"} -block.BLOCK[block.SUGAR_CANE]={name="farming:straw"} -- fix -block.BLOCK[block.FENCE]={name="default:fence_wood"} -block.BLOCK[block.GLOWSTONE_BLOCK]={name="default:meselamp"} -- fix ---block.BLOCK[block.BEDROCK_INVISIBLE]={name="default:"} -block.BLOCK[block.STONE_BRICK]={name="default:stonebrick"} -block.BLOCK[block.GLASS_PANE]={name="default:glass"} -- fix ---block.BLOCK[block.MELON]={name="default:"} -block.BLOCK[block.WOOD_SLAB_DOUBLE]={name="default:wood"} --fix ---block.BLOCK[block.FENCE_GATE]={name="default:"} ---block.BLOCK[block.WOOD_BUTTON]={name="default:"} -block.BLOCK[block.REDSTONE_BLOCK]={name="wool:red"} -- fix -block.BLOCK[block.QUARTZ_BLOCK]={name="wool:white"} -block.BLOCK[block.HARDENED_CLAY_STAINED]={name="wool:white"} --fix -block.BLOCK[block.SEA_LANTERN]={name="default:meselamp"} -block.BLOCK[block.CARPET]={name="wool:white"} -- fix -block.BLOCK[block.COAL_BLOCK]={name="default:coalblock"} ---block.BLOCK[block.REDSTONE_LAMP_INACTIVE]={name="default:"} -block.BLOCK[block.REDSTONE_LAMP_ACTIVE]={name="default:meselamp"} -block.BLOCK[block.SUNFLOWER]={name="flowers:tulip"} -block.BLOCK[block.LILAC]={name="flowers:viola"} -block.BLOCK[block.DOUBLE_TALLGRASS]={name="default:grass_2"} --fix ---block.BLOCK[block.LARGE_FERN]={name="default:"} -block.BLOCK[block.ROSE_BUSH]={name="flowers:rose"} -block.BLOCK[block.PEONY]={name="flowers:rose"} --fix -block.BLOCK[block.WOOL_WHITE]={name="wool:white"} -block.BLOCK[block.WOOL_ORANGE]={name="wool:orange"} -block.BLOCK[block.WOOL_MAGENTA]={name="wool:magenta"} -block.BLOCK[block.WOOL_LIGHT_BLUE]={name="wool:cyan"} --fix -block.BLOCK[block.WOOL_YELLOW]={name="wool:yellow"} -block.BLOCK[block.WOOL_LIME]={name="wool:green"} -block.BLOCK[block.WOOL_PINK]={name="wool:pink"} -block.BLOCK[block.WOOL_GRAY]={name="wool:dark_grey"} -block.BLOCK[block.WOOL_LIGHT_GRAY]={name="wool:grey"} -block.BLOCK[block.WOOL_CYAN]={name="wool:cyan"} -block.BLOCK[block.WOOL_PURPLE]={name="wool:violet"} -block.BLOCK[block.WOOL_BLUE]={name="wool:blue"} -block.BLOCK[block.WOOL_BROWN]={name="wool:brown"} -block.BLOCK[block.WOOL_GREEN]={name="wool:dark_green"} -block.BLOCK[block.WOOL_RED]={name="wool:red"} -block.BLOCK[block.WOOL_BLACK]={name="wool:black"} -block.BLOCK[block.CARPET_WHITE]={name="wool:white"} -block.BLOCK[block.CARPET_ORANGE]={name="wool:orange"} -block.BLOCK[block.CARPET_MAGENTA]={name="wool:magenta"} -block.BLOCK[block.CARPET_LIGHT_BLUE]={name="wool:cyan"} --fix -block.BLOCK[block.CARPET_YELLOW]={name="wool:yellow"} -block.BLOCK[block.CARPET_LIME]={name="wool:green"} -block.BLOCK[block.CARPET_PINK]={name="wool:pink"} -block.BLOCK[block.CARPET_GRAY]={name="wool:dark_grey"} -block.BLOCK[block.CARPET_LIGHT_GRAY]={name="wool:grey"} -block.BLOCK[block.CARPET_CYAN]={name="wool:cyan"} -block.BLOCK[block.CARPET_PURPLE]={name="wool:violet"} -block.BLOCK[block.CARPET_BLUE]={name="wool:blue"} -block.BLOCK[block.CARPET_BROWN]={name="wool:brown"} -block.BLOCK[block.CARPET_GREEN]={name="wool:dark_green"} -block.BLOCK[block.CARPET_RED]={name="wool:red"} -block.BLOCK[block.CARPET_BLACK]={name="wool:black"} -block.BLOCK[block.HARDENED_CLAY_STAINED_WHITE]={name="wool:white"} -block.BLOCK[block.HARDENED_CLAY_STAINED_ORANGE]={name="wool:orange"} -block.BLOCK[block.HARDENED_CLAY_STAINED_MAGENTA]={name="wool:magenta"} -block.BLOCK[block.HARDENED_CLAY_STAINED_LIGHT_BLUE]={name="wool:cyan"} --fix -block.BLOCK[block.HARDENED_CLAY_STAINED_YELLOW]={name="wool:yellow"} -block.BLOCK[block.HARDENED_CLAY_STAINED_LIME]={name="wool:green"} -block.BLOCK[block.HARDENED_CLAY_STAINED_PINK]={name="wool:pink"} -block.BLOCK[block.HARDENED_CLAY_STAINED_GRAY]={name="wool:dark_grey"} -block.BLOCK[block.HARDENED_CLAY_STAINED_LIGHT_GRAY]={name="wool:grey"} -block.BLOCK[block.HARDENED_CLAY_STAINED_CYAN]={name="wool:cyan"} -block.BLOCK[block.HARDENED_CLAY_STAINED_PURPLE]={name="wool:violet"} -block.BLOCK[block.HARDENED_CLAY_STAINED_BLUE]={name="wool:blue"} -block.BLOCK[block.HARDENED_CLAY_STAINED_BROWN]={name="wool:brown"} -block.BLOCK[block.HARDENED_CLAY_STAINED_GREEN]={name="wool:dark_green"} -block.BLOCK[block.HARDENED_CLAY_STAINED_RED]={name="wool:red"} -block.BLOCK[block.HARDENED_CLAY_STAINED_BLACK]={name="wool:black"} +local block={} -block.BLOCK[block.STAINED_GLASS_WHITE]={name="stained_glass:faint_aqua"} --fix -block.BLOCK[block.STAINED_GLASS_ORANGE]={name="stained_glass:orange"} -block.BLOCK[block.STAINED_GLASS_MAGENTA]={name="stained_glass:magenta"} -block.BLOCK[block.STAINED_GLASS_LIGHT_BLUE]={name="stained_glass:faint_blue"} -block.BLOCK[block.STAINED_GLASS_YELLOW]={name="stained_glass:yellow"} -block.BLOCK[block.STAINED_GLASS_LIME]={name="stained_glass:lime"} -block.BLOCK[block.STAINED_GLASS_PINK]={name="stained_glass:faint_red"} -block.BLOCK[block.STAINED_GLASS_GRAY]={name="stained_glass:dark_blue"} --fix -block.BLOCK[block.STAINED_GLASS_LIGHT_GRAY]={name="stained_glass:medium_blue"} --fix -block.BLOCK[block.STAINED_GLASS_CYAN]={name="stained_glass:cyan"} -block.BLOCK[block.STAINED_GLASS_PURPLE]={name="stained_glass:violet"} -block.BLOCK[block.STAINED_GLASS_BLUE]={name="stained_glass:blue"} -block.BLOCK[block.STAINED_GLASS_BROWN]={name="stained_glass:dark_red"} -block.BLOCK[block.STAINED_GLASS_GREEN]={name="stained_glass:green"} -block.BLOCK[block.STAINED_GLASS_RED]={name="stained_glass:red"} -block.BLOCK[block.STAINED_GLASS_BLACK]={name="stained_glass:dark_green"} --fix +local function Block(id,meta) + if meta == nil then meta=0 end + return meta + id * 16 +end ---block.BLOCK[block.LEAVES_OAK_DECAYABLE]={name="default:leaves"} -block.BLOCK[block.LEAVES_SPRUCE_DECAYABLE]={name="default:pine_needles"} ---block.BLOCK[block.LEAVES_BIRCH_DECAYABLE]={name="default:leaves"} -block.BLOCK[block.LEAVES_JUNGLE_DECAYABLE]={name="default:jungleleaves"} -block.BLOCK[block.LEAVES_OAK_PERMANENT]={name="default:leaves", param2=1} -block.BLOCK[block.LEAVES_SPRUCE_PERMANENT]={name="default:pine_needles", param2=1} -block.BLOCK[block.LEAVES_BIRCH_PERMANENT]={name="default:leaves", param2=1} -block.BLOCK[block.LEAVES_SPRUCE_DECAYABLE_CD]={name="default:pine_needles"} -block.BLOCK[block.LEAVES_JUNGLE_DECAYABLE_CD]={name="default:jungleleaves"} -block.BLOCK[block.LEAVES_JUNGLE_PERMANENT]={name="default:jungleleaves", param2=1} -block.BLOCK[block.LEAVES_OAK_PERMANENT_CD]={name="default:leaves", param2=1} -block.BLOCK[block.LEAVES_SPRUCE_PERMANENT_CD]={name="default:pine_needles", param2=1} -block.BLOCK[block.LEAVES_BIRCH_PERMANENT_CD]={name="default:leaves", param2=1} -block.BLOCK[block.LEAVES_JUNGLE_PERMANENT_CD]={name="default:jungleleaves", param2=1} -block.BLOCK[block.LEAVES2] = {name="default:leaves"} -block.BLOCK[block.LEAVES_ACACIA_DECAYABLE] = {name="default:acacia_leaves"} ---block.BLOCK[block.LEAVES_DARK_OAK_DECAYABLE] = -block.BLOCK[block.LEAVES_ACACIA_PERMANENT] = {name="default:acacia_leaves", param2=1} -block.BLOCK[block.LEAVES_DARK_OAK_PERMANENT] = {name="default:leaves", param2=1} -block.BLOCK[block.LEAVES_ACACIA_PERMANENT_CD] = {name="default:acacia_leaves", param2=1} -block.BLOCK[block.LEAVES_DARK_OAK_PERMANENT_CD] = {name="default:leaves", param2=1} +local function unBlock(value) + return bit.rshift(value, 4),bit.band(value, 0x000F) +end -block.BLOCK[block.Block(228)] = {name="air"} -block.BLOCK[block.Block(229)] = {name="air"} -block.BLOCK[block.Block(236)] = {name="air"} -block.BLOCK[block.Block(254)] = {name="air"} +block.AIR =Block(0) +block.STONE =Block(1) +block.GRASS =Block(2) +block.DIRT =Block(3) +block.COBBLESTONE =Block(4) +block.WOOD_PLANKS =Block(5) +block.SAPLING =Block(6) +block.BEDROCK =Block(7) +block.WATER_FLOWING =Block(8) +block.WATER_STATIONARY =Block(9) +block.LAVA_FLOWING =Block(10) +block.LAVA_STATIONARY =Block(11) +block.SAND =Block(12) +block.GRAVEL =Block(13) +block.GOLD_ORE =Block(14) +block.IRON_ORE =Block(15) +block.COAL_ORE =Block(16) +block.WOOD =Block(17) +block.LEAVES =Block(18) +block.GLASS =Block(20) +block.LAPIS_LAZULI_ORE =Block(21) +block.LAPIS_LAZULI_BLOCK =Block(22) +block.SANDSTONE =Block(24) +block.BED =Block(26) +block.COBWEB =Block(30) +block.GRASS_TALL =Block(31) +block.WOOL =Block(35) +block.FLOWER_YELLOW =Block(37) +block.FLOWER_CYAN =Block(38) +block.MUSHROOM_BROWN =Block(39) +block.MUSHROOM_RED =Block(40) +block.GOLD_BLOCK =Block(41) +block.IRON_BLOCK =Block(42) +block.STONE_SLAB_DOUBLE =Block(43) +block.STONE_SLAB =Block(44) +block.BRICK_BLOCK =Block(45) +block.TNT =Block(46) +block.BOOKSHELF =Block(47) +block.MOSS_STONE =Block(48) +block.OBSIDIAN =Block(49) +block.TORCH =Block(50) +block.FIRE =Block(51) +block.STAIR_WOOD =Block(53) +block.CHEST =Block(54) +block.DIAMOND_ORE =Block(56) +block.DIAMOND_BLOCK =Block(57) +block.CRAFTING_TABLE =Block(58) +block.FARMLAND =Block(60) +block.FURNACE_INACTIVE =Block(61) +block.FURNACE_ACTIVE =Block(62) +block.DOOR_WOOD =Block(64) +block.LADDER =Block(65) +block.STAIR_COBBLESTONE =Block(67) +block.DOOR_IRON =Block(71) +block.REDSTONE_ORE =Block(73) +block.STONE_BUTTON =Block(77) +block.SNOW =Block(78) +block.ICE =Block(79) +block.SNOW_BLOCK =Block(80) +block.CACTUS =Block(81) +block.CLAY =Block(82) +block.SUGAR_CANE =Block(83) +block.FENCE =Block(85) +block.GLOWSTONE_BLOCK =Block(89) +block.BEDROCK_INVISIBLE =Block(95) +block.STAINED_GLASS= Block(95) +block.TRAPDOOR =Block(96) +block.IRON_TRAPDOOR =Block(167) +block.STONE_BRICK =Block(98) +block.GLASS_PANE =Block(102) +block.MELON =Block(103) +block.FENCE_GATE =Block(107) +block.WATERLILY =Block(111) +block.WOOD_SLAB_DOUBLE =Block(125) +block.WOOD_SLAB =Block(126) +block.WOOD_BUTTON =Block(143) +block.REDSTONE_BLOCK =Block(152) +block.QUARTZ_BLOCK =Block(155) +block.HARDENED_CLAY_STAINED=Block(159) +block.SEA_LANTERN =Block(169) +block.CARPET =Block(171) +block.COAL_BLOCK =Block(173) +block.REDSTONE_LAMP_INACTIVE=Block(123) +block.REDSTONE_LAMP_ACTIVE =Block(124) +block.SUNFLOWER =Block(175,0) +block.LILAC =Block(175,1) +block.DOUBLE_TALLGRASS=Block(175,2) +block.LARGE_FERN =Block(175,3) +block.ROSE_BUSH =Block(175,4) +block.PEONY =Block(175,5) +block.WOOL_WHITE=Block(block.WOOL, 0) +block.WOOL_ORANGE=Block(block.WOOL, 1) +block.WOOL_MAGENTA=Block(block.WOOL, 2) +block.WOOL_LIGHT_BLUE=Block(block.WOOL, 3) +block.WOOL_YELLOW=Block(block.WOOL, 4) +block.WOOL_LIME=Block(block.WOOL, 5) +block.WOOL_PINK=Block(block.WOOL, 6) +block.WOOL_GRAY=Block(block.WOOL, 7) +block.WOOL_LIGHT_GRAY=Block(block.WOOL, 8) +block.WOOL_CYAN=Block(block.WOOL, 9) +block.WOOL_PURPLE=Block(block.WOOL, 10) +block.WOOL_BLUE=Block(block.WOOL, 11) +block.WOOL_BROWN=Block(block.WOOL, 12) +block.WOOL_GREEN=Block(block.WOOL, 13) +block.WOOL_RED=Block(block.WOOL, 14) +block.WOOL_BLACK=Block(block.WOOL, 15) +block.CARPET_WHITE=Block(block.CARPET, 0) +block.CARPET_ORANGE=Block(block.CARPET, 1) +block.CARPET_MAGENTA=Block(block.CARPET, 2) +block.CARPET_LIGHT_BLUE=Block(block.CARPET, 3) +block.CARPET_YELLOW=Block(block.CARPET, 4) +block.CARPET_LIME=Block(block.CARPET, 5) +block.CARPET_PINK=Block(block.CARPET, 6) +block.CARPET_GRAY=Block(block.CARPET, 7) +block.CARPET_LIGHT_GRAY=Block(block.CARPET, 8) +block.CARPET_CYAN=Block(block.CARPET, 9) +block.CARPET_PURPLE=Block(block.CARPET, 10) +block.CARPET_BLUE=Block(block.CARPET, 11) +block.CARPET_BROWN=Block(block.CARPET, 12) +block.CARPET_GREEN=Block(block.CARPET, 13) +block.CARPET_RED=Block(block.CARPET, 14) +block.CARPET_BLACK=Block(block.CARPET, 15) +block.STAINED_GLASS_WHITE=Block(block.STAINED_GLASS, 0) +block.STAINED_GLASS_ORANGE=Block(block.STAINED_GLASS, 1) +block.STAINED_GLASS_MAGENTA=Block(block.STAINED_GLASS, 2) +block.STAINED_GLASS_LIGHT_BLUE=Block(block.STAINED_GLASS, 3) +block.STAINED_GLASS_YELLOW=Block(block.STAINED_GLASS, 4) +block.STAINED_GLASS_LIME=Block(block.STAINED_GLASS, 5) +block.STAINED_GLASS_PINK=Block(block.STAINED_GLASS, 6) +block.STAINED_GLASS_GRAY=Block(block.STAINED_GLASS, 7) +block.STAINED_GLASS_LIGHT_GRAY=Block(block.STAINED_GLASS, 8) +block.STAINED_GLASS_CYAN=Block(block.STAINED_GLASS, 9) +block.STAINED_GLASS_PURPLE=Block(block.STAINED_GLASS, 10) +block.STAINED_GLASS_BLUE=Block(block.STAINED_GLASS, 11) +block.STAINED_GLASS_BROWN=Block(block.STAINED_GLASS, 12) +block.STAINED_GLASS_GREEN=Block(block.STAINED_GLASS, 13) +block.STAINED_GLASS_RED=Block(block.STAINED_GLASS, 14) +block.STAINED_GLASS_BLACK=Block(block.STAINED_GLASS, 15) +block.HARDENED_CLAY_STAINED_WHITE=Block(block.HARDENED_CLAY_STAINED, 0) +block.HARDENED_CLAY_STAINED_ORANGE=Block(block.HARDENED_CLAY_STAINED, 1) +block.HARDENED_CLAY_STAINED_MAGENTA=Block(block.HARDENED_CLAY_STAINED, 2) +block.HARDENED_CLAY_STAINED_LIGHT_BLUE=Block(block.HARDENED_CLAY_STAINED, 3) +block.HARDENED_CLAY_STAINED_YELLOW=Block(block.HARDENED_CLAY_STAINED, 4) +block.HARDENED_CLAY_STAINED_LIME=Block(block.HARDENED_CLAY_STAINED, 5) +block.HARDENED_CLAY_STAINED_PINK=Block(block.HARDENED_CLAY_STAINED, 6) +block.HARDENED_CLAY_STAINED_GRAY=Block(block.HARDENED_CLAY_STAINED, 7) +block.HARDENED_CLAY_STAINED_LIGHT_GRAY=Block(block.HARDENED_CLAY_STAINED, 8) +block.HARDENED_CLAY_STAINED_CYAN=Block(block.HARDENED_CLAY_STAINED, 9) +block.HARDENED_CLAY_STAINED_PURPLE=Block(block.HARDENED_CLAY_STAINED, 10) +block.HARDENED_CLAY_STAINED_BLUE=Block(block.HARDENED_CLAY_STAINED, 11) +block.HARDENED_CLAY_STAINED_BROWN=Block(block.HARDENED_CLAY_STAINED, 12) +block.HARDENED_CLAY_STAINED_GREEN=Block(block.HARDENED_CLAY_STAINED, 13) +block.HARDENED_CLAY_STAINED_RED=Block(block.HARDENED_CLAY_STAINED, 14) +block.HARDENED_CLAY_STAINED_BLACK=Block(block.HARDENED_CLAY_STAINED, 15) +block.LEAVES_OAK_DECAYABLE=Block(block.LEAVES, 0) +block.LEAVES_SPRUCE_DECAYABLE=Block(block.LEAVES, 1) +block.LEAVES_BIRCH_DECAYABLE=Block(block.LEAVES, 2) +block.LEAVES_JUNGLE_DECAYABLE=Block(block.LEAVES, 3) +block.LEAVES_SPRUCE_DECAYABLE_CD=Block(block.LEAVES, 9) +block.LEAVES_JUNGLE_DECAYABLE_CD=Block(block.LEAVES, 11) +block.LEAVES_OAK_PERMANENT=Block(block.LEAVES, 4) +block.LEAVES_SPRUCE_PERMANENT=Block(block.LEAVES, 5) +block.LEAVES_BIRCH_PERMANENT=Block(block.LEAVES, 6) +block.LEAVES_JUNGLE_PERMANENT=Block(block.LEAVES, 7) +block.LEAVES_OAK_PERMANENT_CD=Block(block.LEAVES, 12) +block.LEAVES_SPRUCE_PERMANENT_CD=Block(block.LEAVES, 13) +block.LEAVES_BIRCH_PERMANENT_CD=Block(block.LEAVES, 14) +block.LEAVES_JUNGLE_PERMANENT_CD=Block(block.LEAVES, 15) +block.LEAVES2=Block(161) +block.LEAVES_ACACIA_DECAYABLE=Block(block.LEAVES2, 0) +block.LEAVES_DARK_OAK_DECAYABLE=Block(block.LEAVES2, 1) +block.LEAVES_ACACIA_PERMANENT=Block(block.LEAVES2, 4) +block.LEAVES_DARK_OAK_PERMANENT=Block(block.LEAVES2, 5) +block.LEAVES_ACACIA_DECAYABLE_CD=Block(block.LEAVES2, 8) +block.LEAVES_DARK_OAK_DECAYABLE_CD=Block(block.LEAVES2, 9) +block.LEAVES_ACACIA_PERMANENT_CD=Block(block.LEAVES2, 12) +block.LEAVES_DARK_OAK_PERMANENT_CD=Block(block.LEAVES2, 13) -block.BLOCK[block.Block(block.WOOD_SLAB,0)] = {name="stairs:slab_wood", param2=0} -block.BLOCK[block.Block(block.WOOD_SLAB,8)] = {name="stairs:slab_wood", param2=20} -block.BLOCK[block.Block(block.WOOD_SLAB,1)] = {name="stairs:slab_pine_wood", param2=0} -block.BLOCK[block.Block(block.WOOD_SLAB,9)] = {name="stairs:slab_pine_wood", param2=20} -block.BLOCK[block.Block(block.WOOD_SLAB,2)] = {name="stairs:slab_wood", param2=0} -- FIX: birch -block.BLOCK[block.Block(block.WOOD_SLAB,10)] = {name="stairs:slab_wood", param2=20} -block.BLOCK[block.Block(block.WOOD_SLAB,3)] = {name="stairs:slab_junglewood", param2=0} -block.BLOCK[block.Block(block.WOOD_SLAB,11)] = {name="stairs:slab_junglewood", param2=20} -block.BLOCK[block.Block(block.WOOD_SLAB,4)] = {name="stairs:slab_acacia_wood", param2=0} -block.BLOCK[block.Block(block.WOOD_SLAB,12)] = {name="stairs:slab_acacia_wood", param2=20} -block.BLOCK[block.Block(block.WOOD_SLAB,5)] = {name="stairs:slab_wood", param2=0} -- FIX: dark oak -block.BLOCK[block.Block(block.WOOD_SLAB,13)] = {name="stairs:slab_wood", param2=20} +local to_node={} +local from_node={} -block.BLOCK[block.Block(block.STONE_SLAB,0)] = {name="stairs:slab_stone", param2=0} -block.BLOCK[block.Block(block.STONE_SLAB,8)] = {name="stairs:slab_stone", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,1)] = {name="stairs:slab_sandstone", param2=0} -block.BLOCK[block.Block(block.STONE_SLAB,9)] = {name="stairs:slab_sandstone", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,2)] = {name="stairs:slab_wood", param2=0} -block.BLOCK[block.Block(block.STONE_SLAB,10)] = {name="stairs:slab_wood", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,3)] = {name="stairs:slab_cobble", param2=0} -block.BLOCK[block.Block(block.STONE_SLAB,11)] = {name="stairs:slab_cobble", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,4)] = {name="stairs:slab_brick", param2=0} -block.BLOCK[block.Block(block.STONE_SLAB,12)] = {name="stairs:slab_brick", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,6)] = {name="stairs:slab_stonebrick", param2=0} -block.BLOCK[block.Block(block.STONE_SLAB,13)] = {name="stairs:slab_stonebrick", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,7)] = {name="stairs:slab_desert_stonebrick", param2=0} -- FIX: nether brick -block.BLOCK[block.Block(block.STONE_SLAB,14)] = {name="stairs:slab_desert_stonebrick", param2=20} -block.BLOCK[block.Block(block.STONE_SLAB,8)] = {name="stairs:slab_desert_stone", param2=0} -- FIX: quartz -block.BLOCK[block.Block(block.STONE_SLAB,15)] = {name="stairs:slab_desert_stone", param2=20} +local function translate(id, name,param2) + if not param2 then param2=0 end + if not minetest.registered_nodes[name] then + if name.sub(1,14)=="stained_glass:" then + name="default:glass" + else + name="default:stone" + end + end + + to_node[id]={name=name,param2=param2} + local key=name.." "..param2 + if not from_node[key] then + from_node[key]=id + end +end + +translate(block.AIR,"air") +translate(block.STONE,"default:stone") +translate(block.GRASS,"default:dirt_with_grass") +translate(block.DIRT,"default:dirt") +translate(block.COBBLESTONE,"default:cobble") +translate(block.WOOD_PLANKS,"default:wood") +translate(block.SAPLING,"default:sapling") +translate(block.BEDROCK,"default:obsidian") +translate(block.WATER_FLOWING,"default:water_flowing") +translate(block.WATER_STATIONARY,"default:water_source") +translate(block.LAVA_FLOWING,"default:lava_flowing") +translate(block.LAVA_STATIONARY,"default:lava_source") +translate(block.SAND,"default:sand") +translate(block.GRAVEL,"default:gravel") +translate(block.GOLD_ORE,"default:stone_with_gold") +translate(block.IRON_ORE,"default:stone_with_iron") +translate(block.COAL_ORE,"default:stone_with_coal") +translate(block.WOOD,"default:wood") +translate(block.LEAVES,"default:leaves") +translate(block.GLASS,"default:glass") +translate(block.LAPIS_LAZULI_ORE,"wool:blue") -- fix +translate(block.LAPIS_LAZULI_BLOCK,"wool:blue") +translate(block.SANDSTONE,"default:sandstone") +-- translate(block.BED,"default:") +-- translate(block.COBWEB,"default:") +translate(block.GRASS_TALL,"default:junglegrass") +translate(block.WOOL,"wool:white") +translate(block.WATERLILY,"flowers:dandelion_white") --fix +translate(block.FLOWER_YELLOW,"flowers:dandelion_yellow") +translate(block.FLOWER_CYAN,"flowers:geranium") +translate(block.MUSHROOM_BROWN,"flowers:mushroom_brown") +translate(block.MUSHROOM_RED,"flowers:mushroom_red") +translate(block.GOLD_BLOCK,"default:goldblock") +translate(block.IRON_BLOCK,"default:steelblock") +--translate(block.STONE_SLAB_DOUBLE,"default:") +translate(block.BRICK_BLOCK,"default:brick") +translate(block.TNT,"tnt:tnt") +translate(block.BOOKSHELF,"default:bookshelf") +translate(block.MOSS_STONE,"default:mossycobble") +translate(block.OBSIDIAN,"default:obsidian") +translate(block.TORCH,"default:torch") +translate(block.FIRE,"fire:basic_flame") +translate(block.CHEST,"default:chest") +translate(block.DIAMOND_ORE,"default:stone_with_diamond") +translate(block.DIAMOND_BLOCK,"default:diamondblock") +--translate(block.CRAFTING_TABLE,"default:") +translate(block.FARMLAND,"farming:soil") +translate(block.FURNACE_INACTIVE,"default:furnace") +translate(block.FURNACE_ACTIVE,"default:furnace_active") +translate(block.LADDER,"default:ladder") +translate(block.REDSTONE_ORE,"wool:red") -- fix +--translate(block.STONE_BUTTON,"default:") +translate(block.SNOW,"default:snow") +translate(block.ICE,"default:ice") +translate(block.SNOW_BLOCK,"default:snowblock") +translate(block.CACTUS,"default:cactus") +translate(block.CLAY,"default:clay") +translate(block.SUGAR_CANE,"farming:straw") -- fix +translate(block.FENCE,"default:fence_wood") +translate(block.GLOWSTONE_BLOCK,"default:meselamp") -- fix +--translate(block.BEDROCK_INVISIBLE,"default:") +translate(block.STONE_BRICK,"default:stonebrick") +translate(block.GLASS_PANE,"default:glass") -- fix +--translate(block.MELON,"default:") +translate(block.WOOD_SLAB_DOUBLE,"default:wood") --fix +--translate(block.FENCE_GATE,"default:") +--translate(block.WOOD_BUTTON,"default:") +translate(block.REDSTONE_BLOCK,"wool:red") -- fix +translate(block.QUARTZ_BLOCK,"wool:white") +translate(block.HARDENED_CLAY_STAINED,"wool:white") --fix +translate(block.SEA_LANTERN,"default:meselamp") +translate(block.CARPET,"wool:white") -- fix +translate(block.COAL_BLOCK,"default:coalblock") +--translate(block.REDSTONE_LAMP_INACTIVE,"default:") +translate(block.REDSTONE_LAMP_ACTIVE,"default:meselamp") +translate(block.SUNFLOWER,"flowers:tulip") +translate(block.LILAC,"flowers:viola") +translate(block.DOUBLE_TALLGRASS,"default:grass_2") --fix +--translate(block.LARGE_FERN,"default:") +translate(block.ROSE_BUSH,"flowers:rose") +translate(block.PEONY,"flowers:rose") --fix +translate(block.WOOL_WHITE,"wool:white") +translate(block.WOOL_ORANGE,"wool:orange") +translate(block.WOOL_MAGENTA,"wool:magenta") +translate(block.WOOL_LIGHT_BLUE,"wool:cyan") --fix +translate(block.WOOL_YELLOW,"wool:yellow") +translate(block.WOOL_LIME,"wool:green") +translate(block.WOOL_PINK,"wool:pink") +translate(block.WOOL_GRAY,"wool:dark_grey") +translate(block.WOOL_LIGHT_GRAY,"wool:grey") +translate(block.WOOL_CYAN,"wool:cyan") +translate(block.WOOL_PURPLE,"wool:violet") +translate(block.WOOL_BLUE,"wool:blue") +translate(block.WOOL_BROWN,"wool:brown") +translate(block.WOOL_GREEN,"wool:dark_green") +translate(block.WOOL_RED,"wool:red") +translate(block.WOOL_BLACK,"wool:black") +translate(block.CARPET_WHITE,"wool:white") +translate(block.CARPET_ORANGE,"wool:orange") +translate(block.CARPET_MAGENTA,"wool:magenta") +translate(block.CARPET_LIGHT_BLUE,"wool:cyan") --fix +translate(block.CARPET_YELLOW,"wool:yellow") +translate(block.CARPET_LIME,"wool:green") +translate(block.CARPET_PINK,"wool:pink") +translate(block.CARPET_GRAY,"wool:dark_grey") +translate(block.CARPET_LIGHT_GRAY,"wool:grey") +translate(block.CARPET_CYAN,"wool:cyan") +translate(block.CARPET_PURPLE,"wool:violet") +translate(block.CARPET_BLUE,"wool:blue") +translate(block.CARPET_BROWN,"wool:brown") +translate(block.CARPET_GREEN,"wool:dark_green") +translate(block.CARPET_RED,"wool:red") +translate(block.CARPET_BLACK,"wool:black") +translate(block.HARDENED_CLAY_STAINED_WHITE,"wool:white") +translate(block.HARDENED_CLAY_STAINED_ORANGE,"wool:orange") +translate(block.HARDENED_CLAY_STAINED_MAGENTA,"wool:magenta") +translate(block.HARDENED_CLAY_STAINED_LIGHT_BLUE,"wool:cyan") --fix +translate(block.HARDENED_CLAY_STAINED_YELLOW,"wool:yellow") +translate(block.HARDENED_CLAY_STAINED_LIME,"wool:green") +translate(block.HARDENED_CLAY_STAINED_PINK,"wool:pink") +translate(block.HARDENED_CLAY_STAINED_GRAY,"wool:dark_grey") +translate(block.HARDENED_CLAY_STAINED_LIGHT_GRAY,"wool:grey") +translate(block.HARDENED_CLAY_STAINED_CYAN,"wool:cyan") +translate(block.HARDENED_CLAY_STAINED_PURPLE,"wool:violet") +translate(block.HARDENED_CLAY_STAINED_BLUE,"wool:blue") +translate(block.HARDENED_CLAY_STAINED_BROWN,"wool:brown") +translate(block.HARDENED_CLAY_STAINED_GREEN,"wool:dark_green") +translate(block.HARDENED_CLAY_STAINED_RED,"wool:red") +translate(block.HARDENED_CLAY_STAINED_BLACK,"wool:black") + +translate(block.STAINED_GLASS_WHITE,"stained_glass:faint_aqua") --fix +translate(block.STAINED_GLASS_ORANGE,"stained_glass:orange") +translate(block.STAINED_GLASS_MAGENTA,"stained_glass:magenta") +translate(block.STAINED_GLASS_LIGHT_BLUE,"stained_glass:faint_blue") +translate(block.STAINED_GLASS_YELLOW,"stained_glass:yellow") +translate(block.STAINED_GLASS_LIME,"stained_glass:lime") +translate(block.STAINED_GLASS_PINK,"stained_glass:faint_red") +translate(block.STAINED_GLASS_GRAY,"stained_glass:dark_blue") --fix +translate(block.STAINED_GLASS_LIGHT_GRAY,"stained_glass:medium_blue") --fix +translate(block.STAINED_GLASS_CYAN,"stained_glass:cyan") +translate(block.STAINED_GLASS_PURPLE,"stained_glass:violet") +translate(block.STAINED_GLASS_BLUE,"stained_glass:blue") +translate(block.STAINED_GLASS_BROWN,"stained_glass:dark_red") +translate(block.STAINED_GLASS_GREEN,"stained_glass:green") +translate(block.STAINED_GLASS_RED,"stained_glass:red") +translate(block.STAINED_GLASS_BLACK,"stained_glass:dark_green") --fix + +--translate(block.LEAVES_OAK_DECAYABLE,"default:leaves") +translate(block.LEAVES_SPRUCE_DECAYABLE,"default:pine_needles") +--translate(block.LEAVES_BIRCH_DECAYABLE,"default:leaves") +translate(block.LEAVES_JUNGLE_DECAYABLE,"default:jungleleaves") +translate(block.LEAVES_OAK_PERMANENT,"default:leaves",1) +translate(block.LEAVES_SPRUCE_PERMANENT,"default:pine_needles",1) +translate(block.LEAVES_BIRCH_PERMANENT,"default:leaves",1) +translate(block.LEAVES_SPRUCE_DECAYABLE_CD,"default:pine_needles") +translate(block.LEAVES_JUNGLE_DECAYABLE_CD,"default:jungleleaves") +translate(block.LEAVES_JUNGLE_PERMANENT,"default:jungleleaves",1) +translate(block.LEAVES_OAK_PERMANENT_CD,"default:leaves",1) +translate(block.LEAVES_SPRUCE_PERMANENT_CD,"default:pine_needles",1) +translate(block.LEAVES_BIRCH_PERMANENT_CD,"default:leaves",1) +translate(block.LEAVES_JUNGLE_PERMANENT_CD,"default:jungleleaves",1) +translate(block.LEAVES2,"default:leaves") +translate(block.LEAVES_ACACIA_DECAYABLE,"default:acacia_leaves") +--block.to_node[block.LEAVES_DARK_OAK_DECAYABLE] = +translate(block.LEAVES_ACACIA_PERMANENT,"default:acacia_leaves",1) +translate(block.LEAVES_DARK_OAK_PERMANENT,"default:leaves",1) +translate(block.LEAVES_ACACIA_PERMANENT_CD,"default:acacia_leaves",1) +translate(block.LEAVES_DARK_OAK_PERMANENT_CD,"default:leaves",1) + +translate(Block(228),"air") +translate(Block(229),"air") +translate(Block(236),"air") +translate(Block(254),"air") + +translate(Block(block.WOOD_SLAB,0),"stairs:slab_wood",0) +translate(Block(block.WOOD_SLAB,8),"stairs:slab_wood",20) +translate(Block(block.WOOD_SLAB,1),"stairs:slab_pine_wood",0) +translate(Block(block.WOOD_SLAB,9),"stairs:slab_pine_wood",20) +translate(Block(block.WOOD_SLAB,2),"stairs:slab_wood",0) -- FIX: birch +translate(Block(block.WOOD_SLAB,10),"stairs:slab_wood",20) +translate(Block(block.WOOD_SLAB,3),"stairs:slab_junglewood",0) +translate(Block(block.WOOD_SLAB,11),"stairs:slab_junglewood",20) +translate(Block(block.WOOD_SLAB,4),"stairs:slab_acacia_wood",0) +translate(Block(block.WOOD_SLAB,12),"stairs:slab_acacia_wood",20) +translate(Block(block.WOOD_SLAB,5),"stairs:slab_wood",0) -- FIX: dark oak +translate(Block(block.WOOD_SLAB,13),"stairs:slab_wood",20) + +translate(Block(block.STONE_SLAB,0),"stairs:slab_stone",0) +translate(Block(block.STONE_SLAB,8),"stairs:slab_stone",20) +translate(Block(block.STONE_SLAB,1),"stairs:slab_sandstone",0) +translate(Block(block.STONE_SLAB,9),"stairs:slab_sandstone",20) +translate(Block(block.STONE_SLAB,2),"stairs:slab_wood",0) +translate(Block(block.STONE_SLAB,10),"stairs:slab_wood",20) +translate(Block(block.STONE_SLAB,3),"stairs:slab_cobble",0) +translate(Block(block.STONE_SLAB,11),"stairs:slab_cobble",20) +translate(Block(block.STONE_SLAB,4),"stairs:slab_brick",0) +translate(Block(block.STONE_SLAB,12),"stairs:slab_brick",20) +translate(Block(block.STONE_SLAB,6),"stairs:slab_stonebrick",0) +translate(Block(block.STONE_SLAB,13),"stairs:slab_stonebrick",20) +translate(Block(block.STONE_SLAB,7),"stairs:slab_desert_stonebrick",0) -- FIX: nether brick +translate(Block(block.STONE_SLAB,14),"stairs:slab_desert_stonebrick",20) +translate(Block(block.STONE_SLAB,8),"stairs:slab_desert_stone",0) -- FIX: quartz +translate(Block(block.STONE_SLAB,15),"stairs:slab_desert_stone",20) local function defineTrapdoor(base_num,base_name) - block.BLOCK[block.Block(base_num,0)] = {name=base_name, param2=2} - block.BLOCK[block.Block(base_num,1)] = {name=base_name, param2=0} - block.BLOCK[block.Block(base_num,2)] = {name=base_name, param2=1} - block.BLOCK[block.Block(base_num,3)] = {name=base_name, param2=3} - block.BLOCK[block.Block(base_num,4+0)] = {name=base_name.."_open", param2=2} - block.BLOCK[block.Block(base_num,4+1)] = {name=base_name.."_open", param2=0} - block.BLOCK[block.Block(base_num,4+2)] = {name=base_name.."_open", param2=1} - block.BLOCK[block.Block(base_num,4+3)] = {name=base_name.."_open", param2=3} - block.BLOCK[block.Block(base_num,8+0)] = {name=base_name, param2=22} - block.BLOCK[block.Block(base_num,8+1)] = {name=base_name, param2=20} - block.BLOCK[block.Block(base_num,8+2)] = {name=base_name, param2=23} - block.BLOCK[block.Block(base_num,8+3)] = {name=base_name, param2=21} - block.BLOCK[block.Block(base_num,4+8+0)] = {name=base_name.."_open", param2=22} - block.BLOCK[block.Block(base_num,4+8+1)] = {name=base_name.."_open", param2=20} - block.BLOCK[block.Block(base_num,4+8+2)] = {name=base_name.."_open", param2=23} - block.BLOCK[block.Block(base_num,4+8+3)] = {name=base_name.."_open", param2=21} + translate(Block(base_num,0),base_name,2) + translate(Block(base_num,1),base_name,0) + translate(Block(base_num,2),base_name,1) + translate(Block(base_num,3),base_name,3) + translate(Block(base_num,4+0),base_name.."_open",2) + translate(Block(base_num,4+1),base_name.."_open",0) + translate(Block(base_num,4+2),base_name.."_open",1) + translate(Block(base_num,4+3),base_name.."_open",3) + translate(Block(base_num,8+0),base_name,22) + translate(Block(base_num,8+1),base_name,20) + translate(Block(base_num,8+2),base_name,23) + translate(Block(base_num,8+3),base_name,21) + translate(Block(base_num,4+8+0),base_name.."_open",22) + translate(Block(base_num,4+8+1),base_name.."_open",20) + translate(Block(base_num,4+8+2),base_name.."_open",23) + translate(Block(base_num,4+8+3),base_name.."_open",21) end defineTrapdoor(block.TRAPDOOR,"doors:trapdoor") defineTrapdoor(block.IRON_TRAPDOOR,"doors:trapdoor") local function defineDoor(base_num,base_name) - block.BLOCK[block.Block(base_num,0)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,1)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,2)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,3)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,4+0)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,4+1)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,4+2)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,4+3)] = {name=base_name.."_b_2"} - block.BLOCK[block.Block(base_num,8+0)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,8+1)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,8+2)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,8+3)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,4+8+0)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,4+8+1)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,4+8+2)] = {name=base_name.."_t_2"} - block.BLOCK[block.Block(base_num,4+8+3)] = {name=base_name.."_t_2"} + translate(Block(base_num,0),base_name.."_b_2") + translate(Block(base_num,1),base_name.."_b_2") + translate(Block(base_num,2),base_name.."_b_2") + translate(Block(base_num,3),base_name.."_b_2") + translate(Block(base_num,4+0),base_name.."_b_2") + translate(Block(base_num,4+1),base_name.."_b_2") + translate(Block(base_num,4+2),base_name.."_b_2") + translate(Block(base_num,4+3),base_name.."_b_2") + translate(Block(base_num,8+0),base_name.."_t_2") + translate(Block(base_num,8+1),base_name.."_t_2") + translate(Block(base_num,8+2),base_name.."_t_2") + translate(Block(base_num,8+3),base_name.."_t_2") + translate(Block(base_num,4+8+0),base_name.."_t_2") + translate(Block(base_num,4+8+1),base_name.."_t_2") + translate(Block(base_num,4+8+2),base_name.."_t_2") + translate(Block(base_num,4+8+3),base_name.."_t_2") -- lots of fixes to be done! -- it might not be doable as MC upper doors don't have directional data end @@ -435,15 +466,15 @@ defineDoor(block.DOOR_WOOD, "doors:door_wood") defineDoor(block.DOOR_IRON, "doors:door_steel") local function defineStair(base_num,base_name) - block.BLOCK[block.Block(base_num,0)] = {name=base_name, param2=1} - block.BLOCK[block.Block(base_num,1)] = {name=base_name, param2=3} - block.BLOCK[block.Block(base_num,2)] = {name=base_name, param2=2} - block.BLOCK[block.Block(base_num,3)] = {name=base_name, param2=0} + translate(Block(base_num,0),base_name,1) + translate(Block(base_num,1),base_name,3) + translate(Block(base_num,2),base_name,2) + translate(Block(base_num,3),base_name,0) - block.BLOCK[block.Block(base_num,4)] = {name=base_name, param2=17} - block.BLOCK[block.Block(base_num,5)] = {name=base_name, param2=21} - block.BLOCK[block.Block(base_num,6)] = {name=base_name, param2=22} - block.BLOCK[block.Block(base_num,7)] = {name=base_name, param2=20} + translate(Block(base_num,4),base_name,17) + translate(Block(base_num,5),base_name,21) + translate(Block(base_num,6),base_name,22) + translate(Block(base_num,7),base_name,20) end defineStair(block.STAIR_WOOD, "stairs:stair_wood") @@ -461,17 +492,34 @@ defineStair(164, "stairs:stair_wood") -- fix: dark oak defineStair(180, "stairs:stair_sandstone") -- fix: red sandstone defineStair(203, "stairs:stair_wood") -- fix: purpur -minetest.log("info", "Checking for missing blocks") -for id,entry in pairs(block.BLOCK) do - if not minetest.registered_nodes[entry.name] then - minetest.log("error", "Missing block "..entry.name) - if entry.name.sub(1,14) == "stained_glass:" then - entry.name = "default:glass" - else - entry.name = "default:stone" - entry.param2 = "0" - end - end + +function block.node_to_id_meta(node) + if node.name == "air" or node.name == "ignore" then + return "0" + end + local entry=node.name .. " " .. node.param2 + if from_node[entry] then + return unBlock(from_node[entry]) + end + entry=node.name .. " 0" + if from_node[entry] then + return unBlock(from_node[entry]) + end + return unBlock(block.STONE) +end + +function block.id_meta_to_node(id, meta) + if id == 0 then + return {name="air"} + end + local value=Block(id, meta) + if to_node[value] then + return to_node[value] + elseif to_node[id] then + return to_node[id] + else + return {name="stone"} + end end return block diff --git a/raspberryjammod/init.lua b/raspberryjammod/init.lua index eccc313..1dfe42b 100644 --- a/raspberryjammod/init.lua +++ b/raspberryjammod/init.lua @@ -350,20 +350,13 @@ function handle_entity(cmd, id, args) end function parse_node(args, start) - local nodenum + local id, meta if #args < start then - nodenum = 0 + return {name="air"} elseif #args == start then - nodenum = block.Block(tonumber(args[start]),0) + return block.id_meta_to_node(tonumber(args[start]),0) else - nodenum = block.Block(tonumber(args[start]),tonumber(args[start+1])) - end - local node = block.BLOCK[nodenum] - if node == nil then - node = block.BLOCK[bit.band(nodenum,0xFFF)] - if not node then - node = {name="default:stone"} - end + return block.id_meta_to_node(tonumber(args[start]),tonumber(args[start+1])) end return node end @@ -424,25 +417,11 @@ function handle_world(cmd, args) return node.name .. "," .. node.param2 elseif cmd == "getBlockWithData" or cmd == "getBlock" then local node = minetest.get_node({x=tonumber(args[1]),y=tonumber(args[2]),z=-tonumber(args[3])}) - local id, meta - if node == "ignore" then - id = block.AIR - meta = 0 - else - id = block.STONE - meta = 0 - for key,value in pairs(block.BLOCK) do - if value.name == node.name then - id = math.floor(bit.band(key,0xFFF)) - meta = math.floor(bit.rshift(key,12)) - break - end - end - end + local id, meta = block.node_to_id_meta(node) if cmd == "getBlock" then - return ""..id + return tostring(id) else - return ""..id..","..meta + return id..","..meta end elseif cmd == "getHeight" then return tonumber(get_height(tonumber(args[1]),-tonumber(args[2])))