diff --git a/mods/homedecor_modpack/computer/tetris.lua b/mods/homedecor_modpack/computer/tetris.lua index 6e7aa870..e985e0e6 100644 --- a/mods/homedecor_modpack/computer/tetris.lua +++ b/mods/homedecor_modpack/computer/tetris.lua @@ -248,6 +248,7 @@ minetest.register_node("computer:tetris_arcade", { paramtype = "light", paramtype2 = "facedir", groups = {snappy=3}, + on_rotate = screwdriver.rotate_simple, selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5} diff --git a/mods/homedecor_modpack/fake_fire/init.lua b/mods/homedecor_modpack/fake_fire/init.lua index 79307fbf..b72db191 100644 --- a/mods/homedecor_modpack/fake_fire/init.lua +++ b/mods/homedecor_modpack/fake_fire/init.lua @@ -107,6 +107,7 @@ minetest.register_node("fake_fire:fancy_fire", { light_source = 14, walkable = false, damage_per_second = 4, + on_rotate = screwdriver.rotate_simple, tiles = { {name="fake_fire_animated.png", animation={type='vertical_frames', aspect_w=16, aspect_h=16, length=1}}, {name='fake_fire_logs.png'}}, diff --git a/mods/homedecor_modpack/homedecor/bathroom_sanitation.lua b/mods/homedecor_modpack/homedecor/bathroom_sanitation.lua index 8ec19f14..9628721d 100644 --- a/mods/homedecor_modpack/homedecor/bathroom_sanitation.lua +++ b/mods/homedecor_modpack/homedecor/bathroom_sanitation.lua @@ -150,7 +150,8 @@ homedecor.register("taps", { groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), on_rightclick = taps_on_rightclick, - on_destruct = homedecor.stop_particle_spawner + on_destruct = homedecor.stop_particle_spawner, + on_rotate = screwdriver.disallow }) homedecor.register("taps_brass", { @@ -172,7 +173,8 @@ homedecor.register("taps_brass", { groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), on_rightclick = taps_on_rightclick, - on_destruct = homedecor.stop_particle_spawner + on_destruct = homedecor.stop_particle_spawner, + on_rotate = screwdriver.disallow }) --Shower Tray @@ -225,6 +227,7 @@ homedecor.register("shower_head", { groups = {snappy=3}, selection_box = sh_cbox, walkable = false, + on_rotate = screwdriver.disallow, on_rightclick = function (pos, node, clicker) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-2.0, z=pos.z}) if below and below.name == "homedecor:shower_tray" then diff --git a/mods/homedecor_modpack/homedecor/beds.lua b/mods/homedecor_modpack/homedecor/beds.lua index 73d51201..282ea27d 100644 --- a/mods/homedecor_modpack/homedecor/beds.lua +++ b/mods/homedecor_modpack/homedecor/beds.lua @@ -64,6 +64,7 @@ for i in ipairs(bedcolors) do selection_box = bed_sbox, collision_box = bed_cbox, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow, after_place_node = function(pos, placer, itemstack, pointed_thing) if not placer:get_player_control().sneak then return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color) @@ -93,6 +94,7 @@ for i in ipairs(bedcolors) do collision_box = bed_cbox, sounds = default.node_sound_wood_defaults(), expand = { forward = "air" }, + on_rotate = screwdriver.disallow, after_dig_node = function(pos) homedecor.unextend_bed(pos, color) end, @@ -121,6 +123,7 @@ for i in ipairs(bedcolors) do selection_box = kbed_sbox, collision_box = kbed_cbox, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow, after_dig_node = function(pos, oldnode, oldmetadata, digger) local inv = digger:get_inventory() if digger:get_player_control().sneak and inv:room_for_item("main", "bed_"..color.."_regular 1") then diff --git a/mods/homedecor_modpack/homedecor/climate-control.lua b/mods/homedecor_modpack/homedecor/climate-control.lua index dc3dbc43..cd495640 100644 --- a/mods/homedecor_modpack/homedecor/climate-control.lua +++ b/mods/homedecor_modpack/homedecor/climate-control.lua @@ -37,6 +37,7 @@ homedecor.register("desk_fan", { inventory_image = "homedecor_desk_fan_inv.png", wield_image = "homedecor_desk_fan_inv.png", selection_box = { type = "regular" }, + on_rotate = screwdriver.disallow, on_construct = function(pos) local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) local meta = minetest.get_meta(pos) diff --git a/mods/homedecor_modpack/homedecor/clocks.lua b/mods/homedecor_modpack/homedecor/clocks.lua index 4e8beec3..1fc6a6cb 100644 --- a/mods/homedecor_modpack/homedecor/clocks.lua +++ b/mods/homedecor_modpack/homedecor/clocks.lua @@ -92,6 +92,7 @@ homedecor.register("grandfather_clock", { collision_box = gf_cbox, sounds = default.node_sound_wood_defaults(), expand = { top="air" }, + on_rotate = screwdriver.rotate_simple }) minetest.register_alias("homedecor:grandfather_clock_bottom", "homedecor:grandfather_clock") diff --git a/mods/homedecor_modpack/homedecor/crafts.lua b/mods/homedecor_modpack/homedecor/crafts.lua index 6de39e82..8cfb0aa2 100644 --- a/mods/homedecor_modpack/homedecor/crafts.lua +++ b/mods/homedecor_modpack/homedecor/crafts.lua @@ -3262,6 +3262,60 @@ minetest.register_craft({ recipe = {"default:goldblock", "default:sword_mese"} }) +minetest.register_craft({ + output = "homedecor:lattice_wood 8", + recipe = { + {"group:stick", "group:wood", "group:stick"}, + {"group:wood", "", "group:wood"}, + {"group:stick", "group:wood", "group:stick"}, + }, +}) + +minetest.register_craft({ + output = "homedecor:lattice_white_wood 8", + recipe = { + {"group:stick", "group:wood", "group:stick"}, + {"group:wood", "dye:white", "group:wood"}, + {"group:stick", "group:wood", "group:stick"}, + }, +}) + +minetest.register_craft({ + output = "homedecor:lattice_wood_vegetal 8", + recipe = { + {"group:stick", "group:wood", "group:stick"}, + {"group:wood", "group:leaves", "group:wood"}, + {"group:stick", "group:wood", "group:stick"}, + }, +}) + +minetest.register_craft({ + output = "homedecor:lattice_white_wood_vegetal 8", + recipe = { + {"group:stick", "group:wood", "group:stick"}, + {"group:wood", "group:leaves", "group:wood"}, + {"group:stick", "dye:white", "group:stick"}, + }, +}) + +minetest.register_craft({ + output = "homedecor:stained_glass 8", + recipe = { + {"", "dye:blue", ""}, + {"dye:red", "default:glass", "dye:green"}, + {"", "dye:yellow", ""}, + }, +}) + +minetest.register_craft({ + output = "homedecor:stained_glass", + recipe = { + {"", "dye:blue", ""}, + {"dye:red", "xpanes:pane", "dye:green"}, + {"", "dye:yellow", ""}, + }, +}) + for i in ipairs(homedecor.banister_materials) do local name = homedecor.banister_materials[i][1] diff --git a/mods/homedecor_modpack/homedecor/depends.txt b/mods/homedecor_modpack/homedecor/depends.txt index 4e03f52a..bed6ac05 100644 --- a/mods/homedecor_modpack/homedecor/depends.txt +++ b/mods/homedecor_modpack/homedecor/depends.txt @@ -6,3 +6,5 @@ technic? dye? bees? intllib? +bucket? +beds? diff --git a/mods/homedecor_modpack/homedecor/doors_and_gates.lua b/mods/homedecor_modpack/homedecor/doors_and_gates.lua index 53c2ef80..5a51dbf2 100644 --- a/mods/homedecor_modpack/homedecor/doors_and_gates.lua +++ b/mods/homedecor_modpack/homedecor/doors_and_gates.lua @@ -243,6 +243,7 @@ for i in ipairs(sides) do use_texture_alpha = door_model.usealpha, selection_box = selbox, collision_box = colbox, + on_rotate = screwdriver.rotate_simple, on_place = function(itemstack, placer, pointed_thing) return homedecor.stack_wing(itemstack, placer, pointed_thing, "homedecor:door_"..doorname.."_left", "air", @@ -620,6 +621,7 @@ minetest.register_node("homedecor:door_japanese_open", { paramtype2 = "facedir", groups = { snappy = 3, not_in_creative_inventory = 1 }, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow, selection_box = { type = "fixed", fixed = {-1.5, -0.5, -0.0625, 0.5, 1.5, 0}, diff --git a/mods/homedecor_modpack/homedecor/exterior.lua b/mods/homedecor_modpack/homedecor/exterior.lua index 6006411e..6a7656bc 100644 --- a/mods/homedecor_modpack/homedecor/exterior.lua +++ b/mods/homedecor_modpack/homedecor/exterior.lua @@ -56,6 +56,7 @@ homedecor.register("bench_large_1", { sounds = default.node_sound_wood_defaults(), selection_box = bl1_sbox, node_box = bl1_cbox, + on_rotate = screwdriver.disallow }) minetest.register_alias("homedecor:bench_large_1_left", "homedecor:bench_large_1") @@ -84,6 +85,7 @@ homedecor.register("bench_large_2", { node_box = bl2_cbox, expand = { right="air" }, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow }) minetest.register_alias("homedecor:bench_large_2_left", "homedecor:bench_large_2") @@ -103,6 +105,7 @@ homedecor.register("deckchair", { sounds = default.node_sound_wood_defaults(), selection_box = dc_cbox, collision_box = dc_cbox, + on_rotate = screwdriver.disallow }) minetest.register_alias("homedecor:deckchair_foot", "homedecor:deckchair") @@ -117,6 +120,7 @@ homedecor.register("deckchair_striped_blue", { sounds = default.node_sound_wood_defaults(), selection_box = dc_cbox, collision_box = dc_cbox, + on_rotate = screwdriver.disallow }) homedecor.register("doghouse", { @@ -133,6 +137,7 @@ homedecor.register("doghouse", { groups = {snappy=3}, expand = { top="air" }, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.rotate_simple }) minetest.register_alias("homedecor:doghouse_roof", "air") @@ -180,6 +185,37 @@ homedecor.register("stonepath", { sounds = default.node_sound_stone_defaults(), }) +local lattice_colors = { + {"wood", ".png^[colorize:#704214:180"}, + {"white_wood", ".png"}, + {"wood_vegetal", ".png^[colorize:#704214:180^homedecor_lattice_vegetal.png"}, + {"white_wood_vegetal", ".png^homedecor_lattice_vegetal.png"}, +} + +for _, m in ipairs(lattice_colors) do +homedecor.register("lattice_"..m[1], { + description = "Garden Lattice ("..m[1]..")", + tiles = {"homedecor_lattice"..m[2]}, + inventory_image = "homedecor_lattice"..m[2], + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.47, 0.5, 0.5, 0.47}, -- NodeBox1 + {-0.5, 0.421875, 0.44, 0.5, 0.5, 0.5}, -- NodeBox2 + {-0.5, -0.5, 0.44, 0.5, -0.421875, 0.5}, -- NodeBox3 + {0.421875, -0.5, 0.44, 0.5, 0.5, 0.5}, -- NodeBox4 + {-0.5, -0.5, 0.44, -0.421875, 0.5, 0.5} -- NodeBox5 + } + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.44, 0.5, 0.5, 0.5} + }, + sounds = default.node_sound_wood_defaults(), +}) +end + homedecor.register("swing", { description = "Tree's swing", tiles = { @@ -191,6 +227,7 @@ homedecor.register("swing", { groups = { snappy=3, oddly_breakable_by_hand=3 }, sounds = default.node_sound_wood_defaults(), walkable = false, + on_rotate = screwdriver.disallow, node_box = { type = "fixed", fixed = { @@ -287,7 +324,29 @@ homedecor.register("well", { collision_box = homedecor.nodebox.slab_y(2), expand = { top="air" }, sounds = default.node_sound_stone_defaults(), + on_rotate = screwdriver.rotate_simple }) +if minetest.get_modpath("bucket") then + minetest.override_item("bucket:bucket_empty", { + on_use = function(itemstack, user, pointed_thing) + local wielditem = user:get_wielded_item() + local wieldname = itemstack:get_name() + local inv = user:get_inventory() + + if pointed_thing.type == "node" and minetest.get_node(pointed_thing.under).name == "homedecor:well" then + if inv:room_for_item("main", "bucket:bucket_water 1") then + wielditem:take_item() + user:set_wielded_item(wielditem) + inv:add_item("main", "bucket:bucket_water 1") + else + minetest.chat_send_player(user:get_player_name(), "No room in your inventory to add a filled bucket!") + end + end + return wielditem + end + }) +end + minetest.register_alias("homedecor:well_top", "air") minetest.register_alias("homedecor:well_base", "homedecor:well") diff --git a/mods/homedecor_modpack/homedecor/furniture.lua b/mods/homedecor_modpack/homedecor/furniture.lua index 183681db..d1054a85 100644 --- a/mods/homedecor_modpack/homedecor/furniture.lua +++ b/mods/homedecor_modpack/homedecor/furniture.lua @@ -181,6 +181,7 @@ homedecor.register("office_chair_"..c, { selection_box = ofchairs_sbox, collision_box = ofchairs_cbox, expand = { top = "air" }, + on_rotate = screwdriver.rotate_simple }) end diff --git a/mods/homedecor_modpack/homedecor/init.lua b/mods/homedecor_modpack/homedecor/init.lua index 75507600..222b8fa6 100644 --- a/mods/homedecor_modpack/homedecor/init.lua +++ b/mods/homedecor_modpack/homedecor/init.lua @@ -99,6 +99,8 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing) return isceiling, pos end +if screwdriver == nil then screwdriver = {} end + homedecor.plain_wood = "homedecor_generic_wood_plain.png^".. "(homedecor_generic_wood_boards_overlay.png^[colorize:#a7682020:100)" diff --git a/mods/homedecor_modpack/homedecor/kitchen_appliances.lua b/mods/homedecor_modpack/homedecor/kitchen_appliances.lua index 3918909e..cb202793 100644 --- a/mods/homedecor_modpack/homedecor/kitchen_appliances.lua +++ b/mods/homedecor_modpack/homedecor/kitchen_appliances.lua @@ -18,6 +18,7 @@ homedecor.register("refrigerator_steel", { size=50, lockable=true, }, + on_rotate = screwdriver.rotate_simple }) -- white, enameled fridge @@ -36,6 +37,7 @@ homedecor.register("refrigerator_white", { size=50, lockable=true }, + on_rotate = screwdriver.rotate_simple }) minetest.register_alias("homedecor:refrigerator_white_bottom", "homedecor:refrigerator_white") @@ -116,7 +118,8 @@ homedecor.register("coffee_maker", { walkable = false, groups = {snappy=3}, selection_box = cm_cbox, - node_box = cm_cbox + node_box = cm_cbox, + on_rotate = screwdriver.disallow }) local fdir_to_steampos = { diff --git a/mods/homedecor_modpack/homedecor/kitchen_furniture.lua b/mods/homedecor_modpack/homedecor/kitchen_furniture.lua index 94a2bae6..146ce089 100644 --- a/mods/homedecor_modpack/homedecor/kitchen_furniture.lua +++ b/mods/homedecor_modpack/homedecor/kitchen_furniture.lua @@ -113,6 +113,7 @@ homedecor.register("kitchen_faucet", { groups = {snappy=3}, selection_box = kf_cbox, walkable = false, + on_rotate = screwdriver.disallow, on_rightclick = function(pos, node, clicker) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z}) if below and diff --git a/mods/homedecor_modpack/homedecor/lighting.lua b/mods/homedecor_modpack/homedecor/lighting.lua index 845d5bb3..440e8b77 100644 --- a/mods/homedecor_modpack/homedecor/lighting.lua +++ b/mods/homedecor_modpack/homedecor/lighting.lua @@ -472,6 +472,7 @@ local function reg_lamp(suffix, nxt, tilesuffix, light, color) }, selection_box = slamp_cbox, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.rotate_simple, on_punch = function(pos, node, puncher) node.name = "homedecor:standing_lamp"..lampcolor.."_"..repl[suffix] minetest.set_node(pos, node) diff --git a/mods/homedecor_modpack/homedecor/misc-nodes.lua b/mods/homedecor_modpack/homedecor/misc-nodes.lua index b711ea48..c9ba3865 100644 --- a/mods/homedecor_modpack/homedecor/misc-nodes.lua +++ b/mods/homedecor_modpack/homedecor/misc-nodes.lua @@ -280,6 +280,7 @@ homedecor.register("pool_table", { collision_box = pooltable_cbox, expand = { forward="air" }, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow }) minetest.register_alias("homedecor:pool_table_2", "air") @@ -322,6 +323,7 @@ homedecor.register("coat_tree", { type = "fixed", fixed = { -0.4, -0.5, -0.4, 0.4, 1.5, 0.4 } }, + on_rotate = screwdriver.rotate_simple }) local cutlery_cbox = { @@ -439,6 +441,7 @@ homedecor.register("piano", { collision_box = piano_cbox, expand = { right="air" }, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow }) minetest.register_alias("homedecor:piano_left", "homedecor:piano") @@ -562,6 +565,7 @@ homedecor.register("tool_cabinet", { "homedecor_tool_cabinet_misc.png", }, inventory_image = "homedecor_tool_cabinet_inv.png", + on_rotate = screwdriver.rotate_simple, groups = { snappy=3 }, selection_box = homedecor.nodebox.slab_y(2), expand = { top="air" }, @@ -802,6 +806,7 @@ homedecor.register("spiral_staircase", { }, groups = {choppy=2}, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.rotate_simple, after_place_node = function(pos, placer, itemstack, pointed_thing) local fdir = minetest.dir_to_facedir(placer:get_look_dir()) local leftx = homedecor.fdir_to_left[fdir+1][1] @@ -870,6 +875,7 @@ homedecor.register("soda_machine", { collision_box = svm_cbox, expand = { top="air" }, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.rotate_simple, on_punch = function(pos, node, puncher, pointed_thing) local wielditem = puncher:get_wielded_item() local wieldname = wielditem:get_name() diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_front.png deleted file mode 100644 index 1e2e6f73..00000000 Binary files a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_front.png and /dev/null differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png index 84307de1..3090df12 100644 Binary files a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png and b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_right.png deleted file mode 100644 index 0c7a8e64..00000000 Binary files a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_right.png and /dev/null differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_lattice.png b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice.png new file mode 100644 index 00000000..dacc2517 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_vegetal.png b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_vegetal.png new file mode 100644 index 00000000..b188ec6a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_vegetal.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stained_glass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stained_glass.png new file mode 100644 index 00000000..43e86bc0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stained_glass.png differ diff --git a/mods/homedecor_modpack/homedecor/wardrobe.lua b/mods/homedecor_modpack/homedecor/wardrobe.lua index d2b2248d..d66a38a4 100644 --- a/mods/homedecor_modpack/homedecor/wardrobe.lua +++ b/mods/homedecor_modpack/homedecor/wardrobe.lua @@ -19,6 +19,7 @@ homedecor.register("wardrobe", { collision_box = wd_cbox, sounds = default.node_sound_wood_defaults(), expand = { top="air" }, + on_rotate = screwdriver.rotate_simple, on_construct = function(pos) local meta = minetest.get_meta(pos) local skins = {"male1", "male2", "male3", "male4", "male5"} diff --git a/mods/homedecor_modpack/homedecor/window_treatments.lua b/mods/homedecor_modpack/homedecor/window_treatments.lua index 9130b03c..9d4e90b8 100644 --- a/mods/homedecor_modpack/homedecor/window_treatments.lua +++ b/mods/homedecor_modpack/homedecor/window_treatments.lua @@ -203,3 +203,17 @@ homedecor.register("window_flowerbox", { } } }) + +homedecor.register("stained_glass", { + description = "Stained Glass", + tiles = {"homedecor_stained_glass.png"}, + inventory_image = "homedecor_stained_glass.png", + groups = {snappy=3}, + use_texture_alpha = true, + light_source = 3, + sounds = default.node_sound_glass_defaults(), + node_box = { + type = "fixed", + fixed = { {-0.5, -0.5, 0.46875, 0.5, 0.5, 0.5} } + } +}) diff --git a/mods/homedecor_modpack/inbox/init.lua b/mods/homedecor_modpack/inbox/init.lua index 0c6db754..940ec610 100644 --- a/mods/homedecor_modpack/inbox/init.lua +++ b/mods/homedecor_modpack/inbox/init.lua @@ -30,6 +30,7 @@ minetest.register_node("inbox:empty", { paramtype2 = "facedir", groups = {choppy=2,oddly_breakable_by_hand=2}, sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.rotate_simple, after_place_node = function(pos, placer, itemstack) local meta = minetest.get_meta(pos) local owner = placer:get_player_name() diff --git a/mods/homedecor_modpack/itemframes/init.lua b/mods/homedecor_modpack/itemframes/init.lua index 030e14b8..47b4e45f 100644 --- a/mods/homedecor_modpack/itemframes/init.lua +++ b/mods/homedecor_modpack/itemframes/init.lua @@ -110,6 +110,7 @@ minetest.register_node("itemframes:frame",{ groups = { choppy=2,dig_immediate=2 }, legacy_wallmounted = true, sounds = default.node_sound_defaults(), + on_rotate = screwdriver.disallow, after_place_node = function(pos, placer, itemstack) local meta = minetest.get_meta(pos) meta:set_string("owner",placer:get_player_name()) @@ -155,6 +156,7 @@ minetest.register_node("itemframes:pedestal",{ paramtype = "light", groups = { cracky=3 }, sounds = default.node_sound_defaults(), + on_rotate = screwdriver.disallow, after_place_node = function(pos, placer, itemstack) local meta = minetest.get_meta(pos) meta:set_string("owner",placer:get_player_name()) diff --git a/mods/homedecor_modpack/lrfurn/longsofas.lua b/mods/homedecor_modpack/lrfurn/longsofas.lua index b90c1ae9..321a7ad8 100644 --- a/mods/homedecor_modpack/lrfurn/longsofas.lua +++ b/mods/homedecor_modpack/lrfurn/longsofas.lua @@ -41,6 +41,7 @@ for i in ipairs(longsofas_list) do sounds = default.node_sound_wood_defaults(), selection_box = longsofa_sbox, node_box = longsofa_cbox, + on_rotate = screwdriver.disallow, on_place = function(itemstack, placer, pointed_thing) local pos = pointed_thing.above local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) diff --git a/mods/homedecor_modpack/lrfurn/sofas.lua b/mods/homedecor_modpack/lrfurn/sofas.lua index 892223b3..32b03020 100644 --- a/mods/homedecor_modpack/lrfurn/sofas.lua +++ b/mods/homedecor_modpack/lrfurn/sofas.lua @@ -41,6 +41,7 @@ for i in ipairs(sofas_list) do sounds = default.node_sound_wood_defaults(), selection_box = sofa_sbox, node_box = sofa_cbox, + on_rotate = screwdriver.disallow, on_place = function(itemstack, placer, pointed_thing) local pos = pointed_thing.above local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) diff --git a/mods/homedecor_modpack/plasmascreen/init.lua b/mods/homedecor_modpack/plasmascreen/init.lua index 36f5a384..ab3e059a 100644 --- a/mods/homedecor_modpack/plasmascreen/init.lua +++ b/mods/homedecor_modpack/plasmascreen/init.lua @@ -114,6 +114,7 @@ minetest.register_node("plasmascreen:tv", { light_source = 10, selection_box = tv_cbox, collision_box = tv_cbox, + on_rotate = screwdriver.disallow, groups = {snappy=1, choppy=2, oddly_breakable_by_hand=2}, after_place_node = function(pos, placer, itemstack) if not checkwall(pos) then diff --git a/mods/homedecor_modpack/signs_lib/depends.txt b/mods/homedecor_modpack/signs_lib/depends.txt index c48fe0d0..c0dd3b07 100644 --- a/mods/homedecor_modpack/signs_lib/depends.txt +++ b/mods/homedecor_modpack/signs_lib/depends.txt @@ -1,3 +1,3 @@ default intllib? - +screwdriver? diff --git a/mods/homedecor_modpack/signs_lib/init.lua b/mods/homedecor_modpack/signs_lib/init.lua index 29d4784e..9bf36e23 100644 --- a/mods/homedecor_modpack/signs_lib/init.lua +++ b/mods/homedecor_modpack/signs_lib/init.lua @@ -12,6 +12,20 @@ signs_lib = {} +local screwdriver = screwdriver or {} +signs_lib.wallmounted_rotate = function(pos, node, user, mode, new_param2) + if mode ~= screwdriver.ROTATE_AXIS then return false end + minetest.swap_node(pos, {name = node.name, param2 = (node.param2 + 1) % 6}) + for _, v in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do + local e = v:get_luaentity() + if e and e.name == "signs:text" then + v:remove() + end + end + signs_lib.update_sign(pos) + return true +end + signs_lib.modpath = minetest.get_modpath("signs_lib") signs_lib.regular_wall_sign_model = { @@ -697,6 +711,7 @@ minetest.register_node(":default:sign_wall", { on_punch = function(pos, node, puncher) signs_lib.update_sign(pos) end, + on_rotate = signs_lib.wallmounted_rotate }) minetest.register_node(":signs:sign_yard", { @@ -831,6 +846,7 @@ minetest.register_node(":locked_sign:sign_wall_locked", { return pname == owner or pname == minetest.setting_get("name") or minetest.check_player_privs(pname, {sign_editor=true}) end, + on_rotate = signs_lib.wallmounted_rotate }) -- metal, colored signs