2013-10-22 02:31:54 +02:00
local S = homedecor.gettext
2013-03-18 00:09:42 +01:00
2015-01-24 00:34:02 +01:00
homedecor.register ( " ceiling_paint " , {
2013-03-18 00:09:42 +01:00
description = S ( " Textured Ceiling Paint " ) ,
drawtype = ' signlike ' ,
tiles = { ' homedecor_ceiling_paint.png ' } ,
inventory_image = ' homedecor_ceiling_paint_roller.png ' ,
wield_image = ' homedecor_ceiling_paint_roller.png ' ,
walkable = false ,
groups = { snappy = 3 } ,
sounds = default.node_sound_leaves_defaults ( ) ,
2015-04-29 14:14:36 +02:00
selection_box = { type = " wallmounted " } ,
2013-03-18 00:09:42 +01:00
} )
2015-01-24 00:34:02 +01:00
homedecor.register ( " ceiling_tile " , {
2013-03-18 00:09:42 +01:00
description = S ( " Drop-Ceiling Tile " ) ,
drawtype = ' signlike ' ,
tiles = { ' homedecor_ceiling_tile.png ' } ,
wield_image = ' homedecor_ceiling_tile.png ' ,
inventory_image = ' homedecor_ceiling_tile.png ' ,
walkable = false ,
groups = { snappy = 3 } ,
sounds = default.node_sound_leaves_defaults ( ) ,
2015-04-29 14:14:36 +02:00
selection_box = { type = " wallmounted " } ,
2013-03-18 00:09:42 +01:00
} )
2015-05-11 18:37:49 +02:00
local rug_types = {
{ " small " , " homedecor_small_rug.obj " } ,
2015-08-19 15:49:32 +02:00
{ " large " , homedecor.box . slab_y ( 0.0625 ) } ,
{ " persian " , homedecor.box . slab_y ( 0.0625 ) }
2015-05-11 18:37:49 +02:00
}
2013-03-18 00:09:42 +01:00
2015-05-11 18:37:49 +02:00
for i in ipairs ( rug_types ) do
s = rug_types [ i ] [ 1 ]
m = rug_types [ i ] [ 2 ]
local mesh = m
local nodebox = nil
local tiles = { " homedecor_rug_ " .. s .. " .png " , " wool_grey.png " }
if type ( m ) == " table " then
mesh = nil
nodebox = {
type = " fixed " ,
fixed = m
}
tiles = {
" homedecor_rug_ " .. s .. " .png " ,
" wool_grey.png " ,
" homedecor_rug_ " .. s .. " .png "
}
end
homedecor.register ( " rug_ " .. s , {
description = S ( " Rug ( " .. s .. " ) " ) ,
mesh = mesh ,
tiles = tiles ,
node_box = nodebox ,
paramtype2 = " wallmounted " ,
walkable = false ,
groups = { snappy = 3 } ,
sounds = default.node_sound_leaves_defaults ( ) ,
selection_box = { type = " wallmounted " } ,
} )
2015-02-28 10:14:46 +01:00
end
2013-03-18 00:09:42 +01:00
2015-02-28 10:14:46 +01:00
local pot_colors = { " black " , " green " , " terracotta " }
2013-03-18 00:09:42 +01:00
2015-02-28 10:14:46 +01:00
for _ , p in ipairs ( pot_colors ) do
homedecor.register ( " flower_pot_ " .. p , {
description = S ( " Flower Pot ( " .. p .. " ) " ) ,
2014-12-14 21:12:44 +01:00
mesh = " homedecor_flowerpot.obj " ,
2015-04-06 22:35:00 +02:00
tiles = {
" homedecor_flower_pot_ " .. p .. " .png " ,
2015-05-04 05:22:46 +02:00
" default_dirt.png^[colorize:#000000:175 "
2015-04-06 22:35:00 +02:00
} ,
2015-01-21 04:40:38 +01:00
groups = { snappy = 3 , potting_soil = 1 } ,
2015-04-29 14:14:36 +02:00
sounds = default.node_sound_stone_defaults ( ) ,
2013-03-18 00:09:42 +01:00
} )
2015-02-28 10:14:46 +01:00
end
2013-03-18 00:09:42 +01:00
2015-05-15 20:14:48 +02:00
local flowers_list = {
{ " Rose " , " rose " , " flowers:rose " } ,
{ " Tulip " , " tulip " , " flowers:tulip " } ,
{ " Yellow Dandelion " , " dandelion_yellow " , " flowers:dandelion_yellow " } ,
{ " White Dandelion " , " dandelion_white " , " flowers:dandelion_white " } ,
{ " Blue Geranium " , " geranium " , " flowers:geranium " } ,
{ " Viola " , " viola " , " flowers:viola " } ,
{ " Cactus " , " cactus " , " default:cactus " } ,
{ " Bonsai " , " bonsai " , " default:sapling " }
}
for i in ipairs ( flowers_list ) do
local flowerdesc = flowers_list [ i ] [ 1 ]
local flower = flowers_list [ i ] [ 2 ]
local craftwith = flowers_list [ i ] [ 3 ]
homedecor.register ( " potted_ " .. flower , {
description = S ( " Potted flower ( " .. flowerdesc .. " ) " ) ,
2015-06-25 08:57:07 +02:00
mesh = " homedecor_potted_plant.obj " ,
2015-06-22 03:03:09 +02:00
tiles = {
2015-06-25 08:57:07 +02:00
" homedecor_flower_pot_terracotta.png " ,
" default_dirt.png^[colorize:#000000:175 " ,
" flowers_ " .. flower .. " .png "
2015-06-22 03:03:09 +02:00
} ,
2015-05-15 20:14:48 +02:00
walkable = false ,
groups = { snappy = 3 } ,
sounds = default.node_sound_glass_defaults ( ) ,
selection_box = {
type = " fixed " ,
2015-06-25 08:57:07 +02:00
fixed = { - 0.2 , - 0.5 , - 0.2 , 0.2 , 0.3 , 0.2 }
2015-05-15 20:14:48 +02:00
}
} )
minetest.register_craft ( {
type = " shapeless " ,
output = " homedecor:potted_ " .. flower ,
recipe = { craftwith , " homedecor:flower_pot_small " }
} )
minetest.register_alias ( " flowers:flower_ " .. flower .. " _pot " , " homedecor:potted_ " .. flower )
2015-05-16 01:13:41 +02:00
minetest.register_alias ( " flowers:potted_ " .. flower , " homedecor:potted_ " .. flower )
2015-05-15 20:14:48 +02:00
minetest.register_alias ( " flowers:flower_pot " , " homedecor:flower_pot_small " )
end
2015-01-24 00:34:02 +01:00
homedecor.register ( " pole_brass " , {
2014-08-12 18:26:14 +02:00
description = S ( " Brass Pole " ) ,
2014-12-13 23:32:31 +01:00
mesh = " homedecor_round_pole.obj " ,
2015-04-28 05:48:02 +02:00
tiles = { " homedecor_generic_metal_brass.png^homedecor_generic_metal_lines_overlay.png " , } ,
2014-12-14 21:42:59 +01:00
inventory_image = " homedecor_pole_brass_inv.png " ,
wield_image = " homedecor_pole_brass_inv.png " ,
2014-08-12 18:26:14 +02:00
selection_box = {
type = " fixed " ,
2014-12-13 23:32:31 +01:00
fixed = { - 0.125 , - 0.5 , - 0.125 , 0.125 , 0.5 , 0.125 } ,
} ,
collision_box = {
type = " fixed " ,
fixed = { - 0.125 , - 0.5 , - 0.125 , 0.125 , 0.5 , 0.125 } ,
2014-08-12 18:26:14 +02:00
} ,
groups = { snappy = 3 } ,
sounds = default.node_sound_wood_defaults ( ) ,
2013-03-18 00:09:42 +01:00
} )
2015-01-20 23:59:50 +01:00
2015-01-24 00:34:02 +01:00
homedecor.register ( " pole_wrought_iron " , {
2014-08-12 18:26:14 +02:00
description = S ( " Wrought Iron Pole " ) ,
2015-04-28 05:48:02 +02:00
tiles = { " homedecor_generic_metal_wrought_iron.png^homedecor_generic_metal_lines_overlay.png " } ,
2014-12-14 21:42:59 +01:00
inventory_image = " homedecor_pole_wrought_iron_inv.png " ,
wield_image = " homedecor_pole_wrought_iron_inv.png " ,
2014-08-12 18:26:14 +02:00
selection_box = {
type = " fixed " ,
fixed = { - 0.0625 , - 0.5 , - 0.0625 , 0.0625 , 0.5 , 0.0625 }
} ,
2013-03-18 00:09:42 +01:00
node_box = {
type = " fixed " ,
fixed = { - 0.0625 , - 0.5 , - 0.0625 , 0.0625 , 0.5 , 0.0625 }
} ,
2014-08-12 18:26:14 +02:00
groups = { snappy = 3 } ,
sounds = default.node_sound_wood_defaults ( ) ,
2013-03-18 00:09:42 +01:00
} )
2015-05-08 20:05:24 +02:00
local ft_cbox = {
type = " fixed " ,
fixed = { - 0.5 , - 0.5 , - 0.375 , 0.5 , 0.3125 , 0.375 }
}
2015-01-24 00:34:02 +01:00
homedecor.register ( " fishtank " , {
2014-06-26 04:32:43 +02:00
description = " Fishtank " ,
2015-05-08 20:05:24 +02:00
mesh = " homedecor_fishtank.obj " ,
2014-06-26 04:32:43 +02:00
tiles = {
2015-05-08 20:05:24 +02:00
" homedecor_generic_plastic_black.png " ,
2015-05-09 01:45:34 +02:00
" homedecor_fishtank_filter.png " ,
2015-05-08 20:05:24 +02:00
" homedecor_fishtank_fishes.png " ,
2015-05-09 01:45:34 +02:00
" homedecor_fishtank_gravel.png " ,
" homedecor_fishtank_water_top.png " ,
2015-05-08 21:52:41 +02:00
" homedecor_fishtank_sides.png " ,
2014-06-26 04:32:43 +02:00
} ,
use_texture_alpha = true ,
2015-05-08 20:05:24 +02:00
selection_box = ft_cbox ,
collision_box = ft_cbox ,
2014-06-26 04:32:43 +02:00
groups = { cracky = 3 , oddly_breakable_by_hand = 3 } ,
sounds = default.node_sound_glass_defaults ( ) ,
2014-06-28 01:12:21 +02:00
on_rightclick = function ( pos , node , clicker )
2015-05-08 20:05:24 +02:00
minetest.set_node ( pos , { name = " homedecor:fishtank_lighted " , param2 = node.param2 } )
2014-06-28 01:12:21 +02:00
end
} )
2015-01-24 00:34:02 +01:00
homedecor.register ( " fishtank_lighted " , {
2015-05-08 20:05:24 +02:00
description = " Fishtank (lighted) " ,
mesh = " homedecor_fishtank.obj " ,
2014-06-28 01:12:21 +02:00
tiles = {
2015-05-08 20:05:24 +02:00
" homedecor_generic_plastic_black.png " ,
2015-05-09 01:45:34 +02:00
" homedecor_fishtank_filter.png " ,
2015-05-08 20:05:24 +02:00
" homedecor_fishtank_fishes_lighted.png " ,
2015-05-09 01:45:34 +02:00
" homedecor_fishtank_gravel_lighted.png " ,
" homedecor_fishtank_water_top_lighted.png " ,
2015-05-08 21:52:41 +02:00
" homedecor_fishtank_sides_lighted.png " ,
2014-06-28 01:12:21 +02:00
} ,
light_source = LIGHT_MAX - 4 ,
use_texture_alpha = true ,
2015-05-08 20:05:24 +02:00
selection_box = ft_cbox ,
collision_box = ft_cbox ,
2014-08-04 19:04:17 +02:00
groups = { cracky = 3 , oddly_breakable_by_hand = 3 , not_in_creative_inventory = 1 } ,
2014-06-28 01:12:21 +02:00
sounds = default.node_sound_glass_defaults ( ) ,
on_rightclick = function ( pos , node , clicker )
2015-05-08 20:05:24 +02:00
minetest.set_node ( pos , { name = " homedecor:fishtank " , param2 = node.param2 } )
2015-05-08 20:22:00 +02:00
end ,
drop = " homedecor:fishtank " ,
2014-06-26 04:32:43 +02:00
} )
2015-01-23 23:25:00 +01:00
homedecor.register ( " cardboard_box_big " , {
description = S ( " Cardboard box (big) " ) ,
2014-06-26 06:28:21 +02:00
tiles = {
2015-01-23 23:25:00 +01:00
' homedecor_cardbox_big_tb.png ' ,
' homedecor_cardbox_big_tb.png ' ,
' homedecor_cardbox_big_sides.png ' ,
2014-06-26 06:28:21 +02:00
} ,
2015-01-23 23:25:00 +01:00
groups = { snappy = 3 } ,
infotext = S ( " Cardboard box " ) ,
inventory = {
size = 24 ,
} ,
} )
homedecor.register ( " cardboard_box " , {
description = S ( " Cardboard box " ) ,
tiles = {
' homedecor_cardbox_tb.png ' ,
' homedecor_cardbox_tb.png ' ,
' homedecor_cardbox_sides.png ' ,
} ,
2014-06-26 06:28:21 +02:00
node_box = {
type = " fixed " ,
fixed = {
2015-01-23 23:25:00 +01:00
{ - 0.3125 , - 0.5 , - 0.3125 , 0.3125 , 0 , 0.3125 } ,
2014-06-26 06:28:21 +02:00
}
} ,
groups = { snappy = 3 } ,
2015-01-21 19:19:14 +01:00
infotext = S ( " Cardboard box " ) ,
inventory = {
2015-01-23 23:25:00 +01:00
size = 8 ,
2015-01-21 19:19:14 +01:00
} ,
2014-06-26 06:28:21 +02:00
} )
2014-06-25 11:59:34 +02:00
2015-01-24 00:34:02 +01:00
homedecor.register ( " dvd_cd_cabinet " , {
2014-06-26 13:11:58 +02:00
description = " DVD/CD cabinet " ,
2015-04-27 05:23:45 +02:00
mesh = " homedecor_dvd_cabinet.obj " ,
2014-06-26 13:11:58 +02:00
tiles = {
2015-04-27 05:23:45 +02:00
" default_wood.png " ,
2014-06-26 13:11:58 +02:00
" homedecor_dvdcd_cabinet_front.png " ,
2015-04-27 05:23:45 +02:00
" homedecor_dvdcd_cabinet_back.png "
2014-06-26 13:11:58 +02:00
} ,
2015-08-19 15:06:53 +02:00
selection_box = homedecor.nodebox . slab_z ( - 0.5 ) ,
2015-04-29 14:14:36 +02:00
groups = { choppy = 2 , oddly_breakable_by_hand = 2 } ,
2014-06-26 13:11:58 +02:00
sounds = default.node_sound_wood_defaults ( ) ,
} )
2015-03-23 06:25:13 +01:00
local pooltable_cbox = {
type = " fixed " ,
fixed = { - 0.5 , - 0.5 , - 0.5 , 0.5 , 0.3125 , 1.5 }
}
2015-01-23 00:01:08 +01:00
homedecor.register ( " pool_table " , {
2015-03-23 06:25:13 +01:00
mesh = " homedecor_pool_table.obj " ,
2014-08-07 20:49:26 +02:00
tiles = {
2015-03-23 06:25:13 +01:00
" homedecor_pool_table_cue.png " ,
" homedecor_pool_table_baize.png " ,
" homedecor_pool_table_pockets.png " ,
" homedecor_pool_table_balls.png " ,
2015-05-04 03:52:52 +02:00
" homedecor_generic_wood_luxury.png^[colorize:#000000:90 "
2014-08-07 20:49:26 +02:00
} ,
description = " Pool Table " ,
inventory_image = " homedecor_pool_table_inv.png " ,
groups = { snappy = 3 } ,
2015-03-23 06:25:13 +01:00
selection_box = pooltable_cbox ,
collision_box = pooltable_cbox ,
2015-09-08 09:50:02 +02:00
expand = { forward = " placeholder " } ,
2015-04-29 14:14:36 +02:00
sounds = default.node_sound_wood_defaults ( ) ,
2015-05-14 12:25:11 +02:00
on_rotate = screwdriver.disallow
2014-08-07 20:49:26 +02:00
} )
2015-03-23 06:25:13 +01:00
minetest.register_alias ( " homedecor:pool_table_2 " , " air " )
2014-08-08 21:13:47 +02:00
2015-03-22 06:36:56 +01:00
local piano_cbox = {
type = " fixed " ,
fixed = { - 0.5 , - 0.5 , - 0.125 , 1.5 , 0.5 , 0.5 }
}
2015-03-22 12:17:13 +01:00
homedecor.register ( " piano " , {
2015-03-22 06:36:56 +01:00
mesh = " homedecor_piano.obj " ,
2014-08-26 19:28:47 +02:00
tiles = {
2015-05-04 03:52:52 +02:00
" homedecor_generic_wood_luxury.png^[colorize:#000000:175 " ,
2015-03-22 06:36:56 +01:00
" homedecor_piano_keys.png " ,
2015-04-28 05:48:02 +02:00
" homedecor_generic_metal_brass.png " ,
2014-08-26 19:28:47 +02:00
} ,
inventory_image = " homedecor_piano_inv.png " ,
2014-08-26 19:32:40 +02:00
description = " Piano " ,
2015-03-22 06:36:56 +01:00
groups = { snappy = 3 } ,
selection_box = piano_cbox ,
collision_box = piano_cbox ,
2015-09-08 09:50:02 +02:00
expand = { right = " placeholder " } ,
2015-04-29 14:14:36 +02:00
sounds = default.node_sound_wood_defaults ( ) ,
2015-05-14 12:25:11 +02:00
on_rotate = screwdriver.disallow
2014-08-26 19:28:47 +02:00
} )
2015-03-22 12:17:13 +01:00
minetest.register_alias ( " homedecor:piano_left " , " homedecor:piano " )
2015-03-22 06:36:56 +01:00
minetest.register_alias ( " homedecor:piano_right " , " air " )
2014-08-28 14:38:16 +02:00
2015-04-14 22:53:45 +02:00
local tr_cbox = {
type = " fixed " ,
2015-04-14 23:14:02 +02:00
fixed = { - 0.3125 , - 0.5 , - 0.1875 , 0.3125 , 0.125 , 0.1875 }
2015-04-14 22:53:45 +02:00
}
2015-01-24 00:34:02 +01:00
homedecor.register ( " trophy " , {
2015-04-14 22:53:45 +02:00
description = " Trophy " ,
mesh = " homedecor_trophy.obj " ,
2014-09-10 12:13:06 +02:00
tiles = {
2015-04-14 22:53:45 +02:00
" default_wood.png " ,
2015-04-28 05:48:02 +02:00
" homedecor_generic_metal_gold.png "
2014-09-10 12:13:06 +02:00
} ,
2014-09-10 20:01:37 +02:00
inventory_image = " homedecor_trophy_inv.png " ,
2015-04-14 22:53:45 +02:00
groups = { snappy = 3 } ,
2015-04-29 14:14:36 +02:00
walkable = false ,
2015-04-14 22:53:45 +02:00
selection_box = tr_cbox ,
2014-09-10 12:13:06 +02:00
} )
2014-09-10 18:34:09 +02:00
2015-04-15 09:01:48 +02:00
local sb_cbox = {
type = " fixed " ,
fixed = { - 0.4 , - 0.5 , - 0.5 , 0.4 , 0.375 , 0.5 }
}
2015-01-24 00:34:02 +01:00
homedecor.register ( " sportbench " , {
2014-09-10 18:34:09 +02:00
description = " Sport bench " ,
2015-04-15 09:01:48 +02:00
mesh = " homedecor_sport_bench.obj " ,
2014-09-10 18:34:09 +02:00
tiles = {
2015-04-28 05:48:02 +02:00
" homedecor_generic_metal_wrought_iron.png " ,
" homedecor_generic_metal_bright.png " ,
" homedecor_generic_metal_black.png " ,
2015-04-15 09:01:48 +02:00
" wool_black.png "
2014-09-10 18:34:09 +02:00
} ,
2015-04-15 09:04:29 +02:00
inventory_image = " homedecor_sport_bench_inv.png " ,
2014-09-10 18:34:09 +02:00
groups = { snappy = 3 } ,
2015-04-15 09:01:48 +02:00
selection_box = sb_cbox ,
2015-04-29 14:14:36 +02:00
walkable = false ,
sounds = default.node_sound_wood_defaults ( ) ,
2014-09-10 18:34:09 +02:00
} )
2015-03-28 16:22:47 +01:00
local skate_cbox = {
type = " fixed " ,
fixed = { - 0.5 , - 0.5 , - 0.15 , 0.5 , - 0.3 , 0.15 }
}
2015-01-24 00:34:02 +01:00
homedecor.register ( " skateboard " , {
2015-03-28 16:22:47 +01:00
drawtype = " mesh " ,
mesh = " homedecor_skateboard.obj " ,
tiles = { " homedecor_skateboard.png " } ,
2014-09-10 19:49:20 +02:00
inventory_image = " homedecor_skateboard_inv.png " ,
2015-03-28 16:22:47 +01:00
description = " Skateboard " ,
groups = { snappy = 3 } ,
selection_box = skate_cbox ,
2015-04-29 14:14:36 +02:00
walkable = false ,
2015-03-28 16:22:47 +01:00
sounds = default.node_sound_wood_defaults ( ) ,
2014-09-10 19:49:20 +02:00
on_place = minetest.rotate_node
} )
2015-03-30 09:42:33 +02:00
homedecor.register ( " tool_cabinet " , {
2014-09-18 07:36:23 +02:00
description = " Metal tool cabinet and work table " ,
2015-03-30 09:42:33 +02:00
mesh = " homedecor_tool_cabinet.obj " ,
2014-09-18 07:36:23 +02:00
tiles = {
2015-05-04 00:30:56 +02:00
" homedecor_generic_metal_black.png^[colorize:#ff0000:150 " ,
2015-03-30 09:42:33 +02:00
" homedecor_tool_cabinet_drawers.png " ,
2015-05-04 00:30:56 +02:00
" homedecor_generic_metal_black.png^[colorize:#006000:150 " ,
" homedecor_generic_metal_black.png^[brighten " ,
2015-04-28 05:48:02 +02:00
" homedecor_generic_metal_bright.png " ,
2015-03-30 09:42:33 +02:00
" homedecor_tool_cabinet_misc.png " ,
2014-09-18 07:36:23 +02:00
} ,
inventory_image = " homedecor_tool_cabinet_inv.png " ,
2015-05-14 12:25:11 +02:00
on_rotate = screwdriver.rotate_simple ,
2014-09-18 07:36:23 +02:00
groups = { snappy = 3 } ,
2015-01-23 17:40:57 +01:00
selection_box = homedecor.nodebox . slab_y ( 2 ) ,
2015-09-08 09:50:02 +02:00
expand = { top = " placeholder " } ,
2015-03-23 07:31:24 +01:00
inventory = {
size = 24 ,
}
2014-09-18 07:36:23 +02:00
} )
2015-03-30 09:42:33 +02:00
minetest.register_alias ( " homedecor:tool_cabinet_bottom " , " homedecor:tool_cabinet " )
minetest.register_alias ( " homedecor:tool_cabinet_top " , " air " )
2014-09-18 07:36:23 +02:00
2015-02-14 12:21:27 +01:00
local pframe_cbox = {
type = " fixed " ,
fixed = { - 0.18 , - 0.5 , - 0.08 , 0.18 , - 0.08 , 0.18 }
}
local n = { 1 , 2 }
for _ , i in ipairs ( n ) do
homedecor.register ( " picture_frame " .. i , {
description = S ( " Picture Frame " ) ,
mesh = " homedecor_picture_frame.obj " ,
2015-04-21 23:58:50 +02:00
tiles = {
" homedecor_picture_frame_image " .. i .. " .png " ,
2015-05-04 05:17:11 +02:00
" homedecor_generic_wood_luxury.png^[colorize:#000000:50 " ,
2015-04-21 23:58:50 +02:00
" homedecor_picture_frame_back.png " ,
} ,
2015-02-14 12:21:27 +01:00
inventory_image = " homedecor_picture_frame " .. i .. " _inv.png " ,
wield_image = " homedecor_picture_frame " .. i .. " _inv.png " ,
groups = { snappy = 3 } ,
selection_box = pframe_cbox ,
2015-04-29 14:14:36 +02:00
walkable = false ,
sounds = default.node_sound_glass_defaults ( )
} )
end
2015-05-08 00:45:49 +02:00
local p_cbox = {
type = " fixed " ,
fixed = {
{ - 0.5 , - 0.5 , 0.4375 , 0.5 , 0.5 , 0.5 }
}
}
2015-04-29 14:14:36 +02:00
for i = 1 , 20 do
homedecor.register ( " painting_ " .. i , {
description = " Decorative painting # " .. i ,
2015-05-08 00:45:49 +02:00
mesh = " homedecor_painting.obj " ,
2015-04-29 14:14:36 +02:00
tiles = {
2015-05-08 00:45:49 +02:00
" default_wood.png " ,
" homedecor_blank_canvas.png " ,
2015-04-29 14:14:36 +02:00
" homedecor_painting " .. i .. " .png "
} ,
2015-05-08 00:45:49 +02:00
selection_box = p_cbox ,
walkable = false ,
2015-04-29 14:14:36 +02:00
groups = { snappy = 3 } ,
sounds = default.node_sound_wood_defaults ( ) ,
2015-02-14 12:21:27 +01:00
} )
end
2015-04-21 23:58:50 +02:00
2015-04-27 09:04:22 +02:00
homedecor.banister_materials = {
{ " wood " ,
" wood " ,
" default_wood.png " ,
" default_wood.png " ,
" group:wood " ,
" group:stick " ,
" " ,
" "
} ,
{ " white_dark " ,
" dark topped " ,
2015-05-04 03:18:35 +02:00
homedecor.white_wood ,
homedecor.dark_wood ,
2015-04-27 09:04:22 +02:00
" group:wood " ,
" group:stick " ,
" dye:brown " ,
" dye:white "
} ,
{ " brass " ,
" brass " ,
2015-05-04 03:18:35 +02:00
homedecor.white_wood ,
2015-04-28 05:48:02 +02:00
" homedecor_generic_metal_brass.png " ,
2015-04-27 09:04:22 +02:00
" technic:brass_ingot " ,
" group:stick " ,
" " ,
" dye:white "
} ,
{ " wrought_iron " ,
" wrought iron " ,
2015-04-28 05:48:02 +02:00
" homedecor_generic_metal_wrought_iron.png " ,
" homedecor_generic_metal_wrought_iron.png " ,
2015-04-27 09:04:22 +02:00
" homedecor:pole_wrought_iron " ,
" homedecor:pole_wrought_iron " ,
" " ,
" "
}
}
2015-05-12 00:03:21 +02:00
for _ , side in ipairs ( { " diagonal_left " , " diagonal_right " , " horizontal " } ) do
2015-04-27 09:04:22 +02:00
for i in ipairs ( homedecor.banister_materials ) do
local name = homedecor.banister_materials [ i ] [ 1 ]
2015-05-12 00:03:21 +02:00
local nodename = " banister_ " .. name .. " _ " .. side
local groups = { snappy = 3 , not_in_creative_inventory = 1 }
2015-04-27 09:04:22 +02:00
local cbox = {
type = " fixed " ,
2015-05-12 00:03:21 +02:00
fixed = { - 9 / 16 , - 3 / 16 , 5 / 16 , 9 / 16 , 24 / 16 , 8 / 16 }
2015-04-27 09:04:22 +02:00
}
2015-05-12 00:03:21 +02:00
if side == " horizontal " then
2015-04-27 09:04:22 +02:00
groups = { snappy = 3 }
2015-05-12 00:03:21 +02:00
cbox = {
type = " fixed " ,
fixed = { - 8 / 16 , - 8 / 16 , 5 / 16 , 8 / 16 , 8 / 16 , 8 / 16 }
}
else
minetest.register_alias ( string.gsub ( " homedecor: " .. nodename , " diagonal_ " , " " ) , " homedecor: " .. nodename )
2015-04-27 09:04:22 +02:00
end
2015-05-12 00:03:21 +02:00
homedecor.register ( nodename , {
description = S ( " Banister for Stairs ( " .. homedecor.banister_materials [ i ] [ 2 ] .. " , " .. side .. " ) " ) ,
2015-04-27 09:04:22 +02:00
mesh = " homedecor_banister_ " .. side .. " .obj " ,
tiles = {
homedecor.banister_materials [ i ] [ 3 ] ,
homedecor.banister_materials [ i ] [ 4 ]
} ,
2015-04-27 09:23:15 +02:00
inventory_image = " homedecor_banister_ " .. name .. " _inv.png " ,
2015-04-27 09:04:22 +02:00
groups = groups ,
selection_box = cbox ,
collision_box = cbox ,
2015-05-12 00:03:21 +02:00
on_place = homedecor.place_banister ,
drop = " homedecor:banister_ " .. name .. " _horizontal " ,
2015-04-27 09:04:22 +02:00
} )
end
end
2015-05-09 09:17:12 +02:00
homedecor.register ( " spiral_staircase " , {
description = " Spiral Staircase " ,
mesh = " homedecor_spiral_staircase.obj " ,
tiles = {
" homedecor_generic_metal_wrought_iron.png " ,
} ,
selection_box = {
type = " fixed " ,
2015-05-11 08:25:47 +02:00
fixed = { - 1.5 , - 0.5 , - 1.5 , 0.5 , 2.5 , 0.5 }
2015-05-09 09:17:12 +02:00
} ,
node_box = {
type = " fixed " ,
fixed = {
{ - 0.5625 , - 0.5 , - 0.5625 , - 0.4375 , 2.5 , - 0.4375 } , -- NodeBox9
{ - 0.5 , - 0.5 , - 0.5 , 0.5 , - 0.4375 , 0 } , -- NodeBox14
{ - 0.5 , - 0.125 , - 0.5 , - 0.25 , - 0.0625 , 0.5 } , -- NodeBox15
{ - 0.25 , - 0.125 , - 0.0625 , 0 , - 0.0625 , 0.5 } , -- NodeBox16
{ - 1 , 0.25 , - 0.5 , - 0.5 , 0.3125 , 0.5 } , -- NodeBox17
{ - 1.5 , 0.625 , - 0.5 , - 0.5 , 0.6875 , - 0.25 } , -- NodeBox18
{ - 1.5 , 0.625 , - 0.25 , - 0.9375 , 0.6875 , 0 } , -- NodeBox19
{ - 1.5 , 1 , - 1 , - 0.5 , 1.0625 , - 0.5 } , -- NodeBox20
{ - 0.75 , 1.375 , - 1.5 , - 0.5 , 1.4375 , - 0.5 } , -- NodeBox21
{ - 1 , 1.375 , - 1.5 , - 0.75 , 1.4375 , - 1 } , -- NodeBox22
{ - 0.5 , 1.75 , - 1.5 , 0.0625 , 1.8125 , - 0.5 } , -- NodeBox23
{ - 0.5 , 2.125 , - 0.8125 , 0.5 , 2.1875 , - 0.5 } , -- NodeBox24
{ - 0.0625 , 2.125 , - 1.0625 , 0.5 , 2.1875 , - 0.75 } , -- NodeBox25
{ - 1.5 , - 0.125 , 0.4375 , 0.5 , 1.625 , 0.5 } , -- NodeBox26
{ - 1.5 , 1.5625 , - 1.5 , - 1.4375 , 2.875 , 0.5 } , -- NodeBox27
{ - 1.5 , 1.75 , - 1.5 , 0.5 , 3.3125 , - 1.4375 } , -- NodeBox28
{ 0.4375 , - 0.5 , - 0.5 , 0.5 , 0.875 , 0.5 } , -- NodeBox29
{ 0.4375 , 2.125 , - 1.5 , 0.5 , 3.3125 , 0.5 } , -- NodeBox30
}
} ,
groups = { choppy = 2 } ,
sounds = default.node_sound_wood_defaults ( ) ,
2015-05-14 12:25:11 +02:00
on_rotate = screwdriver.rotate_simple ,
2015-05-11 08:25:47 +02:00
after_place_node = function ( pos , placer , itemstack , pointed_thing )
local fdir = minetest.dir_to_facedir ( placer : get_look_dir ( ) )
local leftx = homedecor.fdir_to_left [ fdir + 1 ] [ 1 ]
local leftz = homedecor.fdir_to_left [ fdir + 1 ] [ 2 ]
local revx = - homedecor.fdir_to_fwd [ fdir + 1 ] [ 1 ]
local revz = - homedecor.fdir_to_fwd [ fdir + 1 ] [ 2 ]
local corner1 = { x = pos.x + leftx + revx , y = pos.y , z = pos.z + leftz + revz }
local corner2 = { x = pos.x , y = pos.y + 2 , z = pos.z }
local minp = { x = math.min ( corner1.x , corner2.x ) ,
y = math.min ( corner1.y , corner2.y ) ,
z = math.min ( corner1.z , corner2.z ) }
local maxp = { x = math.max ( corner1.x , corner2.x ) ,
y = math.max ( corner1.y , corner2.y ) ,
z = math.max ( corner1.z , corner2.z ) }
if # minetest.find_nodes_in_area ( minp , maxp , " air " ) < 11 then
minetest.set_node ( pos , { name = " air " } )
minetest.chat_send_player ( placer : get_player_name ( ) , " This object takes up a 2x3x2 block of space (the bottom step goes in the forward-right corner), and some of it is occupied! " )
return true
end
local belownode = minetest.get_node ( { x = pos.x , y = pos.y - 1 , z = pos.z } )
if belownode and belownode.name == " homedecor:spiral_staircase " then
local newpos = { x = pos.x , y = pos.y + 2 , z = pos.z }
minetest.set_node ( pos , { name = " air " } )
minetest.set_node ( newpos , { name = " homedecor:spiral_staircase " , param2 = belownode.param2 } )
end
end
2015-05-09 09:17:12 +02:00
} )
2015-05-11 08:25:47 +02:00
minetest.register_on_placenode ( function ( pos , newnode , placer , oldnode , itemstack , pointed_thing )
local belownode = minetest.get_node ( { x = pos.x , y = pos.y - 1 , z = pos.z } )
2015-08-15 11:14:10 +02:00
if newnode.name ~= " homedecor:spiral_staircase "
and belownode
and belownode.name == " homedecor:spiral_staircase " then
2015-05-11 08:25:47 +02:00
minetest.set_node ( pos , { name = " air " } )
local newpos = { x = pos.x , y = pos.y + 2 , z = pos.z }
local checknode = minetest.get_node ( newpos )
if checknode and checknode.name == " air " then
local fdir = minetest.dir_to_facedir ( placer : get_look_dir ( ) )
minetest.set_node ( newpos , { name = newnode.name , param2 = fdir } )
else
return true
end
end
end )