Skip to content
Permalink
Browse files
Pull some parent node vars for stairs and slabs (#2911)
Fixes the sunlight propagation of glass stairs and slabs.

Co-authored-by: tenplus1 <tenplus1@users.noreply.github.com>
  • Loading branch information
yamanq and tenplus1 committed Dec 12, 2021
1 parent 60389a1 commit d775a9bdaeaa20f271baf07abf75cd737b3fc573
Showing with 33 additions and 8 deletions.
  1. +6 −0 game_api.txt
  2. +27 −8 mods/stairs/init.lua
@@ -723,6 +723,12 @@ Stairs API
The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those
delivered with Minetest Game, to keep them compatible with other mods.

The following node attributes are sourced from the recipeitem:
* use_texture_alpha
* sunlight_propagates
* light_source
* If the recipeitem is a fuel, the stair/slab is also registered as a fuel of proportionate burntime.

`stairs.register_stair(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

* Registers a stair
@@ -57,13 +57,24 @@ local function warn_if_exists(nodename)
end
end

-- get node settings to use for stairs
local function get_node_vars(nodename)

local def = minetest.registered_nodes[nodename]

if def then
return def.light_source, def.use_texture_alpha, def.sunlight_propagates
end

return nil, nil, nil
end

-- Register stair
-- Node will be called stairs:stair_<subname>

function stairs.register_stair(subname, recipeitem, groups, images, description,
sounds, worldaligntex)
local src_def = minetest.registered_nodes[recipeitem]
local light_source, texture_alpha, sunlight = get_node_vars(recipeitem)

-- Set backface culling and world-aligned textures
local stair_images = {}
@@ -93,7 +104,9 @@ function stairs.register_stair(subname, recipeitem, groups, images, description,
description = description,
drawtype = "nodebox",
tiles = stair_images,
use_texture_alpha = src_def and src_def.use_texture_alpha,
use_texture_alpha = texture_alpha,
sunlight_propagates = sunlight,
light_source = light_source,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
@@ -165,7 +178,7 @@ end

function stairs.register_slab(subname, recipeitem, groups, images, description,
sounds, worldaligntex)
local src_def = minetest.registered_nodes[recipeitem]
local light_source, texture_alpha, sunlight = get_node_vars(recipeitem)

-- Set world-aligned textures
local slab_images = {}
@@ -191,7 +204,9 @@ function stairs.register_slab(subname, recipeitem, groups, images, description,
description = description,
drawtype = "nodebox",
tiles = slab_images,
use_texture_alpha = src_def and src_def.use_texture_alpha,
use_texture_alpha = texture_alpha,
sunlight_propagates = sunlight,
light_source = light_source,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
@@ -303,7 +318,7 @@ end

function stairs.register_stair_inner(subname, recipeitem, groups, images,
description, sounds, worldaligntex, full_description)
local src_def = minetest.registered_nodes[recipeitem]
local light_source, texture_alpha, sunlight = get_node_vars(recipeitem)

-- Set backface culling and world-aligned textures
local stair_images = {}
@@ -338,7 +353,9 @@ function stairs.register_stair_inner(subname, recipeitem, groups, images,
description = description,
drawtype = "nodebox",
tiles = stair_images,
use_texture_alpha = src_def and src_def.use_texture_alpha,
use_texture_alpha = texture_alpha,
sunlight_propagates = sunlight,
light_source = light_source,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
@@ -393,7 +410,7 @@ end

function stairs.register_stair_outer(subname, recipeitem, groups, images,
description, sounds, worldaligntex, full_description)
local src_def = minetest.registered_nodes[recipeitem]
local light_source, texture_alpha, sunlight = get_node_vars(recipeitem)

-- Set backface culling and world-aligned textures
local stair_images = {}
@@ -428,7 +445,9 @@ function stairs.register_stair_outer(subname, recipeitem, groups, images,
description = description,
drawtype = "nodebox",
tiles = stair_images,
use_texture_alpha = src_def and src_def.use_texture_alpha,
use_texture_alpha = texture_alpha,
sunlight_propagates = sunlight,
light_source = light_source,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,

0 comments on commit d775a9b

Please sign in to comment.