Stairs: Add inner and outer corner stairs

With thanks to MarkuBu for the original PR and GreenXenith for the stair models.
This commit is contained in:
TumeniNodes 2017-07-05 13:35:26 -04:00 committed by paramat
parent 57979686d9
commit b66a61a10f
5 changed files with 456 additions and 3 deletions

View File

@ -12,5 +12,7 @@ Authors of media (models)
------------------------- -------------------------
Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com> (CC BY-SA 3.0): Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com> (CC BY-SA 3.0):
stairs_stair.obj stairs_stair.obj
GreenXenith (CC BY-SA 3.0)
stairs_stair_inner.obj stairs_stair_outer.obj

View File

@ -276,17 +276,170 @@ if replace then
}) })
end end
-- Register stairs.
-- Node will be called stairs:stair_inner_<subname>
function stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds)
local stair_images = {}
for i, image in ipairs(images) do
if type(image) == "string" then
stair_images[i] = {
name = image,
backface_culling = true,
}
elseif image.backface_culling == nil then -- override using any other value
stair_images[i] = table.copy(image)
stair_images[i].backface_culling = true
end
end
groups.stair = 1
minetest.register_node(":stairs:stair_inner_" .. subname, {
description = description .. " Inner",
drawtype = "mesh",
mesh = "stairs_stair_inner.obj",
tiles = stair_images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
selection_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},
{-0.5, 0, -0.5, 0, 0.5, 0},
},
},
collision_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},
{-0.5, 0, -0.5, 0, 0.5, 0},
},
},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
end
return rotate_and_place(itemstack, placer, pointed_thing)
end,
})
if recipeitem then
minetest.register_craft({
output = 'stairs:stair_inner_' .. subname .. ' 7',
recipe = {
{ "", recipeitem, ""},
{ recipeitem, "", recipeitem},
{recipeitem, recipeitem, recipeitem},
},
})
-- Fuel
local baseburntime = minetest.get_craft_result({
method = "fuel",
width = 1,
items = {recipeitem}
}).time
if baseburntime > 0 then
minetest.register_craft({
type = "fuel",
recipe = 'stairs:stair_inner_' .. subname,
burntime = math.floor(baseburntime * 0.875),
})
end
end
end
-- Register stairs.
-- Node will be called stairs:stair_outer_<subname>
function stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds)
local stair_images = {}
for i, image in ipairs(images) do
if type(image) == "string" then
stair_images[i] = {
name = image,
backface_culling = true,
}
elseif image.backface_culling == nil then -- override using any other value
stair_images[i] = table.copy(image)
stair_images[i].backface_culling = true
end
end
groups.stair = 1
minetest.register_node(":stairs:stair_outer_" .. subname, {
description = description .. " Outer",
drawtype = "mesh",
mesh = "stairs_stair_outer.obj",
tiles = stair_images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0, 0.5, 0.5},
},
},
collision_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0, 0.5, 0.5},
},
},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
end
return rotate_and_place(itemstack, placer, pointed_thing)
end,
})
if recipeitem then
minetest.register_craft({
output = 'stairs:stair_outer_' .. subname .. ' 6',
recipe = {
{ "", "", ""},
{ "", recipeitem, ""},
{recipeitem, recipeitem, recipeitem},
},
})
-- Fuel
local baseburntime = minetest.get_craft_result({
method = "fuel",
width = 1,
items = {recipeitem}
}).time
if baseburntime > 0 then
minetest.register_craft({
type = "fuel",
recipe = 'stairs:stair_outer_' .. subname,
burntime = math.floor(baseburntime * 0.625),
})
end
end
end
-- Stair/slab registration function. -- Stair/slab registration function.
-- Nodes will be called stairs:{stair,slab}_<subname> -- Nodes will be called stairs:{stair,slab}_<subname>
function stairs.register_stair_and_slab(subname, recipeitem, function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds)
groups, images, desc_stair, desc_slab, sounds)
stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
stairs.register_stair_inner(subname, recipeitem, groups, images, desc_stair, sounds)
stairs.register_stair_outer(subname, recipeitem, groups, images, desc_stair, sounds)
stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
end end
-- Register default stairs and slabs -- Register default stairs and slabs
stairs.register_stair_and_slab( stairs.register_stair_and_slab(

View File

@ -21,6 +21,7 @@ Licenses of media (models)
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com> Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com>
Copyright (C) 2017 GreenXenith
You are free to: You are free to:
Share — copy and redistribute the material in any medium or format. Share — copy and redistribute the material in any medium or format.

View File

@ -0,0 +1,161 @@
# Blender v2.78 (sub 0) OBJ File: ''
# www.blender.org
mtllib stairs_inner_stair.mtl
o stairs_back_right_stairs_back.001
v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 -0.0000 1.0000
usemtl None.001
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
o stairs_front_right_stairs_back.003
v 0.000000 0.000000 -0.500000
v 0.000000 0.000000 0.000000
v 0.000000 0.500000 0.000000
v 0.000000 0.500000 -0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.000000 0.000000
v -0.500000 0.500000 0.500000
v -0.500000 0.500000 0.000000
v -0.500000 -0.500000 0.500000
vt 0.0000 0.5000
vt 0.5000 0.5000
vt 0.5000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 0.5000 0.5000
vt 1.0000 1.0000
vt 0.5000 1.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
usemtl None
s 1
f 5/5/2 6/6/2 7/7/2 8/8/2
f 9/9/2 10/10/2 11/11/2
f 11/11/2 12/12/2 13/13/2
f 10/10/2 14/14/2 11/11/2
f 14/14/2 12/12/2 11/11/2
o stairs_bottom
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 -1.0000 -0.0000
usemtl None
s 1
f 15/15/3 16/16/3 17/17/3 18/18/3
o stairs_front_left_stairs_front.002
v -0.500000 0.000000 0.000000
v -0.500000 0.500000 0.000000
v 0.000000 0.500000 0.000000
v 0.000000 0.000000 0.000000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.000000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 0.000000 -0.500000
vt 1.0000 0.5000
vt 1.0000 1.0000
vt 0.5000 1.0000
vt 0.5000 0.5000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 0.5000 0.5000
vt 0.5000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.5000
vn 0.0000 0.0000 -1.0000
usemtl None
s 1
f 19/19/4 20/20/4 21/21/4 22/22/4
f 23/23/4 24/24/4 25/25/4 26/26/4
f 27/27/4 28/28/4 29/29/4 30/30/4
o stairs_top_stairs_top.001
v 0.000000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.500000 -0.500000
v 0.000000 0.500000 -0.500000
v 0.000000 0.500000 0.000000
v 0.500000 0.500000 0.000000
v -0.500000 0.500000 0.500000
v 0.500000 0.500000 0.500000
v 0.500000 0.500000 0.000000
v -0.500000 0.500000 0.000000
vt 0.5000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.5000
vt 0.5000 0.5000
vt 1.0000 1.0000
vt 0.5000 1.0000
vt 0.5000 0.5000
vt 1.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 0.5000
vn 0.0000 1.0000 0.0000
usemtl None
s 1
f 31/31/5 32/32/5 33/33/5 34/34/5
f 35/35/5 36/36/5 37/37/5 38/38/5
f 39/39/5 40/40/5 41/41/5 42/42/5
o stairs_back_left_stairs_back.005
v 0.500000 0.000000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.000000
v 0.500000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v 0.500000 0.500000 0.000000
v 0.500000 0.500000 0.500000
v 0.500000 -0.000000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
v 0.500000 0.000000 0.000000
v 0.500000 -0.500000 -0.000000
v 0.500000 -0.500000 -0.000000
v 0.500000 0.000000 0.000000
v 0.500000 -0.000000 0.500000
v 0.500000 -0.500000 0.500000
vt 0.5000 0.5000
vt 0.5000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.5000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.5000 0.5000
vt 0.5000 0.0000
vt 0.5000 0.0000
vt 0.5000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.5000
vt 1.0000 1.0000
vt 0.5000 1.0000
vt 0.5000 0.5000
vn 1.0000 0.0000 0.0000
usemtl None
s 1
f 47/43/6 48/44/6 49/45/6 50/46/6
f 51/47/6 52/48/6 53/49/6 54/50/6
f 55/51/6 56/52/6 57/53/6 58/54/6
usemtl None.002
f 43/55/6 44/56/6 45/57/6 46/58/6

View File

@ -0,0 +1,136 @@
# Blender v2.78 (sub 0) OBJ File: ''
# www.blender.org
mtllib stairs_outer_stair.mtl
o stairs_bottom
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 -1.0000 -0.0000
usemtl None
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
o stairs_back_left_stairs_left
v 0.500000 0.000000 0.000000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
v 0.500000 0.500000 0.000000
v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 0.5000 0.5000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.5000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 1.0000 0.0000 0.0000
usemtl None
s 1
f 5/5/2 6/6/2 7/7/2
f 5/5/2 8/8/2 9/9/2
f 6/6/2 5/5/2 10/10/2
f 5/5/2 9/9/2 10/10/2
o stairs_back_right_stairs_back
v 0.000000 -0.500000 0.500000
v 0.000000 -0.000000 0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.000000 0.500000
v 0.500000 0.500000 0.500000
v 0.000000 0.500000 0.500000
vt 0.5000 0.0000
vt 0.5000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 1.0000 1.0000
vt 0.5000 1.0000
vn 0.0000 -0.0000 1.0000
usemtl None
s 1
f 11/11/3 12/12/3 13/13/3 14/14/3
f 15/15/3 16/16/3 12/12/3 11/11/3
f 16/16/3 17/17/3 18/18/3 12/12/3
o stairs_top_stairs_top.001
v 0.000000 0.500000 0.500000
v 0.501689 0.500000 0.500000
v 0.501689 0.500000 0.000000
v 0.000000 0.500000 0.000000
v -0.500000 -0.000000 0.500000
v 0.001689 -0.000000 0.500000
v 0.001689 0.000000 0.000000
v -0.500000 0.000000 0.000000
v 0.500000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 0.000000 0.000000
v 0.500000 0.000000 0.000000
vt 0.5000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.5000 0.5000
vt 0.0000 0.0000
vt 0.5000 0.0000
vt 0.5000 0.5000
vt 0.0000 0.5000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.5000
vt 1.0000 0.5000
vn 0.0000 1.0000 0.0000
usemtl None
s 1
f 19/19/4 20/20/4 21/21/4 22/22/4
usemtl None.004
f 23/23/4 24/24/4 25/25/4 26/26/4
f 27/27/4 28/28/4 29/29/4 30/30/4
o stairs_front_left_stairs_front.000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 0.000000
v 0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.000000 0.500000 0.000000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt -0.0000 0.5000
vt -0.0000 0.0000
vt 0.5000 0.5000
vt 0.5000 1.0000
vt -0.0000 1.0000
vt -0.0000 0.5000
vn 0.0000 0.0000 -1.0000
usemtl None.001
s 1
f 31/31/5 32/32/5 33/33/5 34/34/5
usemtl None.003
f 37/35/5 38/36/5 35/37/5 36/38/5
o stairs_front_right_stairs_right.001_stairs_front_left_stairs_front.002
v -0.500000 -0.500000 0.500000
v -0.500000 0.000000 0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000
v 0.000000 0.000000 0.500000
v 0.000000 0.500000 0.500000
v 0.000000 0.500000 -0.000000
v -0.000000 0.000000 0.000000
vt 1.0000 0.0000
vt 1.0000 0.5021
vt -0.0000 0.5021
vt -0.0000 0.0000
vt 1.0000 0.5021
vt 1.0000 1.0000
vt 0.5000 1.0000
vt 0.5000 0.5021
vn -1.0000 0.0000 0.0000
usemtl None.002
s 1
f 39/39/6 40/40/6 41/41/6 42/42/6
f 43/43/6 44/44/6 45/45/6 46/46/6