493 lines
16 KiB
Lua
493 lines
16 KiB
Lua
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
|