1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-06-28 12:56:01 +02:00

Compare commits

...

63 Commits

Author SHA1 Message Date
3b98245930 Merge remote-tracking branch 'upstream/master' 2022-06-25 16:49:30 +02:00
97d4c65230 remove weird, redundant loop
the removed loop was doing the same thing as the `stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")` line below, but causing a crash when using the (not yet pulled) new stairsplus API https://github.com/minetest-mods/moreblocks/pull/191
2022-06-24 18:16:49 +02:00
acf17f2ba4 Replace deprecated functions (#37) 2022-06-18 18:44:02 +10:00
d667e39851 Merge remote-tracking branch 'upstream/master' 2022-05-27 18:34:18 +02:00
5ffdc26673 fix https://github.com/mt-mods/homedecor_modpack/issues/34 2022-05-16 22:41:02 -04:00
70381161fd fix recipes broken by 546cd711
fixes #35
2022-05-14 21:49:02 +10:00
fe1b9a1ef1 remove obsolete and broken shell script 2022-05-03 15:22:48 -04:00
546cd7110f make homedecor game agnostic (#28)
* make materials.lua with hades, minetest game, farlands items

* make textures file for central handling

* make mods game agnostic

* take out the trash

* handle multiple seats in sofas

* add github luacheck workflow and various luacheck fixes

* add fluxionary scope creep

* fix devtest breaking right to a name policy

Co-authored-by: wsor4035 <24964441+wsor4035@users.noreply.github.com>
Co-authored-by: SFENCE <sfence.software@gmail.com>
2022-05-03 15:21:14 -04:00
3ba59dc2d5 fix almost all warning spam (#26) 2022-03-29 07:44:05 +02:00
2f0e52f978 add skinsdb hand support for wardrobe skins (#24)
* add skinsdb hand support for wardrobe skins

* add compatibility to previous skinsdb version
2022-03-06 12:20:18 -05:00
680f8e8995 Merge remote-tracking branch 'upstream/master' 2022-03-06 16:31:31 +01:00
694bfe5fe7 namespace plasmascreen and inbox (#22) 2022-02-14 17:54:32 -05:00
769e14fd11 refactor doors code (#21) 2022-02-11 15:44:45 -05:00
16bcc35ba2 remove legacy files 2022-02-10 20:26:41 -05:00
0c2271fa46 fixes warning spam (#20)
* fix fake fire warnings

* fix hd 3d extras warnings

* fix hd climate control warnings

* fix hd clocks warnings

* fix hd cobweb warnings

* fix hd doors/gates warnings

* fix hd exterior warnings

* fix hd fences warnings

* fix hd gastronomy warnings

* fix hd kitchen missing dependency

* fix hd office warnings

* fix hd roofing warnings

* fix hd table warnings

* fix hd trash cans warnings

* fix hd wardrobe warnings

* remove legacy hack
2022-02-07 08:18:17 -05:00
d68e90f017 add hopper support (#18) 2022-02-03 18:40:38 -05:00
a8fceb249d Merge pull request #16 from mt-mods/stairs
drop stairs api support and fix use_texture_alpha for stairs
2021-11-28 00:22:31 -05:00
21ae9f8c17 drop stairs api support and fix use_texture_alpha for stairs 2021-11-27 23:43:59 -05:00
63ad77e242 make beds sleepable https://github.com/mt-mods/homedecor_modpack/issues/13 2021-11-27 20:51:47 -05:00
32a32fa003 fix health expliot https://github.com/mt-mods/homedecor_modpack/issues/14 2021-11-27 20:43:25 -05:00
d9c42344ab fix removing item with inv contents https://github.com/mt-mods/homedecor_modpack/issues/3 2021-11-27 20:32:13 -05:00
f6f6f3a3c3 fix depreciated setyaw call https://github.com/mt-mods/homedecor_modpack/issues/7 2021-11-27 19:56:36 -05:00
3d63271855 Merge remote-tracking branch 'upstream/master' 2021-06-20 17:10:29 +02:00
f1dc68ab21 Merge branch 'master' into 'master'
Fix broken kitchen cabinet recipes

Closes #39

See merge request VanessaE/homedecor_modpack!22
2021-05-18 06:58:39 +00:00
240c735225 fix broken kitchen cabinet recipes 2021-05-18 16:47:44 +10:00
e0bc27c825 Merge remote-tracking branch 'upstream/master' 2021-04-17 13:48:14 +02:00
b6c64c6314 fix broken LBM reference for locked kitchen cabinets 2021-04-15 06:47:47 -04:00
2814f672f0 Merge remote-tracking branch 'upstream/master' 2021-04-04 20:59:35 +02:00
790c03213d fix not-locked drawers not showing up in creative inv
(well not showing up in Unified Inventory anyway :-P )
2021-03-30 21:18:45 -04:00
81e0d4ea7e fix faucets/taps not working on kitchen sinks anymore 2021-03-30 20:55:34 -04:00
9ffe2b7d69 move some alises to their proper places. 2021-03-26 23:29:20 -04:00
0268767ac9 remove unused recipes from furniture mod
some deleted altogether as redundant,
others moved to the proper mods.
2021-03-26 23:27:13 -04:00
950210a6e3 move old 3dforniture-style table into the proper mod 2021-03-26 23:17:21 -04:00
c70fb1a1ed auto-combine tabletops with legs
If the player places table legs, and then places a tabletop while
pointing at the legs (from any side), the table and legs will
automatically be combined into a single node that can then have
something placed on top like usual.

This also gets rid of those redundant "utility" table nodes, since
these have always basically just been a set of legs, and a copy
of the small square wood table.  Now they're merged into the above
feature, and aliased as appropriate.

Tecccccccccchhnically, wood legs should only have been allowed to
combine with wooden tabletops...  then I googled around a bit,
and found a number of glass tables with wooden legs that were
surprisingly similar to the in-game versions.
2021-03-26 23:08:06 -04:00
40cd59aa24 get rid of old table conversion abms 2021-03-26 17:02:25 -04:00
da1f2b1430 use swap_node(), not set_node() 2021-03-26 09:44:02 -04:00
2ba84b1e3c Merge remote-tracking branch 'upstream/master' 2021-03-12 12:20:39 +01:00
00d935de60 Merge branch 'gitlab' 2021-03-02 23:45:38 +01:00
6700f2b935 Fix use_texture_alpha for homedecor:skylight_frosted 2021-03-02 23:42:06 +01:00
6e973c3830 Merge remote-tracking branch 'upstream/master' 2021-03-02 23:11:41 +01:00
177a97eab3 Merge remote-tracking branch 'upstream/master' 2021-01-31 13:39:49 +01:00
a832b66977 Merge remote-tracking branch 'upstream/master' 2021-01-29 17:42:33 +01:00
df9e8aea4b Merge remote-tracking branch 'upstream/master' 2021-01-24 12:40:06 +01:00
99a01301a8 Merge remote-tracking branch 'upstream/master' 2020-12-03 20:50:27 +01:00
2ef259fa24 Merge remote-tracking branch 'upstream/master' 2020-11-25 21:53:41 +01:00
caaa963eaf Merge remote-tracking branch 'upstream/master' 2020-10-14 21:31:35 +02:00
e5866b7928 Merge remote-tracking branch 'upstream/master' 2020-10-12 18:43:38 +02:00
b6ecc0b95f Merge remote-tracking branch 'upstream/master' 2020-10-09 19:30:42 +02:00
320cd1d449 Merge remote-tracking branch 'upstream/master' 2020-09-15 21:39:14 +02:00
3675e9c266 Merge remote-tracking branch 'upstream/master' 2020-08-19 21:23:52 +02:00
3567b42c39 Merge remote-tracking branch 'upstream/master' 2020-08-08 10:04:04 +02:00
bd67ba2499 Merge remote-tracking branch 'upstream/master' 2020-08-04 20:48:58 +02:00
5612f4c884 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-16 22:26:41 +02:00
7bcfbbca3a Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-02-09 21:38:24 +01:00
e372ccb4d8 Merge branch 'master' of yunohost:mtcontrib/homedecor_modpack into nalc-1.2-dev 2019-12-22 13:26:45 +01:00
5c6a994698 Merge branch 'nalc-1.2' of yunohost:nalc/homedecor_modpack into nalc-1.2 2019-05-26 19:11:29 +02:00
1eec6e3615 Merge branch 'master' into nalc-1.2 2019-05-26 19:07:00 +02:00
0753606eb0 Merge branch 'master' into nalc-1.2 2019-05-25 15:36:01 +02:00
778b5493c7 Merge branch 'master' into nalc-1.2 2019-05-09 22:11:30 +02:00
fb0ca9a15c Supprime 2 dossiers non supprimés par le merge précédent 2019-05-04 20:45:50 +02:00
1520d27a73 Merge branch 'master' into nalc-1.2 2019-05-04 19:25:15 +02:00
5d4c64d3b2 Corrige problème de stack des lampes dans inventaire après récolte.
L'auteur du mod a oublié de définir la variable drop des objets
concernés :
- homedecor:glowlight_half,
- homedecor:glowlight_quarter,
- homedecor:glowlight_small_cube,
- homedecor:standing_lamp_off,
- homedecor:desk_lamp.
2019-04-07 14:04:00 +02:00
4eb9ffb088 Ajoute messages de chargement des mods dans le journal "action" 2018-12-25 17:41:16 +01:00
200 changed files with 4762 additions and 3667 deletions

11
.github/workflows/luacheck.yml vendored Normal file
View File

@ -0,0 +1,11 @@
name: luacheck
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: Roang-zero1/factorio-mod-luacheck@master
with:
luacheckrc_url: ""

42
.luacheckrc Normal file
View File

@ -0,0 +1,42 @@
unused_args = false
globals = {
"homedecor",
"homedecor_lighting",
"homedecor_windows_and_treatments",
"homedecor_roofing",
"homedecor_misc",
"homedecor_exterior",
"homedecor_electrical",
"homedecor_cobweb",
"lavalamp",
"lrfurn",
"signs_lib",
"homedecor_doors_and_gates",
-- mod-deps
"armor"
}
read_globals = {
"minetest", "core",
"vector", "ItemStack",
"dump",
-- Stdlib
string = {fields = {"split", "trim"}},
table = {fields = {"copy", "getn"}},
-- mod-deps
"default",
"unifieddyes",
"player_api",
"screwdriver",
"hopper",
"mesecon",
"skins",
"stairsplus",
"creative",
"doors",
"i3",
}

8
README
View File

@ -1,8 +0,0 @@
This is what I consider to be a fairly feature-filled home decor modpack.
See the forum thread at
https://forum.minetest.net/viewtopic.php?f=11&t=2041 for details about
this modpack.
Dependencies: unifieddyes and a Minetest engine build newer than 2017-01-23.
Recommends: signs_lib, windmill, moreblocks, unified_inventory.

31
README.md Normal file
View File

@ -0,0 +1,31 @@
# Minetest Homedecor Modpack
[![ContentDB](https://content.minetest.net/packages/VanessaE/homedecor_modpack/shields/downloads/)](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
A fairly feature-filled home decor modpack that is game agnostic.
## About
first class support for:
* Minetest Game
* Farlands Reloaded
* Hades
* Mineclone2, Mineclone5
## Links
* [Github](https://github.com/mt-mods/homedecor_modpack)
* [Contentdb](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
* [Forums](https://forum.minetest.net/viewtopic.php?f=11&t=2041)
# Setup
required:
* [Unifieddyes](https://github.com/mt-mods/unifieddyes)
* [Basic Materials](https://github.com/mt-mods/basic_materials)
optional:
* [Sound Api](https://github.com/mt-mods/sound_api) - note: needed for sound support

View File

@ -1,19 +0,0 @@
{
"name": "homedecor_modpack",
"description": "This mod adds a whole bunch of new items to Minetest suitable for decorating inside and outside a home.",
"keywords": [
"building",
"cosmetic",
"homedecor modpack",
"homedecor_modpack"
],
"homepage": "http://daconcepts.com/vanessa/hobbies/minetest/homedecor-crafting-guide/homedecor-craft-guide.html",
"project": "https://github.com/minetest-mods/homedecor_modpack",
"forum": "http://forum.minetest.net/viewtopic.php?f=11&t=2041",
"screenshots": [
"http://daconcepts.com/vanessa/hobbies/minetest/screenshots/homedecor1.png"
],
"authors": [
"VanessaE"
]
}

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"stairsplus",
"default",
"stairs",
}
globals = {
}

View File

@ -8,16 +8,9 @@ if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
end
if minetest.get_modpath("moreblocks") then
minetest.register_alias_force("moreblocks:tar", "building_blocks:Tar")
stairsplus:register_alias_all("building_blocks", "tar", "building_blocks", "Tar")
stairsplus:register_alias_all("building_blocks", "marble", "building_blocks", "Marble")
for _, i in ipairs(stairsplus.shapes_list) do
local class = i[1]
local cut = i[2]
minetest.unregister_item("moreblocks:"..class.."tar"..cut)
minetest.register_alias("moreblocks:"..class.."tar"..cut, "building_blocks:"..class.."tar"..cut)
end
minetest.unregister_item("moreblocks:tar")
minetest.register_alias("moreblocks:tar", "building_blocks:Tar")
stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")
if minetest.get_modpath("gloopblocks") then
@ -40,8 +33,10 @@ if not minetest.get_modpath("technic") then
description = S("Granite"),
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_craft({
output = "technic:granite 9",

View File

@ -4,3 +4,6 @@ dofile(modpath.."/alias.lua")
dofile(modpath.."/node_stairs.lua")
dofile(modpath.."/others.lua")
dofile(modpath.."/recipes.lua")
minetest.log("action", "[building_blocks] loaded.")

View File

@ -1,3 +1,3 @@
name = building_blocks
depends = default
optional_depends = moreblocks, gloopblocks, stairs
depends = homedecor_common
optional_depends = moreblocks, gloopblocks, stairs, default

View File

@ -1,136 +1,115 @@
local S = minetest.get_translator("building_blocks")
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
local function building_blocks_stairs(nodename, def)
minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
if minetest.get_modpath("moreblocks") then
local mod, name = nodename:match("(.*):(.*)")
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
local stairs_groups = {}
for _, groupname in ipairs(stairs_groups_names) do
stairs_groups[groupname] = def.groups[groupname]
end
stairsplus:register_all(mod, name, nodename, def)
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
mod,
name,
nodename,
{
description = def.description,
tiles = def.tiles,
groups = stairs_groups,
sounds = def.sounds,
}
)
else
stairs.register_stair_and_slab(name,nodename,
stairs_groups,
def.tiles,
def.stair_desc,
def.slab_desc,
def.sounds
--FIXME: Missing descriptions for Inner and Outer stairs
-- See https://github.com/minetest/minetest_game/pull/2584
)
end
minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
end
end
building_blocks_stairs("building_blocks:grate", {
drawtype = "glasslike",
description = S("Grate"),
stair_desc = S("Grate Stair"),
slab = S("Grate Slab"),
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_metal_defaults(),
use_texture_alpha = "clip",
groups = {cracky=1, dig_generic=3},
_sound_def = {
key = "node_sound_metal_defaults",
},
})
building_blocks_stairs("building_blocks:smoothglass", {
drawtype = "glasslike",
description = S("Streak Free Glass"),
stair_desc = S("Streak Free Glass Stair"),
slab_desc = S("Streak Free Glass Slab"),
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
})
building_blocks_stairs("building_blocks:woodglass", {
drawtype = "glasslike",
description = S("Wood Framed Glass"),
stair_desc = S("Wood Framed Glass Stair"),
slab_desc = S("Wood Framed Glass Slab"),
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
})
building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"),
stair_desc = S("Adobe Stair"),
slab_desc = S("Adobe Slab"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
groups = {crumbly=3, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
local grasstex = {"[combine:16x16^[noalpha^[colorize:#006400"}
if minetest.get_modpath("default") then
grasstex = minetest.registered_nodes["default:dirt_with_grass"].tiles
end
building_blocks_stairs("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
tiles = grasstex,
description = S("Fake Grass"),
stair_desc = S("Fake Grass Stair"),
slab_desc = S("Fake Grass Slab"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
groups = {crumbly=3, dig_sand=3},
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
description = S("Hardwood"),
stair_desc = S("Hardwood Stair"),
slab_desc = S("Hardwood Slab"),
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
groups = {choppy=1,flammable=1, dig_tree=1},
_sound_def = {
key = "node_sound_wood_defaults",
},
})
building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
description = S("Roof block"),
stair_desc = S("Roof block Stair"),
slab_desc = S("Roof block Slab"),
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
groups = {snappy=3, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"),
stair_desc = S("Tar Stair"),
slab_desc = S("Tar Slab"),
tiles = {"building_blocks_tar.png"},
is_ground_content = true,
groups = {crumbly=1, tar_block = 1},
sounds = default.node_sound_stone_defaults(),
groups = {crumbly=1, tar_block = 1, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"),
stair_desc = S("Marble Stair"),
slab_desc = S("Marble Slab"),
tiles = {"building_blocks_marble.png"},
is_ground_content = true,
groups = {cracky=3, marble = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, marble = 1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_node("building_blocks:brobble_spread", {
@ -144,34 +123,37 @@ minetest.register_node("building_blocks:brobble_spread", {
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
groups = {crumbly=3, dig_generic=4},
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
local graveltex = "[combine:16x16^[noalpha^[colorize:#3a3b3c"
if minetest.get_modpath("default") then
graveltex = "default_gravel.png"
end
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = S("Gravel Spread"),
tiles = {"default_gravel.png"},
tiles = {graveltex},
inventory_image = "building_blocks_gravel_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=2},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
groups = {crumbly=2, dig_generic=4},
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
end
@ -184,13 +166,15 @@ minetest.register_node("building_blocks:Tarmac_spread", {
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_dirt_defaults(),
groups = {cracky=3, dig_generic=4},
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
minetest.register_node("building_blocks:terrycloth_towel", {
drawtype = "raillike",
@ -201,12 +185,12 @@ minetest.register_node("building_blocks:terrycloth_towel", {
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
groups = {crumbly=3, dig_generic=4},
})
minetest.register_node("building_blocks:BWtile", {
@ -229,7 +213,7 @@ minetest.register_node("building_blocks:BWtile", {
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
groups = {crumbly=3, dig_generic=4},
})
minetest.register_node("building_blocks:Fireplace", {
@ -242,9 +226,11 @@ minetest.register_node("building_blocks:Fireplace", {
},
paramtype = "light",
paramtype2 = "facedir",
light_source = default.LIGHT_MAX,
light_source = minetest.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=2, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
},
})

View File

@ -1,3 +1,5 @@
local materials = homedecor.materials
if minetest.get_modpath("moreblocks") then
minetest.register_craft({
output = 'building_blocks:sticks 2',
@ -20,15 +22,15 @@ end
minetest.register_craft({
output = 'building_blocks:Adobe 3',
recipe = {
{"default:sand"},
{"default:clay"},
{materials.sand},
{materials.clay_lump},
{"group:stick"},
}
})
minetest.register_craft({
output = 'building_blocks:brobble_spread 4',
recipe = {
{"default:brick", "default:cobble", "default:brick"},
{materials.brick, materials.cobble, materials.brick},
}
})
minetest.register_craft({
@ -42,20 +44,20 @@ minetest.register_craft({
output = 'building_blocks:fakegrass 2',
recipe = {
{'group:leaves'},
{"default:dirt"},
{materials.dirt},
}
})
minetest.register_craft({
output = 'building_blocks:Fireplace 1',
recipe = {
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"},
{materials.steel_ingot, "building_blocks:sticks", materials.steel_ingot},
}
})
minetest.register_craft({
output = 'building_blocks:grate 1',
recipe = {
{"default:steel_ingot", "default:steel_ingot"},
{"default:glass", "default:glass"},
{materials.steel_ingot, materials.steel_ingot},
{materials.glass_block, materials.glass_block},
}
})
@ -63,25 +65,27 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
minetest.register_craft({
output = 'building_blocks:gravel_spread 4',
recipe = {
{"default:gravel", "default:gravel", "default:gravel"},
{materials.gravel, materials.gravel, materials.gravel},
}
})
end
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
if minetest.get_modpath("default") then
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
end
minetest.register_craft({
output = 'building_blocks:knife 1',
recipe = {
@ -92,9 +96,9 @@ minetest.register_craft({
minetest.register_craft({
output = "building_blocks:Marble 9",
recipe = {
{"default:clay", "group:tar_block", "default:clay"},
{"group:tar_block","default:clay", "group:tar_block"},
{"default:clay", "group:tar_block","default:clay"},
{materials.clay_lump, "group:tar_block", materials.clay_lump},
{"group:tar_block",materials.clay_lump, "group:tar_block"},
{materials.clay_lump, "group:tar_block",materials.clay_lump},
}
})
minetest.register_craft({
@ -113,15 +117,15 @@ minetest.register_craft({
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:coal_lump", "default:gravel"},
{"default:gravel", "default:coal_lump"}
{materials.coal_lump, materials.gravel},
{materials.gravel, materials.coal_lump}
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:gravel", "default:coal_lump"},
{"default:coal_lump", "default:gravel"}
{materials.gravel, materials.coal_lump},
{materials.coal_lump, materials.gravel}
}
})
minetest.register_craft({
@ -140,14 +144,14 @@ minetest.register_craft({
output = 'building_blocks:woodglass 1',
recipe = {
{"group:wood"},
{"default:glass"},
{materials.glass_block},
}
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:smoothglass",
recipe = "default:glass"
recipe = materials.glass_block
})
minetest.register_craft({
type = "cooking",

View File

@ -1,19 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
}
globals = {
}

View File

@ -142,7 +142,7 @@ minetest.register_node("fake_fire:ice_fire", {
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
groups = {dig_immediate=3, not_in_creative_inventory=1, dig_generic=3},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
@ -172,6 +172,8 @@ local sbox = {
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16},
}
local wtex = homedecor.textures.default_junglewood
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
description = S("Fancy Fire"),
@ -179,6 +181,7 @@ minetest.register_node("fake_fire:fancy_fire", {
mesh = "fancy_fire.obj",
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = "clip",
groups = {oddly_breakable_by_hand=3, flammable=0},
sunlight_propagates = true,
light_source = 13,
@ -188,7 +191,7 @@ minetest.register_node("fake_fire:fancy_fire", {
selection_box = sbox,
tiles = {
"basic_materials_concrete_block.png",
"default_junglewood.png",
wtex,
"fake_fire_empty_tile.png"
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -223,25 +226,41 @@ minetest.register_node("fake_fire:embers", {
aspect_w=16, aspect_h=16, length=2}},
},
light_source = 9,
groups = {crumbly=3},
groups = {crumbly=3, dig_stone=2},
paramtype = "light",
sounds = default.node_sound_dirt_defaults(),
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
local sandstone_tex = "default_sandstone.png"
if not minetest.get_modpath("default") then
local sname = minetest.registered_nodes["mapgen_stone"].name
local names = sname:split(":")
local nitem = names[2] and string.gsub(names[2], "stone", "sandstone") or nil
if nitem and minetest.registered_nodes[names[1]..":"..nitem] then
sandstone_tex = minetest.registered_nodes[names[1]..":"..nitem].tiles[1]
else
sandstone_tex = "[combine:16x16^[noalpha^[colorize:#fefebe"
end
end
-- CHIMNEYS
local materials = {
{ "stone", S("Stone chimney top") },
{ "sandstone", S("Sandstone chimney top") },
{ "stone", S("Stone chimney top"), minetest.registered_nodes["mapgen_stone"].tiles[1] },
{ "sandstone", S("Sandstone chimney top"), sandstone_tex },
}
for _, mat in ipairs(materials) do
local name, desc = unpack(mat)
local name, desc, tex = unpack(mat)
minetest.register_node("fake_fire:chimney_top_"..name, {
description = desc,
tiles = {"default_"..name..".png^chimney_top.png", "default_"..name..".png"},
groups = {snappy=3},
tiles = {tex.."^chimney_top.png", tex},
groups = {snappy=3, dig_stone=2},
paramtype = "light",
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
drawtype = "nodebox",
node_box = {
type = "fixed",
@ -257,37 +276,42 @@ for _, mat in ipairs(materials) do
end
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:chimney_top_'..name,
recipe = {"default:torch", "stairs:slab_"..name}
})
if minetest.get_modpath("default") then
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:chimney_top_'..name,
recipe = {"default:torch", "stairs:slab_"..name}
})
end
end
minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel")
minetest.override_item("default:ice", {
on_ignite = function(pos, igniter)
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.get_node(flame_pos).name == "air" then
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"})
if minetest.get_modpath("default") then
minetest.override_item("default:ice", {
on_ignite = function(pos, igniter)
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.get_node(flame_pos).name == "air" then
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"})
end
end
end
})
})
end
-- CRAFTS
if minetest.get_modpath("default") then
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:embers',
recipe = {"default:torch", "group:wood", "default:torch"}
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:embers',
recipe = {"default:torch", "group:wood", "default:torch"}
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
})
end
-- ALIASES
@ -309,3 +333,5 @@ minetest.register_lbm({
fire_particles_on(pos)
end
})
minetest.log("action", "[fake_fire] loaded.")

View File

@ -1,2 +1,2 @@
name = fake_fire
depends = default
depends = homedecor_common

View File

@ -1,18 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
}
globals = {
}

View File

@ -1,14 +1,16 @@
minetest.override_item("default:bookshelf", {
drawtype = "mesh",
mesh = "homedecor_3d_bookshelf.obj",
tiles = {
"default_wood.png",
"default_wood.png^homedecor_3d_bookshelf_inside_back.png",
"homedecor_3d_bookshelf_books.png",
},
paramtype = "light",
paramtype2 = "facedir",
})
if minetest.get_modpath("default") then
minetest.override_item("default:bookshelf", {
drawtype = "mesh",
mesh = "homedecor_3d_bookshelf.obj",
tiles = {
"default_wood.png",
"default_wood.png^homedecor_3d_bookshelf_inside_back.png",
"homedecor_3d_bookshelf_books.png",
},
paramtype = "light",
paramtype2 = "facedir",
})
end
if minetest.get_modpath("vessels") then
minetest.override_item("vessels:shelf", {
@ -21,7 +23,7 @@ if minetest.get_modpath("vessels") then
},
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = true
use_texture_alpha = "blend",
})
local sbox = {
@ -35,7 +37,7 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
use_texture_alpha = true,
use_texture_alpha = "blend",
selection_box = sbox
})
@ -54,7 +56,7 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
use_texture_alpha = true,
use_texture_alpha = "blend",
selection_box = sbox
})
end
@ -121,3 +123,6 @@ if minetest.get_modpath("doors") then
end
end
minetest.log("action", "[homedecor_3d_extra] loaded.")

View File

@ -1,4 +1,3 @@
name = homedecor_3d_extras
description = Homedecor Mod: 3d extras
depends = default
optional_depends = vessels, moreblocks, doors
optional_depends = vessels, moreblocks, doors, default

View File

@ -1,22 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
"unifieddyes",
}
globals = {
}

View File

@ -2,7 +2,10 @@ local S = minetest.get_translator("homedecor_bathroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
minetest.register_node(":homedecor:bathroom_tiles_dark", {
local wood_tex = homedecor.textures.default_wood
local water_tex = homedecor.textures.water
homedecor.register("bathroom_tiles_dark", {
description = S("Bathroom/kitchen tiles (dark)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
@ -13,13 +16,24 @@ minetest.register_node(":homedecor:bathroom_tiles_dark", {
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_dark 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye_dark_grey" }
},
}
}
})
minetest.register_node(":homedecor:bathroom_tiles_medium", {
homedecor.register("bathroom_tiles_medium", {
description = S("Bathroom/kitchen tiles (medium)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
@ -30,13 +44,24 @@ minetest.register_node(":homedecor:bathroom_tiles_medium", {
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_medium 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye_grey" }
},
}
}
})
minetest.register_node(":homedecor:bathroom_tiles_light", {
homedecor.register("bathroom_tiles_light", {
description = S("Bathroom/kitchen tiles (light)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
@ -47,10 +72,21 @@ minetest.register_node(":homedecor:bathroom_tiles_light", {
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_light 4",
recipe = {
{ "group:marble", "group:marble" },
{ "group:marble", "group:marble" }
},
}
}
})
local tr_cbox = {
@ -63,20 +99,30 @@ homedecor.register("towel_rod", {
mesh = "homedecor_towel_rod.obj",
tiles = {
"homedecor_generic_terrycloth.png",
"default_wood.png",
wood_tex,
},
inventory_image = "homedecor_towel_rod_inv.png",
selection_box = tr_cbox,
walkable = false,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_defaults(),
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,dig_tree=2},
_sound_def = {
key = "node_sound_defaults",
},
crafts = {
{
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "", "building_blocks:terrycloth_towel", "" },
},
}
}
})
homedecor.register("medicine_cabinet", {
description = S("Medicine cabinet"),
mesh = "homedecor_medicine_cabinet.obj",
tiles = {
'default_wood.png',
wood_tex,
'homedecor_medicine_cabinet_mirror.png'
},
inventory_image = "homedecor_medicine_cabinet_inv.png",
@ -85,22 +131,37 @@ homedecor.register("medicine_cabinet", {
fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5}
},
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_stone = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
on_punch = function(pos, node, puncher, pointed_thing)
node.name = "homedecor:medicine_cabinet_open"
minetest.swap_node(pos, node)
end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
infotext=S("Medicine cabinet"),
inventory = {
size=6,
},
crafts = {
{
recipe = {
{ "group:stick", "glass_block", "group:stick" },
{ "group:stick", "glass_block", "group:stick" },
{ "group:stick", "glass_block", "group:stick" }
},
}
}
})
homedecor.register("medicine_cabinet_open", {
mesh = "homedecor_medicine_cabinet_open.obj",
tiles = {
'default_wood.png',
wood_tex,
'homedecor_medicine_cabinet_mirror.png',
'homedecor_medicine_cabinet_inside.png'
},
@ -109,12 +170,16 @@ homedecor.register("medicine_cabinet_open", {
fixed = {-0.3125, -0.1875, -0.25, 0.3125, 0.5, 0.5}
},
walkable = false,
groups = { snappy = 3, not_in_creative_inventory=1 },
groups = { snappy = 3, not_in_creative_inventory=1, dig_stone = 2 },
drop = "homedecor:medicine_cabinet",
on_punch = function(pos, node, puncher, pointed_thing)
node.name = "homedecor:medicine_cabinet"
minetest.swap_node(pos, node)
end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
})
-- "Sanitation" related
@ -143,12 +208,23 @@ homedecor.register("toilet", {
},
selection_box = toilet_sbox,
node_box = toilet_cbox,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet_open"
minetest.set_node(pos, node)
end
end,
crafts = {
{
recipe = {
{ "","","water_bucket"},
{ "group:marble","group:marble", "group:marble" },
{ "", "empty_bucket", "" },
},
}
}
})
homedecor.register("toilet_open", {
@ -157,14 +233,17 @@ homedecor.register("toilet_open", {
"building_blocks_marble.png",
"building_blocks_marble.png",
"building_blocks_marble.png",
"default_water.png",
water_tex,
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
},
selection_box = toilet_sbox,
collision_box = toilet_cbox,
drop = "homedecor:toilet",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
use_texture_alpha = "blend",
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet"
minetest.set_node(pos, node)
@ -188,13 +267,24 @@ homedecor.register("toilet_paper", {
mesh = "homedecor_toilet_paper.obj",
tiles = {
"homedecor_generic_quilted_paper.png",
"default_wood.png"
wood_tex
},
inventory_image = "homedecor_toilet_paper_inv.png",
selection_box = tp_cbox,
walkable = false,
groups = {snappy=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_defaults(),
groups = {snappy=3,oddly_breakable_by_hand=3, dig_stone = 2},
_sound_def = {
key = "node_sound_defaults",
},
crafts = {
{
recipe = {
{ "", "paper", "paper" },
{ "group:wood", "group:stick", "paper" },
{ "", "paper", "paper" },
},
}
}
})
--Sink
@ -221,16 +311,27 @@ homedecor.register("sink", {
tiles = {
"building_blocks_marble.png",
"building_blocks_marble.png",
"default_water.png"
water_tex
},
use_texture_alpha = "blend",
inventory_image="homedecor_bathroom_sink_inv.png",
selection_box = sink_sbox,
collision_box = sink_cbox,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z})
end
end,
crafts = {
{
recipe = {
{ "group:marble","empty_bucket", "group:marble" },
{ "", "group:marble", "" }
},
}
}
})
--Taps
@ -239,9 +340,7 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing)
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and
below.name == "homedecor:shower_tray" or
below.name == "homedecor:sink" or
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
string.find(below.name, "homedecor:.*sink") then
local particledef = {
outlet = { x = 0, y = -0.44, z = 0.28 },
velocity_x = { min = -0.1, max = 0.1 },
@ -271,11 +370,20 @@ homedecor.register("taps", {
fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 },
},
walkable = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = taps_on_rightclick,
on_destruct = homedecor.stop_particle_spawner,
on_rotate = sc_disallow or nil
on_rotate = sc_disallow or nil,
crafts = {
{
recipe = {
{ "steel_ingot","water_bucket", "steel_ingot" },
},
}
}
})
homedecor.register("taps_brass", {
@ -294,11 +402,20 @@ homedecor.register("taps_brass", {
fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 },
},
walkable = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = taps_on_rightclick,
on_destruct = homedecor.stop_particle_spawner,
on_rotate = sc_disallow or nil,
crafts = {
{
recipe = {
{ "basic_materials:brass_ingot","water_bucket", "basic_materials:brass_ingot" },
},
}
}
})
--Shower Tray
@ -320,12 +437,21 @@ homedecor.register("shower_tray", {
},
},
selection_box = homedecor.nodebox.slab_y(0.1),
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=2, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+2, z=pos.z}) -- the showerhead
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) -- the taps, if any
end
end,
crafts = {
{
recipe = {
{ "group:marble","empty_bucket", "group:marble" },
},
}
}
})
--Shower Head
@ -345,7 +471,7 @@ homedecor.register("shower_head", {
},
inventory_image = "homedecor_shower_head_inv.png",
description = S("Shower Head"),
groups = {snappy=3},
groups = {snappy=3, dig_stone = 2},
selection_box = sh_cbox,
walkable = false,
on_rotate = sc_disallow or nil,
@ -368,7 +494,14 @@ homedecor.register("shower_head", {
end,
on_destruct = function(pos)
homedecor.stop_particle_spawner(pos)
end
end,
crafts = {
{
recipe = {
{"steel_ingot", "water_bucket"},
},
}
}
})
local tub_sbox = {
@ -404,10 +537,21 @@ homedecor.register("bathtub_clawfoot_brass_taps", {
"homedecor_bathtub_clawfoot_bottom_inside.png",
},
description = S("Bathtub, clawfoot, with brass taps"),
groups = {cracky=3},
groups = {cracky=3, dig_stone = 2},
selection_box = tub_sbox,
node_box = tub_cbox,
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{ "steel_ingot", "group:marble", "steel_ingot"},
},
}
}
})
homedecor.register("bathtub_clawfoot_chrome_taps", {
@ -422,10 +566,21 @@ homedecor.register("bathtub_clawfoot_chrome_taps", {
"homedecor_bathtub_clawfoot_bottom_inside.png",
},
description = S("Bathtub, clawfoot, with chrome taps"),
groups = {cracky=3},
groups = {cracky=3, dig_stone = 2},
selection_box = tub_sbox,
node_box = tub_cbox,
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"steel_ingot", "group:marble", "steel_ingot"},
},
}
}
})
local bs_cbox = {
@ -445,10 +600,21 @@ homedecor.register("bathroom_set", {
},
inventory_image = "homedecor_bathroom_set_inv.png",
description = S("Bathroom sundries set"),
groups = {snappy=3},
groups = {snappy=3, dig_stone = 2},
selection_box = bs_cbox,
walkable = false,
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
crafts = {
{
recipe = {
{ "", "homedecor:glass_table_small_round", "" },
{ "basic_materials:plastic_sheet", "homedecor:glass_table_small_round", "basic_materials:plastic_sheet" },
{ "group:stick", "basic_materials:plastic_sheet", "group:stick" }
},
}
}
})
-- aliases
@ -520,45 +686,7 @@ minetest.register_lbm({
end
})
-- crafting
minetest.register_craft({
output = "homedecor:towel_rod",
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "", "building_blocks:terrycloth_towel", "" },
},
})
minetest.register_craft({
output = "homedecor:toilet_paper",
recipe = {
{ "", "default:paper", "default:paper" },
{ "group:wood", "group:stick", "default:paper" },
{ "", "default:paper", "default:paper" },
},
})
minetest.register_craft({
output = "homedecor:medicine_cabinet",
recipe = {
{ "group:stick", "default:glass", "group:stick" },
{ "group:stick", "default:glass", "group:stick" },
{ "group:stick", "default:glass", "group:stick" }
},
})
-- bathroom/kitchen tiles
minetest.register_craft( {
output = "homedecor:bathroom_tiles_light 4",
recipe = {
{ "group:marble", "group:marble" },
{ "group:marble", "group:marble" }
},
})
-- color crafting
unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_light",
@ -571,14 +699,6 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft( {
output = "homedecor:bathroom_tiles_medium 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye:grey" }
},
})
unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_medium",
palette = "extended",
@ -590,14 +710,6 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft( {
output = "homedecor:bathroom_tiles_dark 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye:dark_grey" }
},
})
unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_dark",
palette = "extended",
@ -609,75 +721,3 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft({
output = "homedecor:bathroom_set",
recipe = {
{ "", "homedecor:glass_table_small_round", "" },
{ "basic_materials:plastic_sheet", "homedecor:glass_table_small_round", "basic_materials:plastic_sheet" },
{ "group:stick", "basic_materials:plastic_sheet", "group:stick" }
},
})
minetest.register_craft({
output = "homedecor:toilet",
recipe = {
{ "","","bucket:bucket_water"},
{ "group:marble","group:marble", "group:marble" },
{ "", "bucket:bucket_empty", "" },
},
})
minetest.register_craft({
output = "homedecor:sink",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
{ "", "group:marble", "" }
},
})
minetest.register_craft({
output = "homedecor:taps",
recipe = {
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:taps_brass",
recipe = {
{ "basic_materials:brass_ingot","bucket:bucket_water", "basic_materials:brass_ingot" },
},
})
minetest.register_craft({
output = "homedecor:shower_tray",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
},
})
minetest.register_craft({
output = "homedecor:shower_head",
recipe = {
{"default:steel_ingot", "bucket:bucket_water"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_brass_taps",
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{ "default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_chrome_taps",
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})

View File

@ -1,4 +1,4 @@
name = homedecor_bathroom
description = Homedecor mod: bathroom
depends = homedecor_common, default, basic_materials, unifieddyes, building_blocks
optional_depends = bucket, homedecor_fences, screwdriver
depends = homedecor_common
optional_depends = bucket, homedecor_fences, screwdriver, default, basic_materials, unifieddyes, building_blocks

View File

@ -1,22 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
"unifieddyes",
}
globals = {
}

View File

@ -2,6 +2,8 @@ local S = minetest.get_translator("homedecor_bedroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
local wood_tex, wool_tex = homedecor.textures.default_wood, homedecor.textures.wool_white
local bed_sbox = {
type = "wallmounted",
wall_side = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 }
@ -31,26 +33,29 @@ local kbed_cbox = {
}
-- local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
local bed_def = minetest.registered_nodes["beds:bed"]
local bed_on_rightclick = bed_def and bed_def.on_rightclick or nil
homedecor.register("bed_regular", {
mesh = "homedecor_bed_regular.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = wood_tex, color = 0xffffffff },
{ name = wool_tex, color = 0xffffffff },
wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten", -- pillow
wool_tex.."^[brighten", -- pillow
},
inventory_image = "homedecor_bed_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
description = S("Bed"),
groups = {snappy=3, ud_param2_colorable = 1},
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
selection_box = bed_sbox,
node_box = bed_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = sc_disallow or nil,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -66,40 +71,52 @@ homedecor.register("bed_regular", {
local itemname = itemstack:get_name()
if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack
-- else
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
elseif bed_on_rightclick then
bed_on_rightclick(pos, node, clicker)
end
end
return itemstack
end,
crafts = {
{
recipe = {
{ "group:stick", "", "group:stick" },
{ "wool_white", "wool_white", "wool_white" },
{ "group:wood", "", "group:wood" },
},
}
}
})
homedecor.register("bed_extended", {
mesh = "homedecor_bed_extended.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = wood_tex, color = 0xffffffff },
{ name = wool_tex, color = 0xffffffff },
wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten",
wool_tex.."^[brighten",
},
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = bed_sbox,
node_box = bed_cbox,
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
expand = { forward = "air" },
on_rotate = sc_disallow or nil,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end,
on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if bed_on_rightclick then
bed_on_rightclick(pos, node, clicker)
end
return itemstack
end,
drop = "homedecor:bed_regular"
})
@ -107,20 +124,22 @@ homedecor.register("bed_kingsize", {
mesh = "homedecor_bed_kingsize.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = wood_tex, color = 0xffffffff },
{ name = wool_tex, color = 0xffffffff },
wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten",
wool_tex.."^[brighten",
},
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "homedecor_bed_kingsize_inv.png",
description = S("Bed (king sized)"),
groups = {snappy=3, ud_param2_colorable = 1},
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
selection_box = kbed_sbox,
node_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = sc_disallow or nil,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -133,10 +152,19 @@ homedecor.register("bed_kingsize", {
end
end,
on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if bed_on_rightclick then
bed_on_rightclick(pos, node, clicker)
end
return itemstack
end,
crafts = {
{
recipe = {
{ "homedecor:bed_regular", "homedecor:bed_regular" }
},
}
}
})
for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
@ -159,8 +187,10 @@ for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
{ -8/16, -8/16, -30/64, 8/16, -7/16, 8/16 } -- bottom
}
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = { type = "regular" },
infotext=S("One-drawer Nightstand"),
inventory = {
@ -185,8 +215,10 @@ for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
{ -7/16, -7/16, -32/64, 7/16, -1/16, -29/64 }, -- bottom drawer face
}
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = { type = "regular" },
infotext=S("Two-drawer Nightstand"),
inventory = {
@ -318,7 +350,7 @@ minetest.register_craft( {
output = "homedecor:nightstand_mahogany_one_drawer",
recipe = {
"homedecor:nightstand_oak_one_drawer",
"dye:brown",
homedecor.materials.dye_brown,
},
})
@ -333,7 +365,7 @@ minetest.register_craft( {
output = "homedecor:nightstand_mahogany_two_drawers",
recipe = {
"homedecor:nightstand_oak_two_drawers",
"dye:brown",
homedecor.materials.dye_brown,
},
})
@ -343,16 +375,6 @@ minetest.register_craft({
burntime = 30,
})
minetest.register_craft( {
output = "homedecor:bed_regular",
recipe = {
{ "group:stick", "", "group:stick" },
{ "wool:white", "wool:white", "wool:white" },
{ "group:wood", "", "group:wood" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:bed_regular",
palette = "wallmounted",
@ -364,13 +386,6 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft( {
output = "homedecor:bed_kingsize",
recipe = {
{ "homedecor:bed_regular", "homedecor:bed_regular" }
},
})
unifieddyes.register_color_craft({
output = "homedecor:bed_kingsize",
palette = "wallmounted",

View File

@ -1,4 +1,4 @@
name = homedecor_bedroom
description = Homedecor mod: bedroom
depends = homedecor_common, default, basic_materials, unifieddyes, creative, beds
optional_depends = screwdriver
depends = homedecor_common
optional_depends = screwdriver, default, basic_materials, unifieddyes, creative, beds

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"creative",
"default",
"homedecor",
}
globals = {
}

View File

@ -97,7 +97,7 @@ for _, c in ipairs(bookcolors) do
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not creative.is_enabled_for(plname) then
if not minetest.is_creative_enabled(plname) then
itemstack:take_item()
end
return itemstack
@ -128,16 +128,15 @@ for _, c in ipairs(bookcolors) do
local owner = meta:get_string("owner") or ""
local formspec
if owner == "" or owner == player_name then
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
formspec = "size[8,8]"..
"field[0.5,1;7.5,0;title;Book title :;"..
minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
minetest.formspec_escape(text).."]"..
"button_exit[2.5,7.5;3,1;save;Save]"
else
formspec = "size[8,8]"..default.gui_bg..
formspec = "size[8,8]"..
"button_exit[7,0.25;1,0.5;close;X]"..
default.gui_bg_img..
"label[0.5,0.5;by "..owner.."]"..
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
@ -167,7 +166,7 @@ for _, c in ipairs(bookcolors) do
output = "homedecor:book_"..color,
recipe = {
"dye:"..color,
"default:book"
homedecor.materials.book
},
})
@ -195,7 +194,7 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
meta:set_string("infotext", fields.title)
end
minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4",
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos())))
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:get_pos())))
player_current_book[player_name] = nil
return true

View File

@ -1,4 +1,4 @@
name = homedecor_books
description = Homedecor mod: books
depends = homedecor_common, default, creative
optional_depends = unifieddyes
depends = homedecor_common
optional_depends = unifieddyes, default, creative

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -7,11 +7,30 @@ homedecor.register("air_conditioner", {
mesh = "homedecor_ac.obj",
tiles = {
"homedecor_ac.png",
"default_glass.png"
homedecor.textures.glass
},
groups = { snappy = 3, dig_stone = 3 },
use_texture_alpha = "clip",
_sound_def = {
key = "node_sound_leaves_defaults",
},
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = { type="regular" },
crafts = {
{
recipe = {
{ "steel_ingot", "building_blocks:grate", "steel_ingot" },
{ "steel_ingot", "homedecor:fan_blades", "basic_materials:motor" },
{ "steel_ingot", "basic_materials:motor", "steel_ingot" },
},
},
{
recipe = {
{ "steel_ingot", "building_blocks:grate", "steel_ingot" },
{ "steel_ingot", "basic_materials:motor", "steel_ingot" },
{ "steel_ingot", "basic_materials:motor", "steel_ingot" },
},
}
}
})
-- fans
@ -28,13 +47,13 @@ local add_mesh_desk_fan_entity = function(pos)
local param2 = minetest.get_node(pos).param2
local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan")
if param2 == 0 then
entity:setyaw(3.142) -- 180 degrees
entity:set_yaw(3.142) -- 180 degrees
elseif minetest.get_node(pos).param2 == 1 then
entity:setyaw(3.142/2) -- 90 degrees
entity:set_yaw(3.142/2) -- 90 degrees
elseif minetest.get_node(pos).param2 == 3 then
entity:setyaw((-3.142/2)) -- 270 degrees
entity:set_yaw((-3.142/2)) -- 270 degrees
else
entity:setyaw(0)
entity:set_yaw(0)
end
return entity
end
@ -74,6 +93,14 @@ homedecor.register("desk_fan", {
local entities = minetest.get_objects_inside_radius(pos, 0.1)
if entities[1] then entities[1]:remove() end
end,
crafts = {
{
recipe = {
{"steel_ingot", "homedecor:fan_blades", "basic_materials:motor"},
{"", "steel_ingot", ""}
},
}
}
})
-- ceiling fan
@ -95,9 +122,28 @@ homedecor.register("ceiling_fan", {
{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
}
},
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(),
use_texture_alpha = "clip",
groups = { snappy = 3, dig_stone = 3 },
light_source = minetest.LIGHT_MAX-1,
_sound_def = {
key = "node_sound_glass_defaults",
},
crafts = {
{
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
},
{
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
}
}
})
-- heating devices
@ -113,8 +159,10 @@ homedecor.register("space_heater", {
},
inventory_image = "homedecor_heater_inv.png",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_stone = 3 },
_sound_def = {
key = "node_sound_wood_defaults",
},
node_box = {
type = "fixed",
fixed = {
@ -124,6 +172,15 @@ homedecor.register("space_heater", {
selection_box = {
type = "fixed",
fixed = {-0.1875, -0.5, 0.0625, 0.1875, 0, 0.3125}
},
crafts = {
{
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "homedecor:fan_blades", "basic_materials:motor"},
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"}
},
}
}
})
@ -136,10 +193,21 @@ homedecor.register("radiator", {
},
inventory_image = "homedecor_radiator_inv.png",
description = S("Radiator heater"),
groups = {snappy=3},
groups = {snappy=3, dig_stone = 3},
selection_box = r_cbox,
collision_box = r_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
recipe = {
{ "steel_ingot", "basic_materials:heating_element", "steel_ingot" },
{ "basic_materials:ic", "basic_materials:heating_element", "" },
{ "steel_ingot", "basic_materials:heating_element", "steel_ingot" }
},
}
}
})
-- crafting
@ -152,70 +220,7 @@ minetest.register_craft( {
output = "homedecor:fan_blades 2",
recipe = {
{ "", "basic_materials:plastic_sheet", "" },
{ "", "default:steel_ingot", "" },
{ "", homedecor.materials.steel_ingot, "" },
{ "basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet" }
},
})
minetest.register_craft({
output = "homedecor:air_conditioner",
recipe = {
{ "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
{ "default:steel_ingot", "homedecor:fan_blades", "basic_materials:motor" },
{ "default:steel_ingot", "basic_materials:motor", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:air_conditioner",
recipe = {
{ "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
{ "default:steel_ingot", "basic_materials:motor", "default:steel_ingot" },
{ "default:steel_ingot", "basic_materials:motor", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:ceiling_fan",
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
})
minetest.register_craft({
output = "homedecor:ceiling_fan",
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
})
minetest.register_craft( {
output = "homedecor:desk_fan",
recipe = {
{"default:steel_ingot", "homedecor:fan_blades", "basic_materials:motor"},
{"", "default:steel_ingot", ""}
},
})
minetest.register_craft( {
output = "homedecor:space_heater",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "homedecor:fan_blades", "basic_materials:motor"},
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"}
},
})
minetest.register_craft( {
output = "homedecor:radiator",
recipe = {
{ "default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot" },
{ "basic_materials:ic", "basic_materials:heating_element", "" },
{ "default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot" }
},
})

View File

@ -1,4 +1,4 @@
name = homedecor_climate_control
description = Homedecor mod: climate control
depends = homedecor_common, default, basic_materials
optional_depends = building_blocks, screwdriver
depends = homedecor_common
optional_depends = building_blocks, screwdriver, default

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -1,18 +1,43 @@
local S = minetest.get_translator("homedecor_clocks")
local wood
if minetest.get_modpath("default") then
wood = "default_wood.png"
else
wood = "[combine:16x16^[noalpha^[colorize:#563d2d"
end
local plastic_craft = {
output = "homedecor:analog_clock_plastic 2",
recipe = {
{ "basic_materials:plastic_sheet", "dye_black", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "dye_black", "basic_materials:plastic_sheet" },
},
}
local wood_craft = {
output = "homedecor:analog_clock_wood 2",
recipe = {
{ "group:stick", "dye_black", "group:stick" },
{ "group:stick", "basic_materials:ic", "group:stick" },
{ "group:stick", "dye_black", "group:stick" },
},
}
local clock_sbox = {
type = "fixed",
fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 }
}
local clock_materials = {
{ "plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png" },
{ "wood", S("Wooden analog clock"), "default_wood.png" }
{"plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png", plastic_craft},
{"wood", S("Wooden analog clock"), wood, wood_craft}
}
for _, mat in ipairs(clock_materials) do
local name, desc, tex = unpack(mat)
local name, desc, tex, craft = unpack(mat)
homedecor.register("analog_clock_"..name, {
description = desc,
mesh = "homedecor_analog_clock.obj",
@ -24,8 +49,13 @@ for _, mat in ipairs(clock_materials) do
inventory_image = "homedecor_analog_clock_"..name.."_inv.png",
walkable = false,
selection_box = clock_sbox,
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
craft
}
})
end
@ -47,8 +77,20 @@ homedecor.register("digital_clock", {
}
},
walkable = false,
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
groups = {snappy=3, dig_tree=2},
crafts = {
{
output = "homedecor:digital_clock 2",
recipe = {
{ "basic_materials:plastic_sheet", "paper", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
}
}
})
homedecor.register("alarm_clock", {
@ -69,8 +111,19 @@ homedecor.register("alarm_clock", {
}
},
walkable = false,
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
groups = {snappy=3, dig_tree=2},
crafts = {
{
recipe = {
{ "basic_materials:plastic_sheet", "homedecor:speaker_driver", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "homedecor:digital_clock", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
}
}
})
local gf_cbox = {
@ -82,67 +135,31 @@ homedecor.register("grandfather_clock", {
description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj",
tiles = {
"default_glass.png",
homedecor.textures.glass,
"homedecor_grandfather_clock_face.png",
homedecor.lux_wood,
"homedecor_grandfather_clock_face_edge.png",
"homedecor_generic_metal_brass.png"
},
use_texture_alpha = "clip",
inventory_image = "homedecor_grandfather_clock_inv.png",
groups = { snappy = 3 },
groups = {snappy = 3, dig_tree=2},
selection_box = gf_cbox,
collision_box = gf_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
expand = { top="placeholder" },
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
})
-- crafting
minetest.register_craft({
output = "homedecor:analog_clock_plastic 2",
recipe = {
{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:analog_clock_wood 2",
recipe = {
{ "group:stick", "dye:black", "group:stick" },
{ "group:stick", "basic_materials:ic", "group:stick" },
{ "group:stick", "dye:black", "group:stick" },
},
})
minetest.register_craft({
output = "homedecor:digital_clock 2",
recipe = {
{ "basic_materials:plastic_sheet", "default:paper", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:alarm_clock",
recipe = {
{ "basic_materials:plastic_sheet", "homedecor:speaker_driver", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "homedecor:digital_clock", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:grandfather_clock",
recipe = {
{ "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" }
},
crafts = {
{
recipe = {
{ "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" }
},
}
}
})
-- aliases

View File

@ -1,4 +1,4 @@
name = homedecor_clocks
description = Homedecor mod: clocks
depends = homedecor_common, default, basic_materials, dye
optional_depends = building_blocks, screwdriver
depends = homedecor_common
optional_depends = building_blocks, screwdriver, default, basic_materials, dye

View File

@ -1,18 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
}
globals = {
}

View File

@ -1,7 +1,7 @@
local S = minetest.get_translator("homedecor_cobweb")
homedecor_cobweb = {}
minetest.register_node(":homedecor:cobweb_corner", {
homedecor.register("cobweb_corner", {
description = S("Cobweb"),
drawtype = "torchlike",
tiles = { "homedecor_cobweb_torchlike.png" },
@ -19,17 +19,28 @@ minetest.register_node(":homedecor:cobweb_corner", {
walkable = false,
selection_box = { type = "regular" },
visual_scale = 1.4,
groups = { snappy = 3, liquid=3 },
groups = { snappy = 3, liquid=3, dig_glass = 1 },
after_place_node = function(pos, placer, itemstack, pointed_thing)
homedecor_cobweb.rotate(pos)
end
end,
crafts = {
{
output = "homedecor:cobweb_corner 5",
recipe = {
{"string", "", "string"},
{"", "string", ""},
{"string", "", "string"}
},
}
}
})
minetest.register_node(":homedecor:cobweb_centered", {
homedecor.register("cobweb_centered", {
description = S("Cobweb"),
drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png",
use_texture_alpha = "clip",
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
@ -48,17 +59,18 @@ minetest.register_node(":homedecor:cobweb_centered", {
type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0 }
},
groups = { snappy = 3, liquid=3, not_in_creative_inventory = 1 },
groups = { snappy = 3, liquid=3, dig_glass = 1, not_in_creative_inventory = 1 },
drop = "homedecor:cobweb_corner"
})
minetest.register_node(":homedecor:cobweb_flat", {
homedecor.register("cobweb_flat", {
description = S("Cobweb"),
drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png",
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = "clip",
sunlight_propagates = true,
liquid_viscosity = 8,
liquidtype = "source",
@ -75,11 +87,11 @@ minetest.register_node(":homedecor:cobweb_flat", {
type = "fixed",
fixed = { -0.5, -0.5, 0.495, 0.5, 0.5, 0.495 }
},
groups = { snappy = 3, liquid=3, not_in_creative_inventory = 1 },
groups = { snappy = 3, liquid=3, dig_glass = 1, not_in_creative_inventory = 1 },
drop = "homedecor:cobweb_corner"
})
minetest.register_node(":homedecor:cobweb_plantlike", {
homedecor.register("cobweb_plantlike", {
description = S("Cobweb"),
drawtype = "plantlike",
tiles = { "homedecor_cobweb_plantlike.png" },
@ -96,7 +108,7 @@ minetest.register_node(":homedecor:cobweb_plantlike", {
walkable = false,
selection_box = { type = "regular" },
visual_scale = 1.189,
groups = { snappy = 3, liquid=3, not_in_creative_inventory = 1 },
groups = { snappy = 3, liquid=3, dig_glass = 1, not_in_creative_inventory = 1 },
drop = "homedecor:cobweb_corner"
})
@ -157,14 +169,3 @@ function homedecor_cobweb.rotate(pos)
end
end
-- crafting
minetest.register_craft( {
output = "homedecor:cobweb_corner 5",
recipe = {
{ "farming:string", "", "farming:string" },
{ "", "farming:string", "" },
{ "farming:string", "", "farming:string" }
},
})

View File

@ -1,3 +1,4 @@
name = homedecor_cobweb
description = Homedecor mod: cobweb
depends = homedecor_common, default
depends = homedecor_common
optional_depends = default

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"creative",
"default",
"screwdriver",
}
globals = {
}

View File

@ -103,7 +103,7 @@ local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2, poin
ctrl_node_def.after_place_node(pos, placer, itemstack, pointed_thing)
end
if not creative.is_enabled_for(placer_name) then
if not minetest.is_creative_enabled(placer_name) then
itemstack:take_item()
end
end
@ -133,7 +133,8 @@ function homedecor.stack_vertically(itemstack, placer, pointed_thing, node1, nod
end
-- Stack one door node above another
-- like homedecor.stack_vertically but tests first if it was placed as a right wing, then uses node1_right and node2_right instead
-- like homedecor.stack_vertically but tests first if it was placed as a right wing,
-- then uses node1_right and node2_right instead
function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, node1_right, node2_right)
local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack, pointed_thing)
@ -230,8 +231,9 @@ function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks
if trybunks and is_buildable_to(placer_name, toppos, topposfwd) then
local newname = string.gsub(thisnode.name, "_regular", "_extended")
local newparam2 = param2 % 8
-- FIXME: is newparam2 a legacy unused variable from a8729575abfbd15cc622b413b71976c9157fbab4? or should this variable be used somewhere?
-- local newparam2 = param2 % 8
-- FIXME: is newparam2 a legacy unused variable from a8729575abfbd15cc622b413b71976c9157fbab4?
-- or should this variable be used somewhere?
minetest.swap_node(toppos, { name = thisnode.name, param2 = param2})
minetest.swap_node(pos, { name = newname, param2 = param2})
itemstack:take_item()

View File

@ -143,12 +143,16 @@ function homedecor.register_furnace(name, furnacedef)
description = description,
tiles = make_tiles(furnacedef.tiles, furnacedef.tile_format, false),
groups = furnacedef.groups or {cracky=2},
sounds = furnacedef.sounds or default.node_sound_wood_defaults(),
sounds = furnacedef.sounds,
_sound_def = {
key = "node_sound_wood_defaults",
},
on_construct = furnace_construct,
can_dig = furnace_can_dig,
allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true }
inventory = { lockable = true },
is_furnace = true
}
local def_active = {
@ -157,12 +161,16 @@ function homedecor.register_furnace(name, furnacedef)
light_source = 8,
drop = "homedecor:" .. name,
groups = furnacedef.groups or {cracky=2, not_in_creative_inventory=1},
sounds = furnacedef.sounds or default.node_sound_stone_defaults(),
sounds = furnacedef.sounds,
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = furnace_construct,
can_dig = furnace_can_dig,
allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true }
inventory = { lockable = true },
is_furnace = true
}
if furnacedef.extra_nodedef_fields then

View File

@ -49,17 +49,13 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing)
return isceiling, pos
end
homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
homedecor.white_wood = "homedecor_generic_wood_plain.png"
homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
homedecor.color_black = 0xff303030
homedecor.color_dark_grey = 0xff606060
homedecor.color_med_grey = 0xffa0a0a0
-- load different handler subsystems
dofile(modpath.."/textures.lua")
dofile(modpath.."/materials.lua")
dofile(modpath.."/nodeboxes.lua")
dofile(modpath.."/expansion.lua")
dofile(modpath.."/furnaces.lua")
@ -69,6 +65,6 @@ dofile(modpath.."/water_particles.lua")
dofile(modpath.."/sit.lua")
dofile(modpath.."/crafts.lua")
if minetest.settings:get_bool("log_mod") then
if minetest.settings:get_bool("log_mods") then
minetest.log("action", "[HomeDecor API] Loaded!")
end

View File

@ -1,51 +1,57 @@
local S = minetest.get_translator("homedecor_common")
local has_hopper = minetest.get_modpath("hopper")
local has_safe_hopper = has_hopper and
-- mod from https://github.com/minetest-mods/hopper respects the owner
(hopper.neighbors or
-- mod from https://notabug.org/TenPlus1/hopper respects the owner since 20220123
(hopper.version and hopper.version >= "20220123"))
local default_can_dig = function(pos,player)
local meta = minetest.get_meta(pos)
return meta:get_inventory():is_empty("main")
end
local background = default.gui_bg .. default.gui_bg_img .. default.gui_slots
local default_inventory_formspecs = {
["4"]="size[8,6]".. background ..
["4"]="size[8,6]"..
"list[context;main;2,0;4,1;]" ..
"list[current_player;main;0,2;8,4;]" ..
"listring[]",
["6"]="size[8,6]".. background ..
["6"]="size[8,6]"..
"list[context;main;1,0;6,1;]"..
"list[current_player;main;0,2;8,4;]" ..
"listring[]",
["8"]="size[8,6]".. background ..
["8"]="size[8,6]"..
"list[context;main;0,0;8,1;]"..
"list[current_player;main;0,2;8,4;]" ..
"listring[]",
["12"]="size[8,7]".. background ..
["12"]="size[8,7]"..
"list[context;main;1,0;6,2;]"..
"list[current_player;main;0,3;8,4;]" ..
"listring[]",
["16"]="size[8,7]".. background ..
["16"]="size[8,7]"..
"list[context;main;0,0;8,2;]"..
"list[current_player;main;0,3;8,4;]" ..
"listring[]",
["24"]="size[8,8]".. background ..
["24"]="size[8,8]"..
"list[context;main;0,0;8,3;]"..
"list[current_player;main;0,4;8,4;]" ..
"listring[]",
["32"]="size[8,9]".. background ..
["32"]="size[8,9]"..
"list[context;main;0,0.3;8,4;]"..
"list[current_player;main;0,4.85;8,1;]"..
"list[current_player;main;0,6.08;8,3;8]"..
"listring[context;main]" ..
"listring[current_player;main]" ..
default.get_hotbar_bg(0,4.85),
"listring[current_player;main]",
["50"]="size[10,10]".. background ..
["50"]="size[10,10]"..
"list[context;main;0,0;10,5;]"..
"list[current_player;main;1,6;8,4;]" ..
"listring[]",
@ -97,6 +103,23 @@ function homedecor.handle_inventory(name, def, original_def)
end
local locked = inventory.locked
if has_hopper and (not locked or has_safe_hopper) then
if inventory.size then
hopper:add_container({
{"top", "homedecor:"..name, "main"},
{"bottom", "homedecor:"..name, "main"},
{"side", "homedecor:"..name, "main"},
})
elseif original_def.is_furnace then
hopper:add_container({
{"top", "homedecor:"..name, "dst"},
{"bottom", "homedecor:"..name, "src"},
{"side", "homedecor:"..name, "fuel"},
})
end
end
if locked then
local after_place_node = def.after_place_node
def.after_place_node = function(pos, placer)

View File

@ -0,0 +1,212 @@
homedecor.materials = {
dirt = "default:dirt",
sand = "default:sand",
gravel = "default:gravel",
copper_ingot = "default:copper_ingot",
steel_ingot = "default:steel_ingot",
gold_ingot = "default:gold_ingot",
tin_ingot = "default:tin_ingot",
mese_crystal_fragment = "default:mese_crystal_fragment",
torch = "default:torch",
diamond = "default:diamond",
clay_lump = "default:clay_lump",
water_bucket = "bucket:bucket_water",
empty_bucket = "bucket:bucket_empty",
dye_dark_grey = "dye:dark_grey",
dye_black = "dye:black",
dye_white = "dye:white",
dye_green = "dye:green",
dye_red = "dye:red",
dye_yellow = "dye:yellow",
dye_brown = "dye:brown",
dye_blue = "dye:blue",
dye_violet = "dye:violet",
dye_grey = "dye:grey",
dye_dark_green = "dye:dark_green",
dye_orange = "dye:orange",
dye_pink = "dye:pink",
silicon = "mesecons_materials:silicon",
string = "farming:string",
paper = "default:paper",
book = "default:book",
iron_lump = "default:iron_lump",
wool_grey = "wool:grey",
wool_green = "wool:green",
wool_dark_green = "wool:dark_green",
wool_brown = "wool:brown",
wool_black = "wool:black",
wool_white = "wool:white",
slab_stone = "stairs:slab_stone",
slab_wood = "stairs:slab_wood",
glass_block = "default:glass",
glass_bottle = "vessels:glass_bottle",
coal_lump = "default:coal_lump",
stone = "default:stone",
cobble = "default:cobble",
brick = "default:brick",
}
if minetest.get_modpath("moreores") then
homedecor.materials.silver_ingot = "moreores:silver_ingot"
end
if minetest.get_modpath("mcl_core") then
homedecor.materials = {
dirt = "mcl_core:dirt",
sand = "mcl_core:sand",
gravel = "mcl_core:gravel",
copper_ingot = "mcl_copper:copper_ingot",
steel_ingot = "mcl_core:iron_ingot",
gold_ingot = "mcl_core:gold_ingot",
tin_ingot = "mcl_core:iron_ingot",
mese_crystal_fragment = "mcl_core:iron_ingot",
torch = "mcl_torches:torch",
diamond = "mcl_core:diamond",
clay_lump = "default:clay_lump",
water_bucket = "mcl_buckets:bucket:bucket_water",
empty_bucket = "mcl_buckets:bucket_empty",
dye_dark_grey = "mcl_dyes:dark_grey",
dye_black = "mcl_dyes:black",
dye_white = "mcl_dyes:white",
dye_green = "mcl_dyes:green",
dye_red = "mcl_dyes:red",
dye_yellow = "mcl_dyes:yellow",
dye_brown = "mcl_dyes:brown",
dye_blue = "mcl_dyes:blue",
dye_violet = "mcl_dyes:violet",
dye_grey = "mcl_dyes:grey",
dye_dark_green = "mcl_dyes:dark_green",
dye_orange = "mcl_dyes:orange",
dye_pink = "mcl_dyes:pink",
silicon = "mcl_core:iron_ingot",
string = "mcl_mobitems:string",
paper = "mcl_core:paper",
book = "mcl_core:book",
iron_lump = "mcl_core:stone_with_iron",
wool_grey = "mcl_wool:grey",
wool_green = "mcl_wool:green",
wool_dark_green = "mcl_wool:dark_green",
wool_brown = "mcl_wool:brown",
wool_black = "mcl_wool:black",
wool_white = "mcl_wool:white",
slab_stone = "mcl_stairs:slab_stone",
slab_wood = "mcl_stairs:slab_wood",
glass_block = "mcl_core:glass",
glass_bottle = "mcl_core:glass_bottle",
coal_lump = "mcl_core:coal",
stone = "mcl_core:stone",
cobble = "mcl_core:cobble",
brick = "mcl_core:brick",
}
elseif minetest.get_modpath("fl_ores") and minetest.get_modpath("fl_stone") then
homedecor.materials = {
dirt = "fl_topsoil:dirt",
sand = "fl_stone:sand",
gravel = "fl_topsoil:gravel",
steel_ingot = "fl_ores:iron_ingot",
gold_ingot = "fl_ores:gold_ingot",
mese_crystal_fragment = "fl_ores:iron_ingot",
torch = "fl_light_sources:torch",
diamond = "fl_ores:diamond",
clay_lump = "fl_bricks:clay_lump",
water_bucket = "fl_bucket:bucket_water",
empty_bucket = "fl_bucket:bucket",
dye_dark_grey = "fl_dyes:dark_grey_dye",
dye_black = "fl_dyes:black_dye",
dye_white = "fl_dyes:white_dye",
dye_green = "fl_dyes:green_dye",
dye_red = "fl_dyes:red_dye",
dye_yellow = "fl_dyes:yellow_dye",
dye_brown = "fl_dyes:brown_dye",
dye_blue = "fl_dyes:blue_dye",
dye_violet = "fl_dyes:violet_dye",
dye_grey = "fl_dyes:grey_dye",
dye_dark_green = "fl_dyes:dark_green_dye",
dye_orange = "fl_dyes:orange_dye",
dye_pink = "fl_dyes:pink_dye",
copper_ingot = "fl_ores:copper_ingot",
tin_ingot = "fl_ores:tin_ingot",
silver_ingot = "fl_ores:iron_ingot",
silicon = "mesecons_materials:silicon",
string = "fl_plantlife:oxeye_daisy",
paper = "basic_materials:plastic_sheet",
iron_lump = "fl_ores:iron_ore",
wool_grey = "",
wool_green = "",
wool_dark_green = "",
wool_brown = "",
wool_black = "",
wool_white = "",
slab_stone = "fl_stone:stone_slab",
slab_wood = "fl_trees:apple_plank_slab",
glass_block = "fl_glass:framed_glass",
glass_bottle = "fl_bottles:bottle",
coal_lump = "fl_ores:coal_ore",
stone = "fl_stone:stone",
cobble = "fl_stone:stone_rubble",
brick = "",
}
elseif minetest.get_modpath("hades_core") then
homedecor.materials = {
sand = "hades_core:fertile_sand",
gravel = "hades_core:gravel",
copper_ingot = "hades_core:copper_ingot",
steel_ingot = "hades_core:steel_ingot",
gold_ingot = "hades_core:gold_ingot",
tin_ingot = "hades_core:tin_ingot",
silver_ingot = "--unknown--",
mese_crystal_fragment = "hades_core:mese_crystal_fragment",
torch = "hades_torches:torch",
diamond = "hades_core:diamond",
clay_lump = "hades_core:clay_lump",
clay_brick = "hades_core:clay_brick",
--[[
Since hades doesnt have buckets or water for the user,
using dirt from near water to pull the water out
]]
water_bucket = "hades_core:dirt",
empty_bucket = "hades_core:fertile_sand",
dye_dark_grey = "dye:dark_grey",
dye_black = "dye:black",
dye_white = "dye:white",
dye_green = "dye:green",
dye_red = "dye:red",
dye_yellow = "dye:yellow",
dye_brown = "dye:brown",
dye_blue = "dye:blue",
dye_violet = "dye:violet",
dye_grey = "dye:grey",
dye_dark_green = "dye:dark_green",
dye_orange = "dye:orange",
dye_pink = "dye:pink",
silicon = "hades_materials:silicon",
string = "hades_farming:string",
paper = "hades_core:paper",
book = "hades_core:book",
iron_lump = "hades_core:iron_lump",
wool_grey = "wool:grey",
wool_green = "wool:green",
wool_dark_green = "wool:dark_green",
wool_brown = "wool:brown",
wool_black = "wool:black",
wool_white = "wool:white",
slab_stone = "stairs:slab_stone",
slab_wood = "stairs:slab_wood",
glass_block = "hades_core:glass",
glass_bottle = "vessels:glass_bottle",
obsidian_glass = "hades_core:obsidian_glass",
coal_lump = "hades_core:coal_lump",
stone = "hades_core:stone",
cobble = "hades_core:cobble",
brick = "hades_core:brick"
}
if minetest.get_modpath("hades_bucket") then
homedecor.materials["water_bucket"] = "hades_bucket:bucket_water"
homedecor.materials["empty_bucket"] = "hades_bucket:bucket_empty"
end
if minetest.get_modpath("hades_extraores") then
homedecor.materials["silver_ingot"] = "hades_extraores:silver_ingot"
end
end

View File

@ -1,4 +1,4 @@
name = homedecor_common
description = Homedecor mod: common
depends = default, creative
optional_depends = screwdriver
depends = basic_materials, unifieddyes
optional_depends = screwdriver, hopper, default, creative, sound_api, fl_stone, fl_mapgen, i3, mcl_core, mcl_mapgen_core, void_essential, mapgen

View File

@ -10,7 +10,7 @@ homedecor.box = {
slab_y = function(height, shift) return { -0.5, -0.5+(shift or 0), -0.5, 0.5, -0.5+height+(shift or 0), 0.5 } end,
-- slab starting from -z (+z with negative depth)
slab_z = function(depth, shift)
-- for consistency with the other functions here, we have to assume that a "z" slab starts from -z and extends by depth,
-- for consistency with the other functions here, we have to assume that a z slab starts from -z and extends by depth,
-- but since conventionally a lot of nodes place slabs against +z for player convenience, we define
-- a "negative" depth as a depth extending from the other side, i.e. +z
local s = shift or 0

View File

@ -6,6 +6,8 @@ local placeholder_node = "homedecor:expansion_placeholder"
function homedecor.register(name, original_def)
local def = table.copy(original_def)
def.is_furnace = nil
def.drawtype = def.drawtype
or (def.mesh and "mesh")
or (def.node_box and "nodebox")
@ -44,9 +46,12 @@ function homedecor.register(name, original_def)
if expand then
-- dissallow rotating only half the expanded node by default
-- unless we know better
def.on_rotate = def.on_rotate
or (minetest.get_modpath("screwdriver") and (def.mesh and expand.top and screwdriver.rotate_simple)
or screwdriver.disallow) or nil
def.on_rotate = def.on_rotate or (
minetest.get_modpath("screwdriver") and (
(def.mesh and expand.top and screwdriver.rotate_simple) or
screwdriver.disallow
)
)
def.on_place = def.on_place or function(itemstack, placer, pointed_thing)
if expand.top then
@ -94,6 +99,31 @@ function homedecor.register(name, original_def)
end
end
local crafts = def.crafts and table.copy(def.crafts) or {}
def.crafts = nil
-- register the actual minetest node
minetest.register_node(":homedecor:" .. name, def)
for _, cdef in pairs(crafts) do
if cdef.recipe then
for k, row in pairs(cdef.recipe) do
if type(row) == "string" and homedecor.materials[row] then
cdef.recipe[k] = homedecor.materials[row]
elseif type(row) == "table" then
for i, item in pairs(row) do
if homedecor.materials[item] then
cdef.recipe[k][i] = homedecor.materials[item]
end
end
end
end
end
if cdef.type ~= "toolrepair" and not cdef.output then
cdef.output = "homedecor:" .. name
end
minetest.register_craft(cdef)
end
end

View File

@ -0,0 +1,34 @@
homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
homedecor.white_wood = "homedecor_generic_wood_plain.png"
homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
homedecor.textures = {
glass =
"[combine:16x16:" ..
"0,0=\\[combine\\:1x16\\^[noalpha\\^[colorize\\:#ffffff:" ..
"0,0=\\[combine\\:16x1\\^[noalpha\\^[colorize\\:#ffffff:" ..
"0,15=\\[combine\\:16x1\\^[noalpha\\^[colorize\\:#ffffff:" ..
"15,0=\\[combine\\:1x16\\^[noalpha\\^[colorize\\:#ffffff",
default_wood = "[combine:16x16^[noalpha^[colorize:#654321",
default_junglewood = "[combine:16x16^[noalpha^[colorize:#563d2d",
water = "[combine:16x16^[noalpha^[colorize:#00008b",
wool_white = "[combine:16x16^[noalpha^[colorize:#ffffff",
wool_black = "[combine:16x16^[noalpha^[colorize:#000000",
wool_grey = "[combine:16x16^[noalpha^[colorize:#313b3c",
wool_dark_grey = "[combine:16x16^[noalpha^[colorize:#313b3c",
}
if minetest.get_modpath("default") then
homedecor.textures = {
glass = "default_glass.png",
default_wood = "default_wood.png",
default_junglewood = "default_junglewood.png",
water = "default_water.png",
wool_white = "wool_white.png",
wool_black = "wool_black.png",
wool_grey = "wool_grey.png",
wool_dark_grey = "wool_dark_grey.png",
}
end

View File

@ -1,23 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"doors",
"mesecon",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -1,212 +1,148 @@
-- Node definitions for Homedecor doors
if not minetest.get_modpath("doors") or not minetest.get_modpath("default") then
minetest.log(
"action",
"[homedecor_doors_and_gates]: minetest game not detected, disabling as this mod is minetest game only at this time"
)
return
end
local S = minetest.get_translator("homedecor_doors_and_gates")
local mesecons_mp = minetest.get_modpath("mesecons")
homedecor_doors_and_gates = {}
-- new doors using minetest_game doors API
local door_list = {
{
name = "wood_plain",
description = S("Plain Wooden Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
open = "homedecor_door_open",
close = "homedecor_door_close",
}
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
},
{
name = "exterior_fancy",
description = S("Fancy Wood/Glass Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
open = "homedecor_door_open",
close = "homedecor_door_close",
},
backface = true,
alpha = true,
custom_model = "homedecor_door_fancy"
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
mesh = "homedecor_door_fancy.obj"
},
{
name = "french_oak",
description = S("French door, Oak-colored"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_glass_defaults(),
},
backface = true,
alpha = true,
custom_model = "homedecor_door_french"
sounds = default.node_sound_glass_defaults(),
mesh = "homedecor_door_french.obj"
},
{
name = "french_mahogany",
description = S("French door, Mahogany-colored"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_glass_defaults(),
},
backface = true,
alpha = true,
custom_model = "homedecor_door_french"
sounds = default.node_sound_glass_defaults(),
mesh = "homedecor_door_french.obj"
},
{
name = "french_white",
description = S("French door, White"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_glass_defaults(),
},
backface = true,
alpha = true,
custom_model = "homedecor_door_french"
sounds = default.node_sound_glass_defaults(),
mesh = "homedecor_door_french.obj"
},
{
name = "basic_panel",
description = S("Basic white panel Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
open = "homedecor_door_open",
close = "homedecor_door_close",
}
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
},
{
name = "wrought_iron",
description = S("Wrought Iron Gate/Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_metal_defaults(),
open = "doors_steel_door_open",
close = "doors_steel_door_close",
},
backface = true,
custom_model = "homedecor_door_wrought_iron"
sounds = default.node_sound_metal_defaults(),
sound_open = "doors_steel_door_open",
sound_close = "doors_steel_door_close",
mesh = "homedecor_door_wrought_iron.obj"
},
{
name = "carolina",
description = S("Wooden Carolina door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
open = "homedecor_door_open",
close = "homedecor_door_close",
},
backface = true,
alpha = true
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
},
{
name = "woodglass",
description = S("Wooden door with glass insert, type 3"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
open = "homedecor_door_open",
close = "homedecor_door_close",
},
backface = true,
alpha = true,
custom_model = "homedecor_door_wood_glass_3"
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
mesh = "homedecor_door_wood_glass_3.obj"
},
{
name = "closet_mahogany",
description = S("Mahogany Closet Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
},
custom_model = "homedecor_door_closet"
sounds = default.node_sound_wood_defaults(),
mesh = "homedecor_door_closet.obj"
},
{
name = "closet_oak",
description = S("Oak Closet Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = {
main = default.node_sound_wood_defaults(),
},
custom_model = "homedecor_door_closet"
sounds = default.node_sound_wood_defaults(),
mesh = "homedecor_door_closet"
},
}
local old_doors = {}
local mesecons
-- This part blatantly copied from Mesecons, and modified :-)
if mesecons_mp then
mesecons = {
effector = {
action_on = function(pos, node)
local door = doors.get(pos)
if door then
door:open()
end
end,
action_off = function(pos, node)
local door = doors.get(pos)
if door then
door:close()
end
end,
rules = mesecon.rules.pplate
}
local door_types = {"_a", "_b", "_c", "_d"}
local function generate_door(def)
local default_settings = {
tiles = {{ name = "homedecor_door_" .. def.name .. ".png", backface_culling = true }},
inventory_image = "homedecor_door_" .. def.name .. "_inv.png",
use_texture_alpha = "blend",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
mesecons = {
effector = {
action_on = function(pos, node)
local door = doors.get(pos)
if door then door:open() end
end,
action_off = function(pos, node)
local door = doors.get(pos)
if door then door:close() end
end,
rules = minetest.global_exists("mesecon") and mesecon.rules.pplate or nil
}
},
}
for k, v in pairs(default_settings) do
if not def[k] then def[k] = v end
end
def.name = nil
return def
end
local hd_3d = minetest.get_modpath("homedecor_3d_extras")
for _, door in ipairs(door_list) do
doors.register("homedecor_"..door.name, {
tiles = {{ name = "homedecor_door_"..door.name..".png", backface_culling = door.backface }},
description = door.description,
inventory_image = "homedecor_door_"..door.name.."_inv.png",
groups = table.copy(door.groups),
sounds = door.sounds.main,
sound_open = door.sounds.open,
sound_close = door.sounds.close,
mesecons = mesecons
})
local name = door.name
doors.register("homedecor_" .. name, generate_door(door))
local nn_a = "doors:homedecor_"..door.name.."_a"
local nn_b = "doors:homedecor_"..door.name.."_b"
if door.alpha then
local def = table.copy(minetest.registered_nodes[nn_a])
def.use_texture_alpha = true
def.mesh = "door_a.obj" -- leaving this out will break the _a model
minetest.register_node(":"..nn_a, def) -- assignment when the override takes place
def = table.copy(minetest.registered_nodes[nn_b])
def.use_texture_alpha = true
minetest.register_node(":"..nn_b, def)
--hack to get around doors not allowing custom meshes
if door.mesh then
for _, v in pairs(door_types) do
minetest.override_item("doors:homedecor_" .. name .. v, {
mesh = door.mesh
})
end
end
if door.custom_model and hd_3d then
def = table.copy(minetest.registered_nodes[nn_a])
def.mesh = door.custom_model.."_a.obj"
minetest.register_node(":"..nn_a, def)
--compatibility
old_doors[#old_doors + 1] = "homedecor:door_"..name.."_left"
old_doors[#old_doors + 1] = "homedecor:door_"..name.."_right"
def = table.copy(minetest.registered_nodes[nn_b])
def.mesh = door.custom_model.."_b.obj"
minetest.register_node(":"..nn_b, def)
end
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_left"
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_right"
minetest.register_alias("doors:"..door.name.."_a", "doors:homedecor_"..door.name.."_a")
minetest.register_alias("doors:"..door.name.."_b", "doors:homedecor_"..door.name.."_b")
minetest.register_alias("doors:"..name.."_a", "doors:homedecor_"..name.."_a")
minetest.register_alias("doors:"..name.."_b", "doors:homedecor_"..name.."_b")
end
-- Gates
@ -307,6 +243,7 @@ for i, g in ipairs(gate_list) do
description = gatedesc,
tiles = tiles,
paramtype = "light",
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir",
@ -769,4 +706,4 @@ minetest.register_lbm({
end
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"})
end
})
})

View File

@ -1,4 +1,4 @@
name = homedecor_doors_and_gates
description = Homedecor mod: doors and gates
depends = homedecor_common, default, basic_materials, dye, doors
optional_depends = homedecor_misc, homedecor_3d_extras, mesecons, screwdriver
depends = homedecor_common
optional_depends = homedecor_misc, homedecor_3d_extras, mesecons, screwdriver, default, doors

View File

@ -1,20 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"homedecor",
"mesecon",
}
globals = {
}

View File

@ -53,7 +53,16 @@ homedecor.register("power_outlet", {
}
},
groups = {cracky=3,dig_immediate=2},
walkable = false
walkable = false,
crafts = {
{
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:copper_strip"},
{"basic_materials:plastic_sheet", ""},
{"basic_materials:plastic_sheet", "basic_materials:copper_strip"}
},
}
}
})
for _, onoff in ipairs ({"on", "off"}) do
@ -120,7 +129,7 @@ homedecor.register("doorbell", {
tiles = { "homedecor_doorbell.png" },
inventory_image = "homedecor_doorbell_inv.png",
description = S("Doorbell"),
groups = {snappy=3},
groups = {snappy=3, dig_tree = 3},
walkable = false,
node_box = {
type = "fixed",
@ -135,20 +144,18 @@ homedecor.register("doorbell", {
gain = 1.0,
max_hear_distance = 15
})
end
end,
crafts = {
{
recipe = {
{ "homedecor:light_switch_off", "basic_materials:energy_crystal_simple", "homedecor:speaker_driver" }
},
}
}
})
-- crafting
minetest.register_craft( {
output = "homedecor:power_outlet",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:copper_strip"},
{"basic_materials:plastic_sheet", ""},
{"basic_materials:plastic_sheet", "basic_materials:copper_strip"}
},
})
minetest.register_craft( {
output = "homedecor:light_switch_off",
recipe = {
@ -158,13 +165,6 @@ minetest.register_craft( {
},
})
minetest.register_craft( {
output = "homedecor:doorbell",
recipe = {
{ "homedecor:light_switch_off", "basic_materials:energy_crystal_simple", "homedecor:speaker_driver" }
},
})
-- aliases
minetest.register_alias("homedecor:light_switch", "homedecor:light_switch_on")

View File

@ -1,4 +1,4 @@
name = homedecor_electrical
description = Homedecor mod: electrical
depends = homedecor_common, default, basic_materials
depends = homedecor_common
optional_depends = mesecons, mesecons_receiver

View File

@ -1,20 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
}
globals = {
}

View File

@ -9,11 +9,29 @@ homedecor.register("speaker", {
"homedecor_speaker_sides.png",
"homedecor_speaker_front.png"
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "homedecor:speaker_open", param2 = node.param2})
end
end,
crafts = {
{
recipe = {
{ "wool_black", "homedecor:speaker_driver", "group:wood" },
{ "wool_black", "homedecor:speaker_driver", "group:wood" },
{ "wool_black", "group:wood", "group:wood" },
},
},
{
recipe = {
{ "cotton:black", "homedecor:speaker_driver", "group:wood" },
{ "cotton:black", "homedecor:speaker_driver", "group:wood" },
{ "cotton:black", "group:wood", "group:wood" },
},
}
}
})
homedecor.register("speaker_open", {
@ -25,8 +43,10 @@ homedecor.register("speaker_open", {
"homedecor_speaker_open_front.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_black }
},
groups = { snappy = 3, not_in_creative_inventory=1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, not_in_creative_inventory=1, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "homedecor:speaker", param2 = node.param2})
end
@ -46,8 +66,22 @@ homedecor.register("speaker_small", {
},
selection_box = spk_cbox,
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
recipe = {
{ "wool_black", "homedecor:speaker_driver", "group:wood" },
},
},
{
recipe = {
{ "cotton:black", "homedecor:speaker_driver", "group:wood" },
},
}
}
})
homedecor.register("stereo", {
@ -58,8 +92,19 @@ homedecor.register("stereo", {
'homedecor_stereo_left.png',
'homedecor_stereo_back.png',
'homedecor_stereo_front.png'},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "steel_ingot", "basic_materials:ic", "steel_ingot" },
},
}
}
})
homedecor.register("projection_screen", {
@ -69,13 +114,25 @@ homedecor.register("projection_screen", {
wield_image = 'homedecor_projection_screen_inv.png',
inventory_image = 'homedecor_projection_screen_inv.png',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_leaves_defaults",
},
paramtype2 = 'wallmounted',
selection_box = {
type = "wallmounted",
--wall_side = = <default>
},
crafts = {
{
output = "homedecor:projection_screen 3",
recipe = {
{ "", "glass_block", "" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
},
},
}
})
homedecor.register("television", {
@ -94,9 +151,27 @@ homedecor.register("television", {
}
}
},
light_source = default.LIGHT_MAX - 1,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
light_source = minetest.LIGHT_MAX - 1,
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "glass_block", "basic_materials:plastic_sheet" },
{ "basic_materials:ic", "basic_materials:energy_crystal_simple", "basic_materials:ic" },
},
},
{
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "moreblocks:glow_glass", "basic_materials:plastic_sheet" },
{ "basic_materials:ic", "basic_materials:ic", "basic_materials:ic" },
},
}
}
})
homedecor.register("dvd_vcr", {
@ -117,8 +192,28 @@ homedecor.register("dvd_vcr", {
{-0.25, -0.5, -0.25, 0.25, -0.1875, 0.125},
}
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
output = "homedecor:dvd_player 2",
recipe = {
{ "", "basic_materials:plastic_sheet", "" },
{ "obsidian_glass", "basic_materials:motor", "basic_materials:motor" },
{ "mese_crystal_fragment", "basic_materials:ic", "basic_materials:energy_crystal_simple" },
},
},
{
type = "shapeless",
output = "homedecor:dvd_vcr",
recipe = {
"homedecor:vcr",
"homedecor:dvd_player"
},
}
}
})
local tel_cbox = {
@ -136,13 +231,24 @@ homedecor.register("telephone", {
},
inventory_image = "homedecor_telephone_inv.png",
description = S("Telephone"),
groups = {snappy=3},
groups = {snappy=3, dig_tree = 2},
selection_box = tel_cbox,
walkable = false,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
recipe = {
{ "homedecor:speaker_driver", "basic_materials:copper_wire", "homedecor:speaker_driver" },
{ "basic_materials:plastic_sheet", "steel_ingot", "basic_materials:plastic_sheet" },
{ "steel_ingot", "steel_ingot", "steel_ingot" }
},
}
}
})
-- crafting
-- craft items
minetest.register_craftitem(":homedecor:vcr", {
description = S("VCR"),
@ -159,21 +265,7 @@ minetest.register_craftitem(":homedecor:speaker_driver", {
inventory_image = "homedecor_speaker_driver_inv.png"
})
minetest.register_craft( {
output = "homedecor:projection_screen 3",
recipe = {
{ "", "default:glass", "" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:projection_screen",
burntime = 30,
})
--crafts
minetest.register_craft( {
output = "basic_materials:ic 4",
@ -183,110 +275,26 @@ minetest.register_craft( {
},
})
minetest.register_craft( {
output = "homedecor:television",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "moreblocks:glow_glass", "basic_materials:plastic_sheet" },
{ "basic_materials:ic", "basic_materials:ic", "basic_materials:ic" },
},
})
minetest.register_craft( {
output = "homedecor:television",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" },
{ "basic_materials:ic", "basic_materials:energy_crystal_simple", "basic_materials:ic" },
},
})
minetest.register_craft( {
output = "homedecor:stereo",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "default:steel_ingot", "basic_materials:ic", "default:steel_ingot" },
},
})
minetest.register_craft( {
output = "homedecor:speaker_driver 2",
recipe = {
{ "", "default:steel_ingot", "" },
{ "default:paper", "basic_materials:copper_wire", "default:iron_lump" },
{ "", "default:steel_ingot", "" },
{ "", homedecor.materials["steel_ingot"], "" },
{ homedecor.materials["paper"], "basic_materials:copper_wire", homedecor.materials["iron_lump"] },
{ "", homedecor.materials["steel_ingot"], "" },
},
})
minetest.register_craft( {
output = "homedecor:speaker_small",
recipe = {
{ "wool:black", "homedecor:speaker_driver", "group:wood" },
},
})
minetest.register_craft( {
output = "homedecor:speaker",
recipe = {
{ "wool:black", "homedecor:speaker_driver", "group:wood" },
{ "wool:black", "homedecor:speaker_driver", "group:wood" },
{ "wool:black", "group:wood", "group:wood" },
},
})
-- cotton version
minetest.register_craft( {
output = "homedecor:speaker_small",
recipe = {
{ "cotton:black", "homedecor:speaker_driver", "group:wood" },
},
})
minetest.register_craft( {
output = "homedecor:speaker",
recipe = {
{ "cotton:black", "homedecor:speaker_driver", "group:wood" },
{ "cotton:black", "homedecor:speaker_driver", "group:wood" },
{ "cotton:black", "group:wood", "group:wood" },
},
})
minetest.register_craft({
output = "homedecor:vcr 2",
recipe = {
{ "basic_materials:ic", "default:steel_ingot", "basic_materials:plastic_sheet" },
{ "default:iron_lump", "default:iron_lump", "default:iron_lump" },
{ "basic_materials:ic", homedecor.materials["steel_ingot"], "basic_materials:plastic_sheet" },
{ homedecor.materials["iron_lump"], homedecor.materials["iron_lump"], homedecor.materials["iron_lump"] },
{ "basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:dvd_player 2",
recipe = {
{ "", "basic_materials:plastic_sheet", "" },
{ "default:obsidian_glass", "basic_materials:motor", "basic_materials:motor" },
{ "default:mese_crystal_fragment", "basic_materials:ic", "basic_materials:energy_crystal_simple" },
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:dvd_vcr",
recipe = {
"homedecor:vcr",
"homedecor:dvd_player"
},
})
minetest.register_craft( {
output = "homedecor:telephone",
recipe = {
{ "homedecor:speaker_driver", "basic_materials:copper_wire", "homedecor:speaker_driver" },
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
},
})
type = "fuel",
recipe = "homedecor:projection_screen",
burntime = 30,
})

View File

@ -1,4 +1,4 @@
name = homedecor_electronics
description = Homedecor mod: electronics
depends = homedecor_common, default, basic_materials
depends = homedecor_common
optional_depends = moreblocks

View File

@ -1,22 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"creative",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -21,32 +21,56 @@ homedecor.register("barbecue", {
},
"homedecor_barbecue_meat.png",
},
groups = { snappy=3 },
groups = { snappy=3, dig_tree = 2 },
light_source = 9,
selection_box = bbq_cbox,
collision_box = bbq_cbox,
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
-- no need for placeholder it appears
expand = { top="air" },
crafts = {
{
recipe = {
{ "","homedecor:fence_chainlink","" },
{ "steel_ingot","fake_fire:embers","steel_ingot" },
{ "basic_materials:steel_bar","steel_ingot","basic_materials:steel_bar" }
},
}
}
})
minetest.register_alias("homedecor:barbecue_meat", "air")
local wood_tex = homedecor.textures.default_wood
homedecor.register("doghouse", {
mesh = "homedecor_doghouse.obj",
tiles = {
"homedecor_shingles_terracotta.png",
"default_wood.png",
wood_tex,
"building_blocks_towel.png"
},
description = S("Doghouse"),
inventory_image = "homedecor_doghouse_inv.png",
selection_box = homedecor.nodebox.slab_y(1.5),
collision_box = homedecor.nodebox.slab_y(1.5),
groups = {snappy=3},
groups = {snappy=3, dig_tree = 2},
expand = { top="placeholder" },
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
crafts = {
{
recipe = {
{"homedecor:shingles_terracotta", "homedecor:shingles_terracotta", "homedecor:shingles_terracotta"},
{"group:wood", "", "group:wood"},
{"group:wood", "building_blocks:terrycloth_towel", "group:wood"}
},
}
}
})
minetest.register_alias("homedecor:doghouse_roof", "air")
@ -55,10 +79,10 @@ minetest.register_alias("homedecor:doghouse_base", "homedecor:doghouse")
homedecor.register("stonepath", {
description = S("Garden stone path"),
tiles = {
"default_stone.png"
minetest.registered_nodes["mapgen_stone"].tiles[1],
},
inventory_image = "homedecor_stonepath_inv.png",
groups = { snappy=3 },
groups = { snappy=3, dig_stone = 2 },
node_box = {
type = "fixed",
fixed = {
@ -76,7 +100,35 @@ homedecor.register("stonepath", {
type = "fixed",
fixed = { -0.4375, -0.5, -0.4375, 0.4375, -0.4, 0.4375 }
},
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
output = "homedecor:stonepath 16",
recipe = {
{ "slab_stone","","slab_stone" },
{ "","slab_stone","" },
{ "slab_stone","","slab_stone" }
},
},
{
output = "homedecor:stonepath 16",
recipe = {
{ "moreblocks:slab_stone","","moreblocks:slab_stone" },
{ "","moreblocks:slab_stone","" },
{ "moreblocks:slab_stone","","moreblocks:slab_stone" }
},
},
{
output = "homedecor:stonepath 3",
recipe = {
{ "moreblocks:micro_stone_1","","moreblocks:micro_stone_1" },
{ "","moreblocks:micro_stone_1","" },
{ "moreblocks:micro_stone_1","","moreblocks:micro_stone_1" }
},
}
}
})
local lattice_colors = {
@ -94,7 +146,8 @@ homedecor.register("lattice_"..name, {
description = S("Garden Lattice (@1)", desc),
tiles = {"homedecor_lattice"..texture},
inventory_image = "homedecor_lattice"..texture,
groups = { snappy=3 },
use_texture_alpha = "clip",
groups = { snappy=3, dig_tree = 2 },
node_box = {
type = "fixed",
fixed = {
@ -109,7 +162,9 @@ homedecor.register("lattice_"..name, {
type = "fixed",
fixed = {-0.5, -0.5, 0.44, 0.5, 0.5, 0.5}
},
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
})
end
@ -121,8 +176,11 @@ homedecor.register("swing", {
"homedecor_swing_top.png"
},
inventory_image = "homedecor_swing_inv.png",
groups = { snappy=3, oddly_breakable_by_hand=3 },
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = { snappy=3, oddly_breakable_by_hand=3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
walkable = false,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
node_box = {
@ -170,7 +228,7 @@ homedecor.register("swing", {
minetest.set_node({ x=pos.x, y=pos.y-height, z=pos.z }, { name = "homedecor:swing", param2 = fdir })
if not creative.is_enabled_for(placer_name) then
if not minetest.is_creative_enabled(placer_name) then
itemstack:take_item()
end
else
@ -188,7 +246,30 @@ homedecor.register("swing", {
return
end
end
end
end,
crafts = {
{
recipe = {
{ "string","","string" },
{ "string","","string" },
{ "string","slab_wood","string" }
},
},
{
recipe = {
{ "string","","string" },
{ "string","","string" },
{ "string","moreblocks:slab_wood","string" }
},
},
{
recipe = {
{ "string","","string" },
{ "string","","string" },
{ "string","moreblocks:panel_wood_1","string" }
},
}
}
})
homedecor.register("swing_rope", {
@ -207,27 +288,50 @@ homedecor.register("swing_rope", {
selection_box = homedecor.nodebox.null
})
local water_tex = "default_water.png"
if not minetest.get_modpath("default") then water_tex = "[combine:16x16^[noalpha^[colorize:#00008b" end
local cobble_tex = minetest.registered_nodes["mapgen_stone"].tiles[1]
local stone_drop = minetest.registered_nodes["mapgen_stone"].drop
if stone_drop and type(stone_drop) == "string" then
cobble_tex = minetest.registered_nodes[stone_drop].tiles[1]
elseif stone_drop and type(stone_drop) == "table" then
cobble_tex = minetest.registered_nodes[stone_drop.items[1].items[1]].tiles[1]
end
homedecor.register("well", {
mesh = "homedecor_well.obj",
tiles = {
"homedecor_rope_texture.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"default_water.png",
"default_cobble.png",
"default_wood.png",
water_tex,
cobble_tex,
wood_tex,
"homedecor_shingles_wood.png"
},
inventory_image = "homedecor_well_inv.png",
description = S("Water well"),
groups = { snappy = 3 },
use_texture_alpha = "clip",
groups = { snappy = 3, dig_stone = 1 },
selection_box = homedecor.nodebox.slab_y(2),
collision_box = homedecor.nodebox.slab_y(2),
expand = { top="placeholder" },
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
crafts = {
{
recipe = {
{ "homedecor:shingles_wood", "homedecor:shingles_wood", "homedecor:shingles_wood" },
{ "group:wood", "group:stick", "group:wood" },
{ "group:stone", "", "group:stone" }
},
}
}
})
if minetest.get_modpath("bucket") then
--because the engine of all people cant follow right to a name, need to verify bucket empty
if minetest.get_modpath("bucket") and minetest.registered_items["bucket:bucket_empty"] then
local original_bucket_on_use = minetest.registered_items["bucket:bucket_empty"].on_use
minetest.override_item("bucket:bucket_empty", {
on_use = function(itemstack, user, pointed_thing)
@ -265,8 +369,19 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
tiles = {"homedecor_shrubbery_"..color..".png"},
paramtype = "light",
is_ground_content = false,
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, flammable=2, dig_tree = 3},
_sound_def = {
key = "node_sound_leaves_defaults",
},
crafts = {
{
type = "shapeless",
recipe = {
"homedecor:shrubbery_"..color
}
}
}
})
minetest.register_node(":homedecor:shrubbery_"..color, {
@ -280,105 +395,47 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
},
paramtype = "light",
is_ground_content = false,
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, flammable=2, dig_tree = 3},
_sound_def = {
key = "node_sound_leaves_defaults",
},
selection_box = shrub_cbox,
collision_box = shrub_cbox,
crafts = {
{
type = "shapeless",
recipe = {
"homedecor:shrubbery_large_"..color
}
}
}
})
if color ~= "green" then
minetest.register_craft({
type = "shapeless",
output = "homedecor:shrubbery_large_"..color,
recipe = {
"homedecor:shrubbery_large_green",
homedecor.materials["dye_"..color]
}
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:shrubbery_"..color,
recipe = {
"homedecor:shrubbery_green",
homedecor.materials["dye_"..color]
}
})
end
end
-- crafting
minetest.register_craft({
output = "homedecor:chimney 2",
recipe = {
{ "default:clay_brick", "", "default:clay_brick" },
{ "default:clay_brick", "", "default:clay_brick" },
{ "default:clay_brick", "", "default:clay_brick" },
},
})
minetest.register_craft( {
output = "homedecor:doghouse",
recipe = {
{"homedecor:shingles_terracotta", "homedecor:shingles_terracotta", "homedecor:shingles_terracotta"},
{"group:wood", "", "group:wood"},
{"group:wood", "building_blocks:terrycloth_towel", "group:wood"}
},
})
minetest.register_craft( {
output = "homedecor:well",
recipe = {
{ "homedecor:shingles_wood", "homedecor:shingles_wood", "homedecor:shingles_wood" },
{ "group:wood", "group:stick", "group:wood" },
{ "group:stone", "", "group:stone" }
},
})
minetest.register_craft({
output = "homedecor:stonepath 16",
recipe = {
{ "stairs:slab_stone","","stairs:slab_stone" },
{ "","stairs:slab_stone","" },
{ "stairs:slab_stone","","stairs:slab_stone" }
},
})
minetest.register_craft({
output = "homedecor:stonepath 16",
recipe = {
{ "moreblocks:slab_stone","","moreblocks:slab_stone" },
{ "","moreblocks:slab_stone","" },
{ "moreblocks:slab_stone","","moreblocks:slab_stone" }
},
})
minetest.register_craft({
output = "homedecor:stonepath 3",
recipe = {
{ "moreblocks:micro_stone_1","","moreblocks:micro_stone_1" },
{ "","moreblocks:micro_stone_1","" },
{ "moreblocks:micro_stone_1","","moreblocks:micro_stone_1" }
},
})
minetest.register_craft({
output = "homedecor:barbecue",
recipe = {
{ "","homedecor:fence_chainlink","" },
{ "default:steel_ingot","fake_fire:embers","default:steel_ingot" },
{ "basic_materials:steel_bar","default:steel_ingot","basic_materials:steel_bar" }
},
})
minetest.register_craft({
output = "homedecor:swing",
recipe = {
{ "farming:string","","farming:string" },
{ "farming:string","","farming:string" },
{ "farming:string","stairs:slab_wood","farming:string" }
},
})
minetest.register_craft({
output = "homedecor:swing",
recipe = {
{ "farming:string","","farming:string" },
{ "farming:string","","farming:string" },
{ "farming:string","moreblocks:slab_wood","farming:string" }
},
})
minetest.register_craft({
output = "homedecor:swing",
recipe = {
{ "farming:string","","farming:string" },
{ "farming:string","","farming:string" },
{ "farming:string","moreblocks:panel_wood_1","farming:string" }
},
})
minetest.register_craft({
output = "homedecor:lattice_wood 8",
recipe = {
@ -392,7 +449,7 @@ minetest.register_craft({
output = "homedecor:lattice_white_wood 8",
recipe = {
{"group:stick", "group:wood", "group:stick"},
{"group:wood", "dye:white", "group:wood"},
{"group:wood", homedecor.materials["dye_white"], "group:wood"},
{"group:stick", "group:wood", "group:stick"},
},
})
@ -411,7 +468,7 @@ minetest.register_craft({
recipe = {
{"group:stick", "group:wood", "group:stick"},
{"group:wood", "group:leaves", "group:wood"},
{"group:stick", "dye:white", "group:stick"},
{"group:stick", homedecor.materials["dye_white"], "group:stick"},
},
})
@ -425,46 +482,6 @@ minetest.register_craft({
}
})
for color, _ in pairs(homedecor_exterior.shrub_colors) do
minetest.register_craft({
type = "shapeless",
output = "homedecor:shrubbery_large_"..color,
recipe = {
"homedecor:shrubbery_"..color
}
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:shrubbery_"..color,
recipe = {
"homedecor:shrubbery_large_"..color
}
})
if color ~= "green" then
minetest.register_craft({
type = "shapeless",
output = "homedecor:shrubbery_large_"..color,
recipe = {
"homedecor:shrubbery_large_green",
"dye:"..color
}
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:shrubbery_"..color,
recipe = {
"homedecor:shrubbery_green",
"dye:"..color
}
})
end
end
-- aliases
minetest.register_alias("homedecor:well_top", "air")

View File

@ -1,4 +1,4 @@
name = homedecor_exterior
description = Homedecor mod: exterior
depends = homedecor_common, default, dye, creative, basic_materials
depends = homedecor_common
optional_depends = moreblocks, building_blocks, bucket, screwdriver

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
}
globals = {
"signs_lib",
}

View File

@ -2,14 +2,30 @@
local S = minetest.get_translator("homedecor_fences")
local brass = {
output = "homedecor:fence_brass 6",
recipe = {
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
},
}
local iron = {
output = "homedecor:fence_wrought_iron 6",
recipe = {
{ "iron_lump","iron_lump","iron_lump" },
{ "iron_lump","iron_lump","iron_lump" },
},
}
local materials = {
{ S("brass"), "brass" },
{ S("wrought iron"), "wrought_iron" },
{ S("brass"), "brass", brass },
{ S("wrought iron"), "wrought_iron", iron },
}
for _, m in ipairs(materials) do
local desc, name = unpack(m)
local desc, name, craft = unpack(m)
homedecor.register("fence_"..name, {
description = S("Fence/railing (@1)", desc),
@ -17,8 +33,13 @@ for _, m in ipairs(materials) do
tiles = {"homedecor_generic_metal_"..name..".png"},
inventory_image = "homedecor_fence_"..name..".png",
selection_box = homedecor.nodebox.bar_y(1/7),
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
craft
}
})
end
@ -35,10 +56,30 @@ homedecor.register("fence_picket", {
"homedecor_fence_picket_backside.png",
"homedecor_fence_picket.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.slab_z(-0.1),
node_box = homedecor.nodebox.slab_z(-0.002),
crafts = {
{
output = "homedecor:fence_picket 6",
recipe = {
{ "group:stick", "group:stick", "group:stick" },
{ "group:stick", "", "group:stick" },
{ "group:stick", "group:stick", "group:stick" }
},
},
{
type = "shapeless",
output = "homedecor:fence_picket 2",
recipe = {
"homedecor:fence_picket_corner"
},
}
}
})
homedecor.register("fence_picket_corner", {
@ -51,10 +92,22 @@ homedecor.register("fence_picket_corner", {
"homedecor_fence_picket_backside.png",
"homedecor_fence_picket.png",
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
node_box = homedecor.nodebox.corner_xz(0.002, -0.002),
crafts = {
{
type = "shapeless",
recipe = {
"homedecor:fence_picket",
"homedecor:fence_picket"
},
},
}
})
homedecor.register("fence_picket_white", {
@ -67,10 +120,30 @@ homedecor.register("fence_picket_white", {
"homedecor_fence_picket_white_backside.png",
"homedecor_fence_picket_white.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.slab_z(-0.1),
node_box = homedecor.nodebox.slab_z(-0.002),
crafts = {
{
output = "homedecor:fence_picket_white 6",
recipe = {
{ "group:stick", "group:stick", "group:stick" },
{ "group:stick", "dye_white", "group:stick" },
{ "group:stick", "group:stick", "group:stick" }
},
},
{
type = "shapeless",
output = "homedecor:fence_picket_white 2",
recipe = {
"homedecor:fence_picket_corner_white"
},
}
}
})
homedecor.register("fence_picket_corner_white", {
@ -83,10 +156,22 @@ homedecor.register("fence_picket_corner_white", {
"homedecor_fence_picket_white_backside.png",
"homedecor_fence_picket_white.png",
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
node_box = homedecor.nodebox.corner_xz(0.002, -0.002),
crafts = {
{
type = "shapeless",
recipe = {
"homedecor:fence_picket_white",
"homedecor:fence_picket_white"
},
}
}
})
homedecor.register("fence_privacy", {
@ -99,8 +184,10 @@ homedecor.register("fence_privacy", {
"homedecor_fence_privacy_backside.png",
"homedecor_fence_privacy_front.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.slab_z(-3/16),
node_box = {
type = "fixed",
@ -111,6 +198,23 @@ homedecor.register("fence_privacy", {
{ -8/16, -2/16, 7/16, 8/16, 2/16, 8/16 }, -- connecting rung
}
},
crafts = {
{
output = "homedecor:fence_privacy 6",
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "group:wood", "", "group:wood" },
{ "group:wood", "group:stick", "group:wood" }
},
},
{
type = "shapeless",
output = "homedecor:fence_privacy 2",
recipe = {
"homedecor:fence_privacy_corner"
},
}
}
})
homedecor.register("fence_privacy_corner", {
@ -123,8 +227,10 @@ homedecor.register("fence_privacy_corner", {
"homedecor_fence_privacy_backside.png",
"homedecor_fence_privacy_corner_front.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = {
type = "fixed",
fixed = {
@ -146,26 +252,62 @@ homedecor.register("fence_privacy_corner", {
{ -8/16, -2/16, -8/16, -7/16, 2/16, 7/16 }, -- left-side connecting rung
}
},
crafts = {
{
type = "shapeless",
recipe = {
"homedecor:fence_privacy",
"homedecor:fence_privacy"
},
},
}
})
homedecor.register("fence_barbed_wire", {
description = S("Barbed Wire Fence"),
mesh = "homedecor_fence_barbed_wire.obj",
tiles = {"homedecor_fence_barbed_wire.png"},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.slab_z(-0.125),
collision_box = homedecor.nodebox.slab_z(-0.125),
crafts = {
{
output = "homedecor:fence_barbed_wire 6",
recipe = {
{ "group:stick", "basic_materials:steel_wire", "group:stick" },
{ "group:stick", "", "group:stick" },
{ "group:stick", "basic_materials:steel_wire", "group:stick" }
},
},
{
type = "shapeless",
output = "homedecor:fence_barbed_wire 2",
recipe = { "homedecor:fence_barbed_wire_corner" },
}
}
})
homedecor.register("fence_barbed_wire_corner", {
description = S("Barbed Wire Fence Corner"),
mesh = "homedecor_fence_barbed_wire_corner.obj",
tiles = { "homedecor_fence_barbed_wire.png" },
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
collision_box = homedecor.nodebox.corner_xz(0.125, -0.125),
crafts = {
{
type = "shapeless",
recipe = { "homedecor:fence_barbed_wire", "homedecor:fence_barbed_wire" },
}
}
})
homedecor.register("fence_chainlink", {
@ -179,10 +321,28 @@ homedecor.register("fence_chainlink", {
"homedecor_fence_chainlink_fb.png",
"homedecor_fence_chainlink_fb.png",
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.slab_z(-0.125),
collision_box = homedecor.nodebox.slab_z(-0.125),
crafts = {
{
output = "homedecor:fence_chainlink 9",
recipe = {
{ "steel_ingot", "steel_ingot", "steel_ingot" },
{ "basic_materials:steel_wire", "basic_materials:steel_wire", "steel_ingot" },
{ "basic_materials:steel_wire", "basic_materials:steel_wire", "steel_ingot" }
},
},
{
type = "shapeless",
output = "homedecor:fence_chainlink 2",
recipe = { "homedecor:fence_chainlink_corner" },
}
}
})
@ -197,10 +357,19 @@ homedecor.register("fence_chainlink_corner", {
"homedecor_fence_chainlink_corner_front.png",
"homedecor_fence_chainlink_corner_front.png",
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
collision_box = homedecor.nodebox.corner_xz(0.125, -0.125),
crafts = {
{
type = "shapeless",
recipe = { "homedecor:fence_chainlink", "homedecor:fence_chainlink" },
}
}
})
homedecor.register("fence_wrought_iron_2", {
@ -213,8 +382,11 @@ homedecor.register("fence_wrought_iron_2", {
"homedecor_fence_wrought_iron_2_fb.png",
"homedecor_fence_wrought_iron_2_fb.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.slab_z(-0.08),
node_box = {
type = "fixed",
@ -228,6 +400,22 @@ homedecor.register("fence_wrought_iron_2", {
{ -8/16, -8/16, 15/32, 8/16, 8/16, 15/32 } -- the grid itself
}
},
crafts = {
{
output = "homedecor:fence_wrought_iron_2 4",
recipe = {
{ "homedecor:pole_wrought_iron", "iron_lump" },
{ "homedecor:pole_wrought_iron", "iron_lump" },
},
}
},
{
type = "shapeless",
output = "homedecor:fence_wrought_iron_2 2",
recipe = {
"homedecor:fence_wrought_iron_2_corner",
},
}
})
homedecor.register("fence_wrought_iron_2_corner", {
@ -240,8 +428,11 @@ homedecor.register("fence_wrought_iron_2_corner", {
"homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX",
"homedecor_fence_corner_wrought_iron_2_sides.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
use_texture_alpha = "clip",
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = homedecor.nodebox.corner_xz(0.08, -0.08),
node_box = {
type = "fixed",
@ -261,10 +452,20 @@ homedecor.register("fence_wrought_iron_2_corner", {
{ -15.25/32, -0.015625, -0.5, -14.75/32, 0.015625, 0.5 } -- cross piece side
}
},
crafts = {
{
type = "shapeless",
output = "homedecor:fence_wrought_iron_2_corner",
recipe = {
"homedecor:fence_wrought_iron_2",
"homedecor:fence_wrought_iron_2"
},
}
}
})
-- insert the old wood signs-on-metal-fences into signs_lib's conversion LBM
if minetest.get_modpath("signs_lib") then
if minetest.get_modpath("signs_lib") and minetest.get_modpath("default") then
-- FIXME: export a function in signs_lib API to allow signs_lib to be read only in .luacheckrc
table.insert(signs_lib.old_fenceposts_with_signs, "homedecor:fence_brass_with_sign")
signs_lib.old_fenceposts["homedecor:fence_brass_with_sign"] = "homedecor:fence_brass"
@ -274,183 +475,3 @@ if minetest.get_modpath("signs_lib") then
signs_lib.old_fenceposts["homedecor:fence_wrought_iron_with_sign"] = "homedecor:fence_wrought_iron"
signs_lib.old_fenceposts_replacement_signs["homedecor:fence_wrought_iron_with_sign"] = "default:sign_wall_wood_onpole"
end
-- crafting
-- Brass/wrought iron fences
minetest.register_craft( {
output = "homedecor:fence_brass 6",
recipe = {
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
},
})
minetest.register_craft( {
output = "homedecor:fence_wrought_iron 6",
recipe = {
{ "default:iron_lump","default:iron_lump","default:iron_lump" },
{ "default:iron_lump","default:iron_lump","default:iron_lump" },
},
})
-- other types of fences
minetest.register_craft( {
output = "homedecor:fence_wrought_iron_2 4",
recipe = {
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_wrought_iron_2_corner",
recipe = {
"homedecor:fence_wrought_iron_2",
"homedecor:fence_wrought_iron_2"
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_wrought_iron_2 2",
recipe = {
"homedecor:fence_wrought_iron_2_corner",
},
})
--
minetest.register_craft( {
output = "homedecor:fence_picket 6",
recipe = {
{ "group:stick", "group:stick", "group:stick" },
{ "group:stick", "", "group:stick" },
{ "group:stick", "group:stick", "group:stick" }
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_picket_corner",
recipe = {
"homedecor:fence_picket",
"homedecor:fence_picket"
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_picket 2",
recipe = {
"homedecor:fence_picket_corner"
},
})
--
minetest.register_craft( {
output = "homedecor:fence_picket_white 6",
recipe = {
{ "group:stick", "group:stick", "group:stick" },
{ "group:stick", "dye:white", "group:stick" },
{ "group:stick", "group:stick", "group:stick" }
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_picket_corner_white",
recipe = {
"homedecor:fence_picket_white",
"homedecor:fence_picket_white"
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_picket_white 2",
recipe = {
"homedecor:fence_picket_corner_white"
},
})
--
minetest.register_craft( {
output = "homedecor:fence_privacy 6",
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "group:wood", "", "group:wood" },
{ "group:wood", "group:stick", "group:wood" }
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_privacy_corner",
recipe = {
"homedecor:fence_privacy",
"homedecor:fence_privacy"
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_privacy 2",
recipe = {
"homedecor:fence_privacy_corner"
},
})
--
minetest.register_craft( {
output = "homedecor:fence_barbed_wire 6",
recipe = {
{ "group:stick", "basic_materials:steel_wire", "group:stick" },
{ "group:stick", "", "group:stick" },
{ "group:stick", "basic_materials:steel_wire", "group:stick" }
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_barbed_wire_corner",
recipe = { "homedecor:fence_barbed_wire", "homedecor:fence_barbed_wire" },
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_barbed_wire 2",
recipe = { "homedecor:fence_barbed_wire_corner" },
})
--
minetest.register_craft( {
output = "homedecor:fence_chainlink 9",
recipe = {
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
{ "basic_materials:steel_wire", "basic_materials:steel_wire", "default:steel_ingot" },
{ "basic_materials:steel_wire", "basic_materials:steel_wire", "default:steel_ingot" }
},
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_chainlink_corner",
recipe = { "homedecor:fence_chainlink", "homedecor:fence_chainlink" },
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:fence_chainlink 2",
recipe = { "homedecor:fence_chainlink_corner" },
})

View File

@ -1,4 +1,4 @@
name = homedecor_fences
description = Homedecor mod: fences
depends = homedecor_common, default, basic_materials, dye
optional_depends = signs_lib
depends = homedecor_common
optional_depends = signs_lib, default, basic_materials, dye

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -4,8 +4,10 @@ homedecor.register("coatrack_wallmount", {
tiles = { homedecor.plain_wood },
inventory_image = "homedecor_coatrack_wallmount_inv.png",
description = S("Wall-mounted coat rack"),
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
node_box = {
type = "fixed",
fixed = {
@ -20,6 +22,13 @@ homedecor.register("coatrack_wallmount", {
{0.0525, 0.025, 0.352697, 0.135, 0.115, 0.375}, -- NodeBox9
}
},
crafts = {
{
recipe = {
{ "group:stick", "homedecor:curtainrod_wood", "group:stick" },
},
}
}
})
homedecor.register("coat_tree", {
@ -30,8 +39,10 @@ homedecor.register("coat_tree", {
},
inventory_image = "homedecor_coatrack_inv.png",
description = S("Coat tree"),
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
expand = { top="placeholder" },
walkable = false,
selection_box = {
@ -39,16 +50,59 @@ homedecor.register("coat_tree", {
fixed = { -0.4, -0.5, -0.4, 0.4, 1.5, 0.4 }
},
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
crafts = {
{
recipe = {
{ "group:stick", "group:stick", "group:stick" },
{ "", "group:stick", "" },
{ "", "group:wood", "" }
},
}
}
})
local grey = {{
output = "homedecor:welcome_mat_grey 2",
recipe = {
{ "", "dye_black", "" },
{ "wool_grey", "wool_grey", "wool_grey" },
},
}}
local brown = {{
output = "homedecor:welcome_mat_brown 2",
recipe = {
{ "", "dye_black", "" },
{ "wool_brown", "wool_brown", "wool_brown" },
},
}}
local green = {
{
output = "homedecor:welcome_mat_green 2",
recipe = {
{ "", "dye_white", "" },
{ "wool_dark_green", "wool_dark_green", "wool_dark_green" },
},
},
{
output = "homedecor:welcome_mat_green 2",
recipe = {
{ "", "dye_white", "" },
{ "dye_black", "dye_black", "dye_black" },
{ "wool_green", "wool_green", "wool_green" },
},
}
}
local mat_colors = {
{ "green", S("Green welcome mat") },
{ "brown", S("Brown welcome mat") },
{ "grey", S("Grey welcome mat") },
{ "green", S("Green welcome mat"), green },
{ "brown", S("Brown welcome mat"), brown },
{ "grey", S("Grey welcome mat"), grey },
}
for _, mat in ipairs(mat_colors) do
local color, desc = unpack(mat)
local color, desc, crafts = unpack(mat)
homedecor.register("welcome_mat_"..color, {
description = desc,
tiles = {
@ -56,65 +110,14 @@ for _, mat in ipairs(mat_colors) do
"homedecor_welcome_mat_bottom.png",
"homedecor_welcome_mat_"..color..".png",
},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.25},
}),
groups = {crumbly=3, dig_tree=2},
_sound_def = {
key = "node_sound_dirt_defaults",
},
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.375, 0.5, -0.46875, 0.375 }
}
},
crafts = crafts
})
end
-- crafting
minetest.register_craft({
output = "homedecor:welcome_mat_grey 2",
recipe = {
{ "", "dye:black", "" },
{ "wool:grey", "wool:grey", "wool:grey" },
},
})
minetest.register_craft({
output = "homedecor:welcome_mat_brown 2",
recipe = {
{ "", "dye:black", "" },
{ "wool:brown", "wool:brown", "wool:brown" },
},
})
minetest.register_craft({
output = "homedecor:welcome_mat_green 2",
recipe = {
{ "", "dye:white", "" },
{ "wool:dark_green", "wool:dark_green", "wool:dark_green" },
},
})
minetest.register_craft({
output = "homedecor:welcome_mat_green 2",
recipe = {
{ "", "dye:white", "" },
{ "dye:black", "dye:black", "dye:black" },
{ "wool:green", "wool:green", "wool:green" },
},
})
minetest.register_craft( {
output = "homedecor:coat_tree",
recipe = {
{ "group:stick", "group:stick", "group:stick" },
{ "", "group:stick", "" },
{ "", "group:wood", "" }
},
})
minetest.register_craft( {
output = "homedecor:coatrack_wallmount",
recipe = {
{ "group:stick", "homedecor:curtainrod_wood", "group:stick" },
},
})
end

View File

@ -1,4 +1,4 @@
name = homedecor_foyer
description = Homedecor mod: foyer
depends = homedecor_common, default, dye
optional_depends = screwdriver
depends = homedecor_common
optional_depends = screwdriver, default, dye

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"unifieddyes",
"homedecor",
}
globals = {
}

View File

@ -1,66 +1,48 @@
local S = minetest.get_translator("homedecor_furniture")
local table_colors = {
{ "", S("Table"), homedecor.plain_wood },
{ "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
{ "_white", S("White Table"), homedecor.white_wood }
}
for _, t in ipairs(table_colors) do
local suffix, desc, texture = unpack(t)
homedecor.register("table"..suffix, {
description = desc,
tiles = { texture },
node_box = {
type = "fixed",
fixed = {
{ -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 },
{ 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 },
{ -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 },
{ 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 },
{ -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 },
{ -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 },
{ 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 },
{ -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 },
{ -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 },
},
},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
})
end
local ob_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
}
minetest.register_node(":homedecor:openframe_bookshelf", {
local wood_tex = homedecor.textures.default_wood
homedecor.register("openframe_bookshelf", {
description = S("Bookshelf (open-frame)"),
drawtype = "mesh",
mesh = "homedecor_openframe_bookshelf.obj",
tiles = {
"homedecor_openframe_bookshelf_books.png",
"default_wood.png"
wood_tex
},
groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = ob_cbox,
collision_box = ob_cbox,
crafts = {
{
recipe = {
{"group:wood", "", "group:wood"},
{"book", "book", "book"},
{"group:wood", "", "group:wood"},
},
}
}
})
homedecor.register("wall_shelf", {
description = S("Wall Shelf"),
tiles = {
"default_wood.png",
wood_tex,
},
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
@ -69,224 +51,3 @@ homedecor.register("wall_shelf", {
}
}
})
-- Crafts
minetest.register_craft({
output = "homedecor:table",
recipe = {
{ "group:wood","group:wood", "group:wood" },
{ "group:stick", "", "group:stick" },
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"dye:brown",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"unifieddyes:dark_orange",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_white",
recipe = {
"homedecor:table",
"dye:white",
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_mahogany",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_white",
burntime = 30,
})
minetest.register_craft({
output = "homedecor:standing_lamp_off",
recipe = {
{"homedecor:table_lamp_off"},
{"group:stick"},
{"group:stick"},
},
})
unifieddyes.register_color_craft({
output = "homedecor:standing_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:standing_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_lamp_off",
burntime = 10,
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:table_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:table_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:toilet",
recipe = {
{ "","","bucket:bucket_water"},
{ "group:marble","group:marble", "group:marble" },
{ "", "bucket:bucket_empty", "" },
},
})
minetest.register_craft({
output = "homedecor:sink",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
{ "", "group:marble", "" }
},
})
minetest.register_craft({
output = "homedecor:taps",
recipe = {
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:taps_brass",
recipe = {
{ "technic:brass_ingot","bucket:bucket_water", "technic:brass_ingot" },
},
})
minetest.register_craft({
output = "homedecor:shower_tray",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
},
})
minetest.register_craft({
output = "homedecor:shower_head",
recipe = {
{"default:steel_ingot", "bucket:bucket_water"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_brass_taps",
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_chrome_taps",
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bars 6",
recipe = {
{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
},
})
minetest.register_craft({
output = "homedecor:L_binding_bars 3",
recipe = {
{ "homedecor:bars","" },
{ "homedecor:bars","homedecor:bars" },
},
})
minetest.register_craft({
output = "homedecor:torch_wall 10",
recipe = {
{ "default:coal_lump" },
{ "default:steel_ingot" },
},
})
-- Aliases for 3dforniture mod.
minetest.register_alias("3dforniture:table", "homedecor:table")
minetest.register_alias('table', 'homedecor:table')

View File

@ -1,4 +1,4 @@
name = homedecor_furniture
description = Homedecor mod: furniture
depends = homedecor_common, default, unifieddyes, wool
optional_depends = moreblocks, technic, bucket
depends = homedecor_common
optional_depends = moreblocks, technic, bucket, default, unifieddyes, wool

View File

@ -1,20 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
}
globals = {
}

View File

@ -17,8 +17,19 @@ homedecor.register("bars", {
type = "fixed",
fixed = { -0.5, -0.5, -0.1, 0.5, 0.5, 0.1 },
},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
output = "homedecor:bars 6",
recipe = {
{ "steel_ingot","steel_ingot","steel_ingot" },
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
},
}
}
})
--L Binding Bars
@ -37,8 +48,19 @@ homedecor.register("L_binding_bars", {
{ -0.05, 0.45, -0.50, 0.05, 0.50, 0.00 },
},
},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
output = "homedecor:L_binding_bars 3",
recipe = {
{ "homedecor:bars","" },
{ "homedecor:bars","homedecor:bars" },
},
}
}
})
local chain_cbox = {
@ -53,8 +75,10 @@ homedecor.register("chains", {
inventory_image="forniture_chains_inv.png",
selection_box = chain_cbox,
walkable = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_alias("3dforniture:bars", "homedecor:bars")

View File

@ -1,3 +1,3 @@
name = homedecor_furniture_medieval
description = Homedecor mod: furniture medieval
depends = homedecor_common, default, creative
depends = homedecor_common

View File

@ -1,22 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"creative",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -14,10 +14,12 @@ homedecor.register("cutlery_set", {
tiles = { "homedecor_cutlery_set.png" },
inventory_image = "homedecor_cutlery_set_inv.png",
description = S("Cutlery set"),
groups = {snappy=3},
groups = {snappy=3, dig_stone=3},
selection_box = cutlery_cbox,
walkable = false,
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
})
local bottle_cbox = {
@ -49,8 +51,10 @@ for _, b in ipairs(bottle_colors) do
description = desc,
mesh = "homedecor_bottle.obj",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_glass_defaults(),
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_glass_defaults",
},
selection_box = bottle_cbox
})
@ -65,8 +69,10 @@ for _, b in ipairs(bottle_colors) do
description = desc4,
mesh = "homedecor_4_bottles.obj",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_glass_defaults(),
groups = {snappy=3, dig_stone=3},
_sound_def = {
key = "node_sound_glass_defaults",
},
selection_box = fbottle_cbox
})
end
@ -79,9 +85,11 @@ homedecor.register("4_bottles_multi", {
inventory_image = "homedecor_4_bottles_multi_inv.png",
description = S("Four misc brown/green bottles"),
mesh = "homedecor_4_bottles.obj",
groups = {snappy=3},
groups = {snappy=3, dig_stone=3},
walkable = false,
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
selection_box = fbottle_cbox
})
@ -97,10 +105,12 @@ homedecor.register("wine_rack", {
"homedecor_bottle_brown4.png"
},
inventory_image = "homedecor_wine_rack_inv.png",
groups = {choppy=2},
groups = {choppy=2, dig_tree=2},
selection_box = wine_cbox,
collision_box = wine_cbox,
sounds = default.node_sound_defaults(),
_sound_def = {
key = "node_sound_defaults",
},
})
-- coffee!
@ -125,10 +135,19 @@ homedecor.register("coffee_maker", {
description = S("Coffee Maker"),
inventory_image = "homedecor_coffeemaker_inv.png",
walkable = false,
groups = {snappy=3},
groups = {snappy=3, dig_stone=3},
selection_box = cm_cbox,
node_box = cm_cbox,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
crafts = {
{
recipe = {
{"basic_materials:plastic_sheet", "bucket:bucket_water", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "glass_block", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"}
},
}
}
})
homedecor.register("toaster", {
@ -136,7 +155,8 @@ homedecor.register("toaster", {
tiles = { "homedecor_toaster_sides.png" },
inventory_image = "homedecor_toaster_inv.png",
walkable = false,
groups = { snappy=3 },
use_texture_alpha = "clip",
groups = { snappy=3, dig_stone=3 },
node_box = {
type = "fixed",
fixed = {
@ -152,7 +172,15 @@ homedecor.register("toaster", {
max_hear_distance = 5
})
return itemstack
end
end,
crafts = {
{
recipe = {
{ "steel_ingot", "basic_materials:heating_element", "steel_ingot" },
{ "steel_ingot", "basic_materials:heating_element", "steel_ingot" }
},
}
}
})
homedecor.register("toaster_loaf", {
@ -165,7 +193,8 @@ homedecor.register("toaster_loaf", {
"homedecor_toaster_sides.png"
},
walkable = false,
groups = { snappy=3, not_in_creative_inventory=1 },
use_texture_alpha = "clip",
groups = { snappy=3, not_in_creative_inventory=1, dig_stone=3 },
node_box = {
type = "fixed",
fixed = {
@ -224,35 +253,17 @@ minetest.register_abm({
minetest.register_craft( {
output = "homedecor:bottle_green",
recipe = {
{ "vessels:glass_bottle", "dye:green" }
{ homedecor.materials["glass_bottle"], homedecor.materials["dye_green"] }
},
})
minetest.register_craft( {
output = "homedecor:bottle_brown",
recipe = {
{ "vessels:glass_bottle", "dye:brown" }
{ homedecor.materials["glass_bottle"], homedecor.materials["dye_brown"] }
},
})
minetest.register_craft({
output = "homedecor:coffee_maker",
recipe = {
{"basic_materials:plastic_sheet", "bucket:bucket_water", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"}
},
})
minetest.register_craft({
output = "homedecor:toaster",
recipe = {
{ "default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot" },
{ "default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot" }
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:4_bottles_brown",

View File

@ -1,4 +1,4 @@
name = homedecor_gastronomy
description = Homedecor mod: gastronomy
depends = homedecor_common, default, basic_materials, dye, creative
depends = homedecor_common
optional_depends = bucket, screwdriver

View File

@ -2,36 +2,29 @@ local S = minetest.get_translator("inbox")
local inbox = {}
minetest.register_craft({
output ="inbox:empty",
recipe = {
{"","default:steel_ingot",""},
{"default:steel_ingot","","default:steel_ingot"},
{"default:steel_ingot","default:steel_ingot","default:steel_ingot"}
}
})
local mb_cbox = {
type = "fixed",
fixed = { -5/16, -8/16, -8/16, 5/16, 2/16, 8/16 }
}
minetest.register_node("inbox:empty", {
homedecor.register("inbox", {
paramtype = "light",
drawtype = "mesh",
mesh = "inbox_mailbox.obj",
mesh = "homedecor_inbox_mailbox.obj",
description = S("Mailbox"),
tiles = {
"inbox_red_metal.png",
"inbox_white_metal.png",
"inbox_grey_metal.png",
"homedecor_inbox_red_metal.png",
"homedecor_inbox_white_metal.png",
"homedecor_inbox_grey_metal.png",
},
inventory_image = "mailbox_inv.png",
inventory_image = "homedecor_mailbox_inv.png",
selection_box = mb_cbox,
collision_box = mb_cbox,
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
after_place_node = function(pos, placer, itemstack)
local meta = minetest.get_meta(pos)
@ -103,8 +96,19 @@ minetest.register_node("inbox:empty", {
allow_metadata_inventory_move = function(pos)
return 0
end,
crafts = {
{
recipe = {
{"","steel_ingot",""},
{"steel_ingot","","steel_ingot"},
{"steel_ingot","steel_ingot","steel_ingot"}
}
}
}
})
minetest.register_alias("inbox:empty", "homedecor:inbox")
function inbox.get_inbox_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec =
@ -124,3 +128,5 @@ function inbox.get_inbox_insert_formspec(pos)
"listring[]"
return formspec
end
minetest.log("action", "[inbox] loaded.")

3
homedecor_inbox/mod.conf Normal file
View File

@ -0,0 +1,3 @@
name = homedecor_inbox
depends = homedecor_common
optional_depends = screwdriver

View File

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

View File

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 319 B

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -8,8 +8,10 @@ homedecor.register("refrigerator_steel", {
tiles = { "homedecor_refrigerator_steel.png" },
inventory_image = "homedecor_refrigerator_steel_inv.png",
description = S("Refrigerator (stainless steel)"),
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
groups = {snappy=3, dig_stone=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
selection_box = homedecor.nodebox.slab_y(2),
collision_box = homedecor.nodebox.slab_y(2),
expand = { top="placeholder" },
@ -27,10 +29,12 @@ homedecor.register("refrigerator_white", {
tiles = { "homedecor_refrigerator_white.png" },
inventory_image = "homedecor_refrigerator_white_inv.png",
description = S("Refrigerator"),
groups = {snappy=3},
groups = {snappy=3, dig_stone=1},
selection_box = homedecor.nodebox.slab_y(2),
collision_box = homedecor.nodebox.slab_y(2),
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
expand = { top="placeholder" },
infotext=S("Refrigerator"),
inventory = {
@ -86,6 +90,7 @@ homedecor.register_furnace("microwave_oven", {
output_width = 2,
cook_speed = 1.5,
extra_nodedef_fields = {
use_texture_alpha = "clip",
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 },
@ -114,8 +119,10 @@ homedecor.register("dishwasher", {
}
},
selection_box = { type = "regular" },
sounds = default.node_sound_stone_defaults(),
groups = { snappy = 3 },
_sound_def = {
key = "node_sound_stone_defaults",
},
groups = { snappy = 3, dig_stone=1 },
})
local materials = { ["granite"] = S("granite"), ["marble"] = S("marble"), ["steel"] = S("steel"), ["wood"] = S("wood") }
@ -131,18 +138,21 @@ homedecor.register("dishwasher_"..m, {
"homedecor_dishwasher_back.png",
"homedecor_dishwasher_front.png"
},
groups = { snappy = 3 },
sounds = default.node_sound_stone_defaults(),
groups = { snappy = 3, dig_tree=1 },
_sound_def = {
key = "node_sound_stone_defaults",
},
})
end
local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local wood_tex = homedecor.textures.default_wood
local cabinet_sides = "("..wood_tex.."^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_sides_colored = "(homedecor_generic_wood_plain.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local ic_cabinet_sides = string.gsub(cabinet_sides, "%^", "&")
local ic_cabinet_sides_colored = string.gsub(cabinet_sides_colored, "%^", "&")
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom = "("..wood_tex.."^[colorize:#000000:100)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom_colored = "homedecor_generic_wood_plain.png^homedecor_kitchen_cabinet_bevel.png"
local function N_(x) return x end
@ -154,6 +164,7 @@ homedecor.kitchen_convert_nodes = {}
for _, mat in ipairs(counter_materials) do
local desc = S("Kitchen Cabinet")
local desc2 = S("Kitchen Cabinet with drawers")
local material = ""
if mat ~= "" then
@ -177,12 +188,14 @@ for _, mat in ipairs(counter_materials) do
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "wallmounted",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material,
place_param2 = 0,
groups = { snappy = 3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
infotext=S("Kitchen Cabinet"),
inventory = {
size=24,
@ -210,8 +223,10 @@ for _, mat in ipairs(counter_materials) do
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet"),
inventory = {
size=24,
@ -237,12 +252,13 @@ for _, mat in ipairs(counter_materials) do
.."{homedecor_kitchen_cabinet_front_with_drawers.png"
.."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "wallmounted",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material,
place_param2 = 0,
groups = { snappy = 3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1},
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet with drawers"),
inventory = {
size=24,
@ -270,8 +286,10 @@ for _, mat in ipairs(counter_materials) do
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet with drawers"),
inventory = {
size=24,
@ -282,8 +300,8 @@ for _, mat in ipairs(counter_materials) do
end
})
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet"..material
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_locked"..material
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1]="homedecor:kitchen_cabinet"..material
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1]="homedecor:kitchen_cabinet"..material.."_locked"
end
@ -300,14 +318,16 @@ homedecor.register("kitchen_cabinet_colorable_half", {
'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
},
mesh = "homedecor_kitchen_cabinet_half.obj",
paramtype2 = "wallmounted",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half",
place_param2 = 0,
selection_box = kitchen_cabinet_half_box,
node_box = kitchen_cabinet_half_box,
groups = { snappy = 3, ud_param2_colorable = 1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet"),
inventory = {
size=12,
@ -336,8 +356,10 @@ homedecor.register("kitchen_cabinet_colored_half", {
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = kitchen_cabinet_half_box,
node_box = kitchen_cabinet_half_box,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet"),
inventory = {
size=12,
@ -363,12 +385,14 @@ homedecor.register("kitchen_cabinet_colorable_with_sink", {
.."{homedecor_kitchen_sink_top.png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides,
paramtype2 = "wallmounted",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink",
place_param2 = 0,
groups = { snappy = 3, ud_param2_colorable = 1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Under-sink cabinet"),
inventory = {
size=16,
@ -412,8 +436,10 @@ homedecor.register("kitchen_cabinet_colored_with_sink", {
.."{"..ic_cabinet_sides_colored,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Under-sink cabinet"),
inventory = {
size=16,
@ -447,7 +473,7 @@ homedecor.register("copper_pans", {
mesh = "homedecor_copper_pans.obj",
tiles = { "homedecor_polished_copper.png" },
inventory_image = "homedecor_copper_pans_inv.png",
groups = { snappy=3 },
groups = { snappy=3, dig_stone=1 },
selection_box = cp_cbox,
walkable = false,
on_place = minetest.rotate_node
@ -463,16 +489,13 @@ homedecor.register("kitchen_faucet", {
tiles = { "homedecor_generic_metal_bright.png" },
inventory_image = "homedecor_kitchen_faucet_inv.png",
description = S("Kitchen Faucet"),
groups = {snappy=3},
groups = {snappy=3, dig_stone=1},
selection_box = kf_cbox,
walkable = false,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and
below.name == "homedecor:sink" or
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
if below and string.find(below.name, "homedecor:.*sink") then
local particledef = {
outlet = { x = 0, y = -0.19, z = 0.13 },
velocity_x = { min = -0.05, max = 0.05 },
@ -491,11 +514,11 @@ homedecor.register("paper_towel", {
mesh = "homedecor_paper_towel.obj",
tiles = {
"homedecor_generic_quilted_paper.png",
"default_wood.png"
wood_tex
},
inventory_image = "homedecor_paper_towel_inv.png",
description = S("Paper towels"),
groups = { snappy=3 },
groups = { snappy=3, dig_tree=1 },
walkable = false,
selection_box = {
type = "fixed",
@ -509,18 +532,18 @@ homedecor.register("paper_towel", {
minetest.register_craft({
output = "homedecor:oven_steel",
recipe = {
{"basic_materials:heating_element", "default:steel_ingot", "basic_materials:heating_element", },
{"default:steel_ingot", "moreblocks:iron_glass", "default:steel_ingot", },
{"default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot", },
{"basic_materials:heating_element", homedecor.materials.steel_ingot, "basic_materials:heating_element", },
{homedecor.materials.steel_ingot, "moreblocks:iron_glass", homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.steel_ingot, },
}
})
minetest.register_craft({
output = "homedecor:oven_steel",
recipe = {
{"basic_materials:heating_element", "default:steel_ingot", "basic_materials:heating_element", },
{"default:steel_ingot", "default:glass", "default:steel_ingot", },
{"default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot", },
{"basic_materials:heating_element", homedecor.materials.steel_ingot, "basic_materials:heating_element", },
{homedecor.materials.steel_ingot, homedecor.materials.glass_block, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.steel_ingot, },
}
})
@ -529,35 +552,35 @@ minetest.register_craft({
output = "homedecor:oven",
recipe = {
"homedecor:oven_steel",
"dye:white",
"dye:white",
homedecor.materials.dye_white,
homedecor.materials.dye_white,
}
})
minetest.register_craft({
output = "homedecor:microwave_oven 2",
recipe = {
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
{"default:steel_ingot", "moreblocks:iron_glass", "basic_materials:ic", },
{"default:steel_ingot", "default:copper_ingot", "basic_materials:energy_crystal_simple", },
{homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, "moreblocks:iron_glass", "basic_materials:ic", },
{homedecor.materials.steel_ingot, homedecor.materials.copper_ingot, "basic_materials:energy_crystal_simple", },
}
})
minetest.register_craft({
output = "homedecor:microwave_oven 2",
recipe = {
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
{"default:steel_ingot", "default:glass", "basic_materials:ic", },
{"default:steel_ingot", "default:copper_ingot", "basic_materials:energy_crystal_simple", },
{homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, homedecor.materials.glass_block, "basic_materials:ic", },
{homedecor.materials.steel_ingot, homedecor.materials.copper_ingot, "basic_materials:energy_crystal_simple", },
}
})
minetest.register_craft({
output = "homedecor:refrigerator_steel",
recipe = {
{"default:steel_ingot", "homedecor:glowlight_small_cube", "default:steel_ingot", },
{"default:steel_ingot", "default:copperblock", "default:steel_ingot", },
{"default:steel_ingot", "default:clay", "default:steel_ingot", },
{homedecor.materials.steel_ingot, "homedecor:glowlight_small_cube", homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, homedecor.materials.copper_ingot, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, homedecor.materials.clay_lump, homedecor.materials.steel_ingot, },
}
})
@ -566,14 +589,14 @@ minetest.register_craft({
output = "homedecor:refrigerator_white",
recipe = {
"homedecor:refrigerator_steel",
"dye:white",
"dye:white",
"dye:white",
homedecor.materials.dye_white,
homedecor.materials.dye_white,
homedecor.materials.dye_white,
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet",
output = "homedecor:kitchen_cabinet_colorable",
recipe = {
{"group:wood", "group:stick", "group:wood", },
{"group:wood", "group:stick", "group:wood", },
@ -582,56 +605,56 @@ minetest.register_craft({
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_steel",
output = "homedecor:kitchen_cabinet_colorable_steel",
recipe = {
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
{"", "homedecor:kitchen_cabinet", ""},
{homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot},
{"", "homedecor:kitchen_cabinet_colorable", ""},
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_steel",
output = "homedecor:kitchen_cabinet_colorable_steel",
recipe = {
{"moreblocks:slab_steelblock_1"},
{ "homedecor:kitchen_cabinet" },
{ "homedecor:kitchen_cabinet_colorable" },
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_marble",
output = "homedecor:kitchen_cabinet_colorable_marble",
recipe = {
{"building_blocks:slab_marble"},
{"homedecor:kitchen_cabinet"},
{"homedecor:kitchen_cabinet_colorable"},
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_marble",
output = "homedecor:kitchen_cabinet_colorable_marble",
recipe = {
{"technic:slab_marble_1"},
{"homedecor:kitchen_cabinet"},
{"homedecor:kitchen_cabinet_colorable"},
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_granite",
output = "homedecor:kitchen_cabinet_colorable_granite",
recipe = {
{"technic:slab_granite_1"},
{"homedecor:kitchen_cabinet"},
{"homedecor:kitchen_cabinet_colorable"},
}
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:kitchen_cabinet_half 2",
recipe = { "homedecor:kitchen_cabinet" }
output = "homedecor:kitchen_cabinet_colorable_half 2",
recipe = { "homedecor:kitchen_cabinet_colorable" }
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_with_sink",
output = "homedecor:kitchen_cabinet_colorable_with_sink",
recipe = {
{"group:wood", "default:steel_ingot", "group:wood", },
{"group:wood", "default:steel_ingot", "group:wood", },
{"group:wood", homedecor.materials.steel_ingot, "group:wood", },
{"group:wood", homedecor.materials.steel_ingot, "group:wood", },
{"group:wood", "group:stick", "group:wood", },
}
})
@ -639,18 +662,18 @@ minetest.register_craft({
minetest.register_craft( {
output = "homedecor:dishwasher",
recipe = {
{ "basic_materials:ic", "building_blocks:slab_grate_1", "default:steel_ingot", },
{ "default:steel_ingot", "homedecor:shower_head", "basic_materials:motor" },
{ "default:steel_ingot", "basic_materials:heating_element", "bucket:bucket_water" }
{ "basic_materials:ic", "building_blocks:slab_grate_1", homedecor.materials.steel_ingot, },
{ homedecor.materials.steel_ingot, "homedecor:shower_head", "basic_materials:motor" },
{ homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.water_bucket }
},
})
minetest.register_craft( {
output = "homedecor:dishwasher",
recipe = {
{ "basic_materials:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
{ "default:steel_ingot", "homedecor:shower_head", "basic_materials:motor" },
{ "default:steel_ingot", "basic_materials:heating_element", "bucket:bucket_water" }
{ "basic_materials:ic", "homedecor:fence_chainlink", homedecor.materials.steel_ingot, },
{ homedecor.materials.steel_ingot, "homedecor:shower_head", "basic_materials:motor" },
{ homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.water_bucket }
},
})
@ -681,7 +704,7 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:dishwasher_steel",
recipe = {
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
{ homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot },
{ "", "homedecor:dishwasher", "" },
},
})
@ -721,8 +744,8 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:kitchen_faucet",
recipe = {
{ "", "default:steel_ingot" },
{ "default:steel_ingot", "" },
{ "", homedecor.materials.steel_ingot },
{ homedecor.materials.steel_ingot, "" },
{ "homedecor:taps", "" }
},
})
@ -730,8 +753,8 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:kitchen_faucet",
recipe = {
{ "default:steel_ingot","" },
{ "", "default:steel_ingot" },
{ homedecor.materials.steel_ingot,"" },
{ "", homedecor.materials.steel_ingot },
{ "", "homedecor:taps" }
},
})
@ -756,8 +779,8 @@ minetest.register_craft({
output = "homedecor:copper_pans",
recipe = {
{ "basic_materials:copper_strip","","basic_materials:copper_strip" },
{ "default:copper_ingot","","default:copper_ingot" },
{ "default:copper_ingot","","default:copper_ingot" }
{ homedecor.materials.copper_ingot,"",homedecor.materials.copper_ingot },
{ homedecor.materials.copper_ingot,"",homedecor.materials.copper_ingot }
},
})
@ -790,6 +813,6 @@ minetest.register_lbm({
new_fdir = 5
end
minetest.set_node(pos, { name = newname, param2 = new_fdir })
minetest.swap_node(pos, { name = newname, param2 = new_fdir })
end
})

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