2013-05-18 16:05:16 +02:00
|
|
|
-- Minetest 0.4 mod: stairs
|
|
|
|
-- See README.txt for licensing and other information.
|
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
|
|
|
|
-- Global namespace for functions
|
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
stairs = {}
|
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
|
2015-08-16 00:30:34 +02:00
|
|
|
-- Register aliases for new pine node names
|
|
|
|
|
|
|
|
minetest.register_alias("stairs:stair_pinewood", "stairs:stair_pine_wood")
|
|
|
|
minetest.register_alias("stairs:slab_pinewood", "stairs:slab_pine_wood")
|
|
|
|
|
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
-- Get setting for replace ABM
|
|
|
|
|
|
|
|
local replace = minetest.setting_getbool("enable_stairs_replace_abm")
|
|
|
|
|
|
|
|
|
|
|
|
-- Register stairs.
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Node will be called stairs:stair_<subname>
|
2015-08-14 04:00:32 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
function stairs.register_stair(subname, recipeitem, groups, images, description, sounds)
|
2016-01-22 21:14:11 +01:00
|
|
|
groups.stair = 1
|
2013-05-18 16:05:16 +02:00
|
|
|
minetest.register_node(":stairs:stair_" .. subname, {
|
|
|
|
description = description,
|
2015-07-03 13:02:31 +02:00
|
|
|
drawtype = "mesh",
|
2015-07-10 02:11:54 +02:00
|
|
|
mesh = "stairs_stair.obj",
|
2013-05-18 16:05:16 +02:00
|
|
|
tiles = images,
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "facedir",
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2013-05-18 16:05:16 +02:00
|
|
|
groups = groups,
|
|
|
|
sounds = sounds,
|
2015-07-03 13:02:31 +02:00
|
|
|
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},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
collision_box = {
|
2013-05-18 16:05:16 +02:00
|
|
|
type = "fixed",
|
|
|
|
fixed = {
|
|
|
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
|
|
|
{-0.5, 0, 0, 0.5, 0.5, 0.5},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
|
|
if pointed_thing.type ~= "node" then
|
|
|
|
return itemstack
|
|
|
|
end
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
local p0 = pointed_thing.under
|
|
|
|
local p1 = pointed_thing.above
|
2013-09-11 16:32:32 +02:00
|
|
|
local param2 = 0
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
local placer_pos = placer:getpos()
|
|
|
|
if placer_pos then
|
|
|
|
local dir = {
|
|
|
|
x = p1.x - placer_pos.x,
|
|
|
|
y = p1.y - placer_pos.y,
|
|
|
|
z = p1.z - placer_pos.z
|
|
|
|
}
|
|
|
|
param2 = minetest.dir_to_facedir(dir)
|
|
|
|
end
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
if p0.y - 1 == p1.y then
|
2013-09-11 16:32:32 +02:00
|
|
|
param2 = param2 + 20
|
|
|
|
if param2 == 21 then
|
|
|
|
param2 = 23
|
|
|
|
elseif param2 == 23 then
|
|
|
|
param2 = 21
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
|
|
|
end
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
return minetest.item_place(itemstack, placer, pointed_thing, param2)
|
2013-05-18 16:05:16 +02:00
|
|
|
end,
|
|
|
|
})
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
-- for replace ABM
|
2015-08-14 04:00:32 +02:00
|
|
|
if replace then
|
|
|
|
minetest.register_node(":stairs:stair_" .. subname .. "upside_down", {
|
|
|
|
replace_name = "stairs:stair_" .. subname,
|
|
|
|
groups = {slabs_replace = 1},
|
|
|
|
})
|
|
|
|
end
|
2013-05-18 16:05:16 +02:00
|
|
|
|
2016-05-30 21:03:55 +02:00
|
|
|
if recipeitem then
|
|
|
|
minetest.register_craft({
|
2016-06-22 02:41:26 +02:00
|
|
|
output = 'stairs:stair_' .. subname .. ' 8',
|
2016-05-30 21:03:55 +02:00
|
|
|
recipe = {
|
|
|
|
{recipeitem, "", ""},
|
|
|
|
{recipeitem, recipeitem, ""},
|
|
|
|
{recipeitem, recipeitem, recipeitem},
|
|
|
|
},
|
|
|
|
})
|
2013-05-18 16:05:16 +02:00
|
|
|
|
2016-05-30 21:03:55 +02:00
|
|
|
-- Flipped recipe for the silly minecrafters
|
|
|
|
minetest.register_craft({
|
2016-06-22 02:41:26 +02:00
|
|
|
output = 'stairs:stair_' .. subname .. ' 8',
|
2016-05-30 21:03:55 +02:00
|
|
|
recipe = {
|
|
|
|
{"", "", recipeitem},
|
|
|
|
{"", recipeitem, recipeitem},
|
|
|
|
{recipeitem, recipeitem, recipeitem},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
end
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
|
|
|
|
-- Register slabs.
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Node will be called stairs:slab_<subname>
|
2015-08-14 04:00:32 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
function stairs.register_slab(subname, recipeitem, groups, images, description, sounds)
|
2016-01-22 21:14:11 +01:00
|
|
|
groups.slab = 1
|
2013-05-18 16:05:16 +02:00
|
|
|
minetest.register_node(":stairs:slab_" .. subname, {
|
|
|
|
description = description,
|
|
|
|
drawtype = "nodebox",
|
|
|
|
tiles = images,
|
|
|
|
paramtype = "light",
|
2013-09-11 16:32:32 +02:00
|
|
|
paramtype2 = "facedir",
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2013-05-18 16:05:16 +02:00
|
|
|
groups = groups,
|
|
|
|
sounds = sounds,
|
|
|
|
node_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
|
|
|
},
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
|
|
if pointed_thing.type ~= "node" then
|
|
|
|
return itemstack
|
|
|
|
end
|
|
|
|
|
|
|
|
-- If it's being placed on an another similar one, replace it with
|
|
|
|
-- a full block
|
|
|
|
local slabpos = nil
|
|
|
|
local slabnode = nil
|
|
|
|
local p0 = pointed_thing.under
|
|
|
|
local p1 = pointed_thing.above
|
2013-05-25 00:40:03 +02:00
|
|
|
local n0 = minetest.get_node(p0)
|
2013-09-11 16:32:32 +02:00
|
|
|
local n1 = minetest.get_node(p1)
|
|
|
|
local param2 = 0
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
local n0_is_upside_down = (n0.name == "stairs:slab_" .. subname and
|
|
|
|
n0.param2 >= 20)
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
if n0.name == "stairs:slab_" .. subname and not n0_is_upside_down and
|
|
|
|
p0.y + 1 == p1.y then
|
2013-05-18 16:05:16 +02:00
|
|
|
slabpos = p0
|
|
|
|
slabnode = n0
|
2013-09-11 16:32:32 +02:00
|
|
|
elseif n1.name == "stairs:slab_" .. subname then
|
|
|
|
slabpos = p1
|
|
|
|
slabnode = n1
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
|
|
|
if slabpos then
|
|
|
|
-- Remove the slab at slabpos
|
2013-05-25 00:40:03 +02:00
|
|
|
minetest.remove_node(slabpos)
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Make a fake stack of a single item and try to place it
|
|
|
|
local fakestack = ItemStack(recipeitem)
|
2013-09-11 16:32:32 +02:00
|
|
|
fakestack:set_count(itemstack:get_count())
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
pointed_thing.above = slabpos
|
2013-09-11 16:32:32 +02:00
|
|
|
local success
|
2015-08-14 04:00:32 +02:00
|
|
|
fakestack, success = minetest.item_place(fakestack, placer,
|
|
|
|
pointed_thing)
|
2013-05-18 16:05:16 +02:00
|
|
|
-- If the item was taken from the fake stack, decrement original
|
2013-09-11 16:32:32 +02:00
|
|
|
if success then
|
|
|
|
itemstack:set_count(fakestack:get_count())
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Else put old node back
|
|
|
|
else
|
2013-05-25 00:40:03 +02:00
|
|
|
minetest.set_node(slabpos, slabnode)
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
|
|
|
return itemstack
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Upside down slabs
|
2015-08-14 04:00:32 +02:00
|
|
|
if p0.y - 1 == p1.y then
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Turn into full block if pointing at a existing slab
|
2013-09-11 16:32:32 +02:00
|
|
|
if n0_is_upside_down then
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Remove the slab at the position of the slab
|
2013-05-25 00:40:03 +02:00
|
|
|
minetest.remove_node(p0)
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Make a fake stack of a single item and try to place it
|
|
|
|
local fakestack = ItemStack(recipeitem)
|
2013-09-11 16:32:32 +02:00
|
|
|
fakestack:set_count(itemstack:get_count())
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
pointed_thing.above = p0
|
2013-09-11 16:32:32 +02:00
|
|
|
local success
|
2015-08-14 04:00:32 +02:00
|
|
|
fakestack, success = minetest.item_place(fakestack, placer,
|
|
|
|
pointed_thing)
|
2013-05-18 16:05:16 +02:00
|
|
|
-- If the item was taken from the fake stack, decrement original
|
2013-09-11 16:32:32 +02:00
|
|
|
if success then
|
|
|
|
itemstack:set_count(fakestack:get_count())
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Else put old node back
|
|
|
|
else
|
2013-05-25 00:40:03 +02:00
|
|
|
minetest.set_node(p0, n0)
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
|
|
|
return itemstack
|
|
|
|
end
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Place upside down slab
|
2013-09-11 16:32:32 +02:00
|
|
|
param2 = 20
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
-- If pointing at the side of a upside down slab
|
2015-08-14 04:00:32 +02:00
|
|
|
if n0_is_upside_down and p0.y + 1 ~= p1.y then
|
2013-09-11 16:32:32 +02:00
|
|
|
param2 = 20
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
return minetest.item_place(itemstack, placer, pointed_thing, param2)
|
2013-05-18 16:05:16 +02:00
|
|
|
end,
|
|
|
|
})
|
2013-10-05 02:33:41 +02:00
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
-- for replace ABM
|
2015-08-14 04:00:32 +02:00
|
|
|
if replace then
|
|
|
|
minetest.register_node(":stairs:slab_" .. subname .. "upside_down", {
|
|
|
|
replace_name = "stairs:slab_".. subname,
|
|
|
|
groups = {slabs_replace = 1},
|
|
|
|
})
|
|
|
|
end
|
2013-05-18 16:05:16 +02:00
|
|
|
|
2016-05-30 21:03:55 +02:00
|
|
|
if recipeitem then
|
|
|
|
minetest.register_craft({
|
|
|
|
output = 'stairs:slab_' .. subname .. ' 6',
|
|
|
|
recipe = {
|
|
|
|
{recipeitem, recipeitem, recipeitem},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
end
|
2013-05-18 16:05:16 +02:00
|
|
|
end
|
|
|
|
|
2013-09-11 16:32:32 +02:00
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
-- Optionally replace old "upside_down" nodes with new param2 versions.
|
|
|
|
-- Disabled by default.
|
|
|
|
|
|
|
|
if replace then
|
|
|
|
minetest.register_abm({
|
|
|
|
nodenames = {"group:slabs_replace"},
|
2016-02-13 09:33:58 +01:00
|
|
|
interval = 16,
|
2015-08-14 04:00:32 +02:00
|
|
|
chance = 1,
|
|
|
|
action = function(pos, node)
|
|
|
|
node.name = minetest.registered_nodes[node.name].replace_name
|
|
|
|
node.param2 = node.param2 + 20
|
|
|
|
if node.param2 == 21 then
|
|
|
|
node.param2 = 23
|
|
|
|
elseif node.param2 == 23 then
|
|
|
|
node.param2 = 21
|
|
|
|
end
|
|
|
|
minetest.set_node(pos, node)
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- Stair/slab registration function.
|
2013-05-18 16:05:16 +02:00
|
|
|
-- Nodes will be called stairs:{stair,slab}_<subname>
|
2015-08-14 04:00:32 +02:00
|
|
|
|
|
|
|
function stairs.register_stair_and_slab(subname, recipeitem, groups, images,
|
|
|
|
desc_stair, desc_slab, sounds)
|
2013-05-18 16:05:16 +02:00
|
|
|
stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
|
|
|
|
stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
|
|
|
|
end
|
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
|
|
|
|
-- Register default stairs and slabs
|
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
stairs.register_stair_and_slab("wood", "default:wood",
|
2015-07-23 02:24:45 +02:00
|
|
|
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
2013-05-18 16:05:16 +02:00
|
|
|
{"default_wood.png"},
|
|
|
|
"Wooden Stair",
|
|
|
|
"Wooden Slab",
|
|
|
|
default.node_sound_wood_defaults())
|
|
|
|
|
2015-07-23 02:24:45 +02:00
|
|
|
stairs.register_stair_and_slab("junglewood", "default:junglewood",
|
|
|
|
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
|
|
|
{"default_junglewood.png"},
|
|
|
|
"Junglewood Stair",
|
|
|
|
"Junglewood Slab",
|
|
|
|
default.node_sound_wood_defaults())
|
|
|
|
|
2015-08-09 09:50:57 +02:00
|
|
|
stairs.register_stair_and_slab("pine_wood", "default:pine_wood",
|
2015-07-23 02:24:45 +02:00
|
|
|
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
2015-08-09 09:50:57 +02:00
|
|
|
{"default_pine_wood.png"},
|
|
|
|
"Pine Wood Stair",
|
|
|
|
"Pine Wood Slab",
|
2015-07-23 02:24:45 +02:00
|
|
|
default.node_sound_wood_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("acacia_wood", "default:acacia_wood",
|
|
|
|
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
|
|
|
{"default_acacia_wood.png"},
|
|
|
|
"Acacia Wood Stair",
|
|
|
|
"Acacia Wood Slab",
|
|
|
|
default.node_sound_wood_defaults())
|
|
|
|
|
Aspen trees.
Adds a birch-like tree to the default_game. Aspen was chosen on
purpose instead of birch, as several birch tree mods already exist
and choosing a different name avoids any conflicts.
Schematics were made for both normal and sapling version, assuring
saplings will not be able to grief. The shape of the Aspen is "fanning
out at the top" and provides an easy tree to walk under, but still a
somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up
to three layers of leaves on top, making it slightly taller than an
Apple tree, but shorter than a Pine tree, which provides a good blend.
Textures were painted from scratch, except tree_top and _wood
variants, which are color modified versions of the pine_wood
variants. Appropriate licenses have been chosen for the new textures.
The leaf texture is light enough to contrast other trees, but dark
enough to offset against our light default grass color. The leaves
are drawn in the typical minetest default fashion with plenty of
transparancy, but enough definition to suggest that you're seeing
something that looks like leaves. The placement of leaves in the
schematic also suggests the top of the tree is sparse and you can
see the sky through the leaves.
Sapling texture is both traditional and different, with lush green
leaves and a well-defined stem, but slightly stick-like and skinny,
as these plants tend to grow up first, then out.
Add fallen Aspen logs. We make these logs a minimum of 2 blocks long,
and up to 3. This allows us to make these logs a place where both
red and brown mushrooms can be found, to these may be attractive to
players. However, the spawn rate for these has been reduced a lot
compared to the other logs, to account for the scarcity of Aspen.
Add stairs, slabs for these wood types as well.
Mapgen will place these trees in deciduous forests only, but in
a way that the biome is a range between entirely Apple trees, and
mostly entirely Aspen trees, with a bias to Apple trees. To make
fallen logs somewhat correlated with trees, we modify the planting
of Apple trees and logs to use perlin noise and not fill ratio,
otherwise you'd always end up with Apple logs in Aspen tree areas,
which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
|
|
|
stairs.register_stair_and_slab("aspen_wood", "default:aspen_wood",
|
|
|
|
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
|
|
|
{"default_aspen_wood.png"},
|
|
|
|
"Aspen Wood Stair",
|
|
|
|
"Aspen Wood Slab",
|
|
|
|
default.node_sound_wood_defaults())
|
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
stairs.register_stair_and_slab("stone", "default:stone",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 3},
|
2013-05-18 16:05:16 +02:00
|
|
|
{"default_stone.png"},
|
|
|
|
"Stone Stair",
|
|
|
|
"Stone Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("cobble", "default:cobble",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 3},
|
2013-05-18 16:05:16 +02:00
|
|
|
{"default_cobble.png"},
|
2014-04-14 21:30:56 +02:00
|
|
|
"Cobblestone Stair",
|
|
|
|
"Cobblestone Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2016-05-30 21:03:55 +02:00
|
|
|
stairs.register_stair_and_slab("mossycobble", nil,
|
|
|
|
{cracky = 3},
|
|
|
|
{"default_mossycobble.png"},
|
|
|
|
"Mossy Cobblestone Stair",
|
|
|
|
"Mossy Cobblestone Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2015-07-23 02:24:45 +02:00
|
|
|
stairs.register_stair_and_slab("stonebrick", "default:stonebrick",
|
|
|
|
{cracky = 3},
|
|
|
|
{"default_stone_brick.png"},
|
|
|
|
"Stone Brick Stair",
|
|
|
|
"Stone Brick Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2016-06-26 04:11:42 +02:00
|
|
|
stairs.register_stair_and_slab("stone_block", "default:stone_block",
|
|
|
|
{cracky = 2},
|
|
|
|
{"default_stone_block.png"},
|
|
|
|
"Stone Block Stair",
|
|
|
|
"Stone Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2014-04-14 21:30:56 +02:00
|
|
|
stairs.register_stair_and_slab("desert_stone", "default:desert_stone",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 3},
|
2014-04-14 21:30:56 +02:00
|
|
|
{"default_desert_stone.png"},
|
|
|
|
"Desertstone Stair",
|
|
|
|
"Desertstone Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("desert_cobble", "default:desert_cobble",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 3},
|
2014-04-14 21:30:56 +02:00
|
|
|
{"default_desert_cobble.png"},
|
|
|
|
"Desert Cobblestone Stair",
|
|
|
|
"Desert Cobblestone Slab",
|
2013-05-18 16:05:16 +02:00
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2014-04-16 11:39:44 +02:00
|
|
|
stairs.register_stair_and_slab("desert_stonebrick", "default:desert_stonebrick",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 3},
|
2014-04-16 11:39:44 +02:00
|
|
|
{"default_desert_stone_brick.png"},
|
|
|
|
"Desert Stone Brick Stair",
|
|
|
|
"Desert Stone Brick Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2016-06-26 04:11:42 +02:00
|
|
|
stairs.register_stair_and_slab("desert_stone_block", "default:desert_stone_block",
|
|
|
|
{cracky = 2},
|
|
|
|
{"default_desert_stone_block.png"},
|
|
|
|
"Desert Stone Block Stair",
|
|
|
|
"Desert Stone Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2013-05-18 16:05:16 +02:00
|
|
|
stairs.register_stair_and_slab("sandstone", "default:sandstone",
|
2016-05-05 01:22:57 +02:00
|
|
|
{crumbly = 1, cracky = 3},
|
2013-05-18 16:05:16 +02:00
|
|
|
{"default_sandstone.png"},
|
|
|
|
"Sandstone Stair",
|
|
|
|
"Sandstone Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
2016-06-26 04:11:42 +02:00
|
|
|
|
2014-04-16 11:39:44 +02:00
|
|
|
stairs.register_stair_and_slab("sandstonebrick", "default:sandstonebrick",
|
2016-05-05 01:22:57 +02:00
|
|
|
{cracky = 2},
|
2014-04-16 11:39:44 +02:00
|
|
|
{"default_sandstone_brick.png"},
|
|
|
|
"Sandstone Brick Stair",
|
|
|
|
"Sandstone Brick Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
2013-05-18 16:05:16 +02:00
|
|
|
|
2016-06-26 04:11:42 +02:00
|
|
|
stairs.register_stair_and_slab("sandstone_block", "default:sandstone_block",
|
|
|
|
{cracky = 2},
|
|
|
|
{"default_sandstone_block.png"},
|
|
|
|
"Sandstone Block Stair",
|
|
|
|
"Sandstone Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2014-12-25 17:40:51 +01:00
|
|
|
stairs.register_stair_and_slab("obsidian", "default:obsidian",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 1, level = 2},
|
2014-12-25 17:40:51 +01:00
|
|
|
{"default_obsidian.png"},
|
|
|
|
"Obsidian Stair",
|
|
|
|
"Obsidian Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("obsidianbrick", "default:obsidianbrick",
|
2015-07-23 02:24:45 +02:00
|
|
|
{cracky = 1, level = 2},
|
2014-12-25 17:40:51 +01:00
|
|
|
{"default_obsidian_brick.png"},
|
|
|
|
"Obsidian Brick Stair",
|
|
|
|
"Obsidian Brick Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
2015-08-14 04:00:32 +02:00
|
|
|
|
2016-06-26 04:11:42 +02:00
|
|
|
stairs.register_stair_and_slab("obsidian_block", "default:obsidian_block",
|
|
|
|
{cracky = 1, level = 2},
|
|
|
|
{"default_obsidian_block.png"},
|
|
|
|
"Obsidian Block Stair",
|
|
|
|
"Obsidian Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
2015-08-14 04:00:32 +02:00
|
|
|
stairs.register_stair_and_slab("brick", "default:brick",
|
|
|
|
{cracky = 3},
|
|
|
|
{"default_brick.png"},
|
|
|
|
"Brick Stair",
|
|
|
|
"Brick Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("straw", "farming:straw",
|
|
|
|
{snappy = 3, flammable = 4},
|
|
|
|
{"farming_straw.png"},
|
|
|
|
"Straw Stair",
|
|
|
|
"Straw Slab",
|
|
|
|
default.node_sound_leaves_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("steelblock", "default:steelblock",
|
|
|
|
{cracky = 1, level = 2},
|
|
|
|
{"default_steel_block.png"},
|
|
|
|
"Steel Block Stair",
|
|
|
|
"Steel Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("copperblock", "default:copperblock",
|
|
|
|
{cracky = 1, level = 2},
|
|
|
|
{"default_copper_block.png"},
|
|
|
|
"Copper Block Stair",
|
|
|
|
"Copper Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("bronzeblock", "default:bronzeblock",
|
|
|
|
{cracky = 1, level = 2},
|
|
|
|
{"default_bronze_block.png"},
|
|
|
|
"Bronze Block Stair",
|
|
|
|
"Bronze Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|
|
|
|
|
|
|
|
stairs.register_stair_and_slab("goldblock", "default:goldblock",
|
|
|
|
{cracky = 1},
|
|
|
|
{"default_gold_block.png"},
|
|
|
|
"Gold Block Stair",
|
|
|
|
"Gold Block Slab",
|
|
|
|
default.node_sound_stone_defaults())
|