2017-06-05 18:40:56 +02:00
-- Minetest 0.4 mod: mcl_stairs
2015-06-29 19:55:56 +02:00
-- See README.txt for licensing and other information.
2017-01-16 12:46:51 +01:00
-- Global namespace for functions
2017-06-05 18:40:56 +02:00
mcl_stairs = { }
2015-06-29 19:55:56 +02:00
2017-06-05 16:10:21 +02:00
local function place_slab_normal ( itemstack , placer , pointed_thing )
2017-06-05 15:41:42 +02:00
local p0 = pointed_thing.under
local p1 = pointed_thing.above
local placer_pos = placer : getpos ( )
local finepos = minetest.pointed_thing_to_face_pos ( placer , pointed_thing )
local fpos = finepos.y % 1
local place = ItemStack ( itemstack )
local origname = itemstack : get_name ( )
if p0.y - 1 == p1.y or ( fpos > 0 and fpos < 0.5 )
or ( fpos < - 0.5 and fpos > - 0.999999999 ) then
place : set_name ( origname .. " _top " )
end
local ret = minetest.item_place ( place , placer , pointed_thing , 0 )
ret : set_name ( origname )
return ret
end
local function place_stair ( itemstack , placer , pointed_thing )
2017-06-05 14:50:34 +02:00
local p0 = pointed_thing.under
local p1 = pointed_thing.above
local param2 = 0
local placer_pos = placer : getpos ( )
if placer_pos then
param2 = minetest.dir_to_facedir ( vector.subtract ( p1 , placer_pos ) )
end
local finepos = minetest.pointed_thing_to_face_pos ( placer , pointed_thing )
local fpos = finepos.y % 1
if p0.y - 1 == p1.y or ( fpos > 0 and fpos < 0.5 )
or ( fpos < - 0.5 and fpos > - 0.999999999 ) then
param2 = param2 + 20
if param2 == 21 then
param2 = 23
elseif param2 == 23 then
param2 = 21
end
end
return minetest.item_place ( itemstack , placer , pointed_thing , param2 )
end
2017-06-05 18:40:56 +02:00
-- Register mcl_stairs.
-- Node will be called mcl_stairs:stair_<subname>
2017-01-16 12:46:51 +01:00
2017-06-05 18:40:56 +02:00
function mcl_stairs . register_stair ( subname , recipeitem , groups , images , description , sounds , hardness )
2017-01-16 12:46:51 +01:00
groups.stair = 1
2017-01-20 04:54:09 +01:00
groups.building_block = 1
2017-06-05 18:40:56 +02:00
minetest.register_node ( " :mcl_stairs:stair_ " .. subname , {
2015-06-29 19:55:56 +02:00
description = description ,
2017-06-05 16:53:00 +02:00
_doc_items_longdesc = " 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 bottom or at the upper half of the side of a block will be placed upside down. " ,
2017-01-16 12:46:51 +01:00
drawtype = " mesh " ,
mesh = " stairs_stair.obj " ,
2015-06-29 19:55:56 +02:00
tiles = images ,
paramtype = " light " ,
paramtype2 = " facedir " ,
2017-02-10 03:12:48 +01:00
sunlight_propagates = false ,
2017-01-04 22:36:51 +01:00
is_ground_content = false ,
2015-06-29 19:55:56 +02:00
groups = groups ,
sounds = sounds ,
2017-01-16 12:46:51 +01: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 = {
2015-06-29 19:55:56 +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
2017-01-16 12:46:51 +01:00
2017-06-05 15:41:42 +02:00
return place_stair ( itemstack , placer , pointed_thing )
2015-06-29 19:55:56 +02:00
end ,
2017-02-27 18:17:18 +01:00
_mcl_hardness = hardness ,
2015-06-29 19:55:56 +02:00
} )
2017-01-16 12:46:51 +01:00
if recipeitem then
minetest.register_craft ( {
2017-06-05 18:40:56 +02:00
output = ' mcl_stairs:stair_ ' .. subname .. ' 4 ' ,
2017-01-16 12:46:51 +01:00
recipe = {
{ recipeitem , " " , " " } ,
{ recipeitem , recipeitem , " " } ,
{ recipeitem , recipeitem , recipeitem } ,
2015-07-04 04:56:02 +02:00
} ,
2017-01-16 12:46:51 +01:00
} )
2015-07-04 04:56:02 +02:00
2017-01-16 15:16:57 +01:00
-- Flipped recipe
2017-01-16 12:46:51 +01:00
minetest.register_craft ( {
2017-06-05 18:40:56 +02:00
output = ' mcl_stairs:stair_ ' .. subname .. ' 4 ' ,
2017-01-16 12:46:51 +01:00
recipe = {
{ " " , " " , recipeitem } ,
{ " " , recipeitem , recipeitem } ,
{ recipeitem , recipeitem , recipeitem } ,
} ,
} )
end
2015-06-29 19:55:56 +02:00
end
2017-01-16 12:46:51 +01:00
-- Slab facedir to placement 6d matching table
local slab_trans_dir = { [ 0 ] = 8 , 0 , 2 , 1 , 3 , 4 }
-- Register slabs.
2017-06-05 18:40:56 +02:00
-- Node will be called mcl_stairs:slab_<subname>
2017-01-16 12:46:51 +01:00
2017-06-05 16:27:51 +02:00
-- double_description: NEW argument, not supported in Minetest Game
-- double_description: Description of double slab
2017-06-05 18:40:56 +02:00
function mcl_stairs . register_slab ( subname , recipeitem , groups , images , description , sounds , hardness , double_description )
local lower_slab = " mcl_stairs:slab_ " .. subname
2017-06-05 15:45:47 +02:00
local upper_slab = lower_slab .. " _top "
local double_slab = lower_slab .. " _double "
2017-06-05 16:27:51 +02:00
-- Automatically generate double slab description
if not double_description then
double_description = string.format ( " Double %s " , description )
minetest.log ( " warning " , " [stairs] No explicit description for double slab ' " .. double_slab .. " ' added. Using auto-generated description. " )
end
2017-01-16 12:46:51 +01:00
groups.slab = 1
2017-01-20 04:54:09 +01:00
groups.building_block = 1
2017-06-05 16:53:00 +02:00
local longdesc = " Slabs are half as high as their full block counterparts and occupy either the lower or upper part of a block, depending on how it was placed. Slabs can be easily stepped on without needing to jump. When a slab is placed on another slab of the same type, a double slab is created. "
2017-06-05 15:41:42 +02:00
local slabdef = {
2015-06-29 19:55:56 +02:00
description = description ,
2017-03-11 01:51:06 +01:00
_doc_items_longdesc = longdesc ,
2015-06-29 19:55:56 +02:00
drawtype = " nodebox " ,
tiles = images ,
paramtype = " light " ,
2017-06-05 15:41:42 +02:00
-- Facedir intentionally left out (see below)
2017-02-10 03:12:48 +01:00
sunlight_propagates = false ,
2017-01-04 22:36:51 +01:00
is_ground_content = false ,
2015-06-29 19:55:56 +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 )
2017-01-16 12:46:51 +01:00
local under = minetest.get_node ( pointed_thing.under )
local wield_item = itemstack : get_name ( )
2017-06-05 14:50:34 +02:00
local creative_enabled = minetest.setting_getbool ( " creative_mode " )
2015-06-29 19:55:56 +02:00
2017-06-05 16:10:21 +02:00
-- place slab using under node orientation
local dir = vector.subtract ( pointed_thing.above , pointed_thing.under )
local p2 = under.param2
-- combine two slabs if possible
-- Requirements: Same slab material, must be placed on top of lower slab, or on bottom of upper slab
if ( wield_item == under.name or wield_item == minetest.registered_nodes [ under.name ] . _mcl_other_slab_half ) and
not ( ( dir.y >= 0 and minetest.get_item_group ( under.name , " slab_top " ) == 1 ) or
( dir.y <= 0 and minetest.get_item_group ( under.name , " slab_top " ) == 0 ) ) then
if not recipeitem then
2015-06-29 19:55:56 +02:00
return itemstack
end
2017-06-05 16:10:21 +02:00
local player_name = placer : get_player_name ( )
if minetest.is_protected ( pointed_thing.under , player_name ) and not
minetest.check_player_privs ( placer , " protection_bypass " ) then
minetest.record_protection_violation ( pointed_thing.under ,
player_name )
return
2015-06-29 19:55:56 +02:00
end
2017-06-05 16:27:51 +02:00
local newnode = double_slab
2017-06-05 16:10:21 +02:00
minetest.set_node ( pointed_thing.under , { name = newnode , param2 = p2 } )
2017-06-05 14:50:34 +02:00
if not creative_enabled then
2015-06-29 19:55:56 +02:00
itemstack : take_item ( )
end
2017-01-16 12:46:51 +01:00
return itemstack
2017-06-05 16:10:21 +02:00
-- No combination possible: Place slab normally
2017-01-16 12:46:51 +01:00
else
2017-06-05 16:10:21 +02:00
return place_slab_normal ( itemstack , placer , pointed_thing )
2015-06-29 19:55:56 +02:00
end
end ,
2017-02-27 18:17:18 +01:00
_mcl_hardness = hardness ,
2017-06-05 16:10:21 +02:00
_mcl_other_slab_half = upper_slab ,
2017-06-05 15:41:42 +02:00
}
2017-06-05 15:45:47 +02:00
minetest.register_node ( " : " .. lower_slab , slabdef )
2017-06-05 15:41:42 +02:00
-- Register the upper slab.
-- Using facedir is not an option, as this would rotate the textures as well and would make
-- e.g. upper sandstone slabs look completely wrong.
local topdef = table.copy ( slabdef )
topdef.groups . slab = 1
topdef.groups . slab_top = 1
topdef.groups . not_in_creative_inventory = 1
2017-06-05 15:54:10 +02:00
topdef.groups . not_in_craft_guide = 1
2017-06-05 15:41:42 +02:00
topdef.description = string.format ( " Upper %s " , description )
topdef._doc_items_create_entry = false
topdef._doc_items_longdesc = nil
topdef._doc_items_usagehelp = nil
2017-06-05 15:45:47 +02:00
topdef.drop = lower_slab
2017-06-05 16:10:21 +02:00
topdef._mcl_other_slab_half = lower_slab
2017-06-05 15:41:42 +02:00
topdef.node_box = {
type = " fixed " ,
fixed = { - 0.5 , 0 , - 0.5 , 0.5 , 0.5 , 0.5 } ,
}
topdef.selection_box = {
type = " fixed " ,
fixed = { - 0.5 , 0 , - 0.5 , 0.5 , 0.5 , 0.5 } ,
}
2017-06-05 15:45:47 +02:00
minetest.register_node ( " : " .. upper_slab , topdef )
2017-06-05 15:41:42 +02:00
2015-06-29 19:55:56 +02:00
2017-02-08 00:34:30 +01:00
-- Double slab node
local dgroups = table.copy ( groups )
dgroups.not_in_creative_inventory = 1
2017-06-05 16:53:00 +02:00
dgroups.not_in_craft_guide = 1
2017-06-05 16:27:51 +02:00
dgroups.slab = nil
dgroups.double_slab = 1
minetest.register_node ( " : " .. double_slab , {
description = double_description ,
_doc_items_longdesc = " Double slabs are full blocks which are created by placing two slabs of the same kind on each other. " ,
tiles = images ,
is_ground_content = false ,
groups = dgroups ,
sounds = sounds ,
drop = lower_slab .. " 2 " ,
_mcl_hardness = hardness ,
} )
2017-02-08 00:34:30 +01:00
2017-01-16 12:46:51 +01:00
if recipeitem then
minetest.register_craft ( {
2017-06-05 15:45:47 +02:00
output = lower_slab .. " 6 " ,
2017-01-16 12:46:51 +01:00
recipe = {
{ recipeitem , recipeitem , recipeitem } ,
} ,
} )
end
2017-06-05 15:41:42 +02:00
-- Help alias for the upper slab
if minetest.get_modpath ( " doc " ) then
2017-06-05 15:45:47 +02:00
doc.add_entry_alias ( " nodes " , lower_slab , " nodes " , upper_slab )
2017-06-05 15:41:42 +02:00
end
2017-01-16 12:46:51 +01:00
end
-- Stair/slab registration function.
2017-06-05 18:40:56 +02:00
-- Nodes will be called mcl_stairs:{stair,slab}_<subname>
2017-01-16 12:46:51 +01:00
2017-06-05 18:40:56 +02:00
function mcl_stairs . register_stair_and_slab ( subname , recipeitem ,
2017-02-27 18:17:18 +01:00
groups , images , desc_stair , desc_slab , sounds , hardness ,
2017-06-05 16:27:51 +02:00
double_description )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( subname , recipeitem , groups , images , desc_stair , sounds , hardness )
mcl_stairs.register_slab ( subname , recipeitem , groups , images , desc_slab , sounds , hardness , double_description )
2015-06-29 19:55:56 +02:00
end
2017-02-27 22:49:09 +01:00
-- Very simple registration function
-- Makes stair and slab out of a source node
2017-06-05 18:40:56 +02:00
function mcl_stairs . register_stair_and_slab_simple ( subname , sourcenode , desc_stair , desc_slab , desc_double_slab )
2017-02-27 22:49:09 +01:00
local def = minetest.registered_nodes [ sourcenode ]
2017-02-27 23:14:34 +01:00
local groups = { }
-- Only allow a strict set of groups to be added to stairs and slabs for more predictable results
local allowed_groups = { " dig_immediate " , " handy " , " pickaxey " , " axey " , " shovely " , " shearsy " , " shearsy_wool " , " swordy " , " swordy_wool " }
for a = 1 , # allowed_groups do
if def.groups [ allowed_groups [ a ] ] then
groups [ allowed_groups [ a ] ] = def.groups [ allowed_groups [ a ] ]
end
end
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair_and_slab ( subname , sourcenode , groups , def.tiles , desc_stair , desc_slab , def.sounds , def._mcl_hardness , desc_double_slab )
2017-02-27 22:49:09 +01:00
end
2017-02-27 18:17:18 +01:00
-- Register all Minecraft stairs and slabs
-- Note about hardness: For some reason, the hardness of slabs and stairs don't always match nicely, so that some
-- slabs actually take slightly longer to be dug than their stair counterparts.
-- Note sure if it is a good idea to preserve this oddity.
2017-01-16 12:46:51 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " wood " , " mcl_core:wood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_stairs = 1 , material_wood = 1 } ,
2015-06-29 19:55:56 +02:00
{ " default_wood.png " } ,
2017-01-07 04:13:58 +01:00
" Oak Wood Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2 )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " wood " , " mcl_core:wood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_slab = 1 , material_wood = 1 } ,
2017-01-10 02:25:10 +01:00
{ " default_wood.png " } ,
2017-01-04 06:56:37 +01:00
" Oak Wood Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Oak Wood Slab " )
2017-01-10 02:25:10 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " junglewood " , " mcl_core:junglewood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_stairs = 1 , material_wood = 1 } ,
2015-06-29 19:55:56 +02:00
{ " default_junglewood.png " } ,
2017-01-07 04:13:58 +01:00
" Jungle Wood Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2 )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " junglewood " , " mcl_core:junglewood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_slab = 1 , material_wood = 1 } ,
2017-01-10 02:25:10 +01:00
{ " default_junglewood.png " } ,
2017-01-04 06:56:37 +01:00
" Jungle Wood Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Jungle Wood Slab " )
2017-02-27 18:17:18 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " acaciawood " , " mcl_core:acaciawood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_stairs = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " default_acacia_wood.png " } ,
2017-01-07 04:13:58 +01:00
" Acacia Wood Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2 )
2017-01-10 02:25:10 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " acaciawood " , " mcl_core:acaciawood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_slab = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " default_acacia_wood.png " } ,
2017-01-04 06:56:37 +01:00
" Acacia Wood Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Acacia Wood Slab " )
2017-06-05 15:41:42 +02:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " sprucewood " , " mcl_core:sprucewood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_stairs = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_planks_spruce.png " } ,
2017-01-07 04:13:58 +01:00
" Spruce Wood Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2 )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " sprucewood " , " mcl_core:sprucewood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_slab = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_planks_spruce.png " } ,
2017-01-04 06:56:37 +01:00
" Spruce Wood Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Spruce Wood Slab " )
2015-06-29 19:55:56 +02:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " birchwood " , " mcl_core:birchwood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_stairs = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_planks_birch.png " } ,
2017-01-10 02:25:10 +01:00
" Birch Wood Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2 )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " birchwood " , " mcl_core:birchwood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_slab = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_planks_birch.png " } ,
2017-01-10 02:25:10 +01:00
" Birch Wood Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Birch Wood Slab " )
2017-01-10 02:25:10 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " darkwood " , " mcl_core:darkwood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_stairs = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_planks_big_oak.png " } ,
2017-01-10 02:25:10 +01:00
" Dark Oak Wood Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2 )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " darkwood " , " mcl_core:darkwood " ,
2017-03-11 05:34:58 +01:00
{ handy = 1 , axey = 1 , flammable = 3 , wood_slab = 1 , material_wood = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_planks_big_oak.png " } ,
2017-01-10 02:25:10 +01:00
" Dark Oak Wood Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_wood_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Dark Oak Wood Slab " )
2017-01-10 02:25:10 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " stone " , " mcl_core:stone " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-06-05 18:40:56 +02:00
{ " mcl_stairs_stone_slab_top.png " , " mcl_stairs_stone_slab_top.png " , " mcl_stairs_stone_slab_side.png " } ,
2015-06-29 19:55:56 +02:00
" Stone Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_stone_defaults ( ) , 2 , " Double Stone Slab " )
2015-06-29 19:55:56 +02:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair_and_slab_simple ( " cobble " , " mcl_core:cobble " , " Cobblestone Stairs " , " Cobblestone Slab " , nil , nil , " Double Cobblestone Slab " )
2017-02-27 18:17:18 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair_and_slab_simple ( " brick_block " , " mcl_core:brick_block " , " Brick Stairs " , " Brick Slab " , nil , nil , " Double Brick Slab " )
2017-02-27 18:17:18 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " sandstone " , " group:sandstone " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_sandstone_top.png " , " mcl_core_sandstone_bottom.png " , " mcl_core_sandstone_normal.png " } ,
2017-01-07 04:13:58 +01:00
" Sandstone Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_stone_defaults ( ) , 0.8 , nil , " mcl_core:sandstone " )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " sandstone " , " group:sandstone " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_sandstone_top.png " , " mcl_core_sandstone_bottom.png " , " mcl_core_sandstone_normal.png " } ,
2015-06-29 19:55:56 +02:00
" Sandstone Slab " ,
2017-06-05 16:27:51 +02:00
mcl_sounds.node_sound_stone_defaults ( ) , 2 , " Double Sandstone Slab " , " mcl_core:sandstone " )
2015-06-29 19:55:56 +02:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " redsandstone " , " group:redsandstone " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_red_sandstone_top.png " , " mcl_core_red_sandstone_bottom.png " , " mcl_core_red_sandstone_normal.png " } ,
2017-01-07 04:13:58 +01:00
" Red Sandstone Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_stone_defaults ( ) , 0.8 , nil , " mcl_core:redsandstone " )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " redsandstone " , " group:redsandstone " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-05-26 01:06:54 +02:00
{ " mcl_core_red_sandstone_top.png " , " mcl_core_red_sandstone_bottom.png " , " mcl_core_red_sandstone_normal.png " } ,
2017-01-04 06:56:37 +01:00
" Red Sandstone Slab " ,
2017-06-05 16:27:51 +02:00
mcl_sounds.node_sound_stone_defaults ( ) , 2 , " Double Red Sandstone Slab " , " mcl_core:redsandstone " )
2017-01-04 06:56:37 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " stonebrick " , " group:stonebrick " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2015-06-29 19:55:56 +02:00
{ " default_stone_brick.png " } ,
2017-01-07 04:13:58 +01:00
" Stone Bricks Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_stone_defaults ( ) , 1.5 , nil , " mcl_core:stonebrick " )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " stonebrick " , " group:stonebrick " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-02-27 18:17:18 +01:00
{ " default_stone_brick.png " } ,
2017-01-04 06:56:37 +01:00
" Stone Bricks Slab " ,
2017-06-05 16:27:51 +02:00
mcl_sounds.node_sound_stone_defaults ( ) , 2 , " Double Stone Bricks Slab " , " mcl_core:stonebrick " )
2017-02-27 18:17:18 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " quartzblock " , " group:quartz_block " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-02-27 18:17:18 +01:00
{ " mcl_nether_quartz_block_top.png " , " mcl_nether_quartz_block_bottom.png " , " mcl_nether_quartz_block_side.png " } ,
" Quartz Stairs " ,
mcl_sounds.node_sound_stone_defaults ( ) , 0.8 , nil , " mcl_nether:quartz_block " )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " quartzblock " , " group:quartz_block " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-02-27 18:17:18 +01:00
{ " mcl_nether_quartz_block_top.png " , " mcl_nether_quartz_block_bottom.png " , " mcl_nether_quartz_block_side.png " } ,
" Quartz Slab " ,
2017-06-05 16:27:51 +02:00
mcl_sounds.node_sound_stone_defaults ( ) , 2 , " Double Quarzt Slab " , " mcl_nether:quartz_block " )
2015-06-29 19:55:56 +02:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair_and_slab ( " nether_brick " , " mcl_nether:nether_brick " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-02-27 18:17:18 +01:00
{ " mcl_nether_nether_brick.png " } ,
" Nether Brick Stairs " ,
" Nether Brick Slab " ,
mcl_sounds.node_sound_stone_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Nether Brick Slab " )
2017-02-27 18:17:18 +01:00
2017-06-05 18:40:56 +02:00
mcl_stairs.register_stair ( " purpur_block " , " mcl_end:purpur_block " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-01-07 04:09:18 +01:00
{ " mcl_end_purpur_block.png " } ,
" Purpur Stairs " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_stone_defaults ( ) ,
1.5 )
2017-06-05 18:40:56 +02:00
mcl_stairs.register_slab ( " purpur_block " , " mcl_end:purpur_block " ,
2017-03-11 05:34:58 +01:00
{ pickaxey = 1 , material_stone = 1 } ,
2017-02-27 18:17:18 +01:00
{ " mcl_end_purpur_block.png " } ,
2017-01-07 04:09:18 +01:00
" Purpur Slab " ,
2017-02-27 18:17:18 +01:00
mcl_sounds.node_sound_stone_defaults ( ) ,
2017-06-05 16:27:51 +02:00
2 ,
" Double Purpur Slab " )
2017-01-07 04:09:18 +01:00
2017-01-05 03:09:19 +01:00
minetest.register_craft ( {
2017-01-31 23:32:56 +01:00
output = ' mcl_core:sandstonecarved ' ,
2017-01-05 03:09:19 +01:00
recipe = {
2017-06-05 18:40:56 +02:00
{ ' mcl_stairs:slab_sandstone ' } ,
{ ' mcl_stairs:slab_sandstone ' }
2017-01-05 03:09:19 +01:00
}
} )
minetest.register_craft ( {
2017-01-31 23:32:56 +01:00
output = ' mcl_core:redsandstonecarved ' ,
2017-01-05 03:09:19 +01:00
recipe = {
2017-06-05 18:40:56 +02:00
{ ' mcl_stairs:slab_redsandstone ' } ,
{ ' mcl_stairs:slab_redsandstone ' }
2017-01-05 03:09:19 +01:00
}
} )
2017-01-07 03:35:24 +01:00
minetest.register_craft ( {
2017-01-31 23:32:56 +01:00
output = ' mcl_core:stonebrickcarved ' ,
2017-01-07 03:35:24 +01:00
recipe = {
2017-06-05 18:40:56 +02:00
{ ' mcl_stairs:slab_stonebrick ' } ,
{ ' mcl_stairs:slab_stonebrick ' }
2017-01-07 03:35:24 +01:00
}
} )
2017-01-07 04:09:18 +01:00
minetest.register_craft ( {
output = ' mcl_end:purpur_pillar ' ,
recipe = {
2017-06-05 18:40:56 +02:00
{ ' mcl_stairs:slab_purpur_block ' } ,
{ ' mcl_stairs:slab_purpur_block ' }
}
} )
minetest.register_craft ( {
output = ' mcl_nether:quartz_chiseled 2 ' ,
recipe = {
{ ' mcl_stairs:slab_quartzblock ' } ,
{ ' mcl_stairs:slab_quartzblock ' } ,
2017-01-07 04:09:18 +01:00
}
} )
2017-01-10 06:43:07 +01:00
-- Fuel
minetest.register_craft ( {
type = " fuel " ,
recipe = " group:wood_stairs " ,
burntime = 15 ,
} )
minetest.register_craft ( {
type = " fuel " ,
recipe = " group:wood_slab " ,
2017-02-13 14:33:16 +01:00
-- Original burn time: 7.5 (PC edition)
burntime = 8 ,
2017-01-10 06:43:07 +01:00
} )
2017-06-05 15:41:42 +02:00