minetest.register_node('ma_pops_furniture:fireplace', { description = 'Fireplace', drawtype = 'mesh', mesh = 'FM_fireplace_off.obj', tiles = {{name='default_brick.png'},{name='xpanes_bar.png'}}, groups = {cracky=2, oddly_breakable_by_hand=6, furniture=1}, paramtype = 'light', paramtype2 = 'facedir', sounds = moditems.STONE_SOUNDS, on_construct = function(pos) local meta = minetest.env:get_meta(pos) local inv = meta:get_inventory() inv:set_size('fuel', 1) inv:set_size('main', 8*4) meta:set_string('formspec', ma_pops_furniture.fireplace_formspec) meta:set_string('infotext', 'Fireplace') end, can_dig = function(pos,player) local meta = minetest.get_meta(pos); local inv = meta:get_inventory() return inv:is_empty('fuel') end, }) minetest.register_node('ma_pops_furniture:fireplace_on', { description = 'Fireplace', drawtype = 'mesh', mesh = 'FM_fireplace_on.obj', tiles = {{name='default_brick.png'},{name='xpanes_bar.png'},{name='default_tree.png'},{name='fire_basic_flame_animated.png', animation={type='vertical_frames', aspect_w=16, aspect_h=16, length=1}}}, groups = {cracky=2, oddly_breakable_by_hand=3, furniture=1, not_in_creative_inventory=1}, light_source = 14, paramtype = 'light', paramtype2 = 'facedir', drops = 'ma_pops_furniture:fireplace', sounds = moditems.STONE_SOUNDS, can_dig = function(pos,player) local meta = minetest.get_meta(pos); local inv = meta:get_inventory() return inv:is_empty('fuel') end, }) local c_table = { --name, material, invimg {'Stone Coffee Table', 'cobble'}, {'Wood Coffee Table', 'wood'}, {'Acacia Wood Coffee Table', 'acacia_wood'}, {'Aspen Wood Coffee Table', 'aspen_wood'}, {'Pine Wood Coffee Table', 'pine_wood'}, {'Jungle Wood Coffee Table', 'junglewood'} } for i in ipairs (c_table) do local name = c_table[i][1] local material = c_table[i][2] local invimg = c_table[i][3] minetest.register_node('ma_pops_furniture:c_'..material, { description = name, drawtype = 'nodebox', tiles = {'default_'..material..'.png'}, groups = {choppy=2, oddly_breakably_by_hand=2, furniture=1, flammable=1}, paramtype = 'light', paramtype2 = 'facedir', on_rightclick = function (pos, node, player, itemstack, pointed_thing) for _, obj in ipairs (minetest.get_connected_players()) do local item = obj:get_wielded_item():get_name() if item == 'ma_pops_furniture:c_'..material then node.name = 'ma_pops_furniture:end_table_'..material minetest.set_node(pos, node) else end end end, sounds = moditems.WOOD_SOUNDS, node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, -0.4, 0.0, -0.4}, {-0.5, -0.5, 0.5, -0.4, 0.0, 0.4}, {0.5, -0.5, -0.5, 0.4, 0.0, -0.4}, {0.5, -0.5, 0.5, 0.4, 0.0, 0.4}, {0.5, 0.1, 0.5, -0.5, 0.0, -0.5}, {0.5, -0.3, 0.5, -0.5, -0.4, -0.5}, }, } }) end local end_table = { --name, material, invimg {'Stone End Table', 'cobble'}, {'Wood End Table', 'wood'}, {'Acacia Wood End Table', 'acacia_wood'}, {'Aspen Wood End Table', 'aspen_wood'}, {'Pine Wood End Table', 'pine_wood'}, {'Jungle Wood End Table', 'junglewood'} } for i in ipairs (end_table) do local name = end_table[i][1] local material = end_table[i][2] local invimg = end_table[i][3] minetest.register_node('ma_pops_furniture:end_table_'..material, { description = name, drawtype = 'nodebox', tiles = {'default_'..material..'.png'}, groups = {choppy=2, oddly_breakably_by_hand=2, furniture=1, flammable=1}, paramtype = 'light', paramtype2 = 'facedir', sounds = moditems.WOOD_SOUNDS, node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, -0.4, 0.5, -0.4}, {-0.5, -0.5, 0.5, -0.4, 0.5, 0.4}, {0.5, -0.5, -0.5, 0.4, 0.5, -0.4}, {0.5, -0.5, 0.5, 0.4, 0.5, 0.4}, {0.5, 0.4, 0.5, -0.5, 0.5, -0.5}, {0.5, -0.3, 0.5, -0.5, -0.2, -0.5}, }, } }) end local unit_table = { --name, material {'Wood Entertainment Unit', 'wood'}, {'Acacia Wood Entertainment Unit', 'acacia_wood'}, {'Aspen Wood Entertainment Unit', 'aspen_wood'}, {'Pine Wood Entertainment Unit', 'pine_wood'}, {'Jungle Wood Entertainment Unit', 'junglewood'} } for i in ipairs (unit_table) do local name = unit_table[i][1] local material = unit_table[i][2] local invimg = unit_table[i][3] minetest.register_node("ma_pops_furniture:e_u_"..material, { description= name, tiles= {'default_'..material..'.png'}, drawtype= "nodebox", paramtype= "light", paramtype2 = "facedir", sounds = moditems.WOOD_SOUNDS, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, furniture = 1}, on_construct = function(pos) local meta = minetest.env:get_meta(pos) local inv = meta:get_inventory() inv:set_size('main', 8*4) inv:set_size('storage', 3*3) meta:set_string('formspec', 'size [9,10]'.. 'bgcolor[#080808BB;true]'.. 'list[current_name;storage;3,1.5;3,3;]'.. 'list[current_player;main;0.5,6.5;8,4;]') end, can_dig = function(pos,player) local meta = minetest.get_meta(pos); local inv = meta:get_inventory() return inv:is_empty('storage') and inv:is_empty('storage1') end, node_box= { type= "fixed", fixed= { {-0.5, -0.5, -0.5, -0.4, 0.5, 0.5}, {0.5, -0.5, -0.5, 0.4, 0.5, 0.5}, {-0.5, 0.4, -0.5, 0.5, 0.5, 0.5}, {-0.5, -0.050, -0.5, 0.5, 0.050, 0.5}, {-0.5, -0.5, 0.5, 0.5, 0.5, 0.4}, }, } }) end minetest.register_node('ma_pops_furniture:vcr_on', { description= "VCR", tiles = { "default_coal_block.png", "default_coal_block.png", "default_coal_block.png", "default_coal_block.png", "default_coal_block.png", "default_coal_block.png^mp_vcr_on.png" }, drawtype= "nodebox", paramtype= "light", paramtype2 = "facedir", drop = 'ma_pops_furniture:vcr_off', sounds = moditems.WOOD_SOUNDS, groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1, furniture = 1}, node_box= { type= "fixed", fixed= { {-0.375, -0.5, -0.25, 0.375, -0.4375, 0.25}, {-0.4375, -0.4375, -0.3125, 0.4375, -0.25, 0.3125}, }, }, on_rightclick = function (pos, node, puncher) node.name = "ma_pops_furniture:vcr_off" minetest.set_node(pos, node) end, }) minetest.register_node('ma_pops_furniture:vcr_off', { description= "VCR", tiles = { "default_coal_block.png", "default_coal_block.png", "default_coal_block.png", "default_coal_block.png", "default_coal_block.png", "default_coal_block.png^mp_vcr_off.png" }, drawtype= "nodebox", paramtype= "light", paramtype2 = "facedir", drop = 'ma_pops_furniture:vcr_off', sounds = moditems.WOOD_SOUNDS, groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1}, node_box= { type= "fixed", fixed= { {-0.375, -0.5, -0.25, 0.375, -0.4375, 0.25}, {-0.4375, -0.4375, -0.3125, 0.4375, -0.25, 0.3125}, }, }, on_rightclick = function (pos, node, puncher) node.name = "ma_pops_furniture:vcr_on" minetest.set_node(pos, node) end, }) local chair2_table = { --name, color, colorize(hex or color name:intensity(1-255)) {'Black', 'black', 'black:225'}, {'Blue', 'blue', 'blue:225'}, {'Brown', 'brown', 'brown:225'}, {'Cyan', 'cyan', 'cyan:200'}, {'Dark Green', 'dark_green', 'green:225'}, {'Dark Grey', 'dark_grey', 'black:200'}, {'Green', 'green', '#32cd32:150'}, {'Grey', 'grey', 'black:100'}, {'Magenta', 'magenta', 'magenta:200'}, {'Orange', 'orange', 'orange:225'}, {'Pink', 'pink', 'pink:225'}, {'Red', 'red', 'red:225'}, {'Violet', 'violet', 'violet:225'}, {'White', 'white', 'white:1'}, {'Yellow', 'yellow', 'yellow:225'}, } for i in ipairs (chair2_table) do local name = chair2_table[i][1] local color = chair2_table[i][2] local hex = chair2_table[i][3] local cb = "^([combine:16x16:0,0=mp_cb.png^[mask:mp_mask.png)" local cf = "^([combine:16x16:0,0=mp_cf.png^[mask:mp_mask.png)" minetest.register_node("ma_pops_furniture:chair2_"..color, { description = name.." Chair", tiles = {"wool_"..color..".png","wool_"..color..".png"..cb,"wool_"..color..".png"..cf,"wool_"..color..".png"..cf,"wool_"..color..".png"..cf,"wool_"..color..".png"..cf,}, drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, furniture = 1, fall_damage_add_percent=-80, bouncy=80}, sounds = {wood = {name="furn_bouncy", gain=0.8}}, can_dig = ma_pops_furniture.sit_dig, on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) pos.y = pos.y + 0 -- Sitting position ma_pops_furniture.sit(pos, node, clicker, pointed_thing) return itemstack end, node_box = { type = "fixed", fixed = { {-0.4, -0.5, -0.4, -0.3, -0.4, -0.3}, {-0.4, -0.5, 0.4, -0.3, -0.4, 0.3}, {0.4, -0.5, 0.4, 0.3, -0.4, 0.3}, {0.4, -0.5, -0.4, 0.3, -0.4, -0.3}, ----------------------------------- {-0.450, -0.4, -0.450, 0.450, 0.1, 0.450}, {-0.5, 0.1, -0.5, -0.3, 0.3, 0.0}, {0.5, 0.1, -0.5, 0.3, 0.3, 0.0}, {0.450, 0.1, -0.0, -0.450, 0.5, 0.450}, }, }, on_punch = function(pos, node, clicker) for _, obj in ipairs (minetest.get_connected_players()) do local item = obj:get_wielded_item():get_name() if item == 'dye:black' then node.name = "ma_pops_furniture:chair2_black" minetest.set_node(pos, node) else if item == 'dye:white' then node.name = "ma_pops_furniture:chair2_white" minetest.set_node(pos, node) else if item == 'dye:grey' then node.name = "ma_pops_furniture:chair2_grey" minetest.set_node(pos, node) else if item == 'dye:dark_grey' then node.name = "ma_pops_furniture:chair2_dark_grey" minetest.set_node(pos, node) else if item == 'dye:violet' then node.name = "ma_pops_furniture:chair2_violet" minetest.set_node(pos, node) else if item == 'dye:blue' then node.name = "ma_pops_furniture:chair2_blue" minetest.set_node(pos, node) else if item == 'dye:cyan' then node.name = "ma_pops_furniture:chair2_cyan" minetest.set_node(pos, node) else if item == 'dye:dark_green' then node.name = "ma_pops_furniture:chair2_dark_green" minetest.set_node(pos, node) else if item == 'dye:green' then node.name = "ma_pops_furniture:chair2_green" minetest.set_node(pos, node) else if item == 'dye:yellow' then node.name = "ma_pops_furniture:chair2_yellow" minetest.set_node(pos, node) else if item == 'dye:orange' then node.name = "ma_pops_furniture:chair2_orange" minetest.set_node(pos, node) else if item == 'dye:red' then node.name = "ma_pops_furniture:chair2_red" minetest.set_node(pos, node) else if item == 'dye:magenta' then node.name = "ma_pops_furniture:chair2_magenta" minetest.set_node(pos, node) else if item == 'dye:pink' then node.name = "ma_pops_furniture:chair2_pink" minetest.set_node(pos, node) else if item == 'dye:brown' then node.name = "ma_pops_furniture:chair2_brown" minetest.set_node(pos, node) else ma_pops_furniture.sit(pos, node, clicker) end end end end end end end end end end end end end end end end end }) end local fs_table = { --name, color, colorize(hex or color name:intensity(1-255)) {'Black', 'black', 'black:225'}, {'Blue', 'blue', 'blue:225'}, {'Brown', 'brown', 'brown:225'}, {'Cyan', 'cyan', 'cyan:200'}, {'Dark Green', 'dark_green', 'green:225'}, {'Dark Grey', 'dark_grey', 'black:200'}, {'Green', 'green', '#32cd32:150'}, {'Grey', 'grey', 'black:100'}, {'Magenta', 'magenta', 'magenta:200'}, {'Orange', 'orange', 'orange:225'}, {'Pink', 'pink', 'pink:225'}, {'Red', 'red', 'red:225'}, {'Violet', 'violet', 'violet:225'}, {'White', 'white', 'white:1'}, {'Yellow', 'yellow', 'yellow:225'}, } for i in ipairs (fs_table) do local name = fs_table[i][1] local color = fs_table[i][2] local hex = fs_table[i][3] minetest.register_node("ma_pops_furniture:fs_"..color, { description = name.." Footstool", tiles = {"wool_"..color..".png","wool_"..color..".png^mp_cb.png","wool_"..color..".png^mp_cf.png","wool_"..color..".png^mp_cf.png","wool_"..color..".png^mp_cf.png","wool_"..color..".png^mp_cf.png",}, drawtype = "nodebox", paramtype = "light", sounds = moditems.WOOD_SOUNDS, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, furniture = 1}, node_box = { type = "fixed", fixed = { {-0.4, -0.5, -0.4, -0.3, -0.4, -0.3}, {-0.4, -0.5, 0.4, -0.3, -0.4, 0.3}, {0.4, -0.5, 0.4, 0.3, -0.4, 0.3}, {0.4, -0.5, -0.4, 0.3, -0.4, -0.3}, ----------------------------------- {-0.450, -0.4, -0.450, 0.450, -0.1, 0.450}, }, }, on_punch = function(pos, node, clicker) for _, obj in ipairs (minetest.get_connected_players()) do local item = obj:get_wielded_item():get_name() if item == 'dye:black' then node.name = "ma_pops_furniture:fs_black" minetest.set_node(pos, node) else if item == 'dye:white' then node.name = "ma_pops_furniture:fs_white" minetest.set_node(pos, node) else if item == 'dye:grey' then node.name = "ma_pops_furniture:fs_grey" minetest.set_node(pos, node) else if item == 'dye:dark_grey' then node.name = "ma_pops_furniture:fs_dark_grey" minetest.set_node(pos, node) else if item == 'dye:violet' then node.name = "ma_pops_furniture:fs_violet" minetest.set_node(pos, node) else if item == 'dye:blue' then node.name = "ma_pops_furniture:fs_blue" minetest.set_node(pos, node) else if item == 'dye:cyan' then node.name = "ma_pops_furniture:fs_cyan" minetest.set_node(pos, node) else if item == 'dye:dark_green' then node.name = "ma_pops_furniture:fs_dark_green" minetest.set_node(pos, node) else if item == 'dye:green' then node.name = "ma_pops_furniture:fs_green" minetest.set_node(pos, node) else if item == 'dye:yellow' then node.name = "ma_pops_furniture:fs_yellow" minetest.set_node(pos, node) else if item == 'dye:orange' then node.name = "ma_pops_furniture:fs_orange" minetest.set_node(pos, node) else if item == 'dye:red' then node.name = "ma_pops_furniture:fs_red" minetest.set_node(pos, node) else if item == 'dye:magenta' then node.name = "ma_pops_furniture:fs_magenta" minetest.set_node(pos, node) else if item == 'dye:pink' then node.name = "ma_pops_furniture:fs_pink" minetest.set_node(pos, node) else if item == 'dye:brown' then node.name = "ma_pops_furniture:fs_brown" minetest.set_node(pos, node) end end end end end end end end end end end end end end end end end }) end