mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-22 10:31:06 +01:00
Merge pull request 'Convert stairs to nodebox and use world-aligned tiling (fixes #4578)' (#4588) from nodebox_stairs into master
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4588 Reviewed-by: kno10 <kno10@noreply.git.minetest.land>
This commit is contained in:
commit
05bfe5513f
2 changed files with 18 additions and 25 deletions
|
@ -93,17 +93,29 @@ function mcl_stairs.register_stair(subname, recipeitem, groups, images, descript
|
||||||
groups.stair = 1
|
groups.stair = 1
|
||||||
groups.building_block = 1
|
groups.building_block = 1
|
||||||
|
|
||||||
|
local image_table = {}
|
||||||
|
for i, image in ipairs(images) do
|
||||||
|
image_table[i] = type(image) == "string" and { name = image } or table.copy(image)
|
||||||
|
image_table[i].align_style = "world"
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node(":mcl_stairs:stair_" .. subname, {
|
minetest.register_node(":mcl_stairs:stair_" .. subname, {
|
||||||
description = description,
|
description = description,
|
||||||
_doc_items_longdesc = S("Stairs are useful to reach higher places by walking over them; jumping is not required. Placing stairs in a corner pattern will create corner stairs. Stairs placed on the ceiling or at the upper half of the side of a block will be placed upside down."),
|
_doc_items_longdesc = S("Stairs are useful to reach higher places by walking over them; jumping is not required. Placing stairs in a corner pattern will create corner stairs. Stairs placed on the ceiling or at the upper half of the side of a block will be placed upside down."),
|
||||||
drawtype = "mesh",
|
drawtype = "nodebox",
|
||||||
mesh = "stairs_stair.obj",
|
tiles = image_table,
|
||||||
tiles = images,
|
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = groups,
|
groups = groups,
|
||||||
sounds = sounds,
|
sounds = sounds,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
||||||
|
{-0.5, 0, 0, 0.5, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
|
|
|
@ -207,31 +207,12 @@ function mcl_stairs.cornerstair.add(name, stairtiles)
|
||||||
local node_def = minetest.registered_nodes[name]
|
local node_def = minetest.registered_nodes[name]
|
||||||
local outer_tiles
|
local outer_tiles
|
||||||
local inner_tiles
|
local inner_tiles
|
||||||
if stairtiles == "woodlike" then
|
if stairtiles ~= nil and stairtiles ~= "default" and stairtiles ~= "woodlike" then
|
||||||
outer_tiles = table.copy(node_def.tiles)
|
|
||||||
inner_tiles = table.copy(node_def.tiles)
|
|
||||||
for i=2,6 do
|
|
||||||
if outer_tiles[i] == nil then
|
|
||||||
outer_tiles[i] = outer_tiles[i-1]
|
|
||||||
end
|
|
||||||
if inner_tiles[i] == nil then
|
|
||||||
inner_tiles[i] = inner_tiles[i-1]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local t = node_def.tiles[1]
|
|
||||||
outer_tiles[1] = t.."^("..t.."^[transformR90^mcl_stairs_turntexture.png^[makealpha:255,0,255)"
|
|
||||||
outer_tiles[2] = t.."^("..t.."^mcl_stairs_turntexture.png^[transformR270^[makealpha:255,0,255)"
|
|
||||||
outer_tiles[3] = t
|
|
||||||
inner_tiles[1] = t.."^("..t.."^[transformR90^(mcl_stairs_turntexture.png^[transformR180)^[makealpha:255,0,255)"
|
|
||||||
inner_tiles[2] = t.."^("..t.."^[transformR270^(mcl_stairs_turntexture.png^[transformR90)^[makealpha:255,0,255)"
|
|
||||||
inner_tiles[3] = t
|
|
||||||
elseif stairtiles == nil or stairtiles == "default" then
|
|
||||||
outer_tiles = node_def.tiles
|
|
||||||
inner_tiles = node_def.tiles
|
|
||||||
else
|
|
||||||
outer_tiles = stairtiles[1]
|
outer_tiles = stairtiles[1]
|
||||||
inner_tiles = stairtiles[2]
|
inner_tiles = stairtiles[2]
|
||||||
end
|
end
|
||||||
|
if inner_tiles == nil then inner_tiles = node_def.tiles end
|
||||||
|
if outer_tiles == nil then outer_tiles = node_def.tiles end
|
||||||
local outer_groups = table.copy(node_def.groups)
|
local outer_groups = table.copy(node_def.groups)
|
||||||
outer_groups.not_in_creative_inventory = 1
|
outer_groups.not_in_creative_inventory = 1
|
||||||
local inner_groups = table.copy(outer_groups)
|
local inner_groups = table.copy(outer_groups)
|
||||||
|
|
Loading…
Reference in a new issue