From a5eef1c5de77fa7770877802e66c3e1c53f9a0da Mon Sep 17 00:00:00 2001 From: Vanessa Dannenberg Date: Wed, 24 Apr 2019 18:59:36 -0400 Subject: update castles, areas, homedecor, plantlife, gloopblocks, hotbar, inspector, maptools, mesecons, moreblocks, moreores, technic, teleport_request, and worldedit switched to caverealms_lite (with minor fixes by me) switched to CWz's fork of player_textures The homedecor update brings in the big split, and will require you to re-enable all modpack components in order to avoid loss of content. --- homedecor_bedroom/init.lua | 390 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 homedecor_bedroom/init.lua (limited to 'homedecor_bedroom/init.lua') diff --git a/homedecor_bedroom/init.lua b/homedecor_bedroom/init.lua new file mode 100644 index 0000000..fc3f733 --- /dev/null +++ b/homedecor_bedroom/init.lua @@ -0,0 +1,390 @@ + +local S = homedecor.gettext + +local function N_(x) return x end + +local bed_sbox = { + type = "wallmounted", + wall_side = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 } +} + +local bed_cbox = { + type = "wallmounted", + wall_side = { + { -0.5, -0.5, -0.5, 0.5, -0.05, 1.5 }, + { -0.5, -0.5, 1.44, 0.5, 0.5, 1.5 }, + { -0.5, -0.5, -0.5, 0.5, 0.18, -0.44 }, + } +} + +local kbed_sbox = { + type = "wallmounted", + wall_side = { -0.5, -0.5, -0.5, 1.5, 0.5, 1.5 } +} + +local kbed_cbox = { + type = "wallmounted", + wall_side = { + { -0.5, -0.5, -0.5, 1.5, -0.05, 1.5 }, + { -0.5, -0.5, 1.44, 1.5, 0.5, 1.5 }, + { -0.5, -0.5, -0.5, 1.5, 0.18, -0.44 }, + } +} + +homedecor.register("bed_regular", { + mesh = "homedecor_bed_regular.obj", + tiles = { + { name = "homedecor_bed_frame.png", color = 0xffffffff }, + { name = "default_wood.png", color = 0xffffffff }, + { name = "wool_white.png", color = 0xffffffff }, + "wool_white.png", + { name = "homedecor_bed_bottom.png", color = 0xffffffff }, + "wool_white.png^[brighten", -- pillow + }, + inventory_image = "homedecor_bed_inv.png", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + description = S("Bed"), + groups = {snappy=3, ud_param2_colorable = 1}, + selection_box = bed_sbox, + node_box = bed_cbox, + sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + if not placer:get_player_control().sneak then + return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing) + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + homedecor.unextend_bed(pos) + end, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local itemname = itemstack:get_name() + if itemname == "homedecor:bed_regular" then + homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true) + return itemstack +-- else +-- homedecor.beds_on_rightclick(pos, node, clicker) +-- return itemstack + end + end +}) + +homedecor.register("bed_extended", { + mesh = "homedecor_bed_extended.obj", + tiles = { + { name = "homedecor_bed_frame.png", color = 0xffffffff }, + { name = "default_wood.png", color = 0xffffffff }, + { name = "wool_white.png", color = 0xffffffff }, + "wool_white.png", + { name = "homedecor_bed_bottom.png", color = 0xffffffff }, + "wool_white.png^[brighten", + }, + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + selection_box = bed_sbox, + node_box = bed_cbox, + groups = {snappy=3, ud_param2_colorable = 1}, + sounds = default.node_sound_wood_defaults(), + expand = { forward = "air" }, + on_rotate = screwdriver.disallow, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + homedecor.unextend_bed(pos) + end, +-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) +-- homedecor.beds_on_rightclick(pos, node, clicker) +-- return itemstack +-- end, + drop = "homedecor:bed_regular" +}) + +homedecor.register("bed_kingsize", { + mesh = "homedecor_bed_kingsize.obj", + tiles = { + { name = "homedecor_bed_frame.png", color = 0xffffffff }, + { name = "default_wood.png", color = 0xffffffff }, + { name = "wool_white.png", color = 0xffffffff }, + "wool_white.png", + { name = "homedecor_bed_bottom.png", color = 0xffffffff }, + "wool_white.png^[brighten", + }, + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + inventory_image = "homedecor_bed_kingsize_inv.png", + description = S("Bed (king sized)"), + groups = {snappy=3, ud_param2_colorable = 1}, + selection_box = kbed_sbox, + node_box = kbed_cbox, + sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end, + 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", "homedecor:bed_regular 2") then + inv:remove_item("main", "homedecor:bed_kingsize 1") + inv:add_item("main", "homedecor:bed_regular 2") + end + end, +-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) +-- homedecor.beds_on_rightclick(pos, node, clicker) +-- return itemstack +-- end, +}) + +for _, w in pairs({ N_("mahogany"), N_("oak") }) do + homedecor.register("nightstand_"..w.."_one_drawer", { + description = S("Nightstand with One Drawer (@1)", S(w)), + tiles = { 'homedecor_nightstand_'..w..'_tb.png', + 'homedecor_nightstand_'..w..'_tb.png^[transformFY', + 'homedecor_nightstand_'..w..'_lr.png^[transformFX', + 'homedecor_nightstand_'..w..'_lr.png', + 'homedecor_nightstand_'..w..'_back.png', + 'homedecor_nightstand_'..w..'_1_drawer_front.png'}, + node_box = { + type = "fixed", + fixed = { + { -8/16, 0, -30/64, 8/16, 8/16, 8/16 }, -- top half + { -7/16, 1/16, -32/64, 7/16, 7/16, -29/64}, -- drawer face + { -8/16, -8/16, -30/64, -7/16, 0, 8/16 }, -- left + { 7/16, -8/16, -30/64, 8/16, 0, 8/16 }, -- right + { -8/16, -8/16, 7/16, 8/16, 0, 8/16 }, -- back + { -8/16, -8/16, -30/64, 8/16, -7/16, 8/16 } -- bottom + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + selection_box = { type = "regular" }, + infotext=S("One-drawer Nightstand"), + inventory = { + size=8, + lockable=true, + }, + }) + + homedecor.register("nightstand_"..w.."_two_drawers", { + description = S("Nightstand with Two Drawers (@1)", S(w)), + tiles = { 'homedecor_nightstand_'..w..'_tb.png', + 'homedecor_nightstand_'..w..'_tb.png^[transformFY', + 'homedecor_nightstand_'..w..'_lr.png^[transformFX', + 'homedecor_nightstand_'..w..'_lr.png', + 'homedecor_nightstand_'..w..'_back.png', + 'homedecor_nightstand_'..w..'_2_drawer_front.png'}, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -30/64, 8/16, 8/16, 8/16 }, -- main body + { -7/16, 1/16, -32/64, 7/16, 7/16, -29/64 }, -- top drawer face + { -7/16, -7/16, -32/64, 7/16, -1/16, -29/64 }, -- bottom drawer face + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + selection_box = { type = "regular" }, + infotext=S("Two-drawer Nightstand"), + inventory = { + size=16, + lockable=true, + }, + }) +end + +-- convert to param2 colorization + +local bedcolors = { + "black", + "brown", + "blue", + "cyan", + "darkgrey", + "dark_green", + "green", + "grey", + "magenta", + "orange", + "pink", + "red", + "violet", + "white", + "yellow" +} + +homedecor.old_bed_nodes = {} + +for _, color in ipairs(bedcolors) do + table.insert(homedecor.old_bed_nodes, "homedecor:bed_"..color.."_regular") + table.insert(homedecor.old_bed_nodes, "homedecor:bed_"..color.."_extended") + table.insert(homedecor.old_bed_nodes, "homedecor:bed_"..color.."_kingsize") +end + +minetest.register_lbm({ + name = ":homedecor:convert_beds", + label = "Convert homedecor static bed nodes to use param2 color", + run_at_every_load = false, + nodenames = homedecor.old_bed_nodes, + action = function(pos, node) + local name = node.name + local color = string.sub(name, string.find(name, "_") + 1) + + -- -10 puts us near the end of the color field + color = string.sub(color, 1, string.find(color, "_", -10) - 1) + + if color == "darkgrey" then + color = "dark_grey" + end + + local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") + local old_fdir = math.floor(node.param2 % 32) + local new_fdir = 3 + local new_name + + 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 + + if string.find(name, "regular") then + new_name = "homedecor:bed_regular" + elseif string.find(name, "extended") then + new_name = "homedecor:bed_extended" + else + new_name = "homedecor:bed_kingsize" + end + + minetest.set_node(pos, { name = new_name, param2 = param2 }) + local meta = minetest.get_meta(pos) + meta:set_string("dye", "unifieddyes:"..color) + end +}) + +-- crafting + + +minetest.register_craft( { + output = "homedecor:nightstand_oak_one_drawer", + recipe = { + { "homedecor:drawer_small" }, + { "group:wood" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_oak_one_drawer", + burntime = 30, +}) + +minetest.register_craft( { + output = "homedecor:nightstand_oak_two_drawers", + recipe = { + { "homedecor:drawer_small" }, + { "homedecor:drawer_small" }, + { "group:wood" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:nightstand_oak_two_drawers", + recipe = { + { "homedecor:nightstand_oak_one_drawer" }, + { "homedecor:drawer_small" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_oak_two_drawers", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:nightstand_mahogany_one_drawer", + recipe = { + "homedecor:nightstand_oak_one_drawer", + "dye:brown", + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_mahogany_one_drawer", + burntime = 30, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:nightstand_mahogany_two_drawers", + recipe = { + "homedecor:nightstand_oak_two_drawers", + "dye:brown", + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_mahogany_two_drawers", + burntime = 30, +}) + + +minetest.register_craft( { + output = "homedecor:bed_regular", + recipe = { + { "group:stick", "", "group:stick" }, + { "wool:white", "wool:white", "wool:white" }, + { "group:wood", "", "group:wood" }, + }, +}) + +unifieddyes.register_color_craft({ + output = "homedecor:bed_regular", + palette = "wallmounted", + type = "shapeless", + neutral_node = "homedecor:bed_regular", + recipe = { + "NEUTRAL_NODE", + "MAIN_DYE" + } +}) + +minetest.register_craft( { + output = "homedecor:bed_kingsize", + recipe = { + { "homedecor:bed_regular", "homedecor:bed_regular" } + }, +}) + +unifieddyes.register_color_craft({ + output = "homedecor:bed_kingsize", + palette = "wallmounted", + type = "shapeless", + neutral_node = "homedecor:bed_kingsize", + recipe = { + "NEUTRAL_NODE", + "MAIN_DYE" + } +}) + +unifieddyes.register_color_craft({ + output = "homedecor:bed_kingsize", + palette = "wallmounted", + type = "shapeless", + neutral_node = "homedecor:bed_regular", + recipe = { + "NEUTRAL_NODE", + "NEUTRAL_NODE", + "MAIN_DYE" + } +}) -- cgit v1.2.3