mirror of
https://github.com/minetest/minetest_game.git
synced 2024-12-22 14:12:26 +01:00
74 lines
2.5 KiB
Lua
74 lines
2.5 KiB
Lua
-- walls/init.lua
|
|
|
|
walls = {}
|
|
|
|
local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0
|
|
|
|
-- Load support for MT game translation.
|
|
local S = minetest.get_translator("walls")
|
|
|
|
walls.register = function(wall_name, wall_desc, wall_texture_table, wall_mat, wall_sounds)
|
|
--make wall_texture_table paramenter backwards compatible for mods passing single texture
|
|
if type(wall_texture_table) ~= "table" then
|
|
wall_texture_table = { wall_texture_table }
|
|
end
|
|
-- inventory node, and pole-type wall start item
|
|
minetest.register_node(wall_name, {
|
|
description = wall_desc,
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "connected",
|
|
fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4},
|
|
-- connect_bottom =
|
|
connect_front = {-3/16, -1/2, -1/2, 3/16, 3/8, -1/4},
|
|
connect_left = {-1/2, -1/2, -3/16, -1/4, 3/8, 3/16},
|
|
connect_back = {-3/16, -1/2, 1/4, 3/16, 3/8, 1/2},
|
|
connect_right = { 1/4, -1/2, -3/16, 1/2, 3/8, 3/16},
|
|
},
|
|
collision_box = {
|
|
type = "connected",
|
|
fixed = {-1/4, -1/2, -1/4, 1/4, 1/2 + fence_collision_extra, 1/4},
|
|
-- connect_top =
|
|
-- connect_bottom =
|
|
connect_front = {-1/4,-1/2,-1/2,1/4,1/2 + fence_collision_extra,-1/4},
|
|
connect_left = {-1/2,-1/2,-1/4,-1/4,1/2 + fence_collision_extra,1/4},
|
|
connect_back = {-1/4,-1/2,1/4,1/4,1/2 + fence_collision_extra,1/2},
|
|
connect_right = {1/4,-1/2,-1/4,1/2,1/2 + fence_collision_extra,1/4},
|
|
},
|
|
connects_to = { "group:wall", "group:stone", "group:fence" },
|
|
paramtype = "light",
|
|
is_ground_content = false,
|
|
tiles = wall_texture_table,
|
|
walkable = true,
|
|
groups = { cracky = 3, wall = 1, stone = 2 },
|
|
sounds = wall_sounds,
|
|
})
|
|
|
|
-- crafting recipe
|
|
-- HACK:
|
|
-- Walls have no crafts, when register new wall via API from another mod, but in the same namespace (`walls`).
|
|
-- So we should remove `":"` at the beginning of the name.
|
|
if wall_name:sub(1, 1) == ":" then
|
|
wall_name = wall_name:sub(2)
|
|
end
|
|
minetest.register_craft({
|
|
output = wall_name .. " 6",
|
|
recipe = {
|
|
{ "", "", "" },
|
|
{ wall_mat, wall_mat, wall_mat},
|
|
{ wall_mat, wall_mat, wall_mat},
|
|
}
|
|
})
|
|
|
|
end
|
|
|
|
walls.register("walls:cobble", S("Cobblestone Wall"), {"default_cobble.png"},
|
|
"default:cobble", default.node_sound_stone_defaults())
|
|
|
|
walls.register("walls:mossycobble", S("Mossy Cobblestone Wall"), {"default_mossycobble.png"},
|
|
"default:mossycobble", default.node_sound_stone_defaults())
|
|
|
|
walls.register("walls:desertcobble", S("Desert Cobblestone Wall"), {"default_desert_cobble.png"},
|
|
"default:desert_cobble", default.node_sound_stone_defaults())
|
|
|