properly fix stairs

This commit is contained in:
sfan5 2019-09-10 21:40:00 +02:00
parent 80873cd42b
commit 8f2d752d94
2 changed files with 85 additions and 56 deletions

View file

@ -726,27 +726,29 @@ delivered with Minetest Game, to keep them compatible with other mods.
* `sounds`: See [#Default sounds] * `sounds`: See [#Default sounds]
* `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]
`stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex)` `stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description)`
* Registers an inner corner stair * Registers an inner corner stair
* `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_inner_subname" * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_inner_subname"
* `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
* `groups`: See [Known damage and digging time defining groups] * `groups`: See [Known damage and digging time defining groups]
* `images`: See [Tile definition] * `images`: See [Tile definition]
* `description`: Used for the description field in the stair's definition * `description`: Used for the description field in the stair's definition with "Inner" prepended
* `sounds`: See [#Default sounds] * `sounds`: See [#Default sounds]
* `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]
* `full_description`: Overrides the description, bypassing string concatenation. This is useful for translation. (optional)
`stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex)` `stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description)`
* Registers an outer corner stair * Registers an outer corner stair
* `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname" * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname"
* `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
* `groups`: See [Known damage and digging time defining groups] * `groups`: See [Known damage and digging time defining groups]
* `images`: See [Tile definition] * `images`: See [Tile definition]
* `description`: Used for the description field in the stair's definition * `description`: Used for the description field in the stair's definition with "Outer" prepended
* `sounds`: See [#Default sounds] * `sounds`: See [#Default sounds]
* `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]
* `full_description`: Overrides the description, bypassing string concatenation. This is useful for translation. (optional)
`stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds, worldaligntex)` `stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds, worldaligntex)`

View file

@ -296,7 +296,7 @@ end
-- Node will be called stairs:stair_inner_<subname> -- Node will be called stairs:stair_inner_<subname>
function stairs.register_stair_inner(subname, recipeitem, groups, images, function stairs.register_stair_inner(subname, recipeitem, groups, images,
description, sounds, worldaligntex) description, sounds, worldaligntex, full_description)
-- Set backface culling and world-aligned textures -- Set backface culling and world-aligned textures
local stair_images = {} local stair_images = {}
for i, image in ipairs(images) do for i, image in ipairs(images) do
@ -320,6 +320,11 @@ function stairs.register_stair_inner(subname, recipeitem, groups, images,
end end
local new_groups = table.copy(groups) local new_groups = table.copy(groups)
new_groups.stair = 1 new_groups.stair = 1
if full_description then
description = full_description
else
description = "Inner " .. description
end
warn_if_exists("stairs:stair_inner_" .. subname) warn_if_exists("stairs:stair_inner_" .. subname)
minetest.register_node(":stairs:stair_inner_" .. subname, { minetest.register_node(":stairs:stair_inner_" .. subname, {
description = description, description = description,
@ -378,7 +383,7 @@ end
-- Node will be called stairs:stair_outer_<subname> -- Node will be called stairs:stair_outer_<subname>
function stairs.register_stair_outer(subname, recipeitem, groups, images, function stairs.register_stair_outer(subname, recipeitem, groups, images,
description, sounds, worldaligntex) description, sounds, worldaligntex, full_description)
-- Set backface culling and world-aligned textures -- Set backface culling and world-aligned textures
local stair_images = {} local stair_images = {}
for i, image in ipairs(images) do for i, image in ipairs(images) do
@ -402,6 +407,11 @@ function stairs.register_stair_outer(subname, recipeitem, groups, images,
end end
local new_groups = table.copy(groups) local new_groups = table.copy(groups)
new_groups.stair = 1 new_groups.stair = 1
if full_description then
description = full_description
else
description = "Outer " .. description
end
warn_if_exists("stairs:stair_outer_" .. subname) warn_if_exists("stairs:stair_outer_" .. subname)
minetest.register_node(":stairs:stair_outer_" .. subname, { minetest.register_node(":stairs:stair_outer_" .. subname, {
description = description, description = description,
@ -459,12 +469,25 @@ end
function stairs.register_stair_and_slab(subname, recipeitem, groups, images, function stairs.register_stair_and_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds, worldaligntex) desc_stair, desc_slab, sounds, worldaligntex)
stairs.register_stair(subname, recipeitem, groups, images, desc_stair,
sounds, worldaligntex)
stairs.register_stair_inner(subname, recipeitem, groups, images, desc_stair,
sounds, worldaligntex)
stairs.register_stair_outer(subname, recipeitem, groups, images, desc_stair,
sounds, worldaligntex)
stairs.register_slab(subname, recipeitem, groups, images, desc_slab,
sounds, worldaligntex)
end
-- Local function so we can apply translations
local function my_register_stair_and_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds, worldaligntex)
stairs.register_stair(subname, recipeitem, groups, images, S(desc_stair), stairs.register_stair(subname, recipeitem, groups, images, S(desc_stair),
sounds, worldaligntex) sounds, worldaligntex)
stairs.register_stair_inner(subname, recipeitem, groups, images, stairs.register_stair_inner(subname, recipeitem, groups, images, "",
S("Inner " .. desc_stair), sounds, worldaligntex) sounds, worldaligntex, S("Inner " .. desc_stair))
stairs.register_stair_outer(subname, recipeitem, groups, images, stairs.register_stair_outer(subname, recipeitem, groups, images, "",
S("Outer " .. desc_stair), sounds, worldaligntex) sounds, worldaligntex, S("Outer " .. desc_stair))
stairs.register_slab(subname, recipeitem, groups, images, S(desc_slab), stairs.register_slab(subname, recipeitem, groups, images, S(desc_slab),
sounds, worldaligntex) sounds, worldaligntex)
end end
@ -472,7 +495,7 @@ end
-- Register default stairs and slabs -- Register default stairs and slabs
stairs.register_stair_and_slab( my_register_stair_and_slab(
"wood", "wood",
"default:wood", "default:wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
@ -483,7 +506,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"junglewood", "junglewood",
"default:junglewood", "default:junglewood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
@ -494,7 +517,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"pine_wood", "pine_wood",
"default:pine_wood", "default:pine_wood",
{choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
@ -505,7 +528,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"acacia_wood", "acacia_wood",
"default:acacia_wood", "default:acacia_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
@ -516,7 +539,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"aspen_wood", "aspen_wood",
"default:aspen_wood", "default:aspen_wood",
{choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
@ -527,7 +550,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"stone", "stone",
"default:stone", "default:stone",
{cracky = 3}, {cracky = 3},
@ -538,7 +561,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"cobble", "cobble",
"default:cobble", "default:cobble",
{cracky = 3}, {cracky = 3},
@ -549,7 +572,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"mossycobble", "mossycobble",
"default:mossycobble", "default:mossycobble",
{cracky = 3}, {cracky = 3},
@ -560,7 +583,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"stonebrick", "stonebrick",
"default:stonebrick", "default:stonebrick",
{cracky = 2}, {cracky = 2},
@ -571,7 +594,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"stone_block", "stone_block",
"default:stone_block", "default:stone_block",
{cracky = 2}, {cracky = 2},
@ -582,7 +605,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_stone", "desert_stone",
"default:desert_stone", "default:desert_stone",
{cracky = 3}, {cracky = 3},
@ -593,7 +616,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_cobble", "desert_cobble",
"default:desert_cobble", "default:desert_cobble",
{cracky = 3}, {cracky = 3},
@ -604,7 +627,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_stonebrick", "desert_stonebrick",
"default:desert_stonebrick", "default:desert_stonebrick",
{cracky = 2}, {cracky = 2},
@ -615,7 +638,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_stone_block", "desert_stone_block",
"default:desert_stone_block", "default:desert_stone_block",
{cracky = 2}, {cracky = 2},
@ -626,7 +649,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"sandstone", "sandstone",
"default:sandstone", "default:sandstone",
{crumbly = 1, cracky = 3}, {crumbly = 1, cracky = 3},
@ -637,7 +660,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"sandstonebrick", "sandstonebrick",
"default:sandstonebrick", "default:sandstonebrick",
{cracky = 2}, {cracky = 2},
@ -648,7 +671,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"sandstone_block", "sandstone_block",
"default:sandstone_block", "default:sandstone_block",
{cracky = 2}, {cracky = 2},
@ -659,7 +682,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_sandstone", "desert_sandstone",
"default:desert_sandstone", "default:desert_sandstone",
{crumbly = 1, cracky = 3}, {crumbly = 1, cracky = 3},
@ -670,7 +693,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_sandstone_brick", "desert_sandstone_brick",
"default:desert_sandstone_brick", "default:desert_sandstone_brick",
{cracky = 2}, {cracky = 2},
@ -681,7 +704,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"desert_sandstone_block", "desert_sandstone_block",
"default:desert_sandstone_block", "default:desert_sandstone_block",
{cracky = 2}, {cracky = 2},
@ -692,7 +715,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"silver_sandstone", "silver_sandstone",
"default:silver_sandstone", "default:silver_sandstone",
{crumbly = 1, cracky = 3}, {crumbly = 1, cracky = 3},
@ -703,7 +726,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"silver_sandstone_brick", "silver_sandstone_brick",
"default:silver_sandstone_brick", "default:silver_sandstone_brick",
{cracky = 2}, {cracky = 2},
@ -714,7 +737,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"silver_sandstone_block", "silver_sandstone_block",
"default:silver_sandstone_block", "default:silver_sandstone_block",
{cracky = 2}, {cracky = 2},
@ -725,7 +748,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"obsidian", "obsidian",
"default:obsidian", "default:obsidian",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -736,7 +759,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"obsidianbrick", "obsidianbrick",
"default:obsidianbrick", "default:obsidianbrick",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -747,7 +770,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"obsidian_block", "obsidian_block",
"default:obsidian_block", "default:obsidian_block",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -758,7 +781,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"brick", "brick",
"default:brick", "default:brick",
{cracky = 3}, {cracky = 3},
@ -769,7 +792,7 @@ stairs.register_stair_and_slab(
false false
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"steelblock", "steelblock",
"default:steelblock", "default:steelblock",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -780,7 +803,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"tinblock", "tinblock",
"default:tinblock", "default:tinblock",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -791,7 +814,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"copperblock", "copperblock",
"default:copperblock", "default:copperblock",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -802,7 +825,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"bronzeblock", "bronzeblock",
"default:bronzeblock", "default:bronzeblock",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
@ -813,7 +836,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"goldblock", "goldblock",
"default:goldblock", "default:goldblock",
{cracky = 1}, {cracky = 1},
@ -824,7 +847,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"ice", "ice",
"default:ice", "default:ice",
{cracky = 3, cools_lava = 1, slippery = 3}, {cracky = 3, cools_lava = 1, slippery = 3},
@ -835,7 +858,7 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab( my_register_stair_and_slab(
"snowblock", "snowblock",
"default:snowblock", "default:snowblock",
{crumbly = 3, cools_lava = 1, snowy = 1}, {crumbly = 3, cools_lava = 1, snowy = 1},
@ -855,7 +878,7 @@ stairs.register_stair(
{"stairs_glass_split.png", "default_glass.png", {"stairs_glass_split.png", "default_glass.png",
"stairs_glass_stairside.png^[transformFX", "stairs_glass_stairside.png", "stairs_glass_stairside.png^[transformFX", "stairs_glass_stairside.png",
"default_glass.png", "stairs_glass_split.png"}, "default_glass.png", "stairs_glass_split.png"},
"Glass Stair", S("Glass Stair"),
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false
) )
@ -865,7 +888,7 @@ stairs.register_slab(
"default:glass", "default:glass",
{cracky = 3}, {cracky = 3},
{"default_glass.png", "default_glass.png", "stairs_glass_split.png"}, {"default_glass.png", "default_glass.png", "stairs_glass_split.png"},
"Glass Slab", S("Glass Slab"),
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false
) )
@ -877,9 +900,10 @@ stairs.register_stair_inner(
{"stairs_glass_stairside.png^[transformR270", "default_glass.png", {"stairs_glass_stairside.png^[transformR270", "default_glass.png",
"stairs_glass_stairside.png^[transformFX", "default_glass.png", "stairs_glass_stairside.png^[transformFX", "default_glass.png",
"default_glass.png", "stairs_glass_stairside.png"}, "default_glass.png", "stairs_glass_stairside.png"},
"Glass Stair", "",
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false,
S("Inner Glass Stair")
) )
stairs.register_stair_outer( stairs.register_stair_outer(
@ -889,9 +913,10 @@ stairs.register_stair_outer(
{"stairs_glass_stairside.png^[transformR90", "default_glass.png", {"stairs_glass_stairside.png^[transformR90", "default_glass.png",
"stairs_glass_outer_stairside.png", "stairs_glass_stairside.png", "stairs_glass_outer_stairside.png", "stairs_glass_stairside.png",
"stairs_glass_stairside.png^[transformR90","stairs_glass_outer_stairside.png"}, "stairs_glass_stairside.png^[transformR90","stairs_glass_outer_stairside.png"},
"Glass Stair", "",
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false,
S("Outer Glass Stair")
) )
stairs.register_stair( stairs.register_stair(
@ -901,7 +926,7 @@ stairs.register_stair(
{"stairs_obsidian_glass_split.png", "default_obsidian_glass.png", {"stairs_obsidian_glass_split.png", "default_obsidian_glass.png",
"stairs_obsidian_glass_stairside.png^[transformFX", "stairs_obsidian_glass_stairside.png", "stairs_obsidian_glass_stairside.png^[transformFX", "stairs_obsidian_glass_stairside.png",
"default_obsidian_glass.png", "stairs_obsidian_glass_split.png"}, "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"},
"Obsidian Glass Stair", S("Obsidian Glass Stair"),
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false
) )
@ -911,7 +936,7 @@ stairs.register_slab(
"default:obsidian_glass", "default:obsidian_glass",
{cracky = 3}, {cracky = 3},
{"default_obsidian_glass.png", "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"}, {"default_obsidian_glass.png", "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"},
"Obsidian Glass Slab", S("Obsidian Glass Slab"),
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false
) )
@ -923,9 +948,10 @@ stairs.register_stair_inner(
{"stairs_obsidian_glass_stairside.png^[transformR270", "default_obsidian_glass.png", {"stairs_obsidian_glass_stairside.png^[transformR270", "default_obsidian_glass.png",
"stairs_obsidian_glass_stairside.png^[transformFX", "default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png^[transformFX", "default_obsidian_glass.png",
"default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png"}, "default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png"},
"Obsidian Glass Stair", "",
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false,
S("Inner Obsidian Glass Stair")
) )
stairs.register_stair_outer( stairs.register_stair_outer(
@ -935,7 +961,8 @@ stairs.register_stair_outer(
{"stairs_obsidian_glass_stairside.png^[transformR90", "default_obsidian_glass.png", {"stairs_obsidian_glass_stairside.png^[transformR90", "default_obsidian_glass.png",
"stairs_obsidian_glass_outer_stairside.png", "stairs_obsidian_glass_stairside.png", "stairs_obsidian_glass_outer_stairside.png", "stairs_obsidian_glass_stairside.png",
"stairs_obsidian_glass_stairside.png^[transformR90","stairs_obsidian_glass_outer_stairside.png"}, "stairs_obsidian_glass_stairside.png^[transformR90","stairs_obsidian_glass_outer_stairside.png"},
"Obsidian Glass Stair", "",
default.node_sound_glass_defaults(), default.node_sound_glass_defaults(),
false false,
S("Outer Obsidian Glass Stair")
) )