Use new Minetest Game fences API
parent
3c9e3fdca6
commit
e461a62783
|
@ -126,6 +126,64 @@ function default.node_sound_lava_defaults(table)
|
|||
return table
|
||||
end
|
||||
|
||||
|
||||
function default.register_fence(name, def)
|
||||
if def.material then
|
||||
minetest.register_craft({
|
||||
output = name .. " 4",
|
||||
recipe = {
|
||||
{ def.material, 'group:stick', def.material },
|
||||
{ def.material, 'group:stick', def.material },
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
local fence_texture = "default_fence_overlay.png^" .. def.texture ..
|
||||
"^default_fence_overlay.png^[makealpha:255,126,126"
|
||||
-- Allow almost everything to be overridden
|
||||
local default_fields = {
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "connected",
|
||||
fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}},
|
||||
-- connect_top =
|
||||
-- connect_bottom =
|
||||
connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8},
|
||||
{-1/16,-5/16,-1/2,1/16,-3/16,-1/8}},
|
||||
connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16},
|
||||
{-1/2,-5/16,-1/16,-1/8,-3/16,1/16}},
|
||||
connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2},
|
||||
{-1/16,-5/16,1/8,1/16,-3/16,1/2}},
|
||||
connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16},
|
||||
{1/8,-5/16,-1/16,1/2,-3/16,1/16}},
|
||||
},
|
||||
connects_to = {"group:fence_wood", "group:wood", "group:tree"},
|
||||
inventory_image = fence_texture,
|
||||
wield_image = fence_texture,
|
||||
tiles = {def.texture},
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
groups = {},
|
||||
}
|
||||
for k, v in pairs(default_fields) do
|
||||
if def[k] == nil then
|
||||
def[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
-- Always add to the fence group, even if no group provided
|
||||
def.groups.fence = 1
|
||||
-- Always connect to fence gates regardless of type
|
||||
table.insert(def.connects_to, "group:fence_gate")
|
||||
|
||||
def.texture = nil
|
||||
def.material = nil
|
||||
|
||||
minetest.register_node(name, def)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Legacy
|
||||
--
|
||||
|
|
|
@ -1034,24 +1034,8 @@ minetest.register_node("default:glass", {
|
|||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:fence_rusty", {
|
||||
description = "Rusty Fence",
|
||||
drawtype = "fencelike",
|
||||
tiles = {"default_rusty.png"},
|
||||
inventory_image = "default_fence_rusty.png",
|
||||
wield_image = "default_fence_rusty.png",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
||||
},
|
||||
groups = {cracky=3, fence=1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
})
|
||||
|
||||
local fences = {
|
||||
{ "rusty", "Rusty Fence", "default_rusty.png", {cracky=3}, default.node_sound_metal_defaults() },
|
||||
{ "rusty", "Rusty Fence", "default_rusty.png", {cracky=3, fence_metal=1}, {"group:fence_metal"}, default.node_sound_metal_defaults() },
|
||||
{ "wood", "Common Wood Fence", "default_wood.png" },
|
||||
{ "pale_wood", "Pale Wood Fence", "default_palewood.png" },
|
||||
{ "jungle_wood", "Jungle Wood Fence", "default_junglewood.png" },
|
||||
|
@ -1073,29 +1057,21 @@ local fences = {
|
|||
}
|
||||
|
||||
for i=1, #fences do
|
||||
local groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, woodfence=1}
|
||||
local groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, fence_wood=1}
|
||||
local sounds = default.node_sound_wood_defaults()
|
||||
if fences[i][4] then
|
||||
groups = fences[i][4]
|
||||
end
|
||||
groups.fence = 1
|
||||
if fences[i][5] then
|
||||
sounds = fences[i][5]
|
||||
local connects_to = fences[i][5]
|
||||
if fences[i][6] then
|
||||
sounds = fences[i][6]
|
||||
end
|
||||
minetest.register_node("default:fence_"..fences[i][1], {
|
||||
default.register_fence("default:fence_"..fences[i][1], {
|
||||
description = fences[i][2],
|
||||
drawtype = "fencelike",
|
||||
tiles = {fences[i][3]},
|
||||
inventory_image = "default_fence_mask.png^" .. fences[i][3] .. "^default_fence_mask.png^[makealpha:255,126,126",
|
||||
wield_image = "default_fence_mask.png^" .. fences[i][3] .. "^default_fence_mask.png^[makealpha:255,126,126",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
||||
},
|
||||
texture = fences[i][3],
|
||||
groups = groups,
|
||||
sounds = sounds,
|
||||
connects_to = connects_to,
|
||||
})
|
||||
end
|
||||
|
||||
|
|
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 112 B |
|
@ -661,6 +661,7 @@ function doors.register_fencegate(name, def)
|
|||
end
|
||||
|
||||
fence.groups.fence = 1
|
||||
fence.groups.fence_gate = 1
|
||||
|
||||
local fence_closed = table.copy(fence)
|
||||
fence_closed.mesh = "doors_fencegate_closed.obj"
|
||||
|
|
Loading…
Reference in New Issue