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_fences/init.lua | 489 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100644 homedecor_fences/init.lua (limited to 'homedecor_fences/init.lua') diff --git a/homedecor_fences/init.lua b/homedecor_fences/init.lua new file mode 100644 index 0000000..94badf6 --- /dev/null +++ b/homedecor_fences/init.lua @@ -0,0 +1,489 @@ +-- This file adds fences of various types + +local signs_modpath = minetest.get_modpath("signs_lib") + +local sign_post_model = { + type = "fixed", + fixed = { + {-0.4375, -0.25, -0.1875, 0.4375, 0.375, -0.125}, + {-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, + } +} + +if signs_modpath then + sign_post_model = signs_lib.sign_post_model.nodebox +end + +local S = homedecor.gettext + +local materials = { + { S("brass"), "brass" }, + { S("wrought iron"), "wrought_iron" }, +} + +for _, m in ipairs(materials) do + +local desc, name = unpack(m) + +homedecor.register("fence_"..name, { + description = S("Fence/railing (@1)", desc), + drawtype = "fencelike", + tiles = {"homedecor_generic_metal_"..name..".png"}, + inventory_image = "homedecor_fence_"..name..".png", + selection_box = homedecor.nodebox.bar_y(1/7), + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), +}) + +-- brass/wrought iron with signs: + +homedecor.register("fence_"..name.."_with_sign", { + description = S("Fence/railing with sign (@1)", desc), + tiles = { + "homedecor_sign_"..name.."_post_top.png", + "homedecor_sign_"..name.."_post_bottom.png", + "homedecor_sign_"..name.."_post_side.png", + "homedecor_sign_"..name.."_post_side.png", + "homedecor_sign_"..name.."_post_back.png", + "homedecor_sign_"..name.."_post_front.png", + }, + wield_image = "homedecor_sign_"..name.."_post.png", + node_box = sign_post_model, + groups = {snappy=3,not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + sunlight_propagates = true, + drop = { + max_items = 2, + items = { + { items = { "default:sign_wall" }}, + { items = { "homedecor:fence_"..name }}, + }, + }, +}) + +end + +-- other types of fences + +homedecor.register("fence_picket", { + description = S("Unpainted Picket Fence"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket.png", + "homedecor_fence_picket.png", + "homedecor_fence_picket_backside.png", + "homedecor_fence_picket.png" + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.slab_z(-0.1), + node_box = homedecor.nodebox.slab_z(-0.002), +}) + +homedecor.register("fence_picket_corner", { + description = S("Unpainted Picket Fence Corner"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket.png", + "homedecor_fence_picket_backside.png", + "homedecor_fence_picket_backside.png", + "homedecor_fence_picket.png", + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.corner_xz(0.1, -0.1), + node_box = homedecor.nodebox.corner_xz(0.002, -0.002), +}) + +homedecor.register("fence_picket_white", { + description = S("White Picket Fence"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket_white.png", + "homedecor_fence_picket_white.png", + "homedecor_fence_picket_white_backside.png", + "homedecor_fence_picket_white.png" + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.slab_z(-0.1), + node_box = homedecor.nodebox.slab_z(-0.002), +}) + +homedecor.register("fence_picket_corner_white", { + description = S("White Picket Fence Corner"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket_white.png", + "homedecor_fence_picket_white_backside.png", + "homedecor_fence_picket_white_backside.png", + "homedecor_fence_picket_white.png", + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.corner_xz(0.1, -0.1), + node_box = homedecor.nodebox.corner_xz(0.002, -0.002), +}) + +homedecor.register("fence_privacy", { + description = S("Wooden Privacy Fence"), + tiles = { + "homedecor_fence_privacy_tb.png", + "homedecor_fence_privacy_tb.png", + "homedecor_fence_privacy_sides.png", + "homedecor_fence_privacy_sides.png", + "homedecor_fence_privacy_backside.png", + "homedecor_fence_privacy_front.png" + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.slab_z(-3/16), + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 5/16, -5/16, 8/16, 7/16 }, -- left part + { -4/16, -8/16, 5/16, 3/16, 8/16, 7/16 }, -- middle part + { 4/16, -8/16, 5/16, 8/16, 8/16, 7/16 }, -- right part + { -8/16, -2/16, 7/16, 8/16, 2/16, 8/16 }, -- connecting rung + } + }, +}) + +homedecor.register("fence_privacy_corner", { + description = S("Wooden Privacy Fence Corner"), + tiles = { + "homedecor_fence_privacy_corner_tb.png", + "homedecor_fence_privacy_corner_tb.png^[transformFY", + "homedecor_fence_privacy_corner_right.png", + "homedecor_fence_privacy_backside2.png", + "homedecor_fence_privacy_backside.png", + "homedecor_fence_privacy_corner_front.png" + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = { + homedecor.box.slab_z(-3/16), + { -0.5, -0.5, -0.5, -5/16, 0.5, 5/16 }, + } + }, + node_box = { + type = "fixed", + fixed = { + { -7/16, -8/16, 5/16, -5/16, 8/16, 7/16 }, -- left part + { -4/16, -8/16, 5/16, 3/16, 8/16, 7/16 }, -- middle part + { 4/16, -8/16, 5/16, 8/16, 8/16, 7/16 }, -- right part + { -8/16, -2/16, 7/16, 8/16, 2/16, 8/16 }, -- back-side connecting rung + + { -7/16, -8/16, 4/16, -5/16, 8/16, 7/16 }, -- back-most part + { -7/16, -8/16, -4/16, -5/16, 8/16, 3/16 }, -- middle part + { -7/16, -8/16, -8/16, -5/16, 8/16, -5/16 }, -- front-most part + { -8/16, -2/16, -8/16, -7/16, 2/16, 7/16 }, -- left-side connecting rung + } + }, +}) + +homedecor.register("fence_barbed_wire", { + description = S("Barbed Wire Fence"), + mesh = "homedecor_fence_barbed_wire.obj", + tiles = {"homedecor_fence_barbed_wire.png"}, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.slab_z(-0.125), + collision_box = homedecor.nodebox.slab_z(-0.125), +}) + +homedecor.register("fence_barbed_wire_corner", { + description = S("Barbed Wire Fence Corner"), + mesh = "homedecor_fence_barbed_wire_corner.obj", + tiles = { "homedecor_fence_barbed_wire.png" }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.corner_xz(0.125, -0.125), + collision_box = homedecor.nodebox.corner_xz(0.125, -0.125), +}) + +homedecor.register("fence_chainlink", { + description = S("Chainlink Fence"), + mesh="homedecor_fence_chainlink.obj", + tiles = { + "homedecor_fence_chainlink_tb.png", + "homedecor_fence_chainlink_tb.png", + "homedecor_fence_chainlink_sides.png", + "homedecor_fence_chainlink_sides.png", + "homedecor_fence_chainlink_fb.png", + "homedecor_fence_chainlink_fb.png", + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.slab_z(-0.125), + collision_box = homedecor.nodebox.slab_z(-0.125), +}) + + +homedecor.register("fence_chainlink_corner", { + description = S("Chainlink Fence Corner"), + mesh = "homedecor_fence_chainlink_corner.obj", + tiles = { + "homedecor_fence_chainlink_corner_top.png", + "homedecor_fence_chainlink_corner_top.png", + "homedecor_fence_chainlink_corner_front.png", + "homedecor_fence_chainlink_corner_front.png", + "homedecor_fence_chainlink_corner_front.png", + "homedecor_fence_chainlink_corner_front.png", + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.corner_xz(0.125, -0.125), + collision_box = homedecor.nodebox.corner_xz(0.125, -0.125), +}) + +homedecor.register("fence_wrought_iron_2", { + description = S("Wrought Iron fence (type 2)"), + tiles = { + "homedecor_fence_wrought_iron_2_tb.png", + "homedecor_fence_wrought_iron_2_tb.png", + "homedecor_fence_wrought_iron_2_sides.png", + "homedecor_fence_wrought_iron_2_sides.png", + "homedecor_fence_wrought_iron_2_fb.png", + "homedecor_fence_wrought_iron_2_fb.png" + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.slab_z(-0.08), + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 14/32, -7.75/16, 8/16, 16/32 }, -- left post + { 7.75/16, -8/16, 14/32, 8/16, 8/16, 16/32 }, -- right post + { -8/16, 7.75/16, 14/32, 8/16, 8/16, 16/32 }, -- top piece + { -8/16, -0.015625, 14.75/32, 8/16, 0.015625, 15.25/32 }, -- cross piece + { -0.015625, -8/16, 14.75/32, 0.015625, 8/16, 15.25/32 }, -- cross piece + { -8/16, -8/16, 14/32, 8/16, -7.75/16, 16/32 }, -- bottom piece + { -8/16, -8/16, 15/32, 8/16, 8/16, 15/32 } -- the grid itself + } + }, +}) + +homedecor.register("fence_wrought_iron_2_corner", { + description = S("Wrought Iron fence (type 2) Corner"), + tiles = { + "homedecor_fence_corner_wrought_iron_2_tb.png", + "homedecor_fence_corner_wrought_iron_2_tb.png", + "homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX", + "homedecor_fence_corner_wrought_iron_2_sides.png", + "homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX", + "homedecor_fence_corner_wrought_iron_2_sides.png" + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = homedecor.nodebox.corner_xz(0.08, -0.08), + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.453125, -0.453125, 0.5, 0.5 }, -- corner edge + { -7.5/16, 7.75/16, 14/32, 8/16, 8/16, 16/32 }, -- top piece + { -7.5/16, -8/16, 14/32, 8/16, -7.75/16, 16/32 }, -- bottom piece + { -16/32, 7.75/16, -8/16, -14/32, 8/16, 8/16 }, -- top piece, side + { -16/32, -8/16, -8/16, -14/32, -7.75/16, 8/16 }, -- bottom piece, side + { -7.5/16, -8/16, 7.5/16, 8/16, 8/16, 7.5/16 }, -- the grid itself + { -7.5/16, -8/16, -8/16, -7.5/16, 8/16, 7.5/16 }, -- the grid itself, side + { -15.5/32, -0.5, -0.5, -14.5/32, 0.5, -0.484375 }, -- left post side + { 7.75/16, -8/16, 14.5/32, 8/16, 8/16, 15.5/32 }, -- right post + { -8/16, -0.015625, 14.75/32, 8/16, 0.015625, 15.25/32 }, -- cross piece + { -0.015625, -8/16, 14.75/32, 0.015625, 8/16, 15.25/32 }, -- cross piece + { -15.25/32, -0.5, -0.015625, -14.75/32, 0.5, 0.015625 }, -- cross piece side + { -15.25/32, -0.015625, -0.5, -14.75/32, 0.015625, 0.5 } -- cross piece side + } + }, +}) + +if signs_modpath then + signs_lib.register_fence_with_sign("homedecor:fence_brass", "homedecor:fence_brass_with_sign") + signs_lib.register_fence_with_sign("homedecor:fence_wrought_iron", "homedecor:fence_wrought_iron_with_sign") +end + +-- crafting + +-- Brass/wrought iron fences + +minetest.register_craft( { + output = "homedecor:fence_brass 6", + recipe = { + { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" }, + { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:fence_wrought_iron 6", + recipe = { + { "default:iron_lump","default:iron_lump","default:iron_lump" }, + { "default:iron_lump","default:iron_lump","default:iron_lump" }, + }, +}) + +-- other types of fences + +minetest.register_craft( { + output = "homedecor:fence_wrought_iron_2 4", + recipe = { + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_wrought_iron_2_corner", + recipe = { + "homedecor:fence_wrought_iron_2", + "homedecor:fence_wrought_iron_2" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_wrought_iron_2 2", + recipe = { + "homedecor:fence_wrought_iron_2_corner", + }, +}) + +-- + +minetest.register_craft( { + output = "homedecor:fence_picket 6", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "group:stick", "", "group:stick" }, + { "group:stick", "group:stick", "group:stick" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_corner", + recipe = { + "homedecor:fence_picket", + "homedecor:fence_picket" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket 2", + recipe = { + "homedecor:fence_picket_corner" + }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_picket_white 6", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "group:stick", "dye:white", "group:stick" }, + { "group:stick", "group:stick", "group:stick" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_corner_white", + recipe = { + "homedecor:fence_picket_white", + "homedecor:fence_picket_white" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_white 2", + recipe = { + "homedecor:fence_picket_corner_white" + }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_privacy 6", + recipe = { + { "group:wood", "group:stick", "group:wood" }, + { "group:wood", "", "group:wood" }, + { "group:wood", "group:stick", "group:wood" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_privacy_corner", + recipe = { + "homedecor:fence_privacy", + "homedecor:fence_privacy" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_privacy 2", + recipe = { + "homedecor:fence_privacy_corner" + }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_barbed_wire 6", + recipe = { + { "group:stick", "basic_materials:steel_wire", "group:stick" }, + { "group:stick", "", "group:stick" }, + { "group:stick", "basic_materials:steel_wire", "group:stick" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_barbed_wire_corner", + recipe = { "homedecor:fence_barbed_wire", "homedecor:fence_barbed_wire" }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_barbed_wire 2", + recipe = { "homedecor:fence_barbed_wire_corner" }, +}) + +-- + +minetest.register_craft( { + output = "homedecor:fence_chainlink 9", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }, + { "basic_materials:steel_wire", "basic_materials:steel_wire", "default:steel_ingot" }, + { "basic_materials:steel_wire", "basic_materials:steel_wire", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_chainlink_corner", + recipe = { "homedecor:fence_chainlink", "homedecor:fence_chainlink" }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_chainlink 2", + recipe = { "homedecor:fence_chainlink_corner" }, +}) -- cgit v1.2.3