mirror of
https://github.com/mt-mods/homedecor_modpack.git
synced 2025-07-17 05:10:25 +02:00
Compare commits
1 Commits
master
...
seat_dig_f
Author | SHA1 | Date | |
---|---|---|---|
f8ee689624 |
@ -2,12 +2,12 @@ local S = minetest.get_translator("building_blocks")
|
||||
|
||||
minetest.register_craftitem("building_blocks:sticks", {
|
||||
description = S("Small bundle of sticks"),
|
||||
inventory_image = "building_blocks_sticks.png",
|
||||
image = "building_blocks_sticks.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
})
|
||||
minetest.register_craftitem("building_blocks:tar_base", {
|
||||
description = S("Tar base"),
|
||||
inventory_image = "building_blocks_tar_base.png",
|
||||
image = "building_blocks_tar_base.png",
|
||||
})
|
||||
|
||||
minetest.register_tool("building_blocks:knife", {
|
||||
|
@ -23,6 +23,7 @@ if minetest.get_modpath("vessels") then
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "blend",
|
||||
})
|
||||
|
||||
local sbox = {
|
||||
@ -36,6 +37,7 @@ if minetest.get_modpath("vessels") then
|
||||
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
|
||||
inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
|
||||
wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
|
||||
use_texture_alpha = "blend",
|
||||
selection_box = sbox
|
||||
})
|
||||
|
||||
@ -54,6 +56,7 @@ if minetest.get_modpath("vessels") then
|
||||
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
|
||||
inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
|
||||
wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
|
||||
use_texture_alpha = "blend",
|
||||
selection_box = sbox
|
||||
})
|
||||
end
|
||||
|
@ -239,6 +239,7 @@ homedecor.register("toilet_open", {
|
||||
selection_box = toilet_sbox,
|
||||
collision_box = toilet_cbox,
|
||||
drop = "homedecor:toilet",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {cracky=3, dig_stone = 2},
|
||||
_sound_def = {
|
||||
key = "node_sound_stone_defaults",
|
||||
|
@ -19,7 +19,6 @@ local door_list = {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
use_texture_alpha = "opaque",
|
||||
},
|
||||
{
|
||||
name = "exterior_fancy",
|
||||
@ -27,29 +26,25 @@ local door_list = {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
mesh = "homedecor_door_fancy",
|
||||
use_texture_alpha = "blend",
|
||||
mesh = "homedecor_door_fancy"
|
||||
},
|
||||
{
|
||||
name = "french_oak",
|
||||
description = S("French door, Oak-colored"),
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
mesh = "homedecor_door_french",
|
||||
use_texture_alpha = "blend",
|
||||
mesh = "homedecor_door_french"
|
||||
},
|
||||
{
|
||||
name = "french_mahogany",
|
||||
description = S("French door, Mahogany-colored"),
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
mesh = "homedecor_door_french",
|
||||
use_texture_alpha = "blend",
|
||||
mesh = "homedecor_door_french"
|
||||
},
|
||||
{
|
||||
name = "french_white",
|
||||
description = S("French door, White"),
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
mesh = "homedecor_door_french",
|
||||
use_texture_alpha = "blend",
|
||||
mesh = "homedecor_door_french"
|
||||
},
|
||||
{
|
||||
name = "basic_panel",
|
||||
@ -57,7 +52,6 @@ local door_list = {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
use_texture_alpha = "opaque",
|
||||
},
|
||||
{
|
||||
name = "wrought_iron",
|
||||
@ -65,8 +59,7 @@ local door_list = {
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
sound_open = "doors_steel_door_open",
|
||||
sound_close = "doors_steel_door_close",
|
||||
mesh = "homedecor_door_wrought_iron",
|
||||
use_texture_alpha = "clip",
|
||||
mesh = "homedecor_door_wrought_iron"
|
||||
},
|
||||
{
|
||||
name = "carolina",
|
||||
@ -74,7 +67,6 @@ local door_list = {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
use_texture_alpha = "blend",
|
||||
},
|
||||
{
|
||||
name = "woodglass",
|
||||
@ -82,22 +74,19 @@ local door_list = {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
mesh = "homedecor_door_wood_glass_3",
|
||||
use_texture_alpha = "clip",
|
||||
mesh = "homedecor_door_wood_glass_3"
|
||||
},
|
||||
{
|
||||
name = "closet_mahogany",
|
||||
description = S("Mahogany Closet Door"),
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
mesh = "homedecor_door_closet",
|
||||
use_texture_alpha = "clip",
|
||||
mesh = "homedecor_door_closet"
|
||||
},
|
||||
{
|
||||
name = "closet_oak",
|
||||
description = S("Oak Closet Door"),
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
mesh = "homedecor_door_closet",
|
||||
use_texture_alpha = "clip",
|
||||
mesh = "homedecor_door_closet"
|
||||
},
|
||||
}
|
||||
|
||||
@ -110,7 +99,7 @@ local function generate_door(def)
|
||||
local default_settings = {
|
||||
tiles = {{ name = "homedecor_door_" .. def.name .. ".png", backface_culling = true }},
|
||||
inventory_image = "homedecor_door_" .. def.name .. "_inv.png",
|
||||
use_texture_alpha = def.use_texture_alpha or "blend",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
mesecons = {
|
||||
effector = {
|
||||
|
@ -488,6 +488,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Ground Lantern/Light"),
|
||||
mesh = "homedecor_ground_lantern.obj",
|
||||
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_ground_lantern_inv.png",
|
||||
wield_image = "homedecor_ground_lantern_inv.png",
|
||||
groups = {snappy=3, not_in_creative_inventory = nici, dig_glass=1},
|
||||
@ -514,6 +515,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Hanging Lantern/Light"),
|
||||
mesh = "homedecor_hanging_lantern.obj",
|
||||
tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow },
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_hanging_lantern_inv.png",
|
||||
wield_image = "homedecor_hanging_lantern_inv.png",
|
||||
groups = {snappy=3, not_in_creative_inventory = nici, dig_glass=1},
|
||||
@ -949,6 +951,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
|
||||
gen_ls_tex_yellow,
|
||||
"homedecor_generic_metal_wrought_iron.png"
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_wall_lamp_inv.png",
|
||||
groups = {snappy=3, not_in_creative_inventory = nici, dig_glass=1},
|
||||
light_source = onflag and (minetest.LIGHT_MAX - 3) or nil,
|
||||
|
@ -159,7 +159,7 @@ homedecor_roofing.register_slope = function(modname, subname, recipeitem, groups
|
||||
paramtype2 = "facedir",
|
||||
selection_box = slope_cbox,
|
||||
collision_box = slope_cbox,
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = groups,
|
||||
is_ground_content = false,
|
||||
_mcl_hardness=1.6,
|
||||
|
@ -35,7 +35,6 @@ minetest.register_node(":lrfurn:armchair", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
homedecor.register("armchair", {
|
||||
@ -63,7 +62,6 @@ homedecor.register("armchair", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
@ -79,7 +79,6 @@ function lrfurn.fix_sofa_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end
|
||||
|
||||
local seated_cache = {}
|
||||
local offset_cache = {}
|
||||
|
||||
minetest.register_entity("homedecor_seating:seat", {
|
||||
initial_properties = {
|
||||
@ -162,19 +161,14 @@ function lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, seats)
|
||||
|
||||
--see if we can find a non occupied seat
|
||||
local sit_pos
|
||||
local sit_hash
|
||||
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() and seated_cache[ref:get_player_name()] then
|
||||
if ref:is_player() then
|
||||
pstatus = true
|
||||
end
|
||||
end
|
||||
if not pstatus then
|
||||
sit_pos = spos
|
||||
sit_hash = hash
|
||||
break;
|
||||
end
|
||||
if not pstatus then sit_pos = spos end
|
||||
end
|
||||
if not sit_pos then
|
||||
minetest.chat_send_player(name, "sorry, this seat is currently occupied")
|
||||
@ -200,9 +194,6 @@ function lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, seats)
|
||||
xcompat.player.player_attached[name] = true
|
||||
xcompat.player.set_animation(clicker, "sit", 0)
|
||||
seated_cache[name] = minetest.hash_node_position(pos)
|
||||
if seated_cache[name] ~= sit_hash then
|
||||
offset_cache[name] = core.hash_node_position(vector.subtract(pos, sit_pos))
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
@ -212,18 +203,14 @@ function lrfurn.stand(clicker)
|
||||
xcompat.player.player_attached[name] = false
|
||||
if seated_cache[name] then
|
||||
local attached_to = clicker:get_attach()
|
||||
-- Check, clearobjects might have been called, etc
|
||||
if attached_to then
|
||||
-- Removing also detaches
|
||||
attached_to:remove()
|
||||
if attached_to then --check, a stupid clearobjects might have been called, etc
|
||||
attached_to:remove() --removing also detaches
|
||||
end
|
||||
seated_cache[name] = nil
|
||||
offset_cache[name] = nil
|
||||
end
|
||||
end
|
||||
|
||||
-- Called when a seat is destroyed
|
||||
function lrfurn.on_seat_destruct(pos)
|
||||
function lrfurn.on_seat_destruct(pos) --called when a seat is destroyed
|
||||
for name, seatpos in pairs(seated_cache) do
|
||||
if seatpos == minetest.hash_node_position(pos) then
|
||||
local player = minetest.get_player_by_name(name)
|
||||
@ -234,30 +221,6 @@ function lrfurn.on_seat_destruct(pos)
|
||||
end
|
||||
end
|
||||
|
||||
function lrfurn.on_seat_movenode(from_pos, to_pos)
|
||||
local hashed_from_pos = core.hash_node_position(from_pos)
|
||||
local hashed_to_pos = core.hash_node_position(to_pos)
|
||||
for name, seatpos in pairs(seated_cache) do
|
||||
if seatpos == hashed_from_pos then
|
||||
local player = core.get_player_by_name(name)
|
||||
if player then
|
||||
local attached_to = player:get_attach()
|
||||
-- Check, clearobjects might have been called, etc
|
||||
if attached_to then
|
||||
if offset_cache[name] then
|
||||
-- multi-seat node aka sofas
|
||||
attached_to:set_pos(vector.subtract(to_pos,
|
||||
core.get_position_from_hash(offset_cache[name])))
|
||||
else
|
||||
attached_to:set_pos(to_pos)
|
||||
end
|
||||
seated_cache[name] = hashed_to_pos
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--if the player gets killed in the seat, handle it
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
if seated_cache[player:get_player_name()] then
|
||||
|
@ -49,7 +49,6 @@ minetest.register_node(":lrfurn:longsofa", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 3)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -24,7 +24,6 @@ homedecor.register("deckchair", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
minetest.register_alias("homedecor:deckchair_foot", "homedecor:deckchair")
|
||||
@ -46,7 +45,6 @@ homedecor.register("deckchair_striped_blue", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
homedecor.register("simple_bench", {
|
||||
@ -68,7 +66,6 @@ homedecor.register("simple_bench", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
local bl1_sbox = {
|
||||
@ -162,7 +159,6 @@ homedecor.register("kitchen_chair_wood", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
homedecor.register("kitchen_chair_padded", {
|
||||
@ -190,7 +186,6 @@ homedecor.register("kitchen_chair_padded", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
local ofchairs_sbox = {
|
||||
@ -231,7 +226,6 @@ for _, c in pairs(chairs) do
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -49,7 +49,6 @@ minetest.register_node(":lrfurn:sofa", {
|
||||
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 2)
|
||||
end,
|
||||
on_destruct = lrfurn.on_seat_destruct,
|
||||
on_movenode = lrfurn.on_seat_movenode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -57,7 +57,7 @@ minetest.register_node(":lrfurn:coffeetable", {
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3, axey=5},
|
||||
is_ground_content = false,
|
||||
_mcl_hardness=1.6,
|
||||
|
@ -15,7 +15,7 @@ minetest.register_node(":lrfurn:endtable", {
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3, axey=5},
|
||||
is_ground_content = false,
|
||||
_mcl_hardness=1.6,
|
||||
|
@ -34,7 +34,7 @@ for _, t in ipairs(leg_materials) do
|
||||
inventory_image = "homedecor_table_legs_"..name..".png",
|
||||
wield_image = "homedecor_table_legs_"..name..".png",
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=3, dig_tree=2},
|
||||
_sound_def = {
|
||||
key = "node_sound_wood_defaults",
|
||||
@ -79,7 +79,7 @@ for i, mat in ipairs(tabletop_materials) do
|
||||
'blank.png',
|
||||
},
|
||||
wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = { snappy = 3, dig_tree=2 },
|
||||
_sound_def = {
|
||||
key = s,
|
||||
@ -117,7 +117,7 @@ for i, mat in ipairs(tabletop_materials) do
|
||||
'homedecor_'..m..'_table_edges.png',
|
||||
"homedecor_table_legs_"..leg_mat..".png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = { snappy = 3, dig_tree=2 },
|
||||
_sound_def = {
|
||||
key = s
|
||||
|
@ -71,9 +71,9 @@ local function set_player_skin(player, skin, save)
|
||||
if save and not skinsdb_mod_path then
|
||||
|
||||
if skin == default_skin then
|
||||
player:get_meta():set_string("homedecor:player_skin", "")
|
||||
player:set_attribute("homedecor:player_skin", "")
|
||||
else
|
||||
player:get_meta():set_string("homedecor:player_skin", skin)
|
||||
player:set_attribute("homedecor:player_skin", skin)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -12,7 +12,7 @@ homedecor.register("window_quartered", {
|
||||
"homedecor_window_quartered.png",
|
||||
"homedecor_window_quartered.png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=3, dig_glass=2},
|
||||
_sound_def = {
|
||||
key = "node_sound_glass_defaults",
|
||||
|
@ -22,6 +22,7 @@ minetest.register_node("lavalamp:lavalamp", {
|
||||
},
|
||||
},
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "lavalamp_lamp_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "color",
|
||||
|
Reference in New Issue
Block a user