1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2024-12-22 16:10:18 +01:00

first commit

This commit is contained in:
Vanessa Ezekowitz 2012-07-12 17:56:15 -04:00
commit 2d969cb9bf
174 changed files with 5743 additions and 0 deletions

49
README Normal file
View File

@ -0,0 +1,49 @@
This is what I consider to be a fairly feature-filled home decor mod.
It supplies a bunch of stuff found in most homes, like flower pots, home
electronics, brass and wrought-iron tables, and lots more!
All items can be accessed either by crafting various other items
together, or with the usual /give commands. To get a list of the actual
node names, just go into the homedecor/ folder and run the listnodes.sh
Bash script. Note that a few of the listed nodes are kinda useless by
themselves (like the various parts of the folding doors).
All of the images used for the recipes below are included in the
crafting-guide/ folder.
Most stuff can be made from materials found through a game world. Some
stuff can only be crafted by using materials from another mod (look for
the orange highlights). Currently, this mod can use materials from
moreores, mesecons, wool, and unifieddyes if present. You can still use
the usual /give commands to get the items that depend on these mods if
you don't use them installed.
This mod is still a work-in-progress, but should be complete enough not
to irritate anyone. :-) Namely, dressers still need to be fleshed out,
many items can be used as fuel but the burn times need tuning, and I
need to tune the cook time and fuel usage on the four smelted items.
This mod was put together using a recent git pull, and requires a
build/pull dated June 17, 2012 or later. Most stuff should work fine on
older builds as well, but a few nodes in this mod require Nodebox
support, a feature added to Minetest on that date. It will NOT work
with Minetest v0.3 (that version doesn't support mods).
Much of the code (especially for the doors) plus the bucket were taken
from the files which come with Minetest and altered to suit. Many
thanks to Jeija for coming up with an elegant cylinder using nodeboxes;
see his 'irregular' mods). His code is used herein (you can guess where
:-) ).
Dependencies: none (just the game's default stuff)
Recommends: buckets, flowers, unifieddyes, junglegrass, moreores,
mesecons, wool
License: GPL for all lua code. WTFPL for all of my textures and
everything else.
The distribution archive also supplies a copy of Ironzorg's Flowers mod
and of my Unified Dyes mod, since this mod provides more stuff when
those two are present. You can remove these if you want - they're only
needed if you want to craft the various dyed/colored items.

6
copyright.txt Normal file
View File

@ -0,0 +1,6 @@
Most code and all textures by Vanessa Ezekowitz.
Some code copied and modified from the game's default mods (especially
doors) and ironzorg's flowers mod.
Licenses: For the lua code, GPL. For all images and everything else, WTFPL.

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
crafting-guide/skylight.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
crafting-guide/speaker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
crafting-guide/stereo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

766
crafts.lua Normal file
View File

@ -0,0 +1,766 @@
-- Crafting for homedecor mod (includes folding) by Vanessa Ezekowitz
-- 2012-06-12
--
-- Mostly my own code; overall template borrowed from game default
--
-- License: GPL
--
-- ====================================
-- Smelting recipes and resultant items
minetest.register_craftitem("homedecor:roof_tile_terracotta", {
description = "Terracotta Roof Tile",
inventory_image = "homedecor_roof_tile_terracotta.png",
})
minetest.register_craft({
type = "cooking",
output = "homedecor:roof_tile_terracotta 4",
recipe = "default:dirt",
})
minetest.register_craft( {
output = 'homedecor:shingles_terracotta',
recipe = {
{ 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta'},
{ 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta'},
},
})
minetest.register_craft( {
output = 'homedecor:flower_pot_terracotta',
recipe = {
{ 'homedecor:roof_tile_terracotta', 'default:dirt', 'homedecor:roof_tile_terracotta' },
{ 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta' },
},
})
--
minetest.register_craftitem("homedecor:plastic_sheeting", {
description = "Plastic sheet",
inventory_image = "homedecor_plastic_sheeting.png",
})
minetest.register_craft({
type = "cooking",
output = "homedecor:plastic_sheeting",
recipe = "default:junglegrass 2",
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:plastic_sheeting',
burntime = 30,
})
minetest.register_craft( {
output = 'homedecor:flower_pot_green',
recipe = {
{ 'unifieddyes:green', '', '' },
{ 'homedecor:plastic_sheeting', 'default:dirt', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
minetest.register_craft( {
output = 'homedecor:flower_pot_black',
recipe = {
{ 'unifieddyes:black', 'unifieddyes:black', 'unifieddyes:black' },
{ 'homedecor:plastic_sheeting', 'default:dirt', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
--
minetest.register_craft( {
output = 'homedecor:projection_screen 3',
recipe = {
{ '', 'default:glass', '' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:projection_screen',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:ceiling_paint 10',
recipe = {
'unifieddyes:white_paint',
'default:stone',
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft( {
output = 'homedecor:ceiling_tile 10',
recipe = {
{ '', 'unifieddyes:white_paint', '' },
{ 'default:steel_ingot', 'default:stone', 'default:steel_ingot' },
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
-- =======================================================
-- Items/recipes not requiring smelting of anything new
minetest.register_craft( {
output = 'homedecor:glass_table_small_round 15',
recipe = {
{ '', 'default:glass', '' },
{ 'default:glass', 'default:glass', 'default:glass' },
{ '', 'default:glass', '' },
},
})
--
minetest.register_craft( {
output = 'homedecor:glass_table_small_square 2',
recipe = {
{ 'homedecor:glass_table_small_round', 'homedecor:glass_table_small_round', 'homedecor:glass_table_small_round' },
},
})
--
minetest.register_craft( {
output = 'homedecor:glass_table_large 2',
recipe = {
{ 'homedecor:glass_table_small_square', 'homedecor:glass_table_small_square' },
},
})
--
minetest.register_craft( {
output = 'homedecor:shingles_asphalt 6',
recipe = {
{ 'default:dirt', 'unifieddyes:black', 'default:dirt' },
{ 'default:sand', 'unifieddyes:black', 'default:sand' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
--
minetest.register_craft( {
output = 'homedecor:shingles_wood 12',
recipe = {
{ 'default:wood', 'default:wood'},
{ 'default:wood', 'default:wood'},
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shingles_wood',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:skylight 9',
recipe = {
{ 'default:glass', 'default:glass' },
{ 'default:glass', 'default:glass' },
},
})
--
minetest.register_craftitem("homedecor:utility_table_legs", {
description = "Legs for Small Utility table",
inventory_image = "homedecor_utility_table_legs.png",
})
minetest.register_craft( {
output = 'homedecor:utility_table_legs',
recipe = {
{ 'default:stick', 'default:stick', 'default:stick' },
{ 'default:stick', '', 'default:stick' },
{ 'default:stick', '', 'default:stick' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:utility_table_legs',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:wood_table_small_round 15',
recipe = {
{ '', 'default:wood', '' },
{ 'default:wood', 'default:wood', 'default:wood' },
{ '', 'default:wood', '' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:wood_table_small_round',
burntime = 30,
})
minetest.register_craft( {
output = 'homedecor:wood_table_small_square 2',
recipe = {
{ 'homedecor:wood_table_small_round', 'homedecor:wood_table_small_round', 'homedecor:wood_table_small_round' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:wood_table_small_square',
burntime = 30,
})
--
--
minetest.register_craft( {
output = 'homedecor:wood_table_large 2',
recipe = {
{ 'homedecor:wood_table_small_square', 'homedecor:wood_table_small_square' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:wood_table_large',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:shutter_oak 2',
recipe = {
{ 'default:stick', 'default:stick' },
{ 'default:stick', 'default:stick' },
{ 'default:stick', 'default:stick' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_oak',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_black',
recipe = {
'unifieddyes:black',
'unifieddyes:black',
'homedecor:shutter_oak'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_black',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_dark_grey',
recipe = {
'unifieddyes:black',
'homedecor:shutter_oak'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_dark_grey',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_grey',
recipe = {
'unifieddyes:black',
'unifieddyes:white_paint',
'homedecor:shutter_oak'
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_grey',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_forest_green',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:green',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_forest_green',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_white',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:white_paint',
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_white',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:table_legs_wrought_iron 2',
recipe = {
{ '', 'default:iron_lump', '' },
{ '', 'default:iron_lump', '' },
{ 'default:iron_lump', 'default:iron_lump', 'default:iron_lump' },
},
})
--
minetest.register_craft( {
output = 'homedecor:pole_wrought_iron 2',
recipe = {
{ 'default:iron_lump', },
{ 'default:iron_lump', },
{ 'default:iron_lump', },
},
})
minetest.register_craft( {
output = 'homedecor:fence_wrought_iron 4',
recipe = {
{ 'default:iron_lump','default:iron_lump','default:iron_lump' },
{ 'default:iron_lump','default:iron_lump','default:iron_lump' },
},
})
--
minetest.register_craftitem("homedecor:drawer_small", {
description = "Small Wooden Drawer",
inventory_image = "homedecor_drawer_small.png",
})
minetest.register_craft( {
output = 'homedecor:drawer_small',
recipe = {
{ 'default:wood', 'default:steel_ingot', 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:drawer_small',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:nightstand_oak_one_drawer',
recipe = {
{ 'homedecor:drawer_small' },
{ 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_oak_one_drawer',
burntime = 30,
})
minetest.register_craft( {
output = 'homedecor:nightstand_oak_two_drawers',
recipe = {
{ 'homedecor:drawer_small' },
{ 'homedecor:drawer_small' },
{ 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_oak_two_drawers',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:nightstand_mahogany_one_drawer',
recipe = {
'homedecor:nightstand_oak_one_drawer',
'unifieddyes:black',
'unifieddyes:red',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_mahogany_one_drawer',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:nightstand_mahogany_two_drawers',
recipe = {
'homedecor:nightstand_oak_two_drawers',
'unifieddyes:black',
'unifieddyes:red',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_mahogany_two_drawers',
burntime = 30,
})
--
minetest.register_craftitem("homedecor:drawer_large", {
description = "Large Wooden Drawer",
inventory_image = "homedecor_drawer_large.png",
})
minetest.register_craft( {
output = 'homedecor:drawer_large',
recipe = {
{ 'default:wood', 'default:steel_ingot', 'default:wood' },
{ 'default:wood', 'default:wood', 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:drawer_large',
burntime = 30,
})
--
minetest.register_craftitem("homedecor:dresser_oak", {
description = "Three-Drawer Oak Dresser",
inventory_image = "homedecor_dresser_oak_inv.png",
})
minetest.register_craft( {
output = 'homedecor:dresser_oak',
recipe = {
{ 'default:wood', 'homedecor:drawer_large', 'default:wood' },
{ 'default:wood', 'homedecor:drawer_large', 'default:wood' },
{ 'default:wood', 'homedecor:drawer_large', 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:dresser_oak',
burntime = 30,
})
--
minetest.register_craftitem("homedecor:dresser_mahogany", {
description = "Three-Drawer Mahogany Dresser",
inventory_image = "homedecor_dresser_mahogany_inv.png",
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:dresser_mahogany',
recipe = {
'homedecor:dresser_oak',
'unifieddyes:red',
'unifieddyes:red',
'unifieddyes:black',
'unifieddyes:black'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:dresser_oak',
burntime = 30,
})
-- ==========================================================
-- Recipes that require materials from Calinou's Moreores mod
minetest.register_craftitem("homedecor:brass_ingot", {
description = "Brass Ingot",
inventory_image = "homedecor_brass_ingot.png",
})
if ( minetest.get_modpath("moreores") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:brass_ingot 2',
recipe = {
'moreores:silver_ingot',
'moreores:copper_ingot',
},
})
minetest.register_craft( {
output = 'homedecor:table_legs_brass 2',
recipe = {
{ '', 'homedecor:brass_ingot', '' },
{ '', 'homedecor:brass_ingot', '' },
{ 'homedecor:brass_ingot', 'homedecor:brass_ingot', 'homedecor:brass_ingot' }
},
})
minetest.register_craft( {
output = 'homedecor:pole_brass 2',
recipe = {
{ '', 'homedecor:brass_ingot', '' },
{ '', 'homedecor:brass_ingot', '' },
{ '', 'homedecor:brass_ingot', '' }
},
})
minetest.register_craft( {
output = 'homedecor:fence_brass 4',
recipe = {
{ 'homedecor:brass_ingot', 'homedecor:brass_ingot', 'homedecor:brass_ingot' },
{ 'homedecor:brass_ingot', 'homedecor:brass_ingot', 'homedecor:brass_ingot' },
},
})
end
-- ========================================================
-- Recipes that require materials from Jeija's Mesecons mod
if ( minetest.get_modpath("mesecons") ) ~= nil then
minetest.register_craft( {
output = 'homedecor:television',
recipe = {
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'default:glass', 'homedecor:plastic_sheeting' },
{ 'mesecons_materials:ic', 'mesecons_materials:ic', 'mesecons_materials:ic' },
},
})
minetest.register_craft( {
output = 'homedecor:stereo',
recipe = {
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'mesecons_materials:ic', 'homedecor:plastic_sheeting' },
{ 'default:steel_ingot', 'mesecons_materials:ic', 'default:steel_ingot' },
},
})
end
-- ======================================================
-- Recipes that require materials from Jordach's Wool mod
if ( minetest.get_modpath("wool") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:rug_small 8',
recipe = {
'wool:red',
'wool:yellow',
'wool:blue',
'wool:black'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:rug_small',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:rug_large 2',
recipe = {
'homedecor:rug_small',
'homedecor:rug_small',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:rug_large',
burntime = 30,
})
end
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_mahogany',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:red',
'unifieddyes:black'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_mahogany',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_purple',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:violet',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_purple',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_red',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:red',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_red',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_yellow',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:yellow',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_yellow',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:shutter_light_blue',
recipe = {
'homedecor:shutter_oak',
'unifieddyes:white_paint',
'unifieddyes:blue',
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shutter_light_blue',
burntime = 30,
})
-- ================================================================
-- Speakers require both Jordache's wool and Jeija's mesecons mods.
if ( minetest.get_modpath("wool") ) ~= nil then
if ( minetest.get_modpath("mesecons") ) ~= nil then
minetest.register_craft( {
output = 'homedecor:speaker',
recipe = {
{ 'default:wood', 'wool:black', 'default:wood' },
{ 'default:wood', 'mesecons:noteblock', 'default:wood' },
{ 'default:wood', 'wool:black', 'default:wood' },
},
})
minetest.register_craft( {
output = 'homedecor:speaker_small',
recipe = {
{ 'default:wood', 'wool:black', 'default:wood' },
{ 'default:wood', 'mesecons:noteblock', 'default:wood' },
},
})
end
end

766
crafts.lua~ Normal file
View File

@ -0,0 +1,766 @@
-- Crafting for homedecor mod (includes folding) by Vanessa Ezekowitz
-- 2012-06-12
--
-- Mostly my own code; overall template borrowed from game default
--
-- License: GPL
--
-- ====================================
-- Smelting recipes and resultant items
minetest.register_craftitem("homedecor:roof_tile_terracotta", {
description = "Terracotta Roof Tile",
inventory_image = "homedecor_roof_tile_terracotta.png",
})
minetest.register_craft({
type = "cooking",
output = "homedecor:roof_tile_terracotta 4",
recipe = "default:dirt",
})
minetest.register_craft( {
output = 'homedecor:shingles_terracotta',
recipe = {
{ 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta'},
{ 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta'},
},
})
minetest.register_craft( {
output = 'homedecor:flower_pot_terracotta',
recipe = {
{ 'homedecor:roof_tile_terracotta', 'default:dirt', 'homedecor:roof_tile_terracotta' },
{ 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta', 'homedecor:roof_tile_terracotta' },
},
})
--
minetest.register_craftitem("homedecor:plastic_sheeting", {
description = "Plastic sheet",
inventory_image = "homedecor_plastic_sheeting.png",
})
minetest.register_craft({
type = "cooking",
output = "homedecor:plastic_sheeting",
recipe = "default:junglegrass 2",
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:plastic_sheeting',
burntime = 30,
})
minetest.register_craft( {
output = 'homedecor:flower_pot_green',
recipe = {
{ 'unifieddyes:green', '', '' },
{ 'homedecor:plastic_sheeting', 'default:dirt', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
minetest.register_craft( {
output = 'homedecor:flower_pot_black',
recipe = {
{ 'unifieddyes:black', 'unifieddyes:black', 'unifieddyes:black' },
{ 'homedecor:plastic_sheeting', 'default:dirt', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
--
minetest.register_craft( {
output = 'homedecor:projection_screen 3',
recipe = {
{ '', 'default:glass', '' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:projection_screen',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:ceiling_paint 10',
recipe = {
'unifieddyes:white_paint',
'default:stone',
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft( {
output = 'homedecor:ceiling_tile 10',
recipe = {
{ '', 'unifieddyes:white_paint', '' },
{ 'default:steel_ingot', 'default:stone', 'default:steel_ingot' },
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
-- =======================================================
-- Items/recipes not requiring smelting of anything new
minetest.register_craft( {
output = 'homedecor:glass_table_small_round 15',
recipe = {
{ '', 'default:glass', '' },
{ 'default:glass', 'default:glass', 'default:glass' },
{ '', 'default:glass', '' },
},
})
--
minetest.register_craft( {
output = 'homedecor:glass_table_small_square 2',
recipe = {
{ 'homedecor:glass_table_small_round', 'homedecor:glass_table_small_round', 'homedecor:glass_table_small_round' },
},
})
--
minetest.register_craft( {
output = 'homedecor:glass_table_large 2',
recipe = {
{ 'homedecor:glass_table_small_square', 'homedecor:glass_table_small_square' },
},
})
--
minetest.register_craft( {
output = 'homedecor:shingles_asphalt 6',
recipe = {
{ 'default:dirt', 'unifieddyes:black', 'default:dirt' },
{ 'default:sand', 'unifieddyes:black', 'default:sand' },
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
},
})
--
minetest.register_craft( {
output = 'homedecor:shingles_wood 12',
recipe = {
{ 'default:wood', 'default:wood'},
{ 'default:wood', 'default:wood'},
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:shingles_wood',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:skylight 9',
recipe = {
{ 'default:glass', 'default:glass' },
{ 'default:glass', 'default:glass' },
},
})
--
minetest.register_craftitem("homedecor:utility_table_legs", {
description = "Legs for Small Utility table",
inventory_image = "homedecor_utility_table_legs.png",
})
minetest.register_craft( {
output = 'homedecor:utility_table_legs',
recipe = {
{ 'default:stick', 'default:stick', 'default:stick' },
{ 'default:stick', '', 'default:stick' },
{ 'default:stick', '', 'default:stick' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:utility_table_legs',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:wood_table_small_round 15',
recipe = {
{ '', 'default:wood', '' },
{ 'default:wood', 'default:wood', 'default:wood' },
{ '', 'default:wood', '' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:wood_table_small_round',
burntime = 30,
})
minetest.register_craft( {
output = 'homedecor:wood_table_small_square 2',
recipe = {
{ 'homedecor:wood_table_small_round', 'homedecor:wood_table_small_round', 'homedecor:wood_table_small_round' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:wood_table_small_square',
burntime = 30,
})
--
--
minetest.register_craft( {
output = 'homedecor:wood_table_large 2',
recipe = {
{ 'homedecor:wood_table_small_square', 'homedecor:wood_table_small_square' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:wood_table_large',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:window_shutter_oak 2',
recipe = {
{ 'default:stick', 'default:stick' },
{ 'default:stick', 'default:stick' },
{ 'default:stick', 'default:stick' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_oak',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_black',
recipe = {
'unifieddyes:black',
'unifieddyes:black',
'homedecor:window_shutter_oak'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_black',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_dark_grey',
recipe = {
'unifieddyes:black',
'homedecor:window_shutter_oak'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_dark_grey',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_grey',
recipe = {
'unifieddyes:black',
'unifieddyes:white_paint',
'homedecor:window_shutter_oak'
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_grey',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_forest_green',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:green',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_forest_green',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_white',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:white_paint',
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_white',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:table_legs_wrought_iron 2',
recipe = {
{ '', 'default:iron_lump', '' },
{ '', 'default:iron_lump', '' },
{ 'default:iron_lump', 'default:iron_lump', 'default:iron_lump' },
},
})
--
minetest.register_craft( {
output = 'homedecor:pole_wrought_iron 2',
recipe = {
{ 'default:iron_lump', },
{ 'default:iron_lump', },
{ 'default:iron_lump', },
},
})
minetest.register_craft( {
output = 'homedecor:fence_wrought_iron 4',
recipe = {
{ 'default:iron_lump','default:iron_lump','default:iron_lump' },
{ 'default:iron_lump','default:iron_lump','default:iron_lump' },
},
})
--
minetest.register_craftitem("homedecor:drawer_small", {
description = "Small Wooden Drawer",
inventory_image = "homedecor_drawer_small.png",
})
minetest.register_craft( {
output = 'homedecor:drawer_small',
recipe = {
{ 'default:wood', 'default:steel_ingot', 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:drawer_small',
burntime = 30,
})
--
minetest.register_craft( {
output = 'homedecor:nightstand_oak_one_drawer',
recipe = {
{ 'homedecor:drawer_small' },
{ 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_oak_one_drawer',
burntime = 30,
})
minetest.register_craft( {
output = 'homedecor:nightstand_oak_two_drawers',
recipe = {
{ 'homedecor:drawer_small' },
{ 'homedecor:drawer_small' },
{ 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_oak_two_drawers',
burntime = 30,
})
--
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:nightstand_mahogany_one_drawer',
recipe = {
'homedecor:nightstand_oak_one_drawer',
'unifieddyes:black',
'unifieddyes:red',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_mahogany_one_drawer',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:nightstand_mahogany_two_drawers',
recipe = {
'homedecor:nightstand_oak_two_drawers',
'unifieddyes:black',
'unifieddyes:red',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:nightstand_mahogany_two_drawers',
burntime = 30,
})
--
minetest.register_craftitem("homedecor:drawer_large", {
description = "Large Wooden Drawer",
inventory_image = "homedecor_drawer_large.png",
})
minetest.register_craft( {
output = 'homedecor:drawer_large',
recipe = {
{ 'default:wood', 'default:steel_ingot', 'default:wood' },
{ 'default:wood', 'default:wood', 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:drawer_large',
burntime = 30,
})
--
minetest.register_craftitem("homedecor:dresser_oak", {
description = "Three-Drawer Oak Dresser",
inventory_image = "homedecor_dresser_oak_inv.png",
})
minetest.register_craft( {
output = 'homedecor:dresser_oak',
recipe = {
{ 'default:wood', 'homedecor:drawer_large', 'default:wood' },
{ 'default:wood', 'homedecor:drawer_large', 'default:wood' },
{ 'default:wood', 'homedecor:drawer_large', 'default:wood' },
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:dresser_oak',
burntime = 30,
})
--
minetest.register_craftitem("homedecor:dresser_mahogany", {
description = "Three-Drawer Mahogany Dresser",
inventory_image = "homedecor_dresser_mahogany_inv.png",
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:dresser_mahogany',
recipe = {
'homedecor:dresser_oak',
'unifieddyes:red',
'unifieddyes:red',
'unifieddyes:black',
'unifieddyes:black'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:dresser_oak',
burntime = 30,
})
-- ==========================================================
-- Recipes that require materials from Calinou's Moreores mod
minetest.register_craftitem("homedecor:brass_ingot", {
description = "Brass Ingot",
inventory_image = "homedecor_brass_ingot.png",
})
if ( minetest.get_modpath("moreores") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:brass_ingot 2',
recipe = {
'moreores:silver_ingot',
'moreores:copper_ingot',
},
})
minetest.register_craft( {
output = 'homedecor:table_legs_brass 2',
recipe = {
{ '', 'homedecor:brass_ingot', '' },
{ '', 'homedecor:brass_ingot', '' },
{ 'homedecor:brass_ingot', 'homedecor:brass_ingot', 'homedecor:brass_ingot' }
},
})
minetest.register_craft( {
output = 'homedecor:pole_brass 2',
recipe = {
{ '', 'homedecor:brass_ingot', '' },
{ '', 'homedecor:brass_ingot', '' },
{ '', 'homedecor:brass_ingot', '' }
},
})
minetest.register_craft( {
output = 'homedecor:fence_brass 4',
recipe = {
{ 'homedecor:brass_ingot', 'homedecor:brass_ingot', 'homedecor:brass_ingot' },
{ 'homedecor:brass_ingot', 'homedecor:brass_ingot', 'homedecor:brass_ingot' },
},
})
end
-- ========================================================
-- Recipes that require materials from Jeija's Mesecons mod
if ( minetest.get_modpath("mesecons") ) ~= nil then
minetest.register_craft( {
output = 'homedecor:television',
recipe = {
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'default:glass', 'homedecor:plastic_sheeting' },
{ 'mesecons_materials:ic', 'mesecons_materials:ic', 'mesecons_materials:ic' },
},
})
minetest.register_craft( {
output = 'homedecor:stereo',
recipe = {
{ 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting' },
{ 'homedecor:plastic_sheeting', 'mesecons_materials:ic', 'homedecor:plastic_sheeting' },
{ 'default:steel_ingot', 'mesecons_materials:ic', 'default:steel_ingot' },
},
})
end
-- ======================================================
-- Recipes that require materials from Jordach's Wool mod
if ( minetest.get_modpath("wool") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:rug_small 8',
recipe = {
'wool:red',
'wool:yellow',
'wool:blue',
'wool:black'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:rug_small',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:rug_large 2',
recipe = {
'homedecor:rug_small',
'homedecor:rug_small',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:rug_large',
burntime = 30,
})
end
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_mahogany',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:red',
'unifieddyes:black'
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_mahogany',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_purple',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:violet',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_purple',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_red',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:red',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_red',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_yellow',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:yellow',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_yellow',
burntime = 30,
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:window_shutter_light_blue',
recipe = {
'homedecor:window_shutter_oak',
'unifieddyes:white_paint',
'unifieddyes:blue',
},
replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, },
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:window_shutter_light_blue',
burntime = 30,
})
-- ================================================================
-- Speakers require both Jordache's wool and Jeija's mesecons mods.
if ( minetest.get_modpath("wool") ) ~= nil then
if ( minetest.get_modpath("mesecons") ) ~= nil then
minetest.register_craft( {
output = 'homedecor:speaker',
recipe = {
{ 'default:wood', 'wool:black', 'default:wood' },
{ 'default:wood', 'mesecons:noteblock', 'default:wood' },
{ 'default:wood', 'wool:black', 'default:wood' },
},
})
minetest.register_craft( {
output = 'homedecor:speaker_small',
recipe = {
{ 'default:wood', 'wool:black', 'default:wood' },
{ 'default:wood', 'mesecons:noteblock', 'default:wood' },
},
})
end
end

1
depends.txt Normal file
View File

@ -0,0 +1 @@
default

427
exterior_door_fancy.lua Normal file
View File

@ -0,0 +1,427 @@
-- Fancy Exterior doors - part of home decor mod by VanessaE
-- 2012-06-10
--
-- Copied and modified from Minetest's default doors mod.
--
-- Textures derived from...
-- http://commons.wikimedia.org/wiki/File:Front_door_of_Morey_Mansion.jpg
-- ...plus the standard Minetest logo.
--
-- License: GPL
--
local DEBUG = 1
local WALLMX = 3
local WALLMZ = 5
local WALLPX = 2
local WALLPZ = 4
local WALLMXr = 2
local WALLMZr = 4
local WALLPXr = 3
local WALLPZr = 5
local dbg = function(s)
if DEBUG == 1 then
print('[ExteriorDoorFancy] ' .. s)
end
end
local round = function( n )
if n >= 0 then
return math.floor( n + 0.5 )
else
return math.ceil( n - 0.5 )
end
end
-- ==========================
-- Regular left-opening doors
-- Actual nodes that you place
minetest.register_node('homedecor:exterior_door_fancy', {
description = "Fancy Wood/Glass Exterior Door (Left Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy.png' },
inventory_image = 'homedecor_exterior_door_fancy.png',
wield_image = 'homedecor_exterior_door_fancy.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Fancy Exterior door functions
local on_exterior_door_fancy_placed = function( pos, node, placer )
if node.name ~= 'homedecor:exterior_door_fancy' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:exterior_door_fancy_b_c', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:exterior_door_fancy_a_c', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:exterior_door_fancy' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_exterior_door_fancy_punched = function( pos, node, puncher )
if string.find( node.name, 'homedecor:exterior_door_fancy' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c', -2 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZ
elseif node.param2 == WALLMZ then
newparam = WALLMX
elseif node.param2 == WALLMX then
newparam = WALLPZ
elseif node.param2 == WALLPZ then
newparam = WALLPX
end
elseif string.find( node.name, '_o', -2 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPX
elseif node.param2 == WALLMX then
newparam = WALLMZ
elseif node.param2 == WALLPZ then
newparam = WALLMX
elseif node.param2 == WALLPX then
newparam = WALLPZ
end
end
if ( node.name == 'homedecor:exterior_door_fancy_a_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_a_o', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:exterior_door_fancy_b_o', param2 = newparam } )
elseif ( node.name == 'homedecor:exterior_door_fancy_b_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_b_o', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:exterior_door_fancy_a_o', param2 = newparam } )
elseif ( node.name == 'homedecor:exterior_door_fancy_a_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:exterior_door_fancy_b_c', param2 = newparam } )
elseif ( node.name == 'homedecor:exterior_door_fancy_b_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:exterior_door_fancy_a_c', param2 = newparam } )
end
end
local on_exterior_door_fancy_digged = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:exterior_door_fancy_a_c' ) or ( node.name == 'homedecor:exterior_door_fancy_a_o' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:exterior_door_fancy_b_c' ) or ( node.name == 'homedecor:exterior_door_fancy_b_o' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_exterior_door_fancy_placed )
minetest.register_on_punchnode( on_exterior_door_fancy_punched )
minetest.register_on_dignode( on_exterior_door_fancy_digged )
-- Nodes used to build up Fancy Exterior doors
minetest.register_node('homedecor:exterior_door_fancy_a_c', {
description = "Fancy Wood/Glass Exterior Door (top, closed)",
tile_images = { 'homedecor_exterior_door_fancy_a.png' },
inventory_image = 'homedecor_exterior_door_fancy_a.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:exterior_door_fancy',
})
minetest.register_node('homedecor:exterior_door_fancy_b_c', {
description = "Fancy Wood/Glass Exterior Door (bottom, closed)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_b.png' },
inventory_image = 'homedecor_exterior_door_fancy_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:exterior_door_fancy',
})
minetest.register_node('homedecor:exterior_door_fancy_a_o', {
description = "Fancy Wood/Glass Exterior Door (top, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_a_r.png' },
inventory_image = 'homedecor_exterior_door_fancy_a_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:exterior_door_fancy',
})
minetest.register_node('homedecor:exterior_door_fancy_b_o', {
description = "Fancy Wood/Glass Exterior Door (bottom, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_b_r.png' },
inventory_image = 'homedecor_exterior_door_fancy_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:exterior_door_fancy',
})
-- ========================================
-- Mirrored version for right-opening doors
-- ========================================
-- Actual nodes that you place
minetest.register_node('homedecor:exterior_door_fancy_right', {
description = "Fancy Wood/Glass Exterior Door (Right Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_right.png' },
inventory_image = 'homedecor_exterior_door_fancy_right.png',
wield_image = 'homedecor_exterior_door_fancy_right.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Fancy Exterior door functions
local on_exterior_door_fancy_placed_right = function( pos, node, placer )
if node.name ~= 'homedecor:exterior_door_fancy_right' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:exterior_door_fancy_b_c_right', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:exterior_door_fancy_a_c_right', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:exterior_door_fancy_right' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_exterior_door_fancy_punched_right = function( pos, node, puncher )
if string.find( node.name, 'homedecor:exterior_door_fancy' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c_right', -8 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZr
elseif node.param2 == WALLMZ then
newparam = WALLMXr
elseif node.param2 == WALLMX then
newparam = WALLPZr
elseif node.param2 == WALLPZ then
newparam = WALLPXr
end
elseif string.find( node.name, '_o_right', -8 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPXr
elseif node.param2 == WALLMX then
newparam = WALLMZr
elseif node.param2 == WALLPZ then
newparam = WALLMXr
elseif node.param2 == WALLPX then
newparam = WALLPZr
end
end
if ( node.name == 'homedecor:exterior_door_fancy_a_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_a_o_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:exterior_door_fancy_b_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:exterior_door_fancy_b_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_b_o_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:exterior_door_fancy_a_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:exterior_door_fancy_a_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:exterior_door_fancy_b_c_right', param2 = newparam } )
elseif ( node.name == 'homedecor:exterior_door_fancy_b_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:exterior_door_fancy_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:exterior_door_fancy_a_c_right', param2 = newparam } )
end
end
local on_exterior_door_fancy_digged_right = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:exterior_door_fancy_a_c_right' ) or ( node.name == 'homedecor:exterior_door_fancy_a_o_right' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:exterior_door_fancy_b_c_right' ) or ( node.name == 'homedecor:exterior_door_fancy_b_o_right' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_exterior_door_fancy_placed_right )
minetest.register_on_punchnode( on_exterior_door_fancy_punched_right )
minetest.register_on_dignode( on_exterior_door_fancy_digged_right )
-- Nodes used to build up Fancy Exterior doors
minetest.register_node('homedecor:exterior_door_fancy_a_c_right', {
description = "Fancy Wood/Glass Exterior Door (top, closed, right)",
tile_images = { 'homedecor_exterior_door_fancy_a_r.png' },
inventory_image = 'homedecor_exterior_door_fancy_a_r.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:exterior_door_fancy_right',
})
minetest.register_node('homedecor:exterior_door_fancy_b_c_right', {
description = "Fancy Wood/Glass Exterior Door (bottom, closed, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_b_r.png' },
inventory_image = 'homedecor_exterior_door_fancy_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:exterior_door_fancy_right',
})
minetest.register_node('homedecor:exterior_door_fancy_a_o_right', {
description = "Fancy Wood/Glass Exterior Door (top, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_a.png' },
inventory_image = 'homedecor_exterior_door_fancy_a.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:exterior_door_fancy_right',
})
minetest.register_node('homedecor:exterior_door_fancy_b_o_right', {
description = "Fancy Wood/Glass Exterior Door (bottom, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_exterior_door_fancy_b.png' },
inventory_image = 'homedecor_exterior_door_fancy_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:exterior_door_fancy_right',
})
-- ================
-- crafting recipes
minetest.register_craft( {
output = 'homedecor:exterior_door_fancy',
recipe = {
{ 'default:wood', 'default:glass' },
{ 'default:wood', 'default:wood' },
{ 'default:wood', 'default:wood' },
},
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:exterior_door_fancy_right',
recipe = {
'homedecor:exterior_door_fancy',
},
})
minetest.register_craft({
type = 'shapeless',
output = 'homedecor:exterior_door_fancy',
recipe = {
'homedecor:exterior_door_fancy_right',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:exterior_door_fancy',
burntime = 30,
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:exterior_door_fancy_right',
burntime = 30,
})

442
exterior_door_fancy.lua~ Normal file
View File

@ -0,0 +1,442 @@
-- Mahogany "folding" doors - part of home decor mod by VanessaE
-- 2012-06-10
--
-- Copied and modified from Minetest's default doors mod.
--
-- License: GPL
--
local DEBUG = 1
local WALLMX = 3
local WALLMZ = 5
local WALLPX = 2
local WALLPZ = 4
local WALLMXr = 2
local WALLMZr = 4
local WALLPXr = 3
local WALLPZr = 5
local dbg = function(s)
if DEBUG == 1 then
print('[FOLDINGDOORS] ' .. s)
end
end
local round = function( n )
if n >= 0 then
return math.floor( n + 0.5 )
else
return math.ceil( n - 0.5 )
end
end
-- ==========================
-- Regular left-opening doors
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_mahogany', {
description = "Mahogany Folding Door (Left Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany.png' },
inventory_image = 'homedecor_folding_door_mahogany.png',
wield_image = 'homedecor_folding_door_mahogany.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Mahogany door functions
local on_mahogany_folding_door_placed = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_mahogany' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_mahogany' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_mahogany_folding_door_punched = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_mahogany' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c', -2 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZ
elseif node.param2 == WALLMZ then
newparam = WALLMX
elseif node.param2 == WALLMX then
newparam = WALLPZ
elseif node.param2 == WALLPZ then
newparam = WALLPX
end
elseif string.find( node.name, '_o', -2 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPX
elseif node.param2 == WALLMX then
newparam = WALLMZ
elseif node.param2 == WALLPZ then
newparam = WALLMX
elseif node.param2 == WALLPX then
newparam = WALLPZ
end
end
if ( node.name == 'homedecor:folding_door_mahogany_a_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_o', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_o', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_a_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
end
end
local on_mahogany_folding_door_digged = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_mahogany_a_c' ) or ( node.name == 'homedecor:folding_door_mahogany_a_o' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c' ) or ( node.name == 'homedecor:folding_door_mahogany_b_o' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_mahogany_folding_door_placed )
minetest.register_on_punchnode( on_mahogany_folding_door_punched )
minetest.register_on_dignode( on_mahogany_folding_door_digged )
-- Nodes used to build up mahogany doors
minetest.register_node('homedecor:folding_door_mahogany_a_c', {
description = "Mahogany Folding Door (top, closed)",
tile_images = { 'homedecor_folding_door_mahogany_a.png' },
inventory_image = 'homedecor_folding_door_mahogany_a.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_b_c', {
description = "Mahogany Folding Door (bottom, closed)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b.png' },
inventory_image = 'homedecor_folding_door_mahogany_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_a_o', {
description = "Mahogany Folding Door (top, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_a_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_a_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_b_o', {
description = "Mahogany Folding Door (bottom, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany',
})
-- ========================================
-- Mirrored version for right-opening doors
-- ========================================
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_mahogany_right', {
description = "Mahogany Folding Door (Right Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_right.png' },
inventory_image = 'homedecor_folding_door_mahogany_right.png',
wield_image = 'homedecor_folding_door_mahogany_right.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Mahogany door functions
local on_mahogany_folding_door_placed_right = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_mahogany_right' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_mahogany_right' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_mahogany_folding_door_punched_right = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_mahogany' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c_right', -8 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZr
elseif node.param2 == WALLMZ then
newparam = WALLMXr
elseif node.param2 == WALLMX then
newparam = WALLPZr
elseif node.param2 == WALLPZ then
newparam = WALLPXr
end
elseif string.find( node.name, '_o_right', -8 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPXr
elseif node.param2 == WALLMX then
newparam = WALLMZr
elseif node.param2 == WALLPZ then
newparam = WALLMXr
elseif node.param2 == WALLPX then
newparam = WALLPZr
end
end
if ( node.name == 'homedecor:folding_door_mahogany_a_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_o_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_o_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_a_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
end
end
local on_mahogany_folding_door_digged_right = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_mahogany_a_c_right' ) or ( node.name == 'homedecor:folding_door_mahogany_a_o_right' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c_right' ) or ( node.name == 'homedecor:folding_door_mahogany_b_o_right' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_mahogany_folding_door_placed_right )
minetest.register_on_punchnode( on_mahogany_folding_door_punched_right )
minetest.register_on_dignode( on_mahogany_folding_door_digged_right )
-- Nodes used to build up mahogany doors
minetest.register_node('homedecor:folding_door_mahogany_a_c_right', {
description = "Mahogany Folding Door (top, closed, right)",
tile_images = { 'homedecor_folding_door_mahogany_a_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_a_r.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_b_c_right', {
description = "Mahogany Folding Door (bottom, closed, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_a_o_right', {
description = "Mahogany Folding Door (top, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_a.png' },
inventory_image = 'homedecor_folding_door_mahogany_a.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_b_o_right', {
description = "Mahogany Folding Door (bottom, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b.png' },
inventory_image = 'homedecor_folding_door_mahogany_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany_right',
})
-- =======================================
-- Crafting recipes for all types of doors
-- =======================================
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany_right',
recipe = {
'homedecor:folding_door_mahogany',
},
})
minetest.register_craft({
type = 'shapeless',
output = 'homedecor:folding_door_mahogany',
recipe = {
'homedecor:folding_door_mahogany_right',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_mahogany',
burntime = 30,
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_mahogany_right',
burntime = 30,
})
-- You only need flowers to get the red dye necessary to actually
-- craft a mahogany door (either one), but not to /give or use one.
if ( minetest.get_modpath("flowers") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany',
recipe = {
'homedecor:folding_door_oak',
'unifieddyes:black',
'unifieddyes:red',
},
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany_right',
recipe = {
'homedecor:folding_door_oak_right',
'unifieddyes:black',
'unifieddyes:red',
},
})
end

442
foldingdoors_mahogany.lua Normal file
View File

@ -0,0 +1,442 @@
-- Mahogany "folding" doors - part of home decor mod by VanessaE
-- 2012-06-10
--
-- Copied and modified from Minetest's default doors mod.
--
-- License: GPL
--
local DEBUG = 1
local WALLMX = 3
local WALLMZ = 5
local WALLPX = 2
local WALLPZ = 4
local WALLMXr = 2
local WALLMZr = 4
local WALLPXr = 3
local WALLPZr = 5
local dbg = function(s)
if DEBUG == 1 then
print('[FOLDINGDOORS] ' .. s)
end
end
local round = function( n )
if n >= 0 then
return math.floor( n + 0.5 )
else
return math.ceil( n - 0.5 )
end
end
-- ==========================
-- Regular left-opening doors
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_mahogany', {
description = "Mahogany Folding Door (Left Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany.png' },
inventory_image = 'homedecor_folding_door_mahogany.png',
wield_image = 'homedecor_folding_door_mahogany.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Mahogany door functions
local on_mahogany_folding_door_placed = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_mahogany' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_mahogany' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_mahogany_folding_door_punched = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_mahogany' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c', -2 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZ
elseif node.param2 == WALLMZ then
newparam = WALLMX
elseif node.param2 == WALLMX then
newparam = WALLPZ
elseif node.param2 == WALLPZ then
newparam = WALLPX
end
elseif string.find( node.name, '_o', -2 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPX
elseif node.param2 == WALLMX then
newparam = WALLMZ
elseif node.param2 == WALLPZ then
newparam = WALLMX
elseif node.param2 == WALLPX then
newparam = WALLPZ
end
end
if ( node.name == 'homedecor:folding_door_mahogany_a_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_o', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_o', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_a_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
end
end
local on_mahogany_folding_door_digged = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_mahogany_a_c' ) or ( node.name == 'homedecor:folding_door_mahogany_a_o' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c' ) or ( node.name == 'homedecor:folding_door_mahogany_b_o' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_mahogany_folding_door_placed )
minetest.register_on_punchnode( on_mahogany_folding_door_punched )
minetest.register_on_dignode( on_mahogany_folding_door_digged )
-- Nodes used to build up mahogany doors
minetest.register_node('homedecor:folding_door_mahogany_a_c', {
description = "Mahogany Folding Door (top, closed)",
tile_images = { 'homedecor_folding_door_mahogany_a.png' },
inventory_image = 'homedecor_folding_door_mahogany_a.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_b_c', {
description = "Mahogany Folding Door (bottom, closed)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b.png' },
inventory_image = 'homedecor_folding_door_mahogany_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_a_o', {
description = "Mahogany Folding Door (top, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_a_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_a_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_b_o', {
description = "Mahogany Folding Door (bottom, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany',
})
-- ========================================
-- Mirrored version for right-opening doors
-- ========================================
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_mahogany_right', {
description = "Mahogany Folding Door (Right Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_right.png' },
inventory_image = 'homedecor_folding_door_mahogany_right.png',
wield_image = 'homedecor_folding_door_mahogany_right.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Mahogany door functions
local on_mahogany_folding_door_placed_right = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_mahogany_right' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_mahogany_right' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_mahogany_folding_door_punched_right = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_mahogany' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c_right', -8 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZr
elseif node.param2 == WALLMZ then
newparam = WALLMXr
elseif node.param2 == WALLMX then
newparam = WALLPZr
elseif node.param2 == WALLPZ then
newparam = WALLPXr
end
elseif string.find( node.name, '_o_right', -8 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPXr
elseif node.param2 == WALLMX then
newparam = WALLMZr
elseif node.param2 == WALLPZ then
newparam = WALLMXr
elseif node.param2 == WALLPX then
newparam = WALLPZr
end
end
if ( node.name == 'homedecor:folding_door_mahogany_a_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_o_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_o_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_a_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
end
end
local on_mahogany_folding_door_digged_right = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_mahogany_a_c_right' ) or ( node.name == 'homedecor:folding_door_mahogany_a_o_right' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c_right' ) or ( node.name == 'homedecor:folding_door_mahogany_b_o_right' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_mahogany_folding_door_placed_right )
minetest.register_on_punchnode( on_mahogany_folding_door_punched_right )
minetest.register_on_dignode( on_mahogany_folding_door_digged_right )
-- Nodes used to build up mahogany doors
minetest.register_node('homedecor:folding_door_mahogany_a_c_right', {
description = "Mahogany Folding Door (top, closed, right)",
tile_images = { 'homedecor_folding_door_mahogany_a_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_a_r.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_b_c_right', {
description = "Mahogany Folding Door (bottom, closed, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_a_o_right', {
description = "Mahogany Folding Door (top, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_a.png' },
inventory_image = 'homedecor_folding_door_mahogany_a.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_b_o_right', {
description = "Mahogany Folding Door (bottom, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b.png' },
inventory_image = 'homedecor_folding_door_mahogany_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany_right',
})
-- =======================================
-- Crafting recipes for all types of doors
-- =======================================
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany_right',
recipe = {
'homedecor:folding_door_mahogany',
},
})
minetest.register_craft({
type = 'shapeless',
output = 'homedecor:folding_door_mahogany',
recipe = {
'homedecor:folding_door_mahogany_right',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_mahogany',
burntime = 30,
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_mahogany_right',
burntime = 30,
})
-- You only need flowers to get the red dye necessary to actually
-- craft a mahogany door (either one), but not to /give or use one.
if ( minetest.get_modpath("flowers") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany',
recipe = {
'homedecor:folding_door_oak',
'unifieddyes:black',
'unifieddyes:red',
},
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany_right',
recipe = {
'homedecor:folding_door_oak_right',
'unifieddyes:black',
'unifieddyes:red',
},
})
end

442
foldingdoors_mahogany.lua~ Normal file
View File

@ -0,0 +1,442 @@
-- Mahogany "folding" doors - part of home decor mod by VanessaE
-- 2012-06-10
--
-- Copied and modified from Minetest's default doors mod.
--
-- License: GPL
--
local DEBUG = 1
local WALLMX = 3
local WALLMZ = 5
local WALLPX = 2
local WALLPZ = 4
local WALLMXr = 2
local WALLMZr = 4
local WALLPXr = 3
local WALLPZr = 5
local dbg = function(s)
if DEBUG == 1 then
print('[FOLDINGDOORS] ' .. s)
end
end
local round = function( n )
if n >= 0 then
return math.floor( n + 0.5 )
else
return math.ceil( n - 0.5 )
end
end
-- ==========================
-- Regular left-opening doors
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_mahogany', {
description = "Mahogany Folding Door (Left Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany.png' },
inventory_image = 'homedecor_folding_door_mahogany.png',
wield_image = 'homedecor_folding_door_mahogany.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Mahogany door functions
local on_mahogany_folding_door_placed = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_mahogany' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_mahogany' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_mahogany_folding_door_punched = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_mahogany' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c', -2 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZ
elseif node.param2 == WALLMZ then
newparam = WALLMX
elseif node.param2 == WALLMX then
newparam = WALLPZ
elseif node.param2 == WALLPZ then
newparam = WALLPX
end
elseif string.find( node.name, '_o', -2 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPX
elseif node.param2 == WALLMX then
newparam = WALLMZ
elseif node.param2 == WALLPZ then
newparam = WALLMX
elseif node.param2 == WALLPX then
newparam = WALLPZ
end
end
if ( node.name == 'homedecor:folding_door_mahogany_a_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_o', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_o', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_a_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c', param2 = newparam } )
end
end
local on_mahogany_folding_door_digged = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_mahogany_a_c' ) or ( node.name == 'homedecor:folding_door_mahogany_a_o' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c' ) or ( node.name == 'homedecor:folding_door_mahogany_b_o' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_mahogany_folding_door_placed )
minetest.register_on_punchnode( on_mahogany_folding_door_punched )
minetest.register_on_dignode( on_mahogany_folding_door_digged )
-- Nodes used to build up mahogany doors
minetest.register_node('homedecor:folding_door_mahogany_a_c', {
description = "Mahogany Folding Door (top, closed)",
tile_images = { 'homedecor_folding_door_mahogany_a.png' },
inventory_image = 'homedecor_folding_door_mahogany_a.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_b_c', {
description = "Mahogany Folding Door (bottom, closed)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b.png' },
inventory_image = 'homedecor_folding_door_mahogany_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_a_o', {
description = "Mahogany Folding Door (top, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_a_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_a_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany',
})
minetest.register_node('homedecor:folding_door_mahogany_b_o', {
description = "Mahogany Folding Door (bottom, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany',
})
-- ========================================
-- Mirrored version for right-opening doors
-- ========================================
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_mahogany_right', {
description = "Mahogany Folding Door (Right Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_right.png' },
inventory_image = 'homedecor_folding_door_mahogany_right.png',
wield_image = 'homedecor_folding_door_mahogany_right.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
-- Mahogany door functions
local on_mahogany_folding_door_placed_right = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_mahogany_right' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_mahogany_right' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_mahogany_folding_door_punched_right = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_mahogany' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c_right', -8 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZr
elseif node.param2 == WALLMZ then
newparam = WALLMXr
elseif node.param2 == WALLMX then
newparam = WALLPZr
elseif node.param2 == WALLPZ then
newparam = WALLPXr
end
elseif string.find( node.name, '_o_right', -8 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPXr
elseif node.param2 == WALLMX then
newparam = WALLMZr
elseif node.param2 == WALLPZ then
newparam = WALLMXr
elseif node.param2 == WALLPX then
newparam = WALLPZr
end
end
if ( node.name == 'homedecor:folding_door_mahogany_a_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_o_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_o_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_a_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_mahogany_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_mahogany_a_c_right', param2 = newparam } )
end
end
local on_mahogany_folding_door_digged_right = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_mahogany_a_c_right' ) or ( node.name == 'homedecor:folding_door_mahogany_a_o_right' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_mahogany_b_c_right' ) or ( node.name == 'homedecor:folding_door_mahogany_b_o_right' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_mahogany_folding_door_placed_right )
minetest.register_on_punchnode( on_mahogany_folding_door_punched_right )
minetest.register_on_dignode( on_mahogany_folding_door_digged_right )
-- Nodes used to build up mahogany doors
minetest.register_node('homedecor:folding_door_mahogany_a_c_right', {
description = "Mahogany Folding Door (top, closed, right)",
tile_images = { 'homedecor_folding_door_mahogany_a_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_a_r.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_b_c_right', {
description = "Mahogany Folding Door (bottom, closed, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b_r.png' },
inventory_image = 'homedecor_folding_door_mahogany_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_a_o_right', {
description = "Mahogany Folding Door (top, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_a.png' },
inventory_image = 'homedecor_folding_door_mahogany_a.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany_right',
})
minetest.register_node('homedecor:folding_door_mahogany_b_o_right', {
description = "Mahogany Folding Door (bottom, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_mahogany_b.png' },
inventory_image = 'homedecor_folding_door_mahogany_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = 'wallmounted',
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_mahogany_right',
})
-- =======================================
-- Crafting recipes for all types of doors
-- =======================================
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany_right',
recipe = {
'homedecor:folding_door_mahogany',
},
})
minetest.register_craft({
type = 'shapeless',
output = 'homedecor:folding_door_mahogany',
recipe = {
'homedecor:folding_door_mahogany_right',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_mahogany',
burntime = 30,
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_mahogany_right',
burntime = 30,
})
-- You only need flowers to get the red dye necessary to actually
-- craft a mahogany door (either one), but not to /give or use one.
if ( minetest.get_modpath("flowers") ) ~= nil then
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany',
recipe = {
'homedecor:folding_door_oak',
'homedecor:dye_black',
'homedecor:dye_red',
},
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_mahogany_right',
recipe = {
'homedecor:folding_door_oak_right',
'homedecor:dye_black',
'homedecor:dye_red',
},
})
end

420
foldingdoors_oak.lua Normal file
View File

@ -0,0 +1,420 @@
-- Oak "folding" doors - part of home decor mod by VanessaE
-- 2012-06-10
--
-- Copied and modified from Minetest's default doors mod.
--
-- License: GPL
--
local DEBUG = 1
local WALLMX = 3
local WALLMZ = 5
local WALLPX = 2
local WALLPZ = 4
local WALLMXr = 2
local WALLMZr = 4
local WALLPXr = 3
local WALLPZr = 5
local dbg = function(s)
if DEBUG == 1 then
print('[FOLDINGDOORS] ' .. s)
end
end
local round = function( n )
if n >= 0 then
return math.floor( n + 0.5 )
else
return math.ceil( n - 0.5 )
end
end
-- ==========================
-- Regular left-opening doors
minetest.register_node('homedecor:folding_door_oak', {
description = "Oak Folding Door (Left Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak.png' },
inventory_image = 'homedecor_folding_door_oak.png',
wield_image = 'homedecor_folding_door_oak.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
local on_oak_folding_door_placed = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_oak' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_oak_b_c', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_oak_a_c', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_oak' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_oak_folding_door_punched = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_oak' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c', -2 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZ
elseif node.param2 == WALLMZ then
newparam = WALLMX
elseif node.param2 == WALLMX then
newparam = WALLPZ
elseif node.param2 == WALLPZ then
newparam = WALLPX
end
elseif string.find( node.name, '_o', -2 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPX
elseif node.param2 == WALLMX then
newparam = WALLMZ
elseif node.param2 == WALLPZ then
newparam = WALLMX
elseif node.param2 == WALLPX then
newparam = WALLPZ
end
end
if ( node.name == 'homedecor:folding_door_oak_a_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_a_o', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_oak_b_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_oak_b_c' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_b_o', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_oak_a_o', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_oak_a_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_a_c', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_oak_b_c', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_oak_b_o' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_b_c', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_oak_a_c', param2 = newparam } )
end
end
local on_oak_folding_door_digged = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_oak_a_c' ) or ( node.name == 'homedecor:folding_door_oak_a_o' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_oak_b_c' ) or ( node.name == 'homedecor:folding_door_oak_b_o' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_oak_folding_door_placed )
minetest.register_on_punchnode( on_oak_folding_door_punched )
minetest.register_on_dignode( on_oak_folding_door_digged )
-- Nodes to build up oak folding doors
minetest.register_node('homedecor:folding_door_oak_a_c', {
description = "Oak Folding Door (top, closed)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_a.png' },
inventory_image = 'homedecor_folding_door_oak_a.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_oak',
})
minetest.register_node('homedecor:folding_door_oak_b_c', {
description = "Oak Folding Door (bottom, closed)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_b.png' },
inventory_image = 'homedecor_folding_door_oak_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_oak',
})
minetest.register_node('homedecor:folding_door_oak_a_o', {
description = "Oak Folding Door (top, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_a_r.png' },
inventory_image = 'homedecor_folding_door_oak_a_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_oak',
})
minetest.register_node('homedecor:folding_door_oak_b_o', {
description = "Oak Folding Door (bottom, open)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_b_r.png' },
inventory_image = 'homedecor_folding_door_oak_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_oak',
})
-- ========================================
-- Mirrored version for right-opening doors
-- ========================================
-- Actual nodes that you place
minetest.register_node('homedecor:folding_door_oak_right', {
description = "Oak Folding Door (Right Opening)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_right.png' },
inventory_image = 'homedecor_folding_door_oak_right.png',
wield_image = 'homedecor_folding_door_oak_right.png',
paramtype2 = "wallmounted",
selection_box = { type = "wallmounted" },
groups = { choppy = 2, dig_immediate=2 },
})
local on_oak_folding_door_placed_right = function( pos, node, placer )
if node.name ~= 'homedecor:folding_door_oak_right' then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
und = minetest.env:get_node( upos )
abv = minetest.env:get_node( apos )
dir = placer:get_look_dir()
if round( dir.x ) == 1 then
newparam = WALLMX
elseif round( dir.x ) == -1 then
newparam = WALLPX
elseif round( dir.z ) == 1 then
newparam = WALLMZ
elseif round( dir.z ) == -1 then
newparam = WALLPZ
end
if und.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_oak_b_c_right', param2 = newparam } )
elseif abv.name == 'air' then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_oak_a_c_right', param2 = newparam } )
else
minetest.env:remove_node( pos )
placer:get_inventory():add_item( "main", 'homedecor:folding_door_oak_right' )
minetest.chat_send_player( placer:get_player_name(), 'not enough space' )
end
end
local on_oak_folding_door_punched_right = function( pos, node, puncher )
if string.find( node.name, 'homedecor:folding_door_oak' ) == nil then return end
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if string.find( node.name, '_c_right', -8 ) ~= nil then
if node.param2 == WALLPX then
newparam = WALLMZr
elseif node.param2 == WALLMZ then
newparam = WALLMXr
elseif node.param2 == WALLMX then
newparam = WALLPZr
elseif node.param2 == WALLPZ then
newparam = WALLPXr
end
elseif string.find( node.name, '_o_right', -8 ) ~= nil then
if node.param2 == WALLMZ then
newparam = WALLPXr
elseif node.param2 == WALLMX then
newparam = WALLMZr
elseif node.param2 == WALLPZ then
newparam = WALLMXr
elseif node.param2 == WALLPX then
newparam = WALLPZr
end
end
if ( node.name == 'homedecor:folding_door_oak_a_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_a_o_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_oak_b_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_oak_b_c_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_b_o_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_oak_a_o_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_oak_a_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_a_c_right', param2 = newparam } )
minetest.env:add_node( upos, { name = 'homedecor:folding_door_oak_b_c_right', param2 = newparam } )
elseif ( node.name == 'homedecor:folding_door_oak_b_o_right' ) then
minetest.env:add_node( pos, { name = 'homedecor:folding_door_oak_b_c_right', param2 = newparam } )
minetest.env:add_node( apos, { name = 'homedecor:folding_door_oak_a_c_right', param2 = newparam } )
end
end
local on_oak_folding_door_digged_right = function( pos, node, digger )
upos = { x = pos.x, y = pos.y - 1, z = pos.z }
apos = { x = pos.x, y = pos.y + 1, z = pos.z }
if ( node.name == 'homedecor:folding_door_oak_a_c_right' ) or ( node.name == 'homedecor:folding_door_oak_a_o_right' ) then
minetest.env:remove_node( upos )
elseif ( node.name == 'homedecor:folding_door_oak_b_c_right' ) or ( node.name == 'homedecor:folding_door_oak_b_o_right' ) then
minetest.env:remove_node( apos )
end
end
minetest.register_on_placenode( on_oak_folding_door_placed_right )
minetest.register_on_punchnode( on_oak_folding_door_punched_right )
minetest.register_on_dignode( on_oak_folding_door_digged_right )
-- Nodes to build up oak folding doors
minetest.register_node('homedecor:folding_door_oak_a_c_right', {
description = "Oak Folding Door (top, closed, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_a_r.png' },
inventory_image = 'homedecor_folding_door_oak_a_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_oak_right',
})
minetest.register_node('homedecor:folding_door_oak_b_c_right', {
description = "Oak Folding Door (bottom, closed, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_b_r.png' },
inventory_image = 'homedecor_folding_door_oak_b_r.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted" },
drop = 'homedecor:folding_door_oak_right',
})
minetest.register_node('homedecor:folding_door_oak_a_o_right', {
description = "Oak Folding Door (top, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_a.png' },
inventory_image = 'homedecor_folding_door_oak_a.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_oak_right',
})
minetest.register_node('homedecor:folding_door_oak_b_o_right', {
description = "Oak Folding Door (bottom, open, right)",
drawtype = 'signlike',
tile_images = { 'homedecor_folding_door_oak_b.png' },
inventory_image = 'homedecor_folding_door_oak_b.png',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
groups = { choppy = 2, dig_immediate=2 },
selection_box = { type = "wallmounted", },
drop = 'homedecor:folding_door_oak_right',
})
-- =======================================
-- Crafting recipes for all types of doors
-- =======================================
minetest.register_craft( {
output = 'homedecor:folding_door_oak',
recipe = {
{ 'default:stick', 'default:stick', '' },
{ 'default:stick', 'default:stick', 'default:steel_ingot' },
{ 'default:stick', 'default:stick', '' },
},
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_oak_right',
recipe = {
'homedecor:folding_door_oak',
},
})
minetest.register_craft( {
type = 'shapeless',
output = 'homedecor:folding_door_oak',
recipe = {
'homedecor:folding_door_oak_right',
},
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_oak',
burntime = 30,
})
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:folding_door_oak_right',
burntime = 30,
})

985
init.lua Normal file
View File

@ -0,0 +1,985 @@
-- Home Decor mod by VanessaE
-- 2012-06-12
--
-- Mostly my own code, with bits and pieces lifted from Minetest's default
-- lua files, from ironzorg's flowers mod
--
-- See also, foldingdoors.lua (borrowed heavily from Minetest's default
-- doors mod)
--
-- This mod requires the presence of the "unifieddyes" mod, which also
-- supplies ironzorg's flowers mod.
--
-- License: GPL
--
dofile(minetest.get_modpath("homedecor").."/foldingdoors_oak.lua")
dofile(minetest.get_modpath("homedecor").."/foldingdoors_mahogany.lua")
dofile(minetest.get_modpath("homedecor").."/exterior_door_fancy.lua")
dofile(minetest.get_modpath("homedecor").."/crafts.lua")
local DEBUG = 1
-- Local Functions
local dbg = function(s)
if DEBUG == 1 then
print('[HomeDecor] ' .. s)
end
end
-- Nodes
minetest.register_node('homedecor:shingles_wood', {
description = "Wood Shingles",
drawtype = 'raillike',
tile_images = { 'homedecor_shingles_wood.png' },
wield_image = 'homedecor_shingles_wood.png',
inventory_image = 'homedecor_shingles_wood.png',
paramtype = 'light',
sunlight_propagates = false,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:skylight', {
description = "Glass Skylight",
drawtype = 'raillike',
tile_images = { 'default_glass.png' },
wield_image = 'default_glass.png',
inventory_image = 'default_glass.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:shingles_asphalt', {
description = "Asphalt Shingles",
drawtype = 'raillike',
tile_images = { 'homedecor_shingles_asphalt.png' },
wield_image = 'homedecor_shingles_asphalt.png',
inventory_image = 'homedecor_shingles_asphalt.png',
paramtype = 'light',
sunlight_propagates = false,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:shingles_terracotta', {
description = "Terracotta Roofing",
drawtype = 'raillike',
tile_images = { 'homedecor_shingles_terracotta.png' },
wield_image = 'homedecor_shingles_terracotta.png',
inventory_image = 'homedecor_shingles_terracotta.png',
paramtype = 'light',
sunlight_propagates = false,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
drop = 'homedecor:roof_tile_terracotta 4',
})
minetest.register_node('homedecor:projection_screen', {
description = "Projection Screen Material",
drawtype = 'signlike',
tile_images = { 'homedecor_projection_screen.png' },
wield_image = 'homedecor_projection_screen_inv.png',
inventory_image = 'homedecor_projection_screen_inv.png',
sunlight_propagates = false,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:ceiling_paint', {
description = "Textured Ceiling Paint",
drawtype = 'signlike',
tile_images = { 'homedecor_ceiling_paint.png' },
inventory_image = 'homedecor_ceiling_paint_roller.png',
wield_image = 'homedecor_ceiling_paint_roller.png',
sunlight_propagates = true,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:ceiling_tile', {
description = "Drop-Ceiling Tile",
drawtype = 'signlike',
tile_images = { 'homedecor_ceiling_tile.png' },
wield_image = 'homedecor_ceiling_tile.png',
inventory_image = 'homedecor_ceiling_tile.png',
sunlight_propagates = true,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:rug_small', {
description = "Small Throw Rug",
drawtype = 'signlike',
tile_images = { 'homedecor_rug_small.png' },
wield_image = 'homedecor_rug_small.png',
inventory_image = 'homedecor_rug_small.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:rug_large', {
description = "Large Area Rug",
drawtype = 'signlike',
tile_images = { 'homedecor_rug_large.png' },
wield_image = 'homedecor_rug_large.png',
inventory_image = 'homedecor_rug_large.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:glass_table_large', {
description = "Large Glass Table Piece",
drawtype = 'signlike',
tile_images = { 'homedecor_glass_table_large.png' },
wield_image = 'homedecor_glass_table_large.png',
inventory_image = 'homedecor_glass_table_large.png',
sunlight_propagates = true,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:glass_table_small_round', {
description = "Glass Table (Small, Round)",
drawtype = 'signlike',
tile_images = { 'homedecor_glass_table_small_round.png' },
wield_image = 'homedecor_glass_table_small_round.png',
inventory_image = 'homedecor_glass_table_small_round.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:glass_table_small_square', {
description = "Glass Table (Small, Square)",
drawtype = 'signlike',
tile_images = { 'homedecor_glass_table_small_square.png' },
wield_image = 'homedecor_glass_table_small_square.png',
inventory_image = 'homedecor_glass_table_small_square.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node("homedecor:table_legs_brass", {
description = "Brass Table Legs",
drawtype = "plantlike",
tile_images = {"homedecor_table_legs_brass.png"},
inventory_image = "homedecor_table_legs_brass.png",
wield_image = "homedecor_table_legs_brass.png",
visual_scale = 1.04,
paramtype = "light",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_leaves_defaults(),
walkable = true,
})
minetest.register_node("homedecor:table_legs_wrought_iron", {
description = "Brass Table Legs",
drawtype = "plantlike",
tile_images = {"homedecor_table_legs_wrought_iron.png"},
inventory_image = "homedecor_table_legs_wrought_iron.png",
wield_image = "homedecor_table_legs_wrought_iron.png",
visual_scale = 1.04,
paramtype = "light",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_leaves_defaults(),
walkable = true,
})
minetest.register_node('homedecor:television', {
description = "Small CRT Television",
tile_images = { 'homedecor_television_top.png',
'homedecor_television_bottom.png',
'homedecor_television_left.png',
'homedecor_television_right.png',
'homedecor_television_back.png',
'homedecor_television_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
light_source = LIGHT_MAX - 1,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:stereo', {
description = "Stereo Receiver",
tile_images = { 'homedecor_stereo_top.png',
'homedecor_stereo_bottom.png',
'homedecor_stereo_left.png',
'homedecor_stereo_right.png',
'homedecor_stereo_back.png',
'homedecor_stereo_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_oak_one_drawer', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_1_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_oak_two_drawers', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_2_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_mahogany_one_drawer', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_1_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_mahogany_two_drawers', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_2_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:utility_table_top', {
description = "Utility Table",
tile_images = { 'homedecor_utility_table_top.png' },
inventory_image = 'homedecor_utility_table_top.png',
wield_image = 'homedecor_utility_table_top.png',
drawtype = "signlike",
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:utility_table_legs', {
description = "Legs for Utility Table",
tile_images = { 'homedecor_utility_table_legs.png' },
inventory_image = 'homedecor_utility_table_legs_inv.png',
wield_image = 'homedecor_utility_table_legs.png',
visual_scale = 1.04,
sunlight_propagates = true,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
drawtype = "plantlike",
})
minetest.register_node('homedecor:flower_pot_terracotta', {
description = "Terracotta Flower Pot",
tile_images = { 'homedecor_flower_pot_terracotta_top.png',
'homedecor_flower_pot_terracotta_bottom.png',
'homedecor_flower_pot_terracotta_sides.png',
'homedecor_flower_pot_terracotta_sides.png',
'homedecor_flower_pot_terracotta_sides.png',
'homedecor_flower_pot_terracotta_sides.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:flower_pot_black', {
description = "Black Plastic Flower Pot",
tile_images = { 'homedecor_flower_pot_black_top.png',
'homedecor_flower_pot_black_bottom.png',
'homedecor_flower_pot_black_sides.png',
'homedecor_flower_pot_black_sides.png',
'homedecor_flower_pot_black_sides.png',
'homedecor_flower_pot_black_sides.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:flower_pot_green', {
description = "Green Plastic Flower Pot",
tile_images = { 'homedecor_flower_pot_green_top.png',
'homedecor_flower_pot_green_bottom.png',
'homedecor_flower_pot_green_sides.png',
'homedecor_flower_pot_green_sides.png',
'homedecor_flower_pot_green_sides.png',
'homedecor_flower_pot_green_sides.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:wood_table_large', {
description = "Wooden Tabletop piece",
tile_images = { 'homedecor_wood_table_large.png' },
inventory_image = 'homedecor_wood_table_large.png',
wield_image = 'homedecor_wood_table_large.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:wood_table_small_round', {
description = "Wooden Tabletop (Small, Round)",
tile_images = { 'homedecor_wood_table_small_round.png' },
inventory_image = 'homedecor_wood_table_small_round.png',
wield_image = 'homedecor_wood_table_small_round.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:wood_table_small_square', {
description = "Wooden Tabletop (Small, Square)",
tile_images = { 'homedecor_wood_table_small_square.png' },
inventory_image = 'homedecor_wood_table_small_square.png',
wield_image = 'homedecor_wood_table_small_square.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:folding_door_mahogany', {
description = "Mahogany Folding Door",
tile_images = { 'homedecor_folding_door_mahogany.png' },
inventory_image = 'homedecor_folding_door_mahogany.png',
wield_image = 'homedecor_folding_door_mahogany.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:folding_door_oak', {
description = "Oak Folding Door",
tile_images = { 'homedecor_folding_door_oak.png' },
inventory_image = 'homedecor_folding_door_oak.png',
wield_image = 'homedecor_folding_door_oak.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:dresser_mahogany_left_side', {
description = "Mahogany Dresser (Left Half)",
tile_images = { 'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_front_left.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:dresser_mahogany_right_side', {
description = "Mahogany Dresser (Right Half)",
tile_images = { 'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_front_right.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:dresser_oak_left_side', {
description = "Oak Dresser (Left Half)",
tile_images = { 'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_front_left.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:dresser_oak_right_side', {
description = "Oak Dresser (Right Half)",
tile_images = { 'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_front_right.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:shutter_black', {
description = "Wooden Shutter (Black)",
tile_images = { 'homedecor_window_shutter_black.png' },
inventory_image = 'homedecor_window_shutter_black.png',
wield_image = 'homedecor_window_shutter_black.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_mahogany', {
description = "Wooden Shutter (Unpainted Mahogany)",
tile_images = { 'homedecor_window_shutter_mahogany.png' },
inventory_image = 'homedecor_window_shutter_mahogany.png',
wield_image = 'homedecor_window_shutter_mahogany.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_oak', {
description = "Wooden Shutter (Unpainted Oak)",
tile_images = { 'homedecor_window_shutter_oak.png' },
inventory_image = 'homedecor_window_shutter_oak.png',
wield_image = 'homedecor_window_shutter_oak.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_dark_grey', {
description = "Wooden Shutter (Dark Grey)",
tile_images = { 'homedecor_window_shutter_dark_grey.png' },
inventory_image = 'homedecor_window_shutter_dark_grey.png',
wield_image = 'homedecor_window_shutter_dark_grey.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_forest_green', {
description = "Wooden Shutter (Forest Green)",
tile_images = { 'homedecor_window_shutter_forest_green.png' },
inventory_image = 'homedecor_window_shutter_forest_green.png',
wield_image = 'homedecor_window_shutter_forest_green.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_grey', {
description = "Wooden Shutter (Grey)",
tile_images = { 'homedecor_window_shutter_grey.png' },
inventory_image = 'homedecor_window_shutter_grey.png',
wield_image = 'homedecor_window_shutter_grey.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_light_blue', {
description = "Wooden Shutter (Light Blue)",
tile_images = { 'homedecor_window_shutter_light_blue.png' },
inventory_image = 'homedecor_window_shutter_light_blue.png',
wield_image = 'homedecor_window_shutter_light_blue.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_purple', {
description = "Wooden Shutter (Purple)",
tile_images = { 'homedecor_window_shutter_purple.png' },
inventory_image = 'homedecor_window_shutter_purple.png',
wield_image = 'homedecor_window_shutter_purple.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_red', {
description = "Wooden Shutter (Red)",
tile_images = { 'homedecor_window_shutter_red.png' },
inventory_image = 'homedecor_window_shutter_red.png',
wield_image = 'homedecor_window_shutter_red.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_white', {
description = "Wooden Shutter (White)",
tile_images = { 'homedecor_window_shutter_white.png' },
inventory_image = 'homedecor_window_shutter_white.png',
wield_image = 'homedecor_window_shutter_white.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:shutter_yellow', {
description = "Wooden Shutter (Yellow)",
tile_images = { 'homedecor_window_shutter_yellow.png' },
inventory_image = 'homedecor_window_shutter_yellow.png',
wield_image = 'homedecor_window_shutter_yellow.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:utilitytable2', {
description = "Utility table mk2",
tile_images = { 'homedecor_utility_table_top.png',
'homedecor_blanktile.png',
'homedecor_utility_table_legs.png',
'homedecor_utility_table_legs.png',
'homedecor_utility_table_legs.png',
'homedecor_utility_table_legs.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
-- ===================================================
-- everything after this line is for testing purposes.
-- ===================================================
-- cylinder-shaped objects courtesy Jeija
local cylbox = {}
local detail = 50
local sehne
local size = 0.2
for i = 1, detail-1 do
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
cylbox[i]={((i/detail)-0.5)*size, -0.5, -sehne*size, ((i/detail)+(1/detail)-0.5)*size, 0.5, sehne*size}
end
minetest.register_node("homedecor:pole_brass", {
description = "Brass Pole",
drawtype = "nodebox",
tile_images = {"homedecor_tile_brass2.png"},
inventory_image = "homedecor_pole_brass2.png",
wield_image = "homedecor_pole_brass2.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-size/2, -0.5, -size/2, size/2, 0.5, size/2},
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
node_box = {
type = "fixed",
fixed = cylbox,
}
})
minetest.register_node("homedecor:pole_wrought_iron", {
description = "Wrought Iron Pole",
drawtype = "nodebox",
tile_images = {"homedecor_tile_wrought_iron2.png"},
inventory_image = "homedecor_pole_wrought_iron.png",
wield_image = "homedecor_pole_wrought_iron.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}
},
node_box = {
type = "fixed",
fixed = {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("homedecor:fence_brass", {
description = "Brass Fence/railing",
drawtype = "fencelike",
tile_images = {"homedecor_tile_brass.png"},
inventory_image = "homedecor_fence_brass.png",
wield_image = "homedecor_pole_brass.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("homedecor:fence_wrought_iron", {
description = "Wrought Iron Fence/railing",
drawtype = "fencelike",
tile_images = {"homedecor_tile_wrought_iron.png"},
inventory_image = "homedecor_fence_wrought_iron.png",
wield_image = "homedecor_pole_wrought_iron.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node('homedecor:speaker', {
description = "Large Stereo Speaker",
tile_images = { 'homedecor_speaker_top.png',
'homedecor_speaker_bottom.png',
'homedecor_speaker_left.png',
'homedecor_speaker_right.png',
'homedecor_speaker_back.png',
'homedecor_speaker_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:speaker_small', {
description = "Small Surround Speaker",
drawtype = "nodebox",
tile_images = { 'homedecor_speaker_top.png',
'homedecor_speaker_bottom.png',
'homedecor_speaker_left.png',
'homedecor_speaker_right.png',
'homedecor_speaker_back.png',
'homedecor_speaker_front.png'},
selection_box = {
type = "fixed",
fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 }
},
node_box = {
type = "fixed",
fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 }
},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
print("[HomeDecor] Loaded!")

984
init.lua~ Normal file
View File

@ -0,0 +1,984 @@
-- Home Decor mod by VanessaE
-- 2012-06-12
--
-- Mostly my own code, with bits and pieces lifted from Minetest's default
-- lua files, from ironzorg's flowers mod
--
-- See also, foldingdoors.lua (borrowed heavily from Minetest's default
-- doors mod)
--
-- This mod requires the presence of the "unifieddyes" mod, which also
-- supplies ironzorg's flowers mod.
--
-- License: GPL
--
dofile(minetest.get_modpath("homedecor").."/foldingdoors_oak.lua")
dofile(minetest.get_modpath("homedecor").."/foldingdoors_mahogany.lua")
dofile(minetest.get_modpath("homedecor").."/crafts.lua")
local DEBUG = 1
-- Local Functions
local dbg = function(s)
if DEBUG == 1 then
print('[HomeDecor] ' .. s)
end
end
-- Nodes
minetest.register_node('homedecor:shingles_wood', {
description = "Wood Shingles",
drawtype = 'raillike',
tile_images = { 'homedecor_shingles_wood.png' },
wield_image = 'homedecor_shingles_wood.png',
inventory_image = 'homedecor_shingles_wood.png',
paramtype = 'light',
sunlight_propagates = false,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:skylight', {
description = "Glass Skylight",
drawtype = 'raillike',
tile_images = { 'default_glass.png' },
wield_image = 'default_glass.png',
inventory_image = 'default_glass.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:shingles_asphalt', {
description = "Asphalt Shingles",
drawtype = 'raillike',
tile_images = { 'homedecor_shingles_asphalt.png' },
wield_image = 'homedecor_shingles_asphalt.png',
inventory_image = 'homedecor_shingles_asphalt.png',
paramtype = 'light',
sunlight_propagates = false,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:shingles_terracotta', {
description = "Terracotta Roofing",
drawtype = 'raillike',
tile_images = { 'homedecor_shingles_terracotta.png' },
wield_image = 'homedecor_shingles_terracotta.png',
inventory_image = 'homedecor_shingles_terracotta.png',
paramtype = 'light',
sunlight_propagates = false,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
drop = 'homedecor:roof_tile_terracotta 4',
})
minetest.register_node('homedecor:projection_screen', {
description = "Projection Screen Material",
drawtype = 'signlike',
tile_images = { 'homedecor_projection_screen.png' },
wield_image = 'homedecor_projection_screen_inv.png',
inventory_image = 'homedecor_projection_screen_inv.png',
sunlight_propagates = false,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:ceiling_paint', {
description = "Textured Ceiling Paint",
drawtype = 'signlike',
tile_images = { 'homedecor_ceiling_paint.png' },
inventory_image = 'homedecor_ceiling_paint_roller.png',
wield_image = 'homedecor_ceiling_paint_roller.png',
sunlight_propagates = true,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:ceiling_tile', {
description = "Drop-Ceiling Tile",
drawtype = 'signlike',
tile_images = { 'homedecor_ceiling_tile.png' },
wield_image = 'homedecor_ceiling_tile.png',
inventory_image = 'homedecor_ceiling_tile.png',
sunlight_propagates = true,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:rug_small', {
description = "Small Throw Rug",
drawtype = 'signlike',
tile_images = { 'homedecor_rug_small.png' },
wield_image = 'homedecor_rug_small.png',
inventory_image = 'homedecor_rug_small.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:rug_large', {
description = "Large Area Rug",
drawtype = 'signlike',
tile_images = { 'homedecor_rug_large.png' },
wield_image = 'homedecor_rug_large.png',
inventory_image = 'homedecor_rug_large.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:glass_table_large', {
description = "Large Glass Table Piece",
drawtype = 'signlike',
tile_images = { 'homedecor_glass_table_large.png' },
wield_image = 'homedecor_glass_table_large.png',
inventory_image = 'homedecor_glass_table_large.png',
sunlight_propagates = true,
paramtype = 'light',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:glass_table_small_round', {
description = "Glass Table (Small, Round)",
drawtype = 'signlike',
tile_images = { 'homedecor_glass_table_small_round.png' },
wield_image = 'homedecor_glass_table_small_round.png',
inventory_image = 'homedecor_glass_table_small_round.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:glass_table_small_square', {
description = "Glass Table (Small, Square)",
drawtype = 'signlike',
tile_images = { 'homedecor_glass_table_small_square.png' },
wield_image = 'homedecor_glass_table_small_square.png',
inventory_image = 'homedecor_glass_table_small_square.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "wallmounted",
is_ground_content = true,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node("homedecor:table_legs_brass", {
description = "Brass Table Legs",
drawtype = "plantlike",
tile_images = {"homedecor_table_legs_brass.png"},
inventory_image = "homedecor_table_legs_brass.png",
wield_image = "homedecor_table_legs_brass.png",
visual_scale = 1.04,
paramtype = "light",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_leaves_defaults(),
walkable = true,
})
minetest.register_node("homedecor:table_legs_wrought_iron", {
description = "Brass Table Legs",
drawtype = "plantlike",
tile_images = {"homedecor_table_legs_wrought_iron.png"},
inventory_image = "homedecor_table_legs_wrought_iron.png",
wield_image = "homedecor_table_legs_wrought_iron.png",
visual_scale = 1.04,
paramtype = "light",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_leaves_defaults(),
walkable = true,
})
minetest.register_node('homedecor:television', {
description = "Small CRT Television",
tile_images = { 'homedecor_television_top.png',
'homedecor_television_bottom.png',
'homedecor_television_left.png',
'homedecor_television_right.png',
'homedecor_television_back.png',
'homedecor_television_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
light_source = LIGHT_MAX - 1,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:stereo', {
description = "Stereo Receiver",
tile_images = { 'homedecor_stereo_top.png',
'homedecor_stereo_bottom.png',
'homedecor_stereo_left.png',
'homedecor_stereo_right.png',
'homedecor_stereo_back.png',
'homedecor_stereo_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_oak_one_drawer', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_1_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_oak_two_drawers', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_sides.png',
'homedecor_nightstand_oak_2_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_mahogany_one_drawer', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_1_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:nightstand_mahogany_two_drawers', {
description = "Oak Nightstand with One Drawer",
tile_images = { 'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_sides.png',
'homedecor_nightstand_mahogany_2_drawer_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:utility_table_top', {
description = "Utility Table",
tile_images = { 'homedecor_utility_table_top.png' },
inventory_image = 'homedecor_utility_table_top.png',
wield_image = 'homedecor_utility_table_top.png',
drawtype = "signlike",
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:utility_table_legs', {
description = "Legs for Utility Table",
tile_images = { 'homedecor_utility_table_legs.png' },
inventory_image = 'homedecor_utility_table_legs_inv.png',
wield_image = 'homedecor_utility_table_legs.png',
visual_scale = 1.04,
sunlight_propagates = true,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
drawtype = "plantlike",
})
minetest.register_node('homedecor:flower_pot_terracotta', {
description = "Terracotta Flower Pot",
tile_images = { 'homedecor_flower_pot_terracotta_top.png',
'homedecor_flower_pot_terracotta_bottom.png',
'homedecor_flower_pot_terracotta_sides.png',
'homedecor_flower_pot_terracotta_sides.png',
'homedecor_flower_pot_terracotta_sides.png',
'homedecor_flower_pot_terracotta_sides.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:flower_pot_black', {
description = "Black Plastic Flower Pot",
tile_images = { 'homedecor_flower_pot_black_top.png',
'homedecor_flower_pot_black_bottom.png',
'homedecor_flower_pot_black_sides.png',
'homedecor_flower_pot_black_sides.png',
'homedecor_flower_pot_black_sides.png',
'homedecor_flower_pot_black_sides.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:flower_pot_green', {
description = "Green Plastic Flower Pot",
tile_images = { 'homedecor_flower_pot_green_top.png',
'homedecor_flower_pot_green_bottom.png',
'homedecor_flower_pot_green_sides.png',
'homedecor_flower_pot_green_sides.png',
'homedecor_flower_pot_green_sides.png',
'homedecor_flower_pot_green_sides.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:wood_table_large', {
description = "Wooden Tabletop piece",
tile_images = { 'homedecor_wood_table_large.png' },
inventory_image = 'homedecor_wood_table_large.png',
wield_image = 'homedecor_wood_table_large.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:wood_table_small_round', {
description = "Wooden Tabletop (Small, Round)",
tile_images = { 'homedecor_wood_table_small_round.png' },
inventory_image = 'homedecor_wood_table_small_round.png',
wield_image = 'homedecor_wood_table_small_round.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:wood_table_small_square', {
description = "Wooden Tabletop (Small, Square)",
tile_images = { 'homedecor_wood_table_small_square.png' },
inventory_image = 'homedecor_wood_table_small_square.png',
wield_image = 'homedecor_wood_table_small_square.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = "wallmounted",
is_ground_content = true,
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
})
minetest.register_node('homedecor:folding_door_mahogany', {
description = "Mahogany Folding Door",
tile_images = { 'homedecor_folding_door_mahogany.png' },
inventory_image = 'homedecor_folding_door_mahogany.png',
wield_image = 'homedecor_folding_door_mahogany.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:folding_door_oak', {
description = "Oak Folding Door",
tile_images = { 'homedecor_folding_door_oak.png' },
inventory_image = 'homedecor_folding_door_oak.png',
wield_image = 'homedecor_folding_door_oak.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:dresser_mahogany_left_side', {
description = "Mahogany Dresser (Left Half)",
tile_images = { 'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_front_left.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:dresser_mahogany_right_side', {
description = "Mahogany Dresser (Right Half)",
tile_images = { 'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_sides.png',
'homedecor_dresser_mahogany_front_right.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:dresser_oak_left_side', {
description = "Oak Dresser (Left Half)",
tile_images = { 'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_front_left.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:dresser_oak_right_side', {
description = "Oak Dresser (Right Half)",
tile_images = { 'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_sides.png',
'homedecor_dresser_oak_front_right.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:window_shutter_black', {
description = "Wooden Shutter (Black)",
tile_images = { 'homedecor_window_shutter_black.png' },
inventory_image = 'homedecor_window_shutter_black.png',
wield_image = 'homedecor_window_shutter_black.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_mahogany', {
description = "Wooden Shutter (Unpainted Mahogany)",
tile_images = { 'homedecor_window_shutter_mahogany.png' },
inventory_image = 'homedecor_window_shutter_mahogany.png',
wield_image = 'homedecor_window_shutter_mahogany.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_oak', {
description = "Wooden Shutter (Unpainted Oak)",
tile_images = { 'homedecor_window_shutter_oak.png' },
inventory_image = 'homedecor_window_shutter_oak.png',
wield_image = 'homedecor_window_shutter_oak.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_dark_grey', {
description = "Wooden Shutter (Dark Grey)",
tile_images = { 'homedecor_window_shutter_dark_grey.png' },
inventory_image = 'homedecor_window_shutter_dark_grey.png',
wield_image = 'homedecor_window_shutter_dark_grey.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_forest_green', {
description = "Wooden Shutter (Forest Green)",
tile_images = { 'homedecor_window_shutter_forest_green.png' },
inventory_image = 'homedecor_window_shutter_forest_green.png',
wield_image = 'homedecor_window_shutter_forest_green.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_grey', {
description = "Wooden Shutter (Grey)",
tile_images = { 'homedecor_window_shutter_grey.png' },
inventory_image = 'homedecor_window_shutter_grey.png',
wield_image = 'homedecor_window_shutter_grey.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_light_blue', {
description = "Wooden Shutter (Light Blue)",
tile_images = { 'homedecor_window_shutter_light_blue.png' },
inventory_image = 'homedecor_window_shutter_light_blue.png',
wield_image = 'homedecor_window_shutter_light_blue.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_purple', {
description = "Wooden Shutter (Purple)",
tile_images = { 'homedecor_window_shutter_purple.png' },
inventory_image = 'homedecor_window_shutter_purple.png',
wield_image = 'homedecor_window_shutter_purple.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_red', {
description = "Wooden Shutter (Red)",
tile_images = { 'homedecor_window_shutter_red.png' },
inventory_image = 'homedecor_window_shutter_red.png',
wield_image = 'homedecor_window_shutter_red.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_white', {
description = "Wooden Shutter (White)",
tile_images = { 'homedecor_window_shutter_white.png' },
inventory_image = 'homedecor_window_shutter_white.png',
wield_image = 'homedecor_window_shutter_white.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:window_shutter_yellow', {
description = "Wooden Shutter (Yellow)",
tile_images = { 'homedecor_window_shutter_yellow.png' },
inventory_image = 'homedecor_window_shutter_yellow.png',
wield_image = 'homedecor_window_shutter_yellow.png',
drawtype = 'signlike',
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
})
minetest.register_node('homedecor:utilitytable2', {
description = "Utility table mk2",
tile_images = { 'homedecor_utility_table_top.png',
'homedecor_blanktile.png',
'homedecor_utility_table_legs.png',
'homedecor_utility_table_legs.png',
'homedecor_utility_table_legs.png',
'homedecor_utility_table_legs.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
-- ===================================================
-- everything after this line is for testing purposes.
-- ===================================================
-- cylinder-shaped objects courtesy Jeija
local cylbox = {}
local detail = 50
local sehne
local size = 0.2
for i = 1, detail-1 do
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
cylbox[i]={((i/detail)-0.5)*size, -0.5, -sehne*size, ((i/detail)+(1/detail)-0.5)*size, 0.5, sehne*size}
end
minetest.register_node("homedecor:pole_brass", {
description = "Brass Pole",
drawtype = "nodebox",
tile_images = {"homedecor_tile_brass2.png"},
inventory_image = "homedecor_pole_brass2.png",
wield_image = "homedecor_pole_brass2.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-size/2, -0.5, -size/2, size/2, 0.5, size/2},
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
node_box = {
type = "fixed",
fixed = cylbox,
}
})
minetest.register_node("homedecor:pole_wrought_iron", {
description = "Wrought Iron Pole",
drawtype = "nodebox",
tile_images = {"homedecor_tile_wrought_iron2.png"},
inventory_image = "homedecor_pole_wrought_iron.png",
wield_image = "homedecor_pole_wrought_iron.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}
},
node_box = {
type = "fixed",
fixed = {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("homedecor:fence_brass", {
description = "Brass Fence/railing",
drawtype = "fencelike",
tile_images = {"homedecor_tile_brass.png"},
inventory_image = "homedecor_fence_brass.png",
wield_image = "homedecor_pole_brass.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("homedecor:fence_wrought_iron", {
description = "Wrought Iron Fence/railing",
drawtype = "fencelike",
tile_images = {"homedecor_tile_wrought_iron.png"},
inventory_image = "homedecor_fence_wrought_iron.png",
wield_image = "homedecor_pole_wrought_iron.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node('homedecor:speaker', {
description = "Large Stereo Speaker",
tile_images = { 'homedecor_speaker_top.png',
'homedecor_speaker_bottom.png',
'homedecor_speaker_left.png',
'homedecor_speaker_right.png',
'homedecor_speaker_back.png',
'homedecor_speaker_front.png'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node('homedecor:speaker_small', {
description = "Small Surround Speaker",
drawtype = "nodebox",
tile_images = { 'homedecor_speaker_top.png',
'homedecor_speaker_bottom.png',
'homedecor_speaker_left.png',
'homedecor_speaker_right.png',
'homedecor_speaker_back.png',
'homedecor_speaker_front.png'},
selection_box = {
type = "fixed",
fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 }
},
node_box = {
type = "fixed",
fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 }
},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
})
print("[HomeDecor] Loaded!")

13
listnodes.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
echo "Node listing as of "`date` > nodes.txt
for i in *.lua; do
echo -e "\nIn $i:\n" >> nodes.txt
cat $i | grep "minetest.register_node(" | \
sed "s/minetest.register_node(.homedecor:/homedecor:/; s/., {//" | \
sort >> nodes.txt
done
less nodes.txt
rm -f nodes.txt

BIN
textures/Untitled.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 B

Some files were not shown because too many files have changed in this diff Show More