From 39f5cba27eef35877c91291f518974f34130fcb6 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Tue, 31 Jan 2017 19:39:31 -0500 Subject: Huge update - lots of mods: areas, biome_lib, blox, bobblocks, boost_cart, homedecor, mobs, coloredwood, ilights, inbox, item_tweaks, moreblocks, moreores, pipeworks, plasticbox, signs_lib, stainedglass, roads, unifieddyes, vines, worldedit, xban2, maybe some others I didn't think about ;-) --- lrfurn/armchairs.lua | 133 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 94 insertions(+), 39 deletions(-) (limited to 'lrfurn/armchairs.lua') diff --git a/lrfurn/armchairs.lua b/lrfurn/armchairs.lua index f3b8225..fc9d096 100644 --- a/lrfurn/armchairs.lua +++ b/lrfurn/armchairs.lua @@ -1,30 +1,36 @@ +local S = homedecor_i18n.gettext local armchair_cbox = { type = "fixed", - fixed = { + fixed = { {-0.5, -0.5, -0.5, 0.5, 0, 0.5 }, {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } } } -for i in ipairs(lrfurn.colors) do - local colour = lrfurn.colors[i][1] - local hue = lrfurn.colors[i][2] - - minetest.register_node("lrfurn:armchair_"..colour, { - description = "Armchair ("..colour..")", - drawtype = "mesh", - mesh = "lrfurn_armchair.obj", - tiles = { - "lrfurn_bg_white.png^[colorize:"..hue.."^lrfurn_sofa_overlay.png", - "lrfurn_sofa_bottom.png" - }, - paramtype = "light", - paramtype2 = "facedir", - groups = {snappy=3}, - sounds = default.node_sound_wood_defaults(), - node_box = armchair_cbox, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) +minetest.register_node("lrfurn:armchair", { + description = S("Armchair"), + drawtype = "mesh", + mesh = "lrfurn_armchair.obj", + tiles = { + "lrfurn_upholstery.png", + { name = "lrfurn_sofa_bottom.png", color = 0xffffffff } + }, + paramtype = "light", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + inventory_image = "lrfurn_armchair_inv.png", + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + node_box = armchair_cbox, + after_place_node = lrfurn.fix_rotation, + after_dig_node = unifieddyes.after_dig_node, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local itemname = itemstack:get_name() + if string.find(itemname, "dye:") or string.find(itemname, "unifieddyes:") then + unifieddyes.on_rightclick(pos, node, clicker, + itemstack, pointed_thing, "lrfurn:armchair", "wallmounted") + else if not clicker:is_player() then return itemstack end @@ -33,28 +39,77 @@ for i in ipairs(lrfurn.colors) do clicker:set_hp(20) return itemstack end - }) - - minetest.register_craft({ - output = "lrfurn:armchair_"..colour, - recipe = { - {"wool:"..colour, "", "", }, - {"stairs:slab_wood", "", "", }, - {"group:stick", "", "", } - } - }) - - minetest.register_craft({ - output = "lrfurn:armchair_"..colour, - recipe = { - {"wool:"..colour, "", "", }, - {"moreblocks:slab_wood", "", "", }, - {"group:stick", "", "", } - } - }) + end +}) +minetest.register_craft({ + output = "lrfurn:armchair", + recipe = { + {"wool:white", "", "", }, + {"stairs:slab_wood", "", "", }, + {"group:stick", "", "", } + } +}) + +minetest.register_craft({ + output = "lrfurn:armchair", + recipe = { + {"wool:white", "", "", }, + {"moreblocks:slab_wood", "", "", }, + {"group:stick", "", "", } + } +}) + +-- convert old static nodes to param2 color + +lrfurn.old_static_armchairs = {} + +for _, color in ipairs(lrfurn.colors) do + table.insert(lrfurn.old_static_armchairs, "lrfurn:armchair_"..color) + print("lrfurn:armchair_"..color) end +minetest.register_lbm({ + name = "lrfurn:convert_armchairs", + label = "Convert lrfurn armchairs to use param2 color", + run_at_every_load = true, + nodenames = lrfurn.old_static_armchairs, + action = function(pos, node) + local name = node.name + local color = string.sub(name, string.find(name, "_")+1) + + if color == "red" then + color = "medium_red" + elseif color == "dark_green" then + color = "medium_green" + elseif color == "magenta" then + color = "medium_magenta" + elseif color == "cyan" then + color = "medium_cyan" + end + + local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") + local old_fdir = math.floor(node.param2 % 32) + local new_fdir = 3 + + if old_fdir == 0 then + new_fdir = 3 + elseif old_fdir == 1 then + new_fdir = 4 + elseif old_fdir == 2 then + new_fdir = 2 + elseif old_fdir == 3 then + new_fdir = 5 + end + + local param2 = paletteidx + new_fdir + + minetest.set_node(pos, { name = "lrfurn:armchair", param2 = param2 }) + local meta = minetest.get_meta(pos) + meta:set_string("dye", "unifieddyes:"..color) + end +}) + if minetest.setting_get("log_mods") then - minetest.log("action", "armchairs loaded") + minetest.log("action", "[lrfurn/armchairs] "..S("Loaded!")) end -- cgit v1.2.3