forked from VoxeLibre/VoxeLibre
Walls use `source` parameter for default hardness and blast resistance
If no `source` given, fallbacks are 2 and 6 respectively
This commit is contained in:
parent
e2ed1ab4a6
commit
8099a4bd17
|
@ -221,12 +221,7 @@ local function register_deepslate_variant(item, desc, longdesc)
|
||||||
mcl_walls.register_wall(
|
mcl_walls.register_wall(
|
||||||
"mcl_deepslate:deepslate"..item.."wall",
|
"mcl_deepslate:deepslate"..item.."wall",
|
||||||
S(desc.." Wall"),
|
S(desc.." Wall"),
|
||||||
"mcl_deepslate:deepslate_"..item,
|
"mcl_deepslate:deepslate_"..item)
|
||||||
nil,
|
|
||||||
nil,
|
|
||||||
nil,
|
|
||||||
minetest.registered_nodes["mcl_deepslate:deepslate"]._mcl_hardness,
|
|
||||||
minetest.registered_nodes["mcl_deepslate:deepslate"]._mcl_blast_resistance)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
This API allows you to add more walls (like the cobblestone wall) to MineClone 2.
|
This API allows you to add more walls (like the cobblestone wall) to MineClone 2.
|
||||||
|
|
||||||
## `mcl_walls.register_wall(nodename, description, craft_material, tiles, invtex, groups, hardness, blast_resistance, sounds)`
|
## `mcl_walls.register_wall(nodename, description, craft_material, tiles, invtex, groups, sounds, hardness, blast_resistance)`
|
||||||
|
|
||||||
Adds a new wall type. This is optimized for stone-based walls, but other materials are theoretically possible, too.
|
Adds a new wall type. This is optimized for stone-based walls, but other materials are theoretically possible, too.
|
||||||
|
|
||||||
|
@ -24,9 +24,9 @@ If `craft_material` is not `nil` it also adds a crafting recipe of the following
|
||||||
* `tiles`: Wall textures table, same syntax as for `minetest.register_node` (optional if `source` is set)
|
* `tiles`: Wall textures table, same syntax as for `minetest.register_node` (optional if `source` is set)
|
||||||
* `inventory_image`: Inventory image (optional if `source` is set)
|
* `inventory_image`: Inventory image (optional if `source` is set)
|
||||||
* `groups`: Base group memberships (optional, default is `{pickaxey=1}`)
|
* `groups`: Base group memberships (optional, default is `{pickaxey=1}`)
|
||||||
* `hardness`: Hardness of node (optional, default is 2)
|
|
||||||
* `blast_resistance`: Blast resistance of node (optional, default is 6 like most stone walls)
|
|
||||||
* `sounds`: Sound table (optional, by default default uses stone sounds)
|
* `sounds`: Sound table (optional, by default default uses stone sounds)
|
||||||
|
* `hardness`: Hardness of node (optional, default matches `source` node or fallback value 2)
|
||||||
|
* `blast_resistance`: Blast resistance of node (optional, default matches `source` node or fallback value 6)
|
||||||
|
|
||||||
The following groups will automatically be added to the nodes (where applicable), you do not need to add them
|
The following groups will automatically be added to the nodes (where applicable), you do not need to add them
|
||||||
to the `groups` table:
|
to the `groups` table:
|
||||||
|
|
|
@ -97,8 +97,10 @@ local full_blocks = {
|
||||||
* inventory_image: Inventory image (optional)
|
* inventory_image: Inventory image (optional)
|
||||||
* groups: Base group memberships (optional, default is {pickaxey=1})
|
* groups: Base group memberships (optional, default is {pickaxey=1})
|
||||||
* sounds: Sound table (optional, default is stone)
|
* sounds: Sound table (optional, default is stone)
|
||||||
|
* hardness: Hardness of node (optional, default matches `source` node or fallback value 2)
|
||||||
|
* blast_resistance: Blast resistance of node (optional, default matches `source` node or fallback value 6)
|
||||||
]]
|
]]
|
||||||
function mcl_walls.register_wall(nodename, description, source, tiles, inventory_image, groups, hardness, blast_resistance, sounds)
|
function mcl_walls.register_wall(nodename, description, source, tiles, inventory_image, groups, sounds, hardness, blast_resistance)
|
||||||
|
|
||||||
local base_groups = groups
|
local base_groups = groups
|
||||||
if not base_groups then
|
if not base_groups then
|
||||||
|
@ -112,17 +114,31 @@ function mcl_walls.register_wall(nodename, description, source, tiles, inventory
|
||||||
local main_node_groups = table.copy(base_groups)
|
local main_node_groups = table.copy(base_groups)
|
||||||
main_node_groups.deco_block = 1
|
main_node_groups.deco_block = 1
|
||||||
|
|
||||||
-- TODO: Stop hardcoding blast resistance
|
if source then
|
||||||
|
-- Default values from `source` node
|
||||||
if not sounds then
|
if not hardness then
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults()
|
hardness = minetest.registered_nodes[source]._mcl_hardness
|
||||||
end
|
end
|
||||||
|
if not blast_resistance then
|
||||||
if (not tiles) and source then
|
blast_resistance = minetest.registered_nodes[source]._mcl_blast_resistance
|
||||||
|
end
|
||||||
|
if not sounds then
|
||||||
|
sounds = minetest.registered_nodes[source].sounds
|
||||||
|
end
|
||||||
|
if not tiles then
|
||||||
if minetest.registered_nodes[source] then
|
if minetest.registered_nodes[source] then
|
||||||
tiles = minetest.registered_nodes[source].tiles
|
tiles = minetest.registered_nodes[source].tiles
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
-- Fallback in case no `source` given
|
||||||
|
if not hardness then
|
||||||
|
hardness = 2
|
||||||
|
end
|
||||||
|
if not blast_resistance then
|
||||||
|
blast_resistance = 6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
for i = 0, 15 do
|
for i = 0, 15 do
|
||||||
local need = {}
|
local need = {}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
mcl_walls.register_wall("mcl_walls:cobble", S("Cobblestone Wall"), "mcl_core:cobble", {"mcl_walls_cobble_wall_top.png", "default_cobble.png", "mcl_walls_cobble_wall_side.png"}, nil, nil, minetest.registered_nodes["mcl_core:cobble"]._mcl_hardness, minetest.registered_nodes["mcl_core:cobble"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:cobble", S("Cobblestone Wall"), "mcl_core:cobble", {"mcl_walls_cobble_wall_top.png", "default_cobble.png", "mcl_walls_cobble_wall_side.png"})
|
||||||
mcl_walls.register_wall("mcl_walls:mossycobble", S("Mossy Cobblestone Wall"), "mcl_core:mossycobble", {"mcl_walls_cobble_mossy_wall_top.png", "default_mossycobble.png", "mcl_walls_cobble_mossy_wall_side.png"}, nil, nil, minetest.registered_nodes["mcl_core:mossycobble"]._mcl_hardness, minetest.registered_nodes["mcl_core:mossycobble"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:mossycobble", S("Mossy Cobblestone Wall"), "mcl_core:mossycobble", {"mcl_walls_cobble_mossy_wall_top.png", "default_mossycobble.png", "mcl_walls_cobble_mossy_wall_side.png"})
|
||||||
mcl_walls.register_wall("mcl_walls:andesite", S("Andesite Wall"), "mcl_core:andesite", nil, nil, nil, minetest.registered_nodes["mcl_core:andesite"]._mcl_hardness, minetest.registered_nodes["mcl_core:andesite"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:andesite", S("Andesite Wall"), "mcl_core:andesite")
|
||||||
mcl_walls.register_wall("mcl_walls:granite", S("Granite Wall"), "mcl_core:granite", nil, nil, nil, minetest.registered_nodes["mcl_core:granite"]._mcl_hardness, minetest.registered_nodes["mcl_core:granite"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:granite", S("Granite Wall"), "mcl_core:granite")
|
||||||
mcl_walls.register_wall("mcl_walls:diorite", S("Diorite Wall"), "mcl_core:diorite", nil, nil, nil, minetest.registered_nodes["mcl_core:diorite"]._mcl_hardness, minetest.registered_nodes["mcl_core:diorite"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:diorite", S("Diorite Wall"), "mcl_core:diorite")
|
||||||
mcl_walls.register_wall("mcl_walls:brick", S("Brick Wall"), "mcl_core:brick_block", nil, nil, nil, minetest.registered_nodes["mcl_core:brick_block"]._mcl_hardness, minetest.registered_nodes["mcl_core:brick_block"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:brick", S("Brick Wall"), "mcl_core:brick_block")
|
||||||
mcl_walls.register_wall("mcl_walls:sandstone", S("Sandstone Wall"), "mcl_core:sandstone", nil, nil, nil, minetest.registered_nodes["mcl_core:sandstone"]._mcl_hardness, minetest.registered_nodes["mcl_core:sandstone"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:sandstone", S("Sandstone Wall"), "mcl_core:sandstone")
|
||||||
mcl_walls.register_wall("mcl_walls:redsandstone", S("Red Sandstone Wall"), "mcl_core:redsandstone", nil, nil, nil, minetest.registered_nodes["mcl_core:redsandstone"]._mcl_hardness, minetest.registered_nodes["mcl_core:redsandstone"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:redsandstone", S("Red Sandstone Wall"), "mcl_core:redsandstone")
|
||||||
mcl_walls.register_wall("mcl_walls:stonebrick", S("Stone Brick Wall"), "mcl_core:stonebrick", nil, nil, nil, minetest.registered_nodes["mcl_core:stonebrick"]._mcl_hardness, minetest.registered_nodes["mcl_core:stonebrick"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:stonebrick", S("Stone Brick Wall"), "mcl_core:stonebrick")
|
||||||
mcl_walls.register_wall("mcl_walls:stonebrickmossy", S("Mossy Stone Brick Wall"), "mcl_core:stonebrickmossy", nil, nil, nil, minetest.registered_nodes["mcl_core:stonebrickmossy"]._mcl_hardness, minetest.registered_nodes["mcl_core:stonebrickmossy"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:stonebrickmossy", S("Mossy Stone Brick Wall"), "mcl_core:stonebrickmossy")
|
||||||
mcl_walls.register_wall("mcl_walls:prismarine", S("Prismarine Wall"), "mcl_ocean:prismarine", nil, nil, nil, minetest.registered_nodes["mcl_ocean:prismarine"]._mcl_hardness, minetest.registered_nodes["mcl_ocean:prismarine"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:prismarine", S("Prismarine Wall"), "mcl_ocean:prismarine")
|
||||||
mcl_walls.register_wall("mcl_walls:endbricks", S("End Stone Brick Wall"), "mcl_end:end_bricks", nil, nil, nil, minetest.registered_nodes["mcl_end:end_bricks"]._mcl_hardness, minetest.registered_nodes["mcl_end:end_bricks"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:endbricks", S("End Stone Brick Wall"), "mcl_end:end_bricks")
|
||||||
mcl_walls.register_wall("mcl_walls:netherbrick", S("Nether Brick Wall"), "mcl_nether:nether_brick", nil, nil, nil, minetest.registered_nodes["mcl_nether:nether_brick"]._mcl_hardness, minetest.registered_nodes["mcl_nether:nether_brick"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:netherbrick", S("Nether Brick Wall"), "mcl_nether:nether_brick")
|
||||||
mcl_walls.register_wall("mcl_walls:rednetherbrick", S("Red Nether Brick Wall"), "mcl_nether:red_nether_brick", nil, nil, nil, minetest.registered_nodes["mcl_nether:red_nether_brick"]._mcl_hardness, minetest.registered_nodes["mcl_nether:red_nether_brick"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:rednetherbrick", S("Red Nether Brick Wall"), "mcl_nether:red_nether_brick")
|
||||||
mcl_walls.register_wall("mcl_walls:mudbrick", S("Mud Brick Wall"), "mcl_mud:mud_bricks", nil, nil, nil, minetest.registered_nodes["mcl_mud:mud_bricks"]._mcl_hardness, minetest.registered_nodes["mcl_mud:mud_bricks"]._mcl_blast_resistance)
|
mcl_walls.register_wall("mcl_walls:mudbrick", S("Mud Brick Wall"), "mcl_mud:mud_bricks")
|
Loading…
Reference in New Issue