forked from minetest/minetest_game
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:
parent
57979686d9
commit
b66a61a10f
@ -12,5 +12,7 @@ Authors of media (models)
|
||||
-------------------------
|
||||
Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com> (CC BY-SA 3.0):
|
||||
stairs_stair.obj
|
||||
GreenXenith (CC BY-SA 3.0)
|
||||
stairs_stair_inner.obj stairs_stair_outer.obj
|
||||
|
||||
|
||||
|
@ -276,17 +276,170 @@ if replace then
|
||||
})
|
||||
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.
|
||||
-- Nodes will be called stairs:{stair,slab}_<subname>
|
||||
|
||||
function stairs.register_stair_and_slab(subname, recipeitem,
|
||||
groups, images, desc_stair, desc_slab, sounds)
|
||||
function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, 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)
|
||||
end
|
||||
|
||||
|
||||
-- Register default stairs and slabs
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
|
@ -21,6 +21,7 @@ Licenses of media (models)
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com>
|
||||
Copyright (C) 2017 GreenXenith
|
||||
|
||||
You are free to:
|
||||
Share — copy and redistribute the material in any medium or format.
|
||||
|
161
mods/stairs/models/stairs_stair_inner.obj
Normal file
161
mods/stairs/models/stairs_stair_inner.obj
Normal 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
|
136
mods/stairs/models/stairs_stair_outer.obj
Normal file
136
mods/stairs/models/stairs_stair_outer.obj
Normal 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
|
Loading…
Reference in New Issue
Block a user