mirror of
https://github.com/mt-mods/homedecor_modpack.git
synced 2024-11-17 07:40:32 +01:00
8fd34a9dc6
Dropped support for punching doors to open them - only right-click now. Moved gates out of fences and into doors file, renamed that file to doors_and_gates.lua. Changed gates to also use right click to open, and in the process completely rewrote how gates are defined and managed; this necessitated creating some duplicate textures. Some of them are blank, and texture pack authors may find the extra filenames useful anyway. Node names for all gates have changed, aliases are provided for backward compatibility.
464 lines
14 KiB
Lua
464 lines
14 KiB
Lua
-- This file adds fences of various types
|
|
|
|
-- Boilerplate to support localized strings if intllib mod is installed.
|
|
local S
|
|
if (minetest.get_modpath("intllib")) then
|
|
dofile(minetest.get_modpath("intllib").."/intllib.lua")
|
|
S = intllib.Getter(minetest.get_current_modname())
|
|
else
|
|
S = function ( s ) return s end
|
|
end
|
|
|
|
minetest.register_node("homedecor:fence_brass", {
|
|
description = S("Brass Fence/railing"),
|
|
drawtype = "fencelike",
|
|
tiles = {"homedecor_tile_brass.png"},
|
|
inventory_image = "homedecor_fence_brass.png",
|
|
wield_image = "homedecor_pole_brass.png",
|
|
paramtype = "light",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
|
},
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
if not homedecor_node_is_owned(pointed_thing.under, placer) then
|
|
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
|
|
minetest.env:add_node(pointed_thing.above, {name = "homedecor:fence_brass", param2 = fdir})
|
|
itemstack:take_item()
|
|
placer:set_wielded_item(itemstack)
|
|
return itemstack
|
|
end
|
|
end
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_wrought_iron", {
|
|
description = S("Wrought Iron Fence/railing"),
|
|
drawtype = "fencelike",
|
|
tiles = {"homedecor_tile_wrought_iron.png"},
|
|
inventory_image = "homedecor_fence_wrought_iron.png",
|
|
wield_image = "homedecor_pole_wrought_iron.png",
|
|
paramtype = "light",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
|
},
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
})
|
|
|
|
-- brass/wrought iron with signs:
|
|
|
|
minetest.register_node("homedecor:fence_brass_with_sign", {
|
|
description = S("Brass Fence/railing with sign"),
|
|
drawtype = "nodebox",
|
|
tiles = {
|
|
"homedecor_sign_brass_post_top.png",
|
|
"homedecor_sign_brass_post_bottom.png",
|
|
"homedecor_sign_brass_post_side.png",
|
|
"homedecor_sign_brass_post_side.png",
|
|
"homedecor_sign_brass_post_back.png",
|
|
"homedecor_sign_brass_post_front.png",
|
|
},
|
|
wield_image = "homedecor_sign_brass_post.png",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
|
{ -0.45, -0.1875, -0.225, 0.45, 0.4375, -0.125 },
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
|
{ -0.45, -0.1875, -0.225, 0.45, 0.4375, -0.125 },
|
|
}
|
|
},
|
|
groups = {snappy=3,not_in_creative_inventory=1},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
drop = {
|
|
max_items = 2,
|
|
items = {
|
|
{ items = { "default:sign_wall" }},
|
|
{ items = { "homedecor:fence_brass" }},
|
|
},
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_wrought_iron_with_sign", {
|
|
description = S("Wrought Iron Fence/railing with sign"),
|
|
drawtype = "nodebox",
|
|
tiles = {
|
|
"homedecor_sign_wrought_iron_post_top.png",
|
|
"homedecor_sign_wrought_iron_post_bottom.png",
|
|
"homedecor_sign_wrought_iron_post_side.png",
|
|
"homedecor_sign_wrought_iron_post_side.png",
|
|
"homedecor_sign_wrought_iron_post_back.png",
|
|
"homedecor_sign_wrought_iron_post_front.png",
|
|
},
|
|
wield_image = "homedecor_sign_wrought_iron_post.png",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
|
{ -0.45, -0.1875, -0.225, 0.45, 0.4375, -0.125 },
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
|
{ -0.45, -0.1875, -0.225, 0.45, 0.4375, -0.125 },
|
|
}
|
|
},
|
|
groups = {snappy=3,not_in_creative_inventory=1},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
drop = {
|
|
max_items = 2,
|
|
items = {
|
|
{ items = { "default:sign_wall" }},
|
|
{ items = { "homedecor:fence_wrought_iron" }},
|
|
},
|
|
},
|
|
})
|
|
|
|
-- other types of fences
|
|
|
|
minetest.register_node("homedecor:fence_picket", {
|
|
drawtype = "nodebox",
|
|
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"
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 }
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_picket_corner", {
|
|
drawtype = "nodebox",
|
|
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",
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 },
|
|
{ -0.5, -0.5, -0.5, -0.4, 0.5, 0.4 }
|
|
}
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.5 },
|
|
{ -0.5, -0.5, -0.5, -0.498, 0.5, 0.5 }
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_picket_white", {
|
|
drawtype = "nodebox",
|
|
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"
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 }
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_picket_corner_white", {
|
|
drawtype = "nodebox",
|
|
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",
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 },
|
|
{ -0.5, -0.5, -0.5, -0.4, 0.5, 0.4 }
|
|
}
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.5 },
|
|
{ -0.5, -0.5, -0.5, -0.498, 0.5, 0.5 }
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_privacy", {
|
|
drawtype = "nodebox",
|
|
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"
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 5/16, 0.5, 0.5, 8/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
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_privacy_corner", {
|
|
drawtype = "nodebox",
|
|
description = S("Wooden Privacy Fence"),
|
|
tiles = {
|
|
"homedecor_fence_privacy_corner_top.png",
|
|
"homedecor_fence_privacy_corner_bottom.png",
|
|
"homedecor_fence_privacy_corner_right.png",
|
|
"homedecor_fence_privacy_backside.png",
|
|
"homedecor_fence_privacy_backside.png",
|
|
"homedecor_fence_privacy_corner_front.png"
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 5/16, 0.5, 0.5, 0.5 },
|
|
{ -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
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_barbed_wire", {
|
|
drawtype = "nodebox",
|
|
description = S("Barbed Wire Fence"),
|
|
tiles = {"homedecor_fence_barbed_wire.png"},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 }
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post
|
|
{ 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
|
{ -6/16, -8/16, 7/16, 6/16, 8/16, 7/16 } -- the wire
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_barbed_wire_corner", {
|
|
drawtype = "nodebox",
|
|
description = S("Barbed Wire Fence"),
|
|
tiles = {
|
|
"homedecor_fence_barbed_wire.png"
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 },
|
|
{ -0.5, -0.5, -0.5, -0.375, 0.5, 0.375 }
|
|
}
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post
|
|
{ 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
|
{ -6/16, -8/16, 7/16, 6/16, 8/16, 7/16 }, -- the wire
|
|
|
|
{ -8/16, -8/16, -8/16, -6/16, 8/16, -6/16 }, -- front post
|
|
{ -7/16, -8/16, -6/16, -7/16, 8/16, 6/16 } -- more wire
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_chainlink", {
|
|
drawtype = "nodebox",
|
|
description = S("Chainlink Fence"),
|
|
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",
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 }
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -8/16, -8/16, 6/16, -7/16, 8/16, 8/16 }, -- left post
|
|
{ 7/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
|
{ -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece
|
|
{ -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece
|
|
{ -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 } -- the chainlink itself
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_node("homedecor:fence_chainlink_corner", {
|
|
drawtype = "nodebox",
|
|
description = "Chainlink Fence",
|
|
tiles = {
|
|
"homedecor_fence_chainlink_gate_tb.png",
|
|
"homedecor_fence_chainlink_gate_tb.png",
|
|
"homedecor_fence_chainlink_corner_sides.png",
|
|
"homedecor_fence_chainlink_corner_sides.png",
|
|
"homedecor_fence_chainlink_corner_sides.png",
|
|
"homedecor_fence_chainlink_corner_sides.png",
|
|
},
|
|
paramtype = "light",
|
|
is_ground_content = true,
|
|
groups = {snappy=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
walkable = true,
|
|
paramtype2 = "facedir",
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 },
|
|
{ -0.5, -0.5, -0.5, -0.375, 0.5, 0.375 }
|
|
}
|
|
},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post, rear
|
|
{ -8/16, -8/16, -8/16, -6/16, 8/16, -7/16 }, -- left post, front
|
|
{ 7/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post, rear
|
|
{ -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece, rear
|
|
{ -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece, rear
|
|
{ -15/32, 7/16, -8/16, -13/32, 8/16, 8/16 }, -- top piece, side
|
|
{ -15/32, -8/16, -8/16, -13/32, -7/16, 8/16 }, -- bottom piece, side
|
|
{ -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }, -- the chainlink itself, rear
|
|
{ -7/16, -8/16, -8/16, -7/16, 8/16, 8/16 } -- the chainlink itself, side
|
|
}
|
|
},
|
|
})
|
|
|
|
minetest.register_alias("homedecor:fence_wood_with_sign", "signs:sign_post")
|
|
|
|
homedecor_register_fence_with_sign("default:fence_wood", "signs:sign_post")
|
|
homedecor_register_fence_with_sign("homedecor:fence_brass", "homedecor:fence_brass_with_sign")
|
|
homedecor_register_fence_with_sign("homedecor:fence_wrought_iron", "homedecor:fence_wrought_iron_with_sign")
|