Merge remote-tracking branch 'upstream/master'

This commit is contained in:
2022-05-27 18:34:18 +02:00
125 changed files with 2630 additions and 2635 deletions

View File

@ -1,23 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"creative",
"default",
"homedecor",
"unifieddyes",
"screwdriver",
}
globals = {
}

View File

@ -1,67 +0,0 @@
Living Room Furniture (lrfurn) mod for Minetest
by thefamilygrog66
Description:
Coloured Long Sofas (3 blocks wide), Sofas (2 blocks wide), Armchairs, Coffee Tables and End Tables, loosely based on PilzAdam's beds mod. There are 9 colours in all: red, orange, yellow, green, blue, violet, black, grey and white.
When you right-click on a long sofa, sofa or armchair, it transports you onto it, and replenishes your HP. Good if you've just escaped nasty mobs, didn't fare so well in battle, or just had a bad fall. The coffee table - which isn't coloured, just wooden - is pretty much just for decoration. It stands half a block high and nearly 2 blocks long. The end table is similar to the coffee table, though roughly half the length (i.e. only one block) and square.
Recipes:
Long Sofa
+---------------+---------------+---------------+
| coloured wool | coloured wool | coloured wool |
+---------------+---------------+---------------+
| wood slab | wood slab | wood slab |
+---------------+---------------+---------------+
| stick | stick | stick |
+---------------+---------------+---------------+
Sofa
+---------------+---------------+-------+
| coloured wool | coloured wool | |
+---------------+---------------+-------+
| wood slab | wood slab | |
+---------------+---------------+-------+
| stick | stick | |
+---------------+---------------+-------+
Armchair
+---------------+-------+-------+
| coloured wool | | |
+---------------+-------+-------+
| wood slab | | |
+---------------+-------+-------+
| stick | | |
+---------------+-------+-------+
Coffee Table (only wood texture)
+-----------+-----------+-----------+
| | | |
+-----------+-----------+-----------+
| wood slab | wood slab | wood slab |
+-----------+-----------+-----------+
| stick | | stick |
+-----------+-----------+-----------+
End Table (only wood texture)
+-----------+-----------+-----------+
| | | |
+-----------+-----------+-----------+
| wood slab | wood slab | |
+-----------+-----------+-----------+
| stick | stick | |
+-----------+-----------+-----------+
Mod dependencies: default, wool
See also:
http://minetest.net/

View File

@ -19,8 +19,10 @@ minetest.register_node(":lrfurn:armchair", {
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "lrfurn_armchair_inv.png",
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
node_box = armchair_cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -28,13 +30,7 @@ minetest.register_node(":lrfurn:armchair", {
on_dig = unifieddyes.on_dig,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if not clicker:is_player() then
return itemstack
end
pos.y = pos.y-0.5
clicker:setpos(pos)
clicker:set_hp(20)
return itemstack
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
})
@ -42,21 +38,26 @@ homedecor.register("armchair", {
description = S("Armchair"),
mesh = "forniture_armchair.obj",
tiles = {
"wool_white.png",
{ name = "wool_dark_grey.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff }
homedecor.textures.wool_white,
{ name = homedecor.textures.wool_dark_grey, color = 0xffffffff },
{ name = homedecor.textures.default_wood, color = 0xffffffff }
},
inventory_image = "homedecor_armchair_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
node_box = armchair_cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
on_dig = unifieddyes.on_dig,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
})
-- crafts
@ -65,7 +66,7 @@ minetest.register_craft({
output = "lrfurn:armchair",
recipe = {
{"wool:white", "", "", },
{"stairs:slab_wood", "", "", },
{homedecor.materials.slab_wood, "", "", },
{"group:stick", "", "", }
}
})
@ -93,9 +94,9 @@ unifieddyes.register_color_craft({
minetest.register_craft({
output = "homedecor:armchair 2",
recipe = {
{ "wool:white",""},
{ homedecor.materials.wool_white,""},
{ "group:wood","group:wood" },
{ "wool:white","wool:white" },
{ homedecor.materials.wool_white,homedecor.materials.wool_white },
},
})

View File

@ -78,6 +78,53 @@ function lrfurn.fix_sofa_rotation_nsew(pos, placer, itemstack, pointed_thing)
minetest.swap_node(pos, { name = node.name, param2 = fdir+colorbits })
end
function lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, seats)
if not clicker:is_player() then
return itemstack
end
--conversion table for param2 to dir
local p2d = {
vector.new(0, 0, 0),
vector.new(0, 0, -1),
vector.new(0, 0, 1),
vector.new(1, 0, 0),
vector.new(-1, 0, 0),
vector.new(0, 0, 0),
vector.new(0, 0, 0)
}
--generate posible seat positions
local valid_seats = {[minetest.hash_node_position(pos)] = pos}
if seats > 1 then
for i=1,seats-1 do
--since this are hardware colored nodes, node.param2 gives us a actual param to get a dir from
local npos = vector.add(pos, vector.multiply(p2d[node.param2 % 8], i))
valid_seats[minetest.hash_node_position(npos)] = npos
end
end
--see if we can find a non occupied seat
local sit_pos
for hash, spos in pairs(valid_seats) do
local pstatus = false
for _, ref in pairs(minetest.get_objects_inside_radius(spos, 0.5)) do
if ref:is_player() then
pstatus = true
end
end
if not pstatus then sit_pos = spos end
end
if not sit_pos then
minetest.chat_send_player(clicker:get_player_name(), "sorry, this seat is currently occupied")
return itemstack
end
--seat the player
sit_pos.y = sit_pos.y-0.5
clicker:setpos(sit_pos)
return itemstack
end
dofile(modpath.."/longsofas.lua")
dofile(modpath.."/sofas.lua")
dofile(modpath.."/armchairs.lua")

View File

@ -18,8 +18,10 @@ minetest.register_node(":lrfurn:longsofa", {
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "lrfurn_longsofa_inv.png",
wield_scale = { x = 0.6, y = 0.6, z = 0.6 },
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = longsofa_cbox,
node_box = longsofa_cbox,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
@ -31,7 +33,7 @@ minetest.register_node(":lrfurn:longsofa", {
local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false)
if lrfurn.check_right(pos, fdir, true, placer) then
if not creative.is_enabled_for(playername) then
if not minetest.is_creative_enabled(playername) then
itemstack:take_item()
end
else
@ -42,20 +44,15 @@ minetest.register_node(":lrfurn:longsofa", {
end,
on_dig = unifieddyes.on_dig,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if not clicker:is_player() then
return itemstack
end
pos.y = pos.y-0.5
clicker:setpos(pos)
return itemstack
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 3)
end
})
minetest.register_craft({
output = "lrfurn:longsofa",
recipe = {
{"wool:white", "wool:white", "wool:white", },
{"stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood", },
{homedecor.materials.wool_white, homedecor.materials.wool_white, homedecor.materials.wool_white, },
{homedecor.materials.slab_wood, homedecor.materials.slab_wood, homedecor.materials.slab_wood, },
{"group:stick", "group:stick", "group:stick", }
}
})
@ -63,7 +60,7 @@ minetest.register_craft({
minetest.register_craft({
output = "lrfurn:longsofa",
recipe = {
{"wool:white", "wool:white", "wool:white", },
{homedecor.materials.wool_white, homedecor.materials.wool_white, homedecor.materials.wool_white, },
{"moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood", },
{"group:stick", "group:stick", "group:stick", }
}

View File

@ -10,9 +10,11 @@ homedecor.register("deckchair", {
mesh = "homedecor_deckchair.obj",
tiles = {"homedecor_deckchair.png"},
description = "Deck Chair",
groups = { snappy = 3 },
groups = { snappy = 3, dig_tree=2 },
expand = { forward="placeholder" },
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = dc_cbox,
collision_box = dc_cbox,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
@ -25,9 +27,11 @@ homedecor.register("deckchair_striped_blue", {
mesh = "homedecor_deckchair.obj",
tiles = {"homedecor_deckchair_striped_blue.png"},
description = "Deck Chair (blue striped)",
groups = { snappy = 3 },
groups = { snappy = 3, dig_tree=2 },
expand = { forward="placeholder" },
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = dc_cbox,
collision_box = dc_cbox,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
@ -36,7 +40,7 @@ homedecor.register("deckchair_striped_blue", {
homedecor.register("simple_bench", {
tiles = { "homedecor_generic_wood_old.png" },
description = "Simple Bench",
groups = {snappy=3},
groups = {snappy=3, dig_tree=2},
node_box = {
type = "fixed",
fixed = {
@ -45,7 +49,9 @@ homedecor.register("simple_bench", {
{ 0.3, -0.5, 0.1, 0.4, -0.15, 0.3},
}
},
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
})
local bl1_sbox = {
@ -69,9 +75,11 @@ homedecor.register("bench_large_1", {
},
description = "Garden Bench (style 1)",
inventory_image = "homedecor_bench_large_1_inv.png",
groups = { snappy = 3 },
groups = { snappy = 3, dig_tree=2 },
expand = { right="placeholder" },
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = bl1_sbox,
node_box = bl1_cbox,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
@ -98,11 +106,13 @@ homedecor.register("bench_large_2", {
mesh = "homedecor_bench_large_2.obj",
tiles = { "homedecor_generic_wood_old.png" },
inventory_image = "homedecor_bench_large_2_inv.png",
groups = {snappy=3},
groups = {snappy=3, dig_tree=2},
selection_box = bl2_sbox,
node_box = bl2_cbox,
expand = { right="placeholder" },
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
})
@ -126,7 +136,9 @@ homedecor.register("kitchen_chair_wood", {
selection_box = kc_cbox,
collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
after_place_node = unifieddyes.fix_rotation_nsew,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -141,7 +153,7 @@ homedecor.register("kitchen_chair_padded", {
mesh = "homedecor_kitchen_chair.obj",
tiles = {
homedecor.plain_wood,
"wool_white.png",
homedecor.textures.wool_white,
},
inventory_image = "homedecor_chair_padded_inv.png",
paramtype2 = "colorwallmounted",
@ -149,7 +161,9 @@ homedecor.register("kitchen_chair_padded", {
selection_box = kc_cbox,
collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
@ -188,8 +202,10 @@ for _, c in pairs(chairs) do
drawtype = "mesh",
tiles = { "homedecor_office_chair_"..name..".png" },
mesh = "homedecor_office_chair_"..name..".obj",
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree=2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = ofchairs_sbox,
collision_box = ofchairs_cbox,
expand = { top = "placeholder" },
@ -213,7 +229,7 @@ minetest.register_craft( {
recipe = {
{ "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
{ "group:wood", "group:wood", "group:wood" },
{ "stairs:slab_wood", "", "stairs:slab_wood" }
{ homedecor.materials.slab_wood, "", homedecor.materials.slab_wood }
},
})
@ -229,8 +245,8 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:simple_bench",
recipe = {
{ "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
{ "stairs:slab_wood", "", "stairs:slab_wood" }
{ homedecor.materials.slab_wood, homedecor.materials.slab_wood, homedecor.materials.slab_wood },
{ homedecor.materials.slab_wood, "", homedecor.materials.slab_wood }
},
})
@ -275,7 +291,7 @@ minetest.register_craft({
output = "homedecor:kitchen_chair_padded",
recipe = {
"homedecor:kitchen_chair_wood",
"wool:white",
homedecor.materials.wool_white,
},
})
@ -306,8 +322,8 @@ minetest.register_craft({
minetest.register_craft({
output = "homedecor:office_chair_basic",
recipe = {
{ "", "", "wool:black" },
{ "", "wool:black", "default:steel_ingot" },
{ "", "", homedecor.materials.wool_black },
{ "", homedecor.materials.wool_black, homedecor.materials.steel_ingot },
{ "group:stick", "basic_materials:steel_bar", "group:stick" }
},
})
@ -315,8 +331,8 @@ minetest.register_craft({
minetest.register_craft({
output = "homedecor:office_chair_upscale",
recipe = {
{ "dye:black", "building_blocks:sticks", "group:wool" },
{ "basic_materials:plastic_sheet", "group:wool", "default:steel_ingot" },
{ homedecor.materials.dye_black, "building_blocks:sticks", "group:wool" },
{ "basic_materials:plastic_sheet", "group:wool", homedecor.materials.steel_ingot },
{ "building_blocks:sticks", "basic_materials:steel_bar", "building_blocks:sticks" }
},
})

View File

@ -1,4 +1,4 @@
name = homedecor_seating
description = Homedecor mod: seating
depends = default, wool, homedecor_common, unifieddyes, basic_materials
optional_depends = screwdriver
depends = homedecor_common
optional_depends = screwdriver, wool, default, unifieddyes, basic_materials

View File

@ -18,8 +18,10 @@ minetest.register_node(":lrfurn:sofa", {
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "lrfurn_sofa_inv.png",
wield_scale = { x = 0.6, y = 0.6, z = 0.6 },
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = sofa_cbox,
node_box = sofa_cbox,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
@ -31,7 +33,7 @@ minetest.register_node(":lrfurn:sofa", {
local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false)
if lrfurn.check_right(pos, fdir, false, placer) then
if not creative.is_enabled_for(playername) then
if not minetest.is_creative_enabled(playername) then
itemstack:take_item()
end
else
@ -42,20 +44,15 @@ minetest.register_node(":lrfurn:sofa", {
end,
on_dig = unifieddyes.on_dig,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if not clicker:is_player() then
return itemstack
end
pos.y = pos.y-0.5
clicker:setpos(pos)
return itemstack
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 2)
end
})
minetest.register_craft({
output = "lrfurn:sofa",
recipe = {
{"wool:white", "wool:white", "", },
{"stairs:slab_wood", "stairs:slab_wood", "", },
{homedecor.materials.wool_white, homedecor.materials.wool_white, "", },
{homedecor.materials.slab_wood, homedecor.materials.slab_wood, "", },
{"group:stick", "group:stick", "", }
}
})
@ -63,7 +60,7 @@ minetest.register_craft({
minetest.register_craft({
output = "lrfurn:sofa",
recipe = {
{"wool:white", "wool:white", "", },
{homedecor.materials.wool_white, homedecor.materials.wool_white, "", },
{"moreblocks:slab_wood", "moreblocks:slab_wood", "", },
{"group:stick", "group:stick", "", }
}