ma_pops_furniture/kitchen.lua

1274 lines
41 KiB
Lua

local counter_table = { --name, color, colorize(hex or color name:intensity(1-255))
{'Black', 'black', 'black:200'},
{'Blue', 'blue', 'blue:125'},
{'Brown', 'brown', 'brown:75'},
{'Cyan', 'cyan', 'cyan:125'},
{'Dark Green', 'dark_green', 'green:190'},
--{'Dark Grey', 'dark_grey', 'black:200'},
{'Green', 'green', '#32cd32:125'},
--{'Grey', 'grey', 'black:150'},
{'Magenta', 'magenta', 'magenta:190'},
{'Orange', 'orange', 'orange:125'},
{'Pink', 'pink', 'pink:190'},
{'Red', 'red', 'red:125'},
{'Violet', 'violet', 'violet:125'},
{'White', 'white', 'white:125'},
{'Yellow', 'yellow', 'yellow:125'},
}
for i in ipairs (counter_table) do
local name = counter_table[i][1]
local color = counter_table[i][2]
local hex = counter_table[i][3]
minetest.register_node("ma_pops_furniture:counter_"..color, {
description = name.. " Counter (Vertical Drawers)",
tiles = {
"default_coral_skeleton.png^[colorize:"..hex,
"mp_enc_bottom.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_right.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_left.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
sounds = moditems.WOOD_SOUNDS,
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', 6*6)
meta:set_string('formspec',
'size [9,10.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;1.5,.2;6,6;]'..
'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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5},
{-0.4375, -0.375, -0.4375, -0.0625, 0.3125, -0.375},
{0.0625, -0.375, -0.4375, 0.4375, 0.3125, -0.375},
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
{-0.1875, -0.0625, -0.5, -0.125, 0, -0.4375},
{0.125, -0.0625, -0.5, 0.1875, 0, -0.4375},
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5},
}
},
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:counter_black"
minetest.set_node(pos, node)
else
if item == 'dye:white' then
node.name = "ma_pops_furniture:counter_white"
minetest.set_node(pos, node)
else
if item == 'dye:grey' then
node.name = "ma_pops_furniture:counter_grey"
minetest.set_node(pos, node)
else
if item == 'dye:dark_grey' then
node.name = "ma_pops_furniture:counter_dark_grey"
minetest.set_node(pos, node)
else
if item == 'dye:violet' then
node.name = "ma_pops_furniture:counter_violet"
minetest.set_node(pos, node)
else
if item == 'dye:blue' then
node.name = "ma_pops_furniture:counter_blue"
minetest.set_node(pos, node)
else
if item == 'dye:cyan' then
node.name = "ma_pops_furniture:counter_cyan"
minetest.set_node(pos, node)
else
if item == 'dye:dark_green' then
node.name = "ma_pops_furniture:counter_dark_green"
minetest.set_node(pos, node)
else
if item == 'dye:green' then
node.name = "ma_pops_furniture:counter_green"
minetest.set_node(pos, node)
else
if item == 'dye:yellow' then
node.name = "ma_pops_furniture:counter_yellow"
minetest.set_node(pos, node)
else
if item == 'dye:orange' then
node.name = "ma_pops_furniture:counter_orange"
minetest.set_node(pos, node)
else
if item == 'dye:red' then
node.name = "ma_pops_furniture:counter_red"
minetest.set_node(pos, node)
else
if item == 'dye:magenta' then
node.name = "ma_pops_furniture:counter_magenta"
minetest.set_node(pos, node)
else
if item == 'dye:pink' then
node.name = "ma_pops_furniture:counter_pink"
minetest.set_node(pos, node)
else
if item == 'dye:brown' then
node.name = "ma_pops_furniture:counter_brown"
minetest.set_node(pos, node)
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
})
minetest.register_node("ma_pops_furniture:counter2_"..color, {
description = name.. " Counter",
tiles = {
"default_coral_skeleton.png^[colorize:"..hex,
"mp_enc_bottom.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_right.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_left.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
sounds = moditems.WOOD_SOUNDS,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5},
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5},
}
},
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:counter2_black"
minetest.set_node(pos, node)
else
if item == 'dye:white' then
node.name = "ma_pops_furniture:counter2_white"
minetest.set_node(pos, node)
else
if item == 'dye:grey' then
node.name = "ma_pops_furniture:counter2_grey"
minetest.set_node(pos, node)
else
if item == 'dye:dark_grey' then
node.name = "ma_pops_furniture:counter2_dark_grey"
minetest.set_node(pos, node)
else
if item == 'dye:violet' then
node.name = "ma_pops_furniture:counter2_violet"
minetest.set_node(pos, node)
else
if item == 'dye:blue' then
node.name = "ma_pops_furniture:counter2_blue"
minetest.set_node(pos, node)
else
if item == 'dye:cyan' then
node.name = "ma_pops_furniture:counter2_cyan"
minetest.set_node(pos, node)
else
if item == 'dye:dark_green' then
node.name = "ma_pops_furniture:counter2_dark_green"
minetest.set_node(pos, node)
else
if item == 'dye:green' then
node.name = "ma_pops_furniture:counter2_green"
minetest.set_node(pos, node)
else
if item == 'dye:yellow' then
node.name = "ma_pops_furniture:counter2_yellow"
minetest.set_node(pos, node)
else
if item == 'dye:orange' then
node.name = "ma_pops_furniture:counter2_orange"
minetest.set_node(pos, node)
else
if item == 'dye:red' then
node.name = "ma_pops_furniture:counter2_red"
minetest.set_node(pos, node)
else
if item == 'dye:magenta' then
node.name = "ma_pops_furniture:counter2_magenta"
minetest.set_node(pos, node)
else
if item == 'dye:pink' then
node.name = "ma_pops_furniture:counter2_pink"
minetest.set_node(pos, node)
else
if item == 'dye:brown' then
node.name = "ma_pops_furniture:counter2_brown"
minetest.set_node(pos, node)
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
})
minetest.register_node("ma_pops_furniture:counter3_"..color, {
description = name.. " Counter (Horizontal Drawers)",
tiles = {
"default_coral_skeleton.png^[colorize:"..hex,
"mp_enc_bottom.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_right.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_left.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_front2.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
sounds = moditems.WOOD_SOUNDS,
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', 6*6)
meta:set_string('formspec',
'size [9,10.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;1.5,.2;6,6;]'..
'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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5},
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5},
{-0.4375, 0, -0.4375, 0.4375, 0.3125, -0.375},
{-0.4375, -0.375, -0.4375, 0.4375, -0.0625, -0.375},
{-0.1875, 0.125, -0.5, 0.1875, 0.1875, -0.4375},
{-0.1875, -0.25, -0.5, 0.1875, -0.1875, -0.4375},
}
},
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:counter3_black"
minetest.set_node(pos, node)
else
if item == 'dye:white' then
node.name = "ma_pops_furniture:counter3_white"
minetest.set_node(pos, node)
else
if item == 'dye:grey' then
node.name = "ma_pops_furniture:counter3_grey"
minetest.set_node(pos, node)
else
if item == 'dye:dark_grey' then
node.name = "ma_pops_furniture:counter3_dark_grey"
minetest.set_node(pos, node)
else
if item == 'dye:violet' then
node.name = "ma_pops_furniture:counter3_violet"
minetest.set_node(pos, node)
else
if item == 'dye:blue' then
node.name = "ma_pops_furniture:counter3_blue"
minetest.set_node(pos, node)
else
if item == 'dye:cyan' then
node.name = "ma_pops_furniture:counter3_cyan"
minetest.set_node(pos, node)
else
if item == 'dye:dark_green' then
node.name = "ma_pops_furniture:counter3_dark_green"
minetest.set_node(pos, node)
else
if item == 'dye:green' then
node.name = "ma_pops_furniture:counter3_green"
minetest.set_node(pos, node)
else
if item == 'dye:yellow' then
node.name = "ma_pops_furniture:counter3_yellow"
minetest.set_node(pos, node)
else
if item == 'dye:orange' then
node.name = "ma_pops_furniture:counter3_orange"
minetest.set_node(pos, node)
else
if item == 'dye:red' then
node.name = "ma_pops_furniture:counter3_red"
minetest.set_node(pos, node)
else
if item == 'dye:magenta' then
node.name = "ma_pops_furniture:counter3_magenta"
minetest.set_node(pos, node)
else
if item == 'dye:pink' then
node.name = "ma_pops_furniture:counter3_pink"
minetest.set_node(pos, node)
else
if item == 'dye:brown' then
node.name = "ma_pops_furniture:counter3_brown"
minetest.set_node(pos, node)
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
})
minetest.register_node("ma_pops_furniture:counter1_" ..color, {
description = name.. " Counter (Corner)",
tiles = {
"default_coral_skeleton.png^[colorize:"..hex,
"mp_corn_r_bottom.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png"
},
drawtype = "nodebox",
paramtype = "light",
sounds = moditems.WOOD_SOUNDS,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{0.5, 0.5, 0.5, -0.5, -0.5, -0.5}, -- NodeBox1
}
},
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:counter1_black"
minetest.set_node(pos, node)
else
if item == 'dye:white' then
node.name = "ma_pops_furniture:counter1_white"
minetest.set_node(pos, node)
else
if item == 'dye:grey' then
node.name = "ma_pops_furniture:counter1_grey"
minetest.set_node(pos, node)
else
if item == 'dye:dark_grey' then
node.name = "ma_pops_furniture:counter1_dark_grey"
minetest.set_node(pos, node)
else
if item == 'dye:violet' then
node.name = "ma_pops_furniture:counter1_violet"
minetest.set_node(pos, node)
else
if item == 'dye:blue' then
node.name = "ma_pops_furniture:counter1_blue"
minetest.set_node(pos, node)
else
if item == 'dye:cyan' then
node.name = "ma_pops_furniture:counter1_cyan"
minetest.set_node(pos, node)
else
if item == 'dye:dark_green' then
node.name = "ma_pops_furniture:counter1_dark_green"
minetest.set_node(pos, node)
else
if item == 'dye:green' then
node.name = "ma_pops_furniture:counter1_green"
minetest.set_node(pos, node)
else
if item == 'dye:yellow' then
node.name = "ma_pops_furniture:counter1_yellow"
minetest.set_node(pos, node)
else
if item == 'dye:orange' then
node.name = "ma_pops_furniture:counter1_orange"
minetest.set_node(pos, node)
else
if item == 'dye:red' then
node.name = "ma_pops_furniture:counter1_red"
minetest.set_node(pos, node)
else
if item == 'dye:magenta' then
node.name = "ma_pops_furniture:counter1_magenta"
minetest.set_node(pos, node)
else
if item == 'dye:pink' then
node.name = "ma_pops_furniture:counter1_pink"
minetest.set_node(pos, node)
else
if item == 'dye:brown' then
node.name = "ma_pops_furniture:counter1_brown"
minetest.set_node(pos, node)
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
})
minetest.register_node("ma_pops_furniture:sink_" ..color, {
description = name.. " Counter (Sink)",
tiles = {
"default_coral_skeleton.png^[colorize:"..hex.."^mp_sink_top.png",
"mp_enc_bottom.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_right.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_left.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_back.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_enc_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
sounds = moditems.WOOD_SOUNDS,
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', 6*6)
meta:set_string('formspec',
'size [9,10.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;1.5,.2;6,6;]'..
'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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5}, -- NodeBox1
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5}, -- NodeBox2
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox3
{-0.4375, -0.375, -0.4375, -0.0625, 0.3125, -0.375}, -- NodeBox4
{0.0625, -0.375, -0.4375, 0.4375, 0.3125, -0.375}, -- NodeBox5
{-0.1875, -0.0625, -0.5, -0.125, 0, -0.4375}, -- NodeBox6
{0.125, -0.0625, -0.5, 0.1875, 0, -0.4375}, -- NodeBox7
}
},
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:sink_black"
minetest.set_node(pos, node)
else
if item == 'dye:white' then
node.name = "ma_pops_furniture:sink_white"
minetest.set_node(pos, node)
else
if item == 'dye:grey' then
node.name = "ma_pops_furniture:sink_grey"
minetest.set_node(pos, node)
else
if item == 'dye:dark_grey' then
node.name = "ma_pops_furniture:sink_dark_grey"
minetest.set_node(pos, node)
else
if item == 'dye:violet' then
node.name = "ma_pops_furniture:sink_violet"
minetest.set_node(pos, node)
else
if item == 'dye:blue' then
node.name = "ma_pops_furniture:sink_blue"
minetest.set_node(pos, node)
else
if item == 'dye:cyan' then
node.name = "ma_pops_furniture:sink_cyan"
minetest.set_node(pos, node)
else
if item == 'dye:dark_green' then
node.name = "ma_pops_furniture:sink_dark_green"
minetest.set_node(pos, node)
else
if item == 'dye:green' then
node.name = "ma_pops_furniture:sink_green"
minetest.set_node(pos, node)
else
if item == 'dye:yellow' then
node.name = "ma_pops_furniture:sink_yellow"
minetest.set_node(pos, node)
else
if item == 'dye:orange' then
node.name = "ma_pops_furniture:sink_orange"
minetest.set_node(pos, node)
else
if item == 'dye:red' then
node.name = "ma_pops_furniture:sink_red"
minetest.set_node(pos, node)
else
if item == 'dye:magenta' then
node.name = "ma_pops_furniture:sink_magenta"
minetest.set_node(pos, node)
else
if item == 'dye:pink' then
node.name = "ma_pops_furniture:sink_pink"
minetest.set_node(pos, node)
else
if item == 'dye:brown' then
node.name = "ma_pops_furniture:sink_brown"
minetest.set_node(pos, node)
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
})
minetest.register_node("ma_pops_furniture:upcabinet_"..color, {
description = name.." Upper Cabinets",
tiles = {
"default_coral_skeleton.png^[colorize:"..hex.."^mp_up_top.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_up_bottom.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_up_right.png",
"default_coral_skeleton.png^[colorize:"..hex.."^mp_up_left.png",
"default_coral_skeleton.png^[colorize:"..hex,
"default_coral_skeleton.png^[colorize:"..hex.."^mp_up_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
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.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;3,1.3;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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, -0.375, 0.5, 0.5, 0.5}, -- NodeBox1
{-0.4375, -0.25, -0.4375, -0.0625, 0.4375, -0.375}, -- NodeBox2
{0.0625, -0.25, -0.4375, 0.4375, 0.4375, -0.375}, -- NodeBox3
{-0.1875, -0.1875, -0.5, -0.125, 0, -0.4375}, -- NodeBox4
{0.125, -0.1875, -0.5, 0.1875, 0, -0.4375}, -- NodeBox5
}
},
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:upcabinet_black"
minetest.set_node(pos, node)
else
if item == 'dye:white' then
node.name = "ma_pops_furniture:upcabinet_white"
minetest.set_node(pos, node)
else
if item == 'dye:grey' then
node.name = "ma_pops_furniture:upcabinet_grey"
minetest.set_node(pos, node)
else
if item == 'dye:dark_grey' then
node.name = "ma_pops_furniture:upcabinet_dark_grey"
minetest.set_node(pos, node)
else
if item == 'dye:violet' then
node.name = "ma_pops_furniture:upcabinet_violet"
minetest.set_node(pos, node)
else
if item == 'dye:blue' then
node.name = "ma_pops_furniture:upcabinet_blue"
minetest.set_node(pos, node)
else
if item == 'dye:cyan' then
node.name = "ma_pops_furniture:upcabinet_cyan"
minetest.set_node(pos, node)
else
if item == 'dye:dark_green' then
node.name = "ma_pops_furniture:upcabinet_dark_green"
minetest.set_node(pos, node)
else
if item == 'dye:green' then
node.name = "ma_pops_furniture:upcabinet_green"
minetest.set_node(pos, node)
else
if item == 'dye:yellow' then
node.name = "ma_pops_furniture:upcabinet_yellow"
minetest.set_node(pos, node)
else
if item == 'dye:orange' then
node.name = "ma_pops_furniture:upcabinet_orange"
minetest.set_node(pos, node)
else
if item == 'dye:red' then
node.name = "ma_pops_furniture:upcabinet_red"
minetest.set_node(pos, node)
else
if item == 'dye:magenta' then
node.name = "ma_pops_furniture:upcabinet_magenta"
minetest.set_node(pos, node)
else
if item == 'dye:pink' then
node.name = "ma_pops_furniture:upcabinet_pink"
minetest.set_node(pos, node)
else
if item == 'dye:brown' then
node.name = "ma_pops_furniture:upcabinet_brown"
minetest.set_node(pos, node)
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
})
end
local counter_table = { --name, material
{'Wooden', 'wood'},
{'Acacia', 'acacia_wood'},
{'Jungle', 'junglewood' },
{'Pine', 'pine_wood'},
{'Aspen', 'aspen_wood'},
}
for i in ipairs (counter_table) do
local name = counter_table[i][1]
local material = counter_table[i][2]
minetest.register_node("ma_pops_furniture:counter_"..material, {
description = name.. " Counter (Vertical Drawers)",
tiles = {
"default_"..material..".png",
"mp_enc_bottom.png",
"default_"..material..".png^mp_enc_right.png",
"default_"..material..".png^mp_enc_left.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
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', 6*6)
meta:set_string('formspec',
'size [9,10.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;1.5,.2;6,6;]'..
'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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5},
{-0.4375, -0.375, -0.4375, -0.0625, 0.3125, -0.375},
{0.0625, -0.375, -0.4375, 0.4375, 0.3125, -0.375},
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
{-0.1875, -0.0625, -0.5, -0.125, 0, -0.4375},
{0.125, -0.0625, -0.5, 0.1875, 0, -0.4375},
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5},
}
},
})
minetest.register_node("ma_pops_furniture:counter2_"..material, {
description = name.. " Counter",
tiles = {
"default_"..material..".png",
"mp_enc_bottom.png",
"default_"..material..".png^mp_enc_right.png",
"default_"..material..".png^mp_enc_left.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_back.png",
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5},
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5},
}
},
})
minetest.register_node("ma_pops_furniture:counter3_"..material, {
description = name.. " Counter (Horizontal Drawers)",
tiles = {
"default_"..material..".png",
"mp_enc_bottom.png",
"default_"..material..".png^mp_enc_right.png",
"default_"..material..".png^mp_enc_left.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_front2.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
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', 6*6)
meta:set_string('formspec',
'size [9,10.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;1.5,.2;6,6;]'..
'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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5},
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5},
{-0.4375, 0, -0.4375, 0.4375, 0.3125, -0.375},
{-0.4375, -0.375, -0.4375, 0.4375, -0.0625, -0.375},
{-0.1875, 0.125, -0.5, 0.1875, 0.1875, -0.4375},
{-0.1875, -0.25, -0.5, 0.1875, -0.1875, -0.4375},
}
},
})
minetest.register_node("ma_pops_furniture:counter1_" ..material, {
description = name.. " Counter (Corner)",
tiles = {
"default_"..material..".png",
"mp_corn_r_bottom.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_back.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{0.5, 0.5, 0.5, -0.5, -0.5, -0.5}, -- NodeBox1
}
},
})
minetest.register_node("ma_pops_furniture:sink_" ..material, {
description = name.. " Counter (Sink)",
tiles = {
"default_"..material..".png^mp_sink_top.png",
"mp_enc_bottom.png",
"default_"..material..".png^mp_enc_right.png",
"default_"..material..".png^mp_enc_left.png",
"default_"..material..".png^mp_enc_back.png",
"default_"..material..".png^mp_enc_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
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', 6*6)
meta:set_string('formspec',
'size [9,10.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;1.5,.2;6,6;]'..
'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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.3125, 0.5, -0.4375, 0.5}, -- NodeBox1
{-0.5, -0.4375, -0.375, 0.5, 0.375, 0.5}, -- NodeBox2
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox3
{-0.4375, -0.375, -0.4375, -0.0625, 0.3125, -0.375}, -- NodeBox4
{0.0625, -0.375, -0.4375, 0.4375, 0.3125, -0.375}, -- NodeBox5
{-0.1875, -0.0625, -0.5, -0.125, 0, -0.4375}, -- NodeBox6
{0.125, -0.0625, -0.5, 0.1875, 0, -0.4375}, -- NodeBox7
}
},
})
minetest.register_node("ma_pops_furniture:upcabinet_"..material, {
description = name.." Upper Cabinets",
tiles = {
"default_"..material..".png^mp_up_top.png",
"default_"..material..".png^mp_up_bottom.png",
"default_"..material..".png^mp_up_right.png",
"default_"..material..".png^mp_up_left.png",
"default_"..material..".png",
"default_"..material..".png^mp_up_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
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.5]'..
'bgcolor[#080808BB;true]'..
'list[current_name;storage;3,1.3;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,
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, -0.375, 0.5, 0.5, 0.5}, -- NodeBox1
{-0.4375, -0.25, -0.4375, -0.0625, 0.4375, -0.375}, -- NodeBox2
{0.0625, -0.25, -0.4375, 0.4375, 0.4375, -0.375}, -- NodeBox3
{-0.1875, -0.1875, -0.5, -0.125, 0, -0.4375}, -- NodeBox4
{0.125, -0.1875, -0.5, 0.1875, 0, -0.4375}, -- NodeBox5
}
},
})
end
minetest.register_node("ma_pops_furniture:upcabinet_corner", {
description = "Upper Cabinets(corner)",
tiles = {
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 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.3125, -0.5, 0.5, 0.5, 0.5},
}
}
})
minetest.register_node("ma_pops_furniture:dw", {
description= "Dishwasher",
tiles = {
"mp_dw_top.png",
"mp_dw_bottom.png",
"mp_dw_left.png",
"mp_dw_right.png",
"mp_dw_back.png",
"mp_dw_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, 0.4375},
{-0.5, -0.4375, -0.4375, 0.5, 0.5, 0.5},
{-0.5, 0.3125, -0.5, 0.5, 0.5, -0.4375},
{-0.4375, -0.4375, -0.5, 0.4375, 0.25, 0.5},
}
}
})
minetest.register_node("ma_pops_furniture:oven_overhead", {
description= "Oven Overhead",
tiles = {
"mp_camp_top.png",
"mp_camp_bottom.png",
"mp_camp_left.png",
"mp_camp_right.png",
"mp_camp_back.png",
"mp_camp_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.4375, 0.4375, -0.4375, 0.4375, 0.5, 0.4375},
{-0.5, 0.25, -0.5, 0.5, 0.4375, 0.5},
}
}
})
minetest.register_node("ma_pops_furniture:microwave", {
description = "Microwave",
tiles = {
"mp_mw_top.png",
"mp_mw_bottom.png",
"mp_mw_right.png",
"mp_mw_left.png",
"mp_mw_back.png",
"mp_mw_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.4375, -0.3125, 0.4375, 0.0625, 0.3125},
{-0.375, -0.5, -0.25, 0.375, -0.4375, 0.25},
},
}
})
minetest.register_node("ma_pops_furniture:coffee_maker", {
description = "Coffee Maker",
tiles = {
"mp_cof_top.png",
"mp_cof_bottom.png",
"mp_cof_right.png",
"mp_cof_left.png",
"mp_cof_back.png",
"mp_cof_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.5, -0.0625, 0, -0.4375, 0.4375},
{-0.4375, -0.5, 0.3125, 0, 0.1875, 0.4375},
{-0.4375, -0.0625, 0, 0, 0.25, 0.4375},
{-0.375, -0.4375, 0, -0.0625, -0.125, 0.25},
{-0.25, -0.375, -0.125, -0.1875, -0.1875, 0.0625},
}
}
})
minetest.register_node("ma_pops_furniture:coffee_cup", {
description = "Coffee Cup",
tiles = {
"mp_cof_top.png",
"mp_cof_top.png",
"mp_cof_right.png",
"mp_cof_left.png",
"mp_cof_back.png",
"mp_cof_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy=2, oddly_breakably_by_hand=2, furniture=1},
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, 0, -0.0625, -0.1875, 0.3125}, -- NodeBox1
{-0.25, -0.3125, -0.125, -0.1875, -0.25, 0}, -- NodeBox2
{-0.25, -0.4375, -0.125, -0.1875, -0.375, 0}, -- NodeBox3
{-0.25, -0.375, -0.125, -0.1875, -0.3125, -0.0625}, -- NodeBox4
}
}
})
minetest.register_node("ma_pops_furniture:toaster", {
description = "Toaster",
tiles = {
"mp_toas_top.png",
"mp_toas_bottom.png",
"mp_toas_right.png",
"mp_toas_left.png",
"mp_toas_back.png",
"mp_toas_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, furniture = 1},
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, 0, 0.375, -0.0625, 0.3125},
{-0.4375, -0.1875, 0.0625, -0.375, -0.125, 0.25},
},
}
})
minetest.register_node("ma_pops_furniture:faucet_kitchen", {
description = "Kitchen Faucet",
tiles = {
"mp_grif_top.png",
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png",
"mp_grif_sides.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
node_box = {
type = "fixed",
fixed = {
{-0.0625, -0.5, 0.375, 0.0625, -0.1875, 0.4375},
{-0.0625, -0.1875, 0.0625, 0.0625, -0.125, 0.4375},
{-0.0625, -0.25, 0.0625, 0.0625, -0.1875, 0.125},
{0.125, -0.5, 0.3125, 0.25, -0.375, 0.4375},
{-0.25, -0.5, 0.3125, -0.125, -0.375, 0.4375},
},
}
})
minetest.register_node("ma_pops_furniture:cutting_board", {
description = "Cutting Board",
tiles = {
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.5, -0.25, 0.25, -0.4375, 0.25},
{0.25, -0.5, -0.0625, 0.4375, -0.4375, 0.0625},
},
}
})
minetest.register_node("ma_pops_furniture:tile_kitchen", {
description = "White Kitchen Tile",
tiles = {
"mp_kitchen_tile.png",
"mp_kitchen_tile.png",
"mp_kitchen_tile.png",
"mp_kitchen_tile.png",
"mp_kitchen_tile.png",
"mp_kitchen_tile.png"
},
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
})
minetest.register_node("ma_pops_furniture:tile_floor_kitchen", {
description = "Checker Kitchen Floor Tile",
tiles = {
"mp_kitchen_floor_tile.png",
"mp_kitchen_floor_tile.png",
"mp_kitchen_floor_tile.png",
"mp_kitchen_floor_tile.png",
"mp_kitchen_floor_tile.png",
"mp_kitchen_floor_tile.png"
},
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
})
minetest.register_node('ma_pops_furniture:trash_can', {
description = 'Trash Can',
drawtype = 'nodebox',
tiles = {'default_steel_block.png'},
groups = {cracky=2, oddly_breakably_by_hand=2, furniture=1},
--inventory_image = 'fm_chair_stone.png',
paramtype = 'light',
paramtype2 = 'facedir',
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.375, 0.375, 0.375, 0.375}, -- NodeBox1
{-0.4375, 0.375, -0.4375, 0.4375, 0.4375, 0.4375}, -- NodeBox2
{-0.125, 0.4375, -0.3125, 0.125, 0.5, 0.3125}, -- NodeBox3
}
},
sounds = moditems.WOOD_SOUNDS,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",
"size[8,9]" ..
"button[0,0;2,1;empty;Empty Trash]" ..
"list[context;trashlist;3,1;2,3;]" ..
"list[current_player;main;0,5;8,4;]"
)
meta:set_string("infotext", "Trash Can")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
inv:set_size("trashlist", 2*3)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name() ..
" moves stuff in trash can at " .. minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" moves stuff to trash can at " .. minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" takes stuff from trash can at " .. minetest.pos_to_string(pos))
end,
on_receive_fields = function(pos, formname, fields, sender)
if fields.empty then
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
inv:set_list("trashlist", {})
minetest.sound_play("trash", {to_player=sender:get_player_name(), gain = 1.0})
minetest.log("action", sender:get_player_name() ..
" empties trash can at " .. minetest.pos_to_string(pos))
end
end
})