will be overwritten by the trapdoor registration function
}
+Fence API
+---------
+Allows creation of new fences with "fencelike" drawtype.
+
+default.register_fence(name, item definition)
+ ^ Registers a new fence. Custom fields texture and material are required, as
+ ^ are name and description. The rest is optional. You can pass most normal
+ ^ nodedef fields here except drawtype. The fence group will always be added
+ ^ for this node.
+
+#fence definition
+ name = "default:fence_wood",
+ description = "Wooden Fence",
+ texture = "default_wood.png",
+ material = "default:wood",
+ groups = {choppy=2, oddly_breakable_by_hand = 2, flammable = 2},
+ sounds = default.node_sound_wood_defaults(),
+
Farming API
-----------
The farming API allows you to easily register plants and hoes.
end
+--
+-- Fence registration helper
+--
+function default.register_fence(name, def)
+ minetest.register_craft({
+ output = name .. " 4",
+ recipe = {
+ { def.material, 'group:stick', def.material },
+ { def.material, 'group:stick', def.material },
+ }
+ })
+
+ 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 = "fencelike",
+ inventory_image = fence_texture,
+ wield_image = fence_texture,
+ tiles = { def.texture },
+ sunlight_propagates = true,
+ is_ground_content = false,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+ },
+ groups = {},
+ }
+ for k, v in pairs(default_fields) do
+ if not def[k] then
+ def[k] = v
+ end
+ end
+
+ -- Always add to the fence group, even if no group provided
+ def.groups.fence = 1
+
+ def.texture = nil
+ def.material = nil
+
+ minetest.register_node(name, def)
+end
+
+
--
-- Leafdecay
--
default:ladder
default:fence_wood
+default:fence_acacia_wood
+default:fence_junglewood
+default:fence_pine_wood
+default:fence_aspen_wood
default:glass
default:obsidian_glass
sounds = default.node_sound_wood_defaults(),
})
-
-local fence_texture =
- "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126"
-minetest.register_node("default:fence_wood", {
+default.register_fence("default:fence_wood", {
description = "Wooden Fence",
- drawtype = "fencelike",
- tiles = {"default_wood.png"},
- inventory_image = fence_texture,
- wield_image = fence_texture,
- paramtype = "light",
- sunlight_propagates = true,
- is_ground_content = false,
- selection_box = {
- type = "fixed",
- fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
- },
+ texture = "default_wood.png",
+ material = "default:wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
- sounds = default.node_sound_wood_defaults(),
+ sounds = default.node_sound_wood_defaults()
+})
+
+default.register_fence("default:fence_acacia_wood", {
+ description = "Acacia Fence",
+ texture = "default_acacia_wood.png",
+ material = "default:acacia_wood",
+ groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
+ sounds = default.node_sound_wood_defaults()
+})
+
+default.register_fence("default:fence_junglewood", {
+ description = "Junglewood Fence",
+ texture = "default_junglewood.png",
+ material = "default:junglewood",
+ groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
+ sounds = default.node_sound_wood_defaults()
})
+default.register_fence("default:fence_pine_wood", {
+ description = "Pine Fence",
+ texture = "default_pine_wood.png",
+ material = "default:pine_wood",
+ groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
+ sounds = default.node_sound_wood_defaults()
+})
+
+default.register_fence("default:fence_aspen_wood", {
+ description = "Aspen Fence",
+ texture = "default_aspen_wood.png",
+ material = "default:aspen_wood",
+ groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
+ sounds = default.node_sound_wood_defaults()
+})
minetest.register_node("default:glass", {
description = "Glass",