diff --git a/etc/change_hardcoded_world_name_first/game-install-ENLIVEN b/etc/change_hardcoded_world_name_first/game-install-ENLIVEN
index 858826c..277cd55 100755
--- a/etc/change_hardcoded_world_name_first/game-install-ENLIVEN
+++ b/etc/change_hardcoded_world_name_first/game-install-ENLIVEN
@@ -10,23 +10,40 @@
# * Git version uses /home/*/minetest/games and /usr/local/share/minetest/games but the latter is used for minetestserver (minetest-server package)
-# Known Issues:
-Uberi=`ls /usr/share/minetest/games/ENLIVEN/mods/worldedit | grep Uberi`
-if [ ! -z "$Uberi" ]; then
- # /usr/share/minetest/games/ENLIVEN/mods/worldedit/Uberi-Minetest-WorldEdit-3322ef9
- rm -Rf /usr/share/minetest/games/ENLIVEN/mods/worldedit
-fi
-if [ -d /usr/share/minetest/games/ENLIVEN/mods/mesecons/mesecons-master ]; then
- rm -Rf /usr/share/minetest/games/ENLIVEN/mods/mesecons
-fi
+
# (Ubuntu 14.04 Trusty Tahr Server) folders were found using:
# cd /
# sudo find -name 'worlds' (worlds folder is in $HOME/.minetest)
# sudo find -name 'minimal' (stable build [such as 0.4.9 games folder is /usr/share/games/minetest/games, but git version games folder is /usr/local/share/minetest/games)
-sudo echo "cached password."
-# NOTE: minetest mods are ALWAYS ONLY installed on server
+# Absolute path to this script, e.g. /home/user/bin/foo.sh
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in, thus /home/user/bin
+SCRIPTPATH=$(dirname "$SCRIPT")
+REPO_PATH=$(dirname "$SCRIPTPATH")
+
+#endregion paste this part into terminal to get some great environment variables
+
+PATCHES_PATH="$REPO_PATH/patches"
+
+if [ ! -d "$PATCHES_PATH" ]; then
+ # maybe moved somewhere or this code was pasted
+ PATCHES_PATH=$HOME/GitHub/EnlivenMinetest/patches
+fi
+if [ ! -d "$PATCHES_PATH" ]; then
+ # maybe running from root of repo
+ PATCHES_PATH="patches"
+fi
+if [ ! -d "$PATCHES_PATH" ]; then
+ # should work if ran from folder where exists
+ PATCHES_PATH="../patches"
+fi
+if [ ! -d "$PATCHES_PATH" ]; then
+ echo "ERROR: could not find patches such as in $PATCHES_PATH"
+ exit 1
+fi
+# NOTE: minetest mods (other than 0.4.16 client-side mods) are ALWAYS ONLY installed on server, unless you need them for singleplayer
mtgame_name="minetest_game"
USR_SHARE_MINETEST=/usr/share/games/minetest
try_path="/usr/share/minetest"
@@ -54,7 +71,7 @@ MT_MYWORLD_NAME=FCAGameAWorld
MT_MYWORLD_DIR=$HOME/.minetest/worlds/$MT_MYWORLD_NAME
err_txt=$HOME/err-enliven.txt
-
+#endregion paste this part into terminal to get some great environment variables
# BACKUP THE WORLD:
@@ -1012,6 +1029,9 @@ fi
wget https://github.com/minetest-mods/mesecons/archive/master.zip
mv $MTMOD_DL_ZIP $MTMOD_SRC_ZIP
unzip $MTMOD_SRC_ZIP
+if [ -d "$MTMOD_DEST_PATH" ]; then
+ rm -Rf "$MTMOD_DEST_PATH"
+fi
sudo mv -f $MTMOD_UNZ_NAME "$MTMOD_DEST_PATH"
if [ ! -d "$MTMOD_DEST_PATH" ]; then
echo "ERROR: failed to create $MTMOD_DEST_PATH, so cannot continue." > $err_txt
@@ -1345,6 +1365,9 @@ rm -Rvf $MTMOD_UNZ_NAME
wget https://github.com/Uberi/MineTest-WorldEdit/zipball/master
mv $MTMOD_DL_ZIP "$MTMOD_SRC_ZIP"
unzip "$MTMOD_SRC_ZIP"
+if [ -d "$MTMOD_DEST_PATH" ]; then
+ rm -Rf "$MTMOD_DEST_PATH"
+fi
sudo mv -f $MTMOD_UNZ_NAME "$MTMOD_DEST_PATH"
if [ ! -d "$MTMOD_DEST_PATH" ]; then
echo "ERROR: failed to unzip $MTMOD_DEST_PATH, so cannot continue." > $err_txt
@@ -1719,6 +1742,7 @@ if [ -f $MTMOD_SRC_ZIP ]; then
rm -f $MTMOD_SRC_ZIP
fi
if [ -d "$MTMOD_DEST_PATH" ]; then
+ # remove old copy, or remove minetest_game's farming
sudo rm -Rf "$MTMOD_DEST_PATH"
fi
wget https://github.com/tenplus1/farming/archive/master.zip
@@ -1888,29 +1912,62 @@ fi
echo
echo
echo
-echo "adding the following necessary integration mods:"
-ls ~/GitHub/EnlivenMinetest/patches/mods-integration/
-sudo cp -R ~/GitHub/EnlivenMinetest/patches/mods-integration/* "$MT_MYGAME_MODS_PATH/"
-echo
-echo "adding the following multiplayer mods:"
-ls ~/GitHub/EnlivenMinetest/patches/mods-multiplayer/
-sudo cp -R ~/GitHub/EnlivenMinetest/patches/mods-multiplayer/* "$MT_MYGAME_MODS_PATH/"
+if [ -d "$PATCHES_PATH" ]; then
+ echo "adding the following necessary integration mods:"
+ ls $PATCHES_PATH/mods-integration/
+ sudo cp -R $PATCHES_PATH/mods-integration/* "$MT_MYGAME_MODS_PATH/"
+ echo
+ echo "adding the following multiplayer mods:"
+ ls $PATCHES_PATH/mods-multiplayer/
+ sudo cp -R $PATCHES_PATH/mods-multiplayer/* "$MT_MYGAME_MODS_PATH/"
+ echo "adding non-manual patches to subgame (vs minetest_game and downloaded mods):"
+ sudo cp -f $PATCHES_PATH/subgame/* "$MT_MYGAME_DIR/"
+ sudo cp -f $PATCHES_PATH/subgame/menu/* "$MT_MYGAME_DIR/menu/"
+ sudo cp -f $PATCHES_PATH/subgame/mods/mobs/textures/* "$MT_MYGAME_DIR/mods/mobs/textures/"
+ sudo cp -f $PATCHES_PATH/subgame/mods/mobs_monster/textures/* "$MT_MYGAME_DIR/mods/mobs_monster/textures/"
+ echo "mods affected: mobs mobs_monsters"
+ PATCHED_FLAG=""
+ BASIS_PATH=$PATCHES_PATH/subgame-basis/mods/bones/init.lua
+ MTMOD_DEST_NAME=bones
+ MTMOD_DEST_PATH=$MT_MYGAME_MODS_PATH/bones
+ TARGET_PATH=$MTMOD_DEST_PATH/init.lua
+ TRY_DIFF="`diff $BASIS_PATH $TARGET_PATH`"
+ if [ -z "$TRY_DIFF" ]; then
+ sudo cp -f $BASIS_PATH "$MT_MYGAME_DIR/mods/bones/"
+ else
+ echo "FAILED to patch $MTMOD_DEST_NAME since $TARGET_PATH differs from known"
+ fi
+ BASIS_PATH=$PATCHES_PATH/subgame-basis/mods/homedecor_modpack/homedecor/gastronomy.lua
+ TARGET_PATH=$MT_MYGAME_MODS_PATH/homedecor_modpack/homedecor/gastronomy.lua
+ MTMOD_DEST_NAME=homedecor_modpack
+ MTMOD_DEST_PATH=$MT_MYGAME_MODS_PATH/homedecor_modpack/homedecor
+ TRY_DIFF="`diff $BASIS_PATH $TARGET_PATH`"
+ if [ -z "$TRY_DIFF" ]; then
+ sudo cp -f $TARGET_PATH "$MTMOD_DEST_PATH/"
+ else
+ echo "FAILED to patch $MTMOD_DEST_NAME since $TARGET_PATH differs from known"
+ fi
+ BASIS_PATH=$PATCHES_PATH/subgame-basis/mods/homedecor_modpack/homedecor/crafts.lua
+ TARGET_PATH=$MT_MYGAME_MODS_PATH/homedecor_modpack/homedecor/crafts.lua
+ MTMOD_DEST_NAME=homedecor_modpack
+ TRY_DIFF="`diff $BASIS_PATH $TARGET_PATH`"
+ if [ -z "$TRY_DIFF" ]; then
+ sudo cp -f $TARGET_PATH "$MTMOD_DEST_PATH/"
+ else
+ echo "FAILED to patch $MTMOD_DEST_NAME since $TARGET_PATH differs from known"
+ fi
+else
+ echo "did not find $PATCHES_PATH, so skipped automatic patching which is partially implemented"
+fi
echo
echo "# remove not available on 0.4.16 stable (is only avail on 0.4.16-dev or higher)"
echo "sudo rm -Rf /usr/share/games/minetest/games/ENLIVEN/mods/worldedit/worldedit_brush"
echo "# not recommended:"
-echo "sudo cp -R ~/GitHub/EnlivenMinetest/patches/mods-stopgap/* $MT_MYGAME_MODS_PATH/"
+echo "sudo cp -R $PATCHES_PATH/mods-stopgap/* $MT_MYGAME_MODS_PATH/"
echo "sudo rm -Rf $MT_MYGAME_MODS_PATH/1.nonworking"
-
echo
echo
-echo "adding non-manual patches to subgame (vs minetest_game and downloaded mods):"
-sudo cp -f ~/GitHub/EnlivenMinetest/patches/subgame/* "$MT_MYGAME_DIR/"
-sudo cp -f ~/GitHub/EnlivenMinetest/patches/subgame/menu/* "$MT_MYGAME_DIR/menu/"
-sudo cp -f ~/GitHub/EnlivenMinetest/patches/subgame/mods/mobs/textures/* "$MT_MYGAME_DIR/mods/mobs/textures/"
-sudo cp -f ~/GitHub/EnlivenMinetest/patches/subgame/mods/mobs_monster/textures/* "$MT_MYGAME_DIR/mods/mobs_monster/textures/"
-echo "mods affected: mobs"
echo
echo "#### $MT_MYWORLD_DIR/world.mt: ####"
cat "$MT_MYWORLD_DIR/world.mt"
@@ -1937,12 +1994,12 @@ echo " * for invhack, remember to do: /giveme invhack:tool"
echo " * uncomment columns in lapis mod"
echo " * Make sure client (server done already above) minetest.conf has secure.trusted_mods = advanced_npc"
echo " * Make sure writable minetest conf was successfully written"
-echo " over /usr/local/share/minetest/games/enliven/minetest.conf with:"
+echo " over $MT_MYGAME_DIR/minetest.conf with (NOTE: protector_drop is deprecated):"
echo "protector_radius = 7"
echo "protector_pvp = true"
echo "protector_pvp_spawn = 10"
-echo "protector_drop = true"
-echo "protector_hurt = 1"
+echo "protector_drop = false"
+echo "protector_hurt = 3"
echo ""
echo "default_privs = interact,shout,home"
echo "max_users = 50"
diff --git a/patches/subgame-basis/mods/bones/init-0.4.15 or lower.lua b/patches/subgame-basis/mods/bones/init-0.4.15 or lower.lua
new file mode 100644
index 0000000..9542cab
--- /dev/null
+++ b/patches/subgame-basis/mods/bones/init-0.4.15 or lower.lua
@@ -0,0 +1,248 @@
+-- Minetest 0.4 mod: bones
+-- See README.txt for licensing and other information.
+
+local function is_owner(pos, name)
+ local owner = minetest.get_meta(pos):get_string("owner")
+ if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then
+ return true
+ end
+ return false
+end
+
+local bones_formspec =
+ "size[8,9]" ..
+ default.gui_bg ..
+ default.gui_bg_img ..
+ default.gui_slots ..
+ "list[current_name;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[current_name;main]" ..
+ "listring[current_player;main]" ..
+ default.get_hotbar_bg(0,4.85)
+
+local share_bones_time = tonumber(minetest.setting_get("share_bones_time")) or 1200
+local share_bones_time_early = tonumber(minetest.setting_get("share_bones_time_early")) or share_bones_time / 4
+
+minetest.register_node("bones:bones", {
+ description = "Bones",
+ tiles = {
+ "bones_top.png^[transform2",
+ "bones_bottom.png",
+ "bones_side.png",
+ "bones_side.png",
+ "bones_rear.png",
+ "bones_front.png"
+ },
+ paramtype2 = "facedir",
+ groups = {dig_immediate = 2},
+ sounds = default.node_sound_gravel_defaults(),
+
+ can_dig = function(pos, player)
+ local inv = minetest.get_meta(pos):get_inventory()
+ local name = ""
+ if player then
+ name = player:get_player_name()
+ end
+ return is_owner(pos, name) and inv:is_empty("main")
+ end,
+
+ allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+ if is_owner(pos, player:get_player_name()) then
+ return count
+ end
+ return 0
+ end,
+
+ allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+ return 0
+ end,
+
+ allow_metadata_inventory_take = function(pos, listname, index, stack, player)
+ if is_owner(pos, player:get_player_name()) then
+ return stack:get_count()
+ end
+ return 0
+ end,
+
+ on_metadata_inventory_take = function(pos, listname, index, stack, player)
+ local meta = minetest.get_meta(pos)
+ if meta:get_inventory():is_empty("main") then
+ minetest.remove_node(pos)
+ end
+ end,
+
+ on_punch = function(pos, node, player)
+ if not is_owner(pos, player:get_player_name()) then
+ return
+ end
+
+ if minetest.get_meta(pos):get_string("infotext") == "" then
+ return
+ end
+
+ local inv = minetest.get_meta(pos):get_inventory()
+ local player_inv = player:get_inventory()
+ local has_space = true
+
+ for i = 1, inv:get_size("main") do
+ local stk = inv:get_stack("main", i)
+ if player_inv:room_for_item("main", stk) then
+ inv:set_stack("main", i, nil)
+ player_inv:add_item("main", stk)
+ else
+ has_space = false
+ break
+ end
+ end
+
+ -- remove bones if player emptied them
+ if has_space then
+ if player_inv:room_for_item("main", {name = "bones:bones"}) then
+ player_inv:add_item("main", {name = "bones:bones"})
+ else
+ minetest.add_item(pos,"bones:bones")
+ end
+ minetest.remove_node(pos)
+ end
+ end,
+
+ on_timer = function(pos, elapsed)
+ local meta = minetest.get_meta(pos)
+ local time = meta:get_int("time") + elapsed
+ if time >= share_bones_time then
+ meta:set_string("infotext", meta:get_string("owner") .. "'s old bones")
+ meta:set_string("owner", "")
+ else
+ meta:set_int("time", time)
+ return true
+ end
+ end,
+ on_blast = function(pos)
+ end,
+})
+
+local function may_replace(pos, player)
+ local node_name = minetest.get_node(pos).name
+ local node_definition = minetest.registered_nodes[node_name]
+
+ -- if the node is unknown, we return false
+ if not node_definition then
+ return false
+ end
+
+ -- allow replacing air and liquids
+ if node_name == "air" or node_definition.liquidtype ~= "none" then
+ return true
+ end
+
+ -- don't replace filled chests and other nodes that don't allow it
+ local can_dig_func = node_definition.can_dig
+ if can_dig_func and not can_dig_func(pos, player) then
+ return false
+ end
+
+ -- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones?
+ -- flowers being squished by bones are more realistical than a squished stone, too
+ -- exception are of course any protected buildable_to
+ return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name())
+end
+
+local drop = function(pos, itemstack)
+ local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
+ if obj then
+ obj:setvelocity({
+ x = math.random(-10, 10) / 9,
+ y = 5,
+ z = math.random(-10, 10) / 9,
+ })
+ end
+end
+
+minetest.register_on_dieplayer(function(player)
+
+ local bones_mode = minetest.setting_get("bones_mode") or "bones"
+ if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then
+ bones_mode = "bones"
+ end
+
+ -- return if keep inventory set or in creative mode
+ if bones_mode == "keep" or minetest.setting_getbool("creative_mode") then
+ return
+ end
+
+ local player_inv = player:get_inventory()
+ if player_inv:is_empty("main") and
+ player_inv:is_empty("craft") then
+ return
+ end
+
+ local pos = vector.round(player:getpos())
+ local player_name = player:get_player_name()
+
+ -- check if it's possible to place bones, if not find space near player
+ if bones_mode == "bones" and not may_replace(pos, player) then
+ local air = minetest.find_node_near(pos, 1, {"air"})
+ if air and not minetest.is_protected(air, player_name) then
+ pos = air
+ else
+ bones_mode = "drop"
+ end
+ end
+
+ if bones_mode == "drop" then
+
+ -- drop inventory items
+ for i = 1, player_inv:get_size("main") do
+ drop(pos, player_inv:get_stack("main", i))
+ end
+ player_inv:set_list("main", {})
+
+ -- drop crafting grid items
+ for i = 1, player_inv:get_size("craft") do
+ drop(pos, player_inv:get_stack("craft", i))
+ end
+ player_inv:set_list("craft", {})
+
+ drop(pos, ItemStack("bones:bones"))
+ return
+ end
+
+ local param2 = minetest.dir_to_facedir(player:get_look_dir())
+ minetest.set_node(pos, {name = "bones:bones", param2 = param2})
+
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ inv:set_size("main", 8 * 4)
+ inv:set_list("main", player_inv:get_list("main"))
+
+ for i = 1, player_inv:get_size("craft") do
+ local stack = player_inv:get_stack("craft", i)
+ if inv:room_for_item("main", stack) then
+ inv:add_item("main", stack)
+ else
+ --drop if no space left
+ drop(pos, stack)
+ end
+ end
+
+ player_inv:set_list("main", {})
+ player_inv:set_list("craft", {})
+
+ meta:set_string("formspec", bones_formspec)
+ meta:set_string("owner", player_name)
+
+ if share_bones_time ~= 0 then
+ meta:set_string("infotext", player_name .. "'s fresh bones")
+
+ if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then
+ meta:set_int("time", 0)
+ else
+ meta:set_int("time", (share_bones_time - share_bones_time_early))
+ end
+
+ minetest.get_node_timer(pos):start(10)
+ else
+ meta:set_string("infotext", player_name.."'s bones")
+ end
+end)
diff --git a/patches/subgame-basis/mods/bones/init.lua b/patches/subgame-basis/mods/bones/init.lua
new file mode 100644
index 0000000..9583bc2
--- /dev/null
+++ b/patches/subgame-basis/mods/bones/init.lua
@@ -0,0 +1,249 @@
+-- Minetest 0.4 mod: bones
+-- See README.txt for licensing and other information.
+
+local function is_owner(pos, name)
+ local owner = minetest.get_meta(pos):get_string("owner")
+ if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then
+ return true
+ end
+ return false
+end
+
+local bones_formspec =
+ "size[8,9]" ..
+ default.gui_bg ..
+ default.gui_bg_img ..
+ default.gui_slots ..
+ "list[current_name;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[current_name;main]" ..
+ "listring[current_player;main]" ..
+ default.get_hotbar_bg(0,4.85)
+
+local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200
+local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4
+
+minetest.register_node("bones:bones", {
+ description = "Bones",
+ tiles = {
+ "bones_top.png^[transform2",
+ "bones_bottom.png",
+ "bones_side.png",
+ "bones_side.png",
+ "bones_rear.png",
+ "bones_front.png"
+ },
+ paramtype2 = "facedir",
+ groups = {dig_immediate = 2},
+ sounds = default.node_sound_gravel_defaults(),
+
+ can_dig = function(pos, player)
+ local inv = minetest.get_meta(pos):get_inventory()
+ local name = ""
+ if player then
+ name = player:get_player_name()
+ end
+ return is_owner(pos, name) and inv:is_empty("main")
+ end,
+
+ allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+ if is_owner(pos, player:get_player_name()) then
+ return count
+ end
+ return 0
+ end,
+
+ allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+ return 0
+ end,
+
+ allow_metadata_inventory_take = function(pos, listname, index, stack, player)
+ if is_owner(pos, player:get_player_name()) then
+ return stack:get_count()
+ end
+ return 0
+ end,
+
+ on_metadata_inventory_take = function(pos, listname, index, stack, player)
+ local meta = minetest.get_meta(pos)
+ if meta:get_inventory():is_empty("main") then
+ minetest.remove_node(pos)
+ end
+ end,
+
+ on_punch = function(pos, node, player)
+ if not is_owner(pos, player:get_player_name()) then
+ return
+ end
+
+ if minetest.get_meta(pos):get_string("infotext") == "" then
+ return
+ end
+
+ local inv = minetest.get_meta(pos):get_inventory()
+ local player_inv = player:get_inventory()
+ local has_space = true
+
+ for i = 1, inv:get_size("main") do
+ local stk = inv:get_stack("main", i)
+ if player_inv:room_for_item("main", stk) then
+ inv:set_stack("main", i, nil)
+ player_inv:add_item("main", stk)
+ else
+ has_space = false
+ break
+ end
+ end
+
+ -- remove bones if player emptied them
+ if has_space then
+ if player_inv:room_for_item("main", {name = "bones:bones"}) then
+ player_inv:add_item("main", {name = "bones:bones"})
+ else
+ minetest.add_item(pos,"bones:bones")
+ end
+ minetest.remove_node(pos)
+ end
+ end,
+
+ on_timer = function(pos, elapsed)
+ local meta = minetest.get_meta(pos)
+ local time = meta:get_int("time") + elapsed
+ if time >= share_bones_time then
+ meta:set_string("infotext", meta:get_string("owner") .. "'s old bones")
+ meta:set_string("owner", "")
+ else
+ meta:set_int("time", time)
+ return true
+ end
+ end,
+ on_blast = function(pos)
+ end,
+})
+
+local function may_replace(pos, player)
+ local node_name = minetest.get_node(pos).name
+ local node_definition = minetest.registered_nodes[node_name]
+
+ -- if the node is unknown, we return false
+ if not node_definition then
+ return false
+ end
+
+ -- allow replacing air and liquids
+ if node_name == "air" or node_definition.liquidtype ~= "none" then
+ return true
+ end
+
+ -- don't replace filled chests and other nodes that don't allow it
+ local can_dig_func = node_definition.can_dig
+ if can_dig_func and not can_dig_func(pos, player) then
+ return false
+ end
+
+ -- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones?
+ -- flowers being squished by bones are more realistical than a squished stone, too
+ -- exception are of course any protected buildable_to
+ return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name())
+end
+
+local drop = function(pos, itemstack)
+ local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
+ if obj then
+ obj:setvelocity({
+ x = math.random(-10, 10) / 9,
+ y = 5,
+ z = math.random(-10, 10) / 9,
+ })
+ end
+end
+
+minetest.register_on_dieplayer(function(player)
+
+ local bones_mode = minetest.settings:get("bones_mode") or "bones"
+ if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then
+ bones_mode = "bones"
+ end
+
+ -- return if keep inventory set or in creative mode
+ if bones_mode == "keep" or (creative and creative.is_enabled_for
+ and creative.is_enabled_for(player:get_player_name())) then
+ return
+ end
+
+ local player_inv = player:get_inventory()
+ if player_inv:is_empty("main") and
+ player_inv:is_empty("craft") then
+ return
+ end
+
+ local pos = vector.round(player:getpos())
+ local player_name = player:get_player_name()
+
+ -- check if it's possible to place bones, if not find space near player
+ if bones_mode == "bones" and not may_replace(pos, player) then
+ local air = minetest.find_node_near(pos, 1, {"air"})
+ if air and not minetest.is_protected(air, player_name) then
+ pos = air
+ else
+ bones_mode = "drop"
+ end
+ end
+
+ if bones_mode == "drop" then
+
+ -- drop inventory items
+ for i = 1, player_inv:get_size("main") do
+ drop(pos, player_inv:get_stack("main", i))
+ end
+ player_inv:set_list("main", {})
+
+ -- drop crafting grid items
+ for i = 1, player_inv:get_size("craft") do
+ drop(pos, player_inv:get_stack("craft", i))
+ end
+ player_inv:set_list("craft", {})
+
+ drop(pos, ItemStack("bones:bones"))
+ return
+ end
+
+ local param2 = minetest.dir_to_facedir(player:get_look_dir())
+ minetest.set_node(pos, {name = "bones:bones", param2 = param2})
+
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ inv:set_size("main", 8 * 4)
+ inv:set_list("main", player_inv:get_list("main"))
+
+ for i = 1, player_inv:get_size("craft") do
+ local stack = player_inv:get_stack("craft", i)
+ if inv:room_for_item("main", stack) then
+ inv:add_item("main", stack)
+ else
+ --drop if no space left
+ drop(pos, stack)
+ end
+ end
+
+ player_inv:set_list("main", {})
+ player_inv:set_list("craft", {})
+
+ meta:set_string("formspec", bones_formspec)
+ meta:set_string("owner", player_name)
+
+ if share_bones_time ~= 0 then
+ meta:set_string("infotext", player_name .. "'s fresh bones")
+
+ if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then
+ meta:set_int("time", 0)
+ else
+ meta:set_int("time", (share_bones_time - share_bones_time_early))
+ end
+
+ minetest.get_node_timer(pos):start(10)
+ else
+ meta:set_string("infotext", player_name.."'s bones")
+ end
+end)
diff --git a/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/LICENSE b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/LICENSE
new file mode 100644
index 0000000..0a3df5e
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/LICENSE
@@ -0,0 +1,199 @@
+For the Lua code: LGPL 3.0 or higher
+For all models, all textures, and all sounds: CC-by-SA 3.0 or higher
+For everything else: WTFPL
+
+Exceptions to the above:
+
+Fancy mesh fire model and texture by NathanS (CC-0).
+
+===============================================================================
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+===============================================================================
+
+This work is licensed under the Creative Commons Attribution-ShareAlike
+4.0 International License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
+Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+===============================================================================
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/crafts.lua b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/crafts.lua
new file mode 100644
index 0000000..5153761
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/crafts.lua
@@ -0,0 +1,3340 @@
+-- Crafting for homedecor mod (includes folding) by Vanessa Ezekowitz
+--
+-- Mostly my own code; overall template borrowed from game default
+
+local S = homedecor_i18n.gettext
+
+-- misc craftitems
+
+minetest.register_craftitem("homedecor:terracotta_base", {
+ description = S("Uncooked Terracotta Base"),
+ inventory_image = "homedecor_terracotta_base.png",
+})
+
+minetest.register_craftitem("homedecor:roof_tile_terracotta", {
+ description = S("Terracotta Roof Tile"),
+ inventory_image = "homedecor_roof_tile_terracotta.png",
+})
+
+minetest.register_craftitem("homedecor:oil_extract", {
+ description = S("Oil extract"),
+ inventory_image = "homedecor_oil_extract.png",
+})
+
+minetest.register_craftitem("homedecor:paraffin", {
+ description = S("Unprocessed paraffin"),
+ inventory_image = "homedecor_paraffin.png",
+})
+
+minetest.register_alias("homedecor:plastic_base", "homedecor:paraffin")
+
+minetest.register_craftitem("homedecor:plastic_sheeting", {
+ description = S("Plastic sheet"),
+ inventory_image = "homedecor_plastic_sheeting.png",
+})
+
+minetest.register_craftitem("homedecor:plastic_strips", {
+ description = S("Plastic strips"),
+ inventory_image = "homedecor_plastic_strips.png",
+})
+
+minetest.register_craftitem("homedecor:drawer_small", {
+ description = S("Small Wooden Drawer"),
+ inventory_image = "homedecor_drawer_small.png",
+})
+
+minetest.register_craftitem("homedecor:ic", {
+ description = S("Simple Integrated Circuit"),
+ inventory_image = "homedecor_ic.png",
+})
+
+minetest.register_craftitem("homedecor:heating_element", {
+ description = S("Heating element"),
+ inventory_image = "homedecor_heating_element.png",
+})
+
+minetest.register_craftitem("homedecor:motor", {
+ description = S("Motor"),
+ inventory_image = "homedecor_motor.png",
+})
+
+minetest.register_craftitem("homedecor:power_crystal", {
+ description = S("Power Crystal"),
+ inventory_image = "homedecor_power_crystal.png",
+})
+
+minetest.register_craftitem("homedecor:blank_canvas", {
+ description = S("Blank Canvas"),
+ inventory_image = "homedecor_blank_canvas.png"
+})
+
+minetest.register_craftitem("homedecor:vcr", {
+ description = S("VCR"),
+ inventory_image = "homedecor_vcr.png"
+})
+
+minetest.register_craftitem("homedecor:dvd_player", {
+ description = S("DVD Player"),
+ inventory_image = "homedecor_dvd_player.png"
+})
+
+minetest.register_craftitem("homedecor:copper_wire", {
+ description = S("Spool of copper wire"),
+ inventory_image = "homedecor_copper_wire.png"
+})
+
+minetest.register_craftitem("homedecor:steel_wire", {
+ description = S("Spool of steel wire"),
+ inventory_image = "homedecor_steel_wire.png"
+})
+
+minetest.register_craftitem("homedecor:speaker_driver", {
+ description = S("Speaker driver"),
+ inventory_image = "homedecor_speaker_driver_inv.png"
+})
+
+minetest.register_craftitem("homedecor:fan_blades", {
+ description = S("Fan blades"),
+ inventory_image = "homedecor_fan_blades.png"
+})
+
+minetest.register_craftitem("homedecor:copper_strip", {
+ description = S("Copper Strip"),
+ inventory_image = "homedecor_copper_strip.png"
+})
+
+minetest.register_craftitem("homedecor:steel_strip", {
+ description = S("Steel Strip"),
+ inventory_image = "homedecor_steel_strip.png"
+})
+
+minetest.register_craftitem(":glooptest:chainlink", {
+ description = S("Steel chainlink"),
+ inventory_image = "homedecor_chainlink_steel.png"
+})
+
+minetest.register_craftitem("homedecor:chainlink_brass", {
+ description = S("Brass chainlink"),
+ inventory_image = "homedecor_chainlink_brass.png"
+})
+
+minetest.register_craftitem("homedecor:soda_can", {
+ description = S("Soda Can"),
+ inventory_image = "homedecor_soda_can.png",
+ on_use = minetest.item_eat(2),
+})
+
+minetest.register_craftitem("homedecor:coin", {
+ description = S("Gold Coin (for soda vending machine)"),
+ inventory_image = "homedecor_coin.png",
+})
+
+-- alternate crafting if mesecons is/isn't installed
+
+if not minetest.get_modpath("mesecons") then
+
+ minetest.register_craftitem(":mesecons_materials:silicon", {
+ description = S("Silicon lump"),
+ inventory_image = "homedecor_silicon.png",
+ })
+
+ minetest.register_craft( {
+ output = "mesecons_materials:silicon 4",
+ recipe = {
+ { "default:sand", "default:sand" },
+ { "default:sand", "default:steel_ingot" },
+ },
+ })
+
+end
+
+-- alternate crafting if technic is/isn't installed
+if not minetest.get_modpath("technic") then
+ minetest.register_craftitem(":technic:brass_ingot", {
+ description = S("Brass Ingot"),
+ inventory_image = "homedecor_brass_ingot.png",
+ })
+
+ if minetest.get_modpath("moreores") then
+ minetest.register_craft( {
+ type = "shapeless",
+ output = "technic:brass_ingot 2",
+ recipe = {
+ "moreores:silver_ingot",
+ "default:copper_ingot",
+ },
+ })
+ else
+ minetest.register_craft( {
+ type = "shapeless",
+ output = "technic:brass_ingot 3",
+ recipe = {
+ "default:steel_ingot",
+ "default:copper_ingot",
+ "default:gold_ingot",
+ },
+ })
+ end
+end
+
+minetest.register_alias("homedecor:brass_ingot", "technic:brass_ingot")
+
+-- the actual crafts
+
+minetest.register_craft( {
+ output = "homedecor:copper_strip 12",
+ recipe = {
+ { "", "default:copper_ingot", "" },
+ { "default:copper_ingot", "", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:steel_strip 12",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:fan_blades 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "", "default:steel_ingot", "" },
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:steel_wire 4",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:steel_ingot", "homedecor:plastic_sheeting", "default:steel_ingot" },
+ { "", "homedecor:plastic_sheeting", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:copper_wire 4",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:copper_ingot", "homedecor:plastic_sheeting", "default:copper_ingot" },
+ { "", "homedecor:plastic_sheeting", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:plastic_strips 3",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:heating_element 2",
+ recipe = {
+ { "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:motor 2",
+ recipe = {
+ { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" },
+ { "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft({
+ --type = "shapeless",
+ output = "homedecor:power_crystal 2",
+ recipe = {
+ { "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" },
+ { "default:diamond", "default:gold_ingot", "default:diamond" }
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:power_crystal",
+ burntime = 50,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:terracotta_base 8",
+ recipe = {
+ "default:dirt",
+ "default:clay_lump",
+ "bucket:bucket_water"
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, },
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:roof_tile_terracotta",
+ recipe = "homedecor:terracotta_base",
+})
+
+minetest.register_craft( {
+ output = "homedecor:shingles_terracotta",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"},
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:roof_tile_terracotta 8",
+ recipe = {
+ { "homedecor:shingles_terracotta", "homedecor:shingles_terracotta" }
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_terracotta",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" },
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta" },
+ },
+})
+
+--
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:oil_extract 4",
+ recipe = {
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves"
+ }
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:paraffin",
+ recipe = "homedecor:oil_extract",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:plastic_sheeting",
+ recipe = "homedecor:paraffin",
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:oil_extract",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:paraffin",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:plastic_sheeting",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_green",
+ recipe = {
+ { "", "dye:dark_green", "" },
+ { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_black",
+ recipe = {
+ { "dye:black", "dye:black", "dye:black" },
+ { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:projection_screen 3",
+ recipe = {
+ { "", "default:glass", "" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:projection_screen",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:ceiling_paint 20",
+ recipe = {
+ "dye:white",
+ "dye:white",
+ "default:sand",
+ "bucket:bucket_water",
+ },
+ replacements = { { "bucket:bucket_water","bucket:bucket_empty" } }
+})
+
+minetest.register_craft( {
+ output = "homedecor:ceiling_tile 10",
+ recipe = {
+ { "", "dye:white", "" },
+ { "default:steel_ingot", "default:stone", "default:steel_ingot" },
+
+ },
+})
+
+
+-- =======================================================
+-- Items/recipes not requiring smelting of anything new
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_small_round_b 15",
+ recipe = {
+ { "", "default:glass", "" },
+ { "default:glass", "default:glass", "default:glass" },
+ { "", "default:glass", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_small_square_b 2",
+ recipe = {
+ {"homedecor:glass_table_small_round", "homedecor:glass_table_small_round" },
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_large_b 2",
+ recipe = {
+ { "homedecor:glass_table_small_square", "homedecor:glass_table_small_square" },
+ }
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_small_round_b 15",
+ recipe = {
+ { "", "group:wood", "" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "", "group:wood", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_small_square_b 2",
+ recipe = {
+ { "homedecor:wood_table_small_round","homedecor:wood_table_small_round" },
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_large_b 2",
+ recipe = {
+ { "homedecor:wood_table_small_square", "homedecor:wood_table_small_square" },
+ }
+})
+
+--
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_small_round_b",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_small_square_b",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_large_b",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:shingles_asphalt 6",
+ recipe = {
+ { "building_blocks:gravel_spread", "dye:black", "building_blocks:gravel_spread" },
+ { "group:sand", "dye:black", "group:sand" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:shingles_wood 12",
+ recipe = {
+ { "group:stick", "group:wood"},
+ { "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:shingles_wood 12",
+ recipe = {
+ { "group:wood", "group:stick"},
+ { "group:stick", "group:wood"},
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shingles_wood",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:skylight 4",
+ recipe = {
+ { "homedecor:glass_table_large", "homedecor:glass_table_large" },
+ { "homedecor:glass_table_large", "homedecor:glass_table_large" },
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:skylight_frosted",
+ recipe = {
+ "dye:white",
+ "homedecor:skylight"
+ },
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:skylight",
+ recipe = "homedecor:skylight_frosted",
+})
+
+-- Various colors of shutters
+
+minetest.register_craft( {
+ output = "homedecor:shutter_oak 2",
+ recipe = {
+ { "group:stick", "group:stick" },
+ { "group:stick", "group:stick" },
+ { "group:stick", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_oak",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_black 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:black"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_black",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_dark_grey 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:dark_grey"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_dark_grey",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_grey 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:grey"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_grey",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_white 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:white"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_white",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_mahogany 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:brown"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_mahogany",
+ burntime = 30,
+})
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_red 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:red"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_red",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_yellow 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:yellow"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_yellow",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_forest_green 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:dark_green"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_forest_green",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_light_blue 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "unifieddyes:light_blue"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_light_blue",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_violet 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:violet"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_violet",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:drawer_small",
+ recipe = {
+ { "group:wood", "default:steel_ingot", "group:wood" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:drawer_small",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_one_drawer",
+ recipe = {
+ { "homedecor:drawer_small" },
+ { "group:wood" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_oak_one_drawer",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_two_drawers",
+ recipe = {
+ { "homedecor:drawer_small" },
+ { "homedecor:drawer_small" },
+ { "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_two_drawers",
+ recipe = {
+ { "homedecor:nightstand_oak_one_drawer" },
+ { "homedecor:drawer_small" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_oak_two_drawers",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:nightstand_mahogany_one_drawer",
+ recipe = {
+ "homedecor:nightstand_oak_one_drawer",
+ "dye:brown",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_mahogany_one_drawer",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:nightstand_mahogany_two_drawers",
+ recipe = {
+ "homedecor:nightstand_oak_two_drawers",
+ "dye:brown",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_mahogany_two_drawers",
+ burntime = 30,
+})
+
+-- Table legs
+
+minetest.register_craft( {
+ output = "homedecor:table_legs_wrought_iron 3",
+ recipe = {
+ { "", "default:iron_lump", "" },
+ { "", "default:iron_lump", "" },
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:table_legs_brass 3",
+ recipe = {
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" },
+ { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:utility_table_legs",
+ recipe = {
+ { "group:stick", "group:stick", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:utility_table_legs",
+ burntime = 30,
+})
+
+-- vertical poles/lampposts
+
+minetest.register_craft( {
+ output = "homedecor:pole_brass 4",
+ recipe = {
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:pole_wrought_iron 4",
+ recipe = {
+ { "default:iron_lump", },
+ { "default:iron_lump", },
+ { "default:iron_lump", },
+ },
+})
+
+-- Home electronics
+
+minetest.register_craft( {
+ output = "homedecor:ic 4",
+ recipe = {
+ { "mesecons_materials:silicon", "mesecons_materials:silicon" },
+ { "mesecons_materials:silicon", "default:copper_ingot" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:television",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "moreblocks:glow_glass", "homedecor:plastic_sheeting" },
+ { "homedecor:ic", "homedecor:ic", "homedecor:ic" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:television",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" },
+ { "homedecor:ic", "homedecor:power_crystal", "homedecor:ic" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:stereo",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "default:steel_ingot", "homedecor:ic", "default:steel_ingot" },
+ },
+})
+
+-- ===========================================================
+-- Recipes that require materials from wool (cotton alternate)
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_small 8",
+ recipe = {
+ "wool:red",
+ "wool:yellow",
+ "wool:blue",
+ "wool:black"
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:rug_persian 8",
+ recipe = {
+ { "", "wool:yellow", "" },
+ { "wool:red", "wool:blue", "wool:red" },
+ { "", "wool:yellow", "" }
+ },
+})
+
+-- cotton versions:
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_small 8",
+ recipe = {
+ "cotton:red",
+ "cotton:yellow",
+ "cotton:blue",
+ "cotton:black"
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:rug_persian 8",
+ recipe = {
+ { "", "cotton:yellow", "" },
+ { "cotton:red", "cotton:blue", "cotton:red" },
+ { "", "cotton:yellow", "" }
+ },
+})
+
+-- fuel recipes for same
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_small",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_large 2",
+ recipe = {
+ "homedecor:rug_small",
+ "homedecor:rug_small",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_large",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_persian",
+ burntime = 30,
+})
+
+-- Speakers
+
+minetest.register_craft( {
+ output = "homedecor:speaker_driver 2",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:paper", "homedecor:copper_wire", "default:iron_lump" },
+ { "", "default: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" },
+ },
+})
+
+-- Curtains
+
+minetest.register_craft( {
+ output = "homedecor:curtain_closed 4",
+ recipe = {
+ { "wool:white", "", ""},
+ { "wool:white", "", ""},
+ { "wool:white", "", ""},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:curtain_closed 4",
+ recipe = {
+ { "cottages:wool", "", ""},
+ { "cottages:wool", "", ""},
+ { "cottages:wool", "", ""},
+ },
+})
+
+local mats = {
+ { "brass", "homedecor:pole_brass" },
+ { "wrought_iron", "homedecor:pole_wrought_iron" },
+ { "wood", "group:stick" }
+}
+
+for i in ipairs(mats) do
+ local material = mats[i][1]
+ local ingredient = mats[i][2]
+ minetest.register_craft( {
+ output = "homedecor:curtainrod_"..material.." 3",
+ recipe = {
+ { ingredient, ingredient, ingredient },
+ },
+ })
+end
+
+-- Recycling recipes
+
+-- Some glass objects recycle via the glass fragments item/recipe in the Vessels mod.
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_small_round",
+ "homedecor:glass_table_small_round",
+ "homedecor:glass_table_small_round"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_small_square",
+ "homedecor:glass_table_small_square",
+ "homedecor:glass_table_small_square"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_large",
+ "homedecor:glass_table_large",
+ "homedecor:glass_table_large"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments 2",
+ recipe = {
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight"
+ }
+})
+
+-- Wooden tabletops can turn into sticks
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_small_round",
+ "homedecor:wood_table_small_round",
+ "homedecor:wood_table_small_round"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_small_square",
+ "homedecor:wood_table_small_square",
+ "homedecor:wood_table_small_square"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_large",
+ "homedecor:wood_table_large",
+ "homedecor:wood_table_large"
+ }
+})
+
+-- Kitchen stuff
+
+minetest.register_craft({
+ output = "homedecor:oven_steel",
+ recipe = {
+ {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", },
+ {"default:steel_ingot", "moreblocks:iron_glass", "default:steel_ingot", },
+ {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oven_steel",
+ recipe = {
+ {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", },
+ {"default:steel_ingot", "default:glass", "default:steel_ingot", },
+ {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", },
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:oven",
+ recipe = {
+ "homedecor:oven_steel",
+ "dye:white",
+ "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", "homedecor:ic", },
+ {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:microwave_oven 2",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
+ {"default:steel_ingot", "default:glass", "homedecor:ic", },
+ {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", },
+ }
+})
+
+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", },
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:refrigerator_white",
+ recipe = {
+ "homedecor:refrigerator_steel",
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet",
+ recipe = {
+ {"group:wood", "group:stick", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_steel",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+ {"", "homedecor:kitchen_cabinet", ""},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_steel",
+ recipe = {
+ {"moreblocks:slab_steelblock_1"},
+ { "homedecor:kitchen_cabinet" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_marble",
+ recipe = {
+ {"building_blocks:slab_marble"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_marble",
+ recipe = {
+ {"technic:slab_marble_1"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_granite",
+ recipe = {
+ {"technic:slab_granite_1"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:kitchen_cabinet_half 2",
+ recipe = { "homedecor:kitchen_cabinet" }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_with_sink",
+ recipe = {
+ {"group:wood", "default:steel_ingot", "group:wood", },
+ {"group:wood", "default:steel_ingot", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ }
+})
+
+------- Lighting
+
+-- candles
+
+minetest.register_craft({
+ output = "homedecor:candle_thin 4",
+ recipe = {
+ {"farming:string" },
+ {"homedecor:paraffin" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candle 2",
+ recipe = {
+ {"farming:string" },
+ {"homedecor:paraffin" },
+ {"homedecor:paraffin" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_sconce 2",
+ recipe = {
+ {"default:iron_lump", "", ""},
+ {"default:iron_lump", "homedecor:candle", ""},
+ {"default:iron_lump", "", ""},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candlestick_wrought_iron",
+ recipe = {
+ {""},
+ {"homedecor:candle_thin"},
+ {"default:iron_lump"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candlestick_brass",
+ recipe = {
+ {""},
+ {"homedecor:candle_thin"},
+ {"technic:brass_ingot"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oil_lamp",
+ recipe = {
+ { "", "vessels:glass_bottle", "" },
+ { "", "farming:string", "" },
+ { "default:steel_ingot", "homedecor:oil_extract", "default:steel_ingot" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oil_lamp_tabletop",
+ recipe = {
+ { "", "vessels:glass_bottle", "" },
+ { "", "farming:string", "" },
+ { "default:iron_lump", "homedecor:oil_extract", "default:iron_lump" }
+ }
+})
+
+-- Wrought-iron wall latern
+
+minetest.register_craft({
+ output = "homedecor:ground_lantern",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "default:iron_lump", "default:torch", "default:iron_lump" },
+ { "", "default:iron_lump", "" }
+ }
+})
+
+-- wood-lattice lamps
+
+minetest.register_craft( {
+ output = "homedecor:lattice_lantern_large 2",
+ recipe = {
+ { "dye:black", "dye:yellow", "dye:black" },
+ { "group:stick", "building_blocks:woodglass", "group:stick" },
+ { "group:stick", "homedecor:power_crystal", "group:stick" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:lattice_lantern_small 8",
+ recipe = {
+ { "homedecor:lattice_lantern_large" },
+ },
+})
+
+-- glowlights
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half 6",
+ recipe = {
+ { "dye:white", "dye:white", "dye:white" },
+ { "default:glass", "homedecor:power_crystal", "default:glass", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half 6",
+ recipe = {
+ { "dye:white", "dye:white", "dye:white" },
+ {"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_quarter 6",
+ recipe = {
+ {"homedecor:glowlight_half", "homedecor:glowlight_half", "homedecor:glowlight_half", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 8",
+ recipe = {
+ { "dye:white" },
+ { "default:glass" },
+ { "homedecor:power_crystal" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 8",
+ recipe = {
+ {"dye:white" },
+ {"moreblocks:super_glow_glass" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 4",
+ recipe = {
+ {"homedecor:glowlight_half" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half",
+ recipe = {
+ {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"},
+ {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"}
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half",
+ type = "shapeless",
+ recipe = {
+ "homedecor:glowlight_quarter",
+ "homedecor:glowlight_quarter"
+ }
+})
+
+----
+
+minetest.register_craft({
+ output = "homedecor:plasma_lamp",
+ recipe = {
+ {"", "default:glass", ""},
+ {"default:glass", "homedecor:power_crystal", "default:glass"},
+ {"", "default:glass", ""}
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:plasma_ball 2",
+ recipe = {
+ {"", "default:glass", ""},
+ {"default:glass", "default:copper_ingot", "default:glass"},
+ {"homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting"}
+ }
+})
+
+-- Brass/wrought iron fences
+
+
+minetest.register_craft( {
+ output = "homedecor:fence_brass 6",
+ recipe = {
+ { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" },
+ { "technic:brass_ingot", "technic:brass_ingot", "technic: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 2",
+ recipe = {
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:fence_wrought_iron_2 2",
+ 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", "homedecor:steel_wire", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ { "group:stick", "homedecor: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" },
+ { "homedecor:steel_wire", "homedecor:steel_wire", "default:steel_ingot" },
+ { "homedecor:steel_wire", "homedecor: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" },
+})
+
+
+-- Gates
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_picket_white_closed",
+ recipe = {
+ "homedecor:fence_picket_white"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_picket_white",
+ recipe = {
+ "homedecor:gate_picket_white_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_picket_closed",
+ recipe = {
+ "homedecor:fence_picket"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_picket",
+ recipe = {
+ "homedecor:gate_picket_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_barbed_wire_closed",
+ recipe = {
+ "homedecor:fence_barbed_wire"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_barbed_wire",
+ recipe = {
+ "homedecor:gate_barbed_wire_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_chainlink_closed",
+ recipe = {
+ "homedecor:fence_chainlink"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_chainlink",
+ recipe = {
+ "homedecor:gate_chainlink_closed"
+ },
+})
+
+------ Doors
+
+-- plain wood, non-windowed
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_plain_left 2",
+ recipe = {
+ { "group:wood", "group:wood", "" },
+ { "group:wood", "group:wood", "default:steel_ingot" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- fancy exterior
+
+minetest.register_craft( {
+ output = "homedecor:door_exterior_fancy_left 2",
+ recipe = {
+ { "group:wood", "default:glass" },
+ { "group:wood", "group:wood" },
+ { "group:wood", "group:wood" },
+ },
+})
+
+-- wood and glass (grid style)
+
+-- bare
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_glass_oak_left 2",
+ recipe = {
+ { "default:glass", "group:wood" },
+ { "group:wood", "default:glass" },
+ { "default:glass", "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_glass_oak_left 2",
+ recipe = {
+ { "group:wood", "default:glass" },
+ { "default:glass", "group:wood" },
+ { "group:wood", "default:glass" },
+ },
+})
+
+-- mahogany
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_mahogany_left 2",
+ recipe = {
+ "default:dirt",
+ "default:coal_lump",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_mahogany_left 2",
+ recipe = {
+ "dye:brown",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+-- white
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_white_left 2",
+ recipe = {
+ "dye:white",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+-- Solid glass with metal handle
+
+minetest.register_craft( {
+ output = "homedecor:door_glass_left 2",
+ recipe = {
+ { "default:glass", "default:glass" },
+ { "default:glass", "default:steel_ingot" },
+ { "default:glass", "default:glass" },
+ },
+})
+
+-- Closet doors
+
+-- oak
+
+minetest.register_craft( {
+ output = "homedecor:door_closet_oak_left 2",
+ recipe = {
+ { "", "group:stick", "group:stick" },
+ { "default:steel_ingot", "group:stick", "group:stick" },
+ { "", "group:stick", "group:stick" },
+ },
+})
+
+-- mahogany
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_closet_mahogany_left 2",
+ recipe = {
+ "homedecor:door_closet_oak_left",
+ "homedecor:door_closet_oak_left",
+ "default:dirt",
+ "default:coal_lump",
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_closet_mahogany_left 2",
+ recipe = {
+ "homedecor:door_closet_oak_left",
+ "homedecor:door_closet_oak_left",
+ "dye:brown"
+ },
+})
+
+-- wrought fence-like door
+
+minetest.register_craft( {
+ output = "homedecor:door_wrought_iron_left 2",
+ recipe = {
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" }
+ },
+})
+
+-- bedroom door
+
+minetest.register_craft( {
+ output = "homedecor:door_bedroom_left",
+ recipe = {
+ { "dye:white", "dye:white", "" },
+ { "homedecor:door_wood_plain_left", "technic:brass_ingot", "" },
+ { "", "", "" },
+ },
+})
+
+-- woodglass door
+
+minetest.register_craft( {
+ output = "homedecor:door_woodglass_left",
+ recipe = {
+ { "group:wood", "default:glass", "" },
+ { "group:wood", "default:glass", "technic:brass_ingot" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- woodglass door type 2
+
+minetest.register_craft( {
+ output = "homedecor:door_woodglass2_left",
+ recipe = {
+ { "default:glass", "default:glass", "" },
+ { "group:wood", "group:wood", "default:iron_lump" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- laundry stuff
+
+minetest.register_craft( {
+ output = "homedecor:washing_machine",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:washing_machine",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dryer",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_empty", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dryer",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_empty", "technic:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:ironing_board",
+ recipe = {
+ { "wool:grey", "wool:grey", "wool:grey"},
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "default:steel_ingot" }
+ },
+})
+
+-- dishwashers
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher",
+ recipe = {
+ { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
+ { "default:steel_ingot", "homedecor:shower_head", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher",
+ recipe = {
+ { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
+ { "default:steel_ingot", "homedecor:shower_head", "technic:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "stairs:slab_wood" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "moreblocks:slab_wood" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "moreblocks:slab_wood_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_steel",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "", "homedecor:dishwasher", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_steel",
+ recipe = {
+ { "moreblocks:slab_steelblock_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_marble",
+ recipe = {
+ { "building_blocks:slab_marble" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_marble",
+ recipe = {
+ { "technic:slab_marble_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_granite",
+ recipe = {
+ { "technic:slab_granite_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+-- paintings
+
+minetest.register_craft({
+ output = "homedecor:blank_canvas",
+ recipe = {
+ { "", "group:stick", "" },
+ { "group:stick", "wool:white", "group:stick" },
+ { "", "group:stick", "" },
+ }
+})
+
+local painting_patterns = {
+ [1] = { { "brown", "red", "brown" },
+ { "dark_green", "red", "green" } },
+
+ [2] = { { "green", "yellow", "green" },
+ { "green", "yellow", "green" } },
+
+ [3] = { { "green", "pink", "green" },
+ { "brown", "pink", "brown" } },
+
+ [4] = { { "black", "orange", "grey" },
+ { "dark_green", "orange", "orange" } },
+
+ [5] = { { "blue", "orange", "yellow" },
+ { "green", "red", "brown" } },
+
+ [6] = { { "green", "red", "orange" },
+ { "orange", "yellow", "green" } },
+
+ [7] = { { "blue", "dark_green", "dark_green" },
+ { "green", "grey", "green" } },
+
+ [8] = { { "blue", "blue", "blue" },
+ { "green", "green", "green" } },
+
+ [9] = { { "blue", "blue", "dark_green" },
+ { "green", "grey", "dark_green" } },
+
+ [10] = { { "green", "white", "green" },
+ { "dark_green", "white", "dark_green" } },
+
+ [11] = { { "blue", "white", "blue" },
+ { "blue", "grey", "dark_green" } },
+
+ [12] = { { "green", "green", "green" },
+ { "grey", "grey", "green" } },
+
+ [13] = { { "blue", "blue", "grey" },
+ { "dark_green", "white", "white" } },
+
+ [14] = { { "red", "yellow", "blue" },
+ { "blue", "green", "violet" } },
+
+ [15] = { { "blue", "yellow", "blue" },
+ { "black", "black", "black" } },
+
+ [16] = { { "red", "orange", "blue" },
+ { "black", "dark_grey", "grey" } },
+
+ [17] = { { "orange", "yellow", "orange" },
+ { "black", "black", "black" } },
+
+ [18] = { { "grey", "dark_green", "grey" },
+ { "white", "white", "white" } },
+
+ [19] = { { "white", "brown", "green" },
+ { "green", "brown", "brown" } },
+
+ [20] = { { "blue", "blue", "blue" },
+ { "red", "brown", "grey" } }
+}
+
+for i,recipe in pairs(painting_patterns) do
+
+ local item1 = "dye:"..recipe[1][1]
+ local item2 = "dye:"..recipe[1][2]
+ local item3 = "dye:"..recipe[1][3]
+ local item4 = "dye:"..recipe[2][1]
+ local item5 = "dye:"..recipe[2][2]
+ local item6 = "dye:"..recipe[2][3]
+
+ minetest.register_craft({
+ output = "homedecor:painting_"..i,
+ recipe = {
+ { item1, item2, item3 },
+ { item4, item5, item6 },
+ {"", "homedecor:blank_canvas", "" }
+ }
+ })
+end
+
+-- more misc stuff here
+
+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:fishtank",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:glowlight_small_cube", "homedecor:plastic_sheeting" },
+ { "default:glass", "bucket:bucket_water", "default:glass" },
+ { "default:glass", "building_blocks:gravel_spread", "default:glass" },
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} }
+})
+
+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" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:cardboard_box 2",
+ recipe = {
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "default:paper", "default:paper" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:cardboard_box_big 2",
+ recipe = {
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "default:paper", "default:paper" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:filing_cabinet",
+ recipe = {
+ { "", "default:wood", "" },
+ { "default:wood", "homedecor:drawer_small", "default:wood" },
+ { "", "default:wood", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:analog_clock_plastic 2",
+ recipe = {
+ { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:analog_clock_wood 2",
+ recipe = {
+ { "group:stick", "dye:black", "group:stick" },
+ { "group:stick", "homedecor:ic", "group:stick" },
+ { "group:stick", "dye:black", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:digital_clock 2",
+ recipe = {
+ { "homedecor:plastic_sheeting", "default:paper", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:alarm_clock",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:speaker_driver", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:digital_clock", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:air_conditioner",
+ recipe = {
+ { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:fan_blades", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:air_conditioner",
+ recipe = {
+ { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_fan",
+ recipe = {
+ { "homedecor:motor" },
+ { "homedecor:fan_blades" },
+ { "homedecor:glowlight_small_cube" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_fan",
+ recipe = {
+ { "technic:motor" },
+ { "homedecor:fan_blades" },
+ { "homedecor:glowlight_small_cube" }
+ }
+})
+
+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({
+ type = "shapeless",
+ output = "homedecor:window_plain 8",
+ recipe = {
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ "building_blocks:woodglass"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:window_quartered",
+ recipe = {
+ "dye:white",
+ "group:stick",
+ "group:stick",
+ "homedecor:window_plain"
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:vcr 2",
+ recipe = {
+ { "homedecor:ic", "default:steel_ingot", "homedecor:plastic_sheeting" },
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dvd_player 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:obsidian_glass", "homedecor:motor", "homedecor:motor" },
+ { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dvd_player 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:obsidian_glass", "technic:motor", "technic:motor" },
+ { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" },
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:dvd_vcr",
+ recipe = {
+ "homedecor:vcr",
+ "homedecor:dvd_player"
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:blinds_thin",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" },
+ { "farming:string", "homedecor:plastic_strips", "" },
+ { "", "homedecor:plastic_strips", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:blinds_thick",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" },
+ { "farming:string", "homedecor:plastic_strips", "homedecor:plastic_strips" },
+ { "", "homedecor:plastic_strips", "homedecor:plastic_strips" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:openframe_bookshelf",
+ recipe = {
+ {"group:wood", "", "group:wood"},
+ {"default:book", "default:book", "default:book"},
+ {"group:wood", "", "group:wood"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:desk_fan",
+ recipe = {
+ {"default:steel_ingot", "homedecor:fan_blades", "homedecor:motor"},
+ {"", "default:steel_ingot", ""}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:space_heater",
+ recipe = {
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "homedecor:fan_blades", "homedecor:motor"},
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:radiator",
+ recipe = {
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" },
+ { "homedecor:ic", "homedecor:heating_element", "" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+-- bathroom/kitchen tiles
+
+local color_pairings = {
+ { "grey", "white", "1" },
+ { "dark_grey", "white", "2" },
+ { "black", "white", "3" },
+ { "black", "dark_grey", "4" },
+ { "red", "white", "red" },
+ { "green", "white", "green" },
+ { "blue", "white", "blue" },
+ { "yellow", "white", "yellow" },
+ { "brown", "white", "tan" }
+}
+
+for i in ipairs(color_pairings) do
+ local dye1 = color_pairings[i][1]
+ local dye2 = color_pairings[i][2]
+ local result = color_pairings[i][3]
+ minetest.register_craft( {
+ output = "homedecor:tiles_"..result.." 2",
+ recipe = {
+ { "group:marble", "dye:"..dye1 },
+ { "group:marble", "dye:"..dye2 }
+ },
+ })
+end
+
+-- misc electrical
+
+minetest.register_craft( {
+ output = "homedecor:power_outlet",
+ recipe = {
+ {"homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"homedecor:plastic_sheeting", ""},
+ {"homedecor:plastic_sheeting", "homedecor:copper_strip"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:light_switch",
+ recipe = {
+ {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"}
+ },
+})
+
+-- doghouse
+
+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"}
+ },
+})
+
+-- japanese walls and mat
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"group:stick", "default:paper"},
+ {"default:paper", "group:stick"},
+ {"group:stick", "default:paper"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"default:paper", "group:stick"},
+ {"group:stick", "default:paper"},
+ {"default:paper", "group:stick"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_middle",
+ recipe = {
+ {"homedecor:japanese_wall_top"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_bottom",
+ recipe = {
+ {"homedecor:japanese_wall_middle"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"homedecor:japanese_wall_bottom"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:tatami_mat",
+ recipe = {
+ {"farming:wheat", "farming:wheat", "farming:wheat"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:wardrobe",
+ recipe = {
+ { "homedecor:drawer_small", "homedecor:kitchen_cabinet" },
+ { "homedecor:drawer_small", "default:wood" },
+ { "homedecor:drawer_small", "default:wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:pool_table",
+ recipe = {
+ { "wool:dark_green", "wool:dark_green", "wool:dark_green" },
+ { "building_blocks:hardwood", "building_blocks:hardwood", "building_blocks:hardwood" },
+ { "building_blocks:slab_hardwood", "", "building_blocks:slab_hardwood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:trash_can 3",
+ recipe = {
+ { "homedecor:steel_wire", "", "homedecor:steel_wire" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:telephone",
+ recipe = {
+ { "homedecor:speaker_driver", "homedecor:copper_wire", "homedecor:speaker_driver" },
+ { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cobweb_corner 5",
+ recipe = {
+ { "farming:string", "", "farming:string" },
+ { "", "farming:string", "" },
+ { "farming:string", "", "farming:string" }
+ },
+})
+
+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: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" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:doorbell",
+ recipe = {
+ { "homedecor:light_switch", "homedecor:power_crystal", "homedecor:speaker_driver" }
+ },
+})
+
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_1",
+ recipe = {
+ { "group:wood", "group:wood", "group:wood" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_2_left",
+ recipe = {
+ { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "stairs:slab_wood", "", "stairs:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_2_left",
+ recipe = {
+ { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "moreblocks:slab_wood", "", "moreblocks:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:kitchen_faucet",
+ recipe = {
+ { "", "default:steel_ingot" },
+ { "default:steel_ingot", "" },
+ { "homedecor:taps", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cutlery_set",
+ recipe = {
+ { "", "vessels:drinking_glass", "" },
+ { "homedecor:steel_strip", "building_blocks:slab_marble", "homedecor:steel_strip" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cutlery_set",
+ recipe = {
+ { "", "vessels:drinking_glass", "" },
+ { "homedecor:steel_strip", "building_blocks:micro_marble_1", "homedecor:steel_strip" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:simple_bench",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "stairs:slab_wood", "", "stairs:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:simple_bench",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "moreblocks:slab_wood", "", "moreblocks:slab_wood" }
+ },
+})
+
+local bedcolors = {
+ { "red", "red"},
+ { "orange", "orange" },
+ { "yellow", "yellow"},
+ { "green", "dark_green"},
+ { "blue", "blue"},
+ { "violet", "violet"},
+ { "pink", "pink"},
+ { "darkgrey", "dark_grey"},
+ { "brown", "brown" },
+}
+
+for c in ipairs(bedcolors) do
+ local color = bedcolors[c][1]
+ local woolcolor = bedcolors[c][2]
+
+ minetest.register_craft( {
+ output = "homedecor:bed_"..color.."_regular",
+ recipe = {
+ { "group:stick", "", "group:stick" },
+ { "wool:white", "wool:"..woolcolor, "wool:"..woolcolor },
+ { "group:wood", "", "group:wood" },
+ },
+ })
+
+ minetest.register_craft( {
+ output = "homedecor:bed_"..color.."_kingsize",
+ recipe = {
+ { "homedecor:bed_"..color.."_regular", "homedecor:bed_"..color.."_regular" }
+ },
+ })
+
+end
+
+minetest.register_craft( {
+ output = "homedecor:bottle_green",
+ recipe = {
+ { "vessels:glass_bottle", "dye:green" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bottle_brown",
+ recipe = {
+ { "vessels:glass_bottle", "dye:brown" }
+ },
+})
+
+if not minetest.get_modpath("glooptest") then
+
+ minetest.register_craft({
+ output = "glooptest:chainlink 12",
+ recipe = {
+ {"", "default:steel_ingot", "default:steel_ingot"},
+ { "default:steel_ingot", "", "default:steel_ingot" },
+ { "default:steel_ingot", "default:steel_ingot", "" },
+ },
+ })
+
+end
+
+minetest.register_alias("homedecor:chainlink_steel", "glooptest:chainlink")
+
+minetest.register_craft({
+ output = "homedecor:chains 4",
+ recipe = {
+ { "default:steel_ingot", "", "default:steel_ingot"},
+ { "glooptest:chainlink", "", "glooptest:chainlink" },
+ { "glooptest:chainlink", "", "glooptest:chainlink" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:chainlink_brass 12",
+ recipe = {
+ {"", "technic:brass_ingot", "technic:brass_ingot"},
+ { "technic:brass_ingot", "", "technic:brass_ingot" },
+ { "technic:brass_ingot", "technic:brass_ingot", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:coffee_maker",
+ recipe = {
+ {"homedecor:plastic_sheeting", "bucket:bucket_water", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dartboard",
+ recipe = {
+ {"dye:black", "homedecor:plastic_sheeting", "dye:white"},
+ {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting"},
+ {"dye:dark_green", "homedecor:plastic_sheeting", "dye:red"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:piano",
+ recipe = {
+ { "", "homedecor:steel_wire", "building_blocks:hardwood" },
+ { "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" },
+ { "technic:brass_ingot", "default:steelblock", "building_blocks:hardwood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:toaster",
+ recipe = {
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:deckchair",
+ recipe = {
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" },
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" },
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:deckchair_striped_blue",
+ type = "shapeless",
+ recipe = {
+ "homedecor:deckchair",
+ "dye:blue"
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:office_chair_basic",
+ recipe = {
+ { "", "", "wool:black" },
+ { "", "wool:black", "default:steel_ingot" },
+ { "group:stick", "homedecor:pole_wrought_iron", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:office_chair_upscale",
+ recipe = {
+ { "dye:black", "building_blocks:sticks", "group:wool" },
+ { "homedecor:plastic_sheeting", "group:wool", "default:steel_ingot" },
+ { "building_blocks:sticks", "homedecor:pole_wrought_iron", "building_blocks:sticks" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_shelf 2",
+ recipe = {
+ { "homedecor:wood_table_small_square", "homedecor:curtainrod_wood", "homedecor:curtainrod_wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:trophy 3",
+ recipe = {
+ { "default:gold_ingot","","default:gold_ingot" },
+ { "","default:gold_ingot","" },
+ { "group:wood","default:gold_ingot","group:wood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:grandfather_clock",
+ recipe = {
+ { "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
+ { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" },
+ { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:sportbench",
+ recipe = {
+ { "stairs:slab_steelblock","homedecor:pole_wrought_iron","stairs:slab_steelblock" },
+ { "default:steel_ingot","wool:black","default:steel_ingot" },
+ { "default:steel_ingot","wool:black","default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:skateboard",
+ recipe = {
+ { "dye:yellow","dye:green","dye:blue" },
+ { "homedecor:wood_table_small_square","homedecor:wood_table_small_square","homedecor:wood_table_small_square" },
+ { "default:steel_ingot","","default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:copper_pans",
+ recipe = {
+ { "homedecor:copper_strip","","homedecor:copper_strip" },
+ { "default:copper_ingot","","default:copper_ingot" },
+ { "default:copper_ingot","","default:copper_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:window_flowerbox",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" },
+ { "", "homedecor:roof_tile_terracotta", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:paper_towel",
+ recipe = {
+ { "homedecor:toilet_paper", "homedecor:toilet_paper" }
+ },
+})
+
+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" },
+ { "homedecor:pole_wrought_iron","default:steel_ingot","homedecor:pole_wrought_iron" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:beer_tap",
+ recipe = {
+ { "group:stick","default:steel_ingot","group:stick" },
+ { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" },
+ { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }
+ },
+})
+
+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" }
+ },
+})
+
+local bookcolors = {
+ "red",
+ "green",
+ "blue",
+ "violet",
+ "grey",
+ "brown"
+}
+
+for _, color in ipairs(bookcolors) do
+ minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:book_"..color,
+ recipe = {
+ "dye:"..color,
+ "default:book"
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "homedecor:door_japanese_closed",
+ recipe = {
+ { "homedecor:japanese_wall_top" },
+ { "homedecor:japanese_wall_bottom" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:calendar",
+ recipe = {
+ { "","dye:red","" },
+ { "","dye:black","" },
+ { "","default:paper","" }
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_brown",
+ recipe = {
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown"
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_green",
+ recipe = {
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green"
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_multi",
+ recipe = {
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wine_rack",
+ recipe = {
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ },
+})
+
+local picture_dyes = {
+ {"dye:brown", "dye:green"}, -- the figure sitting by the tree, wielding a pick
+ {"dye:green", "dye:blue"} -- the "family photo"
+}
+
+for i in ipairs(picture_dyes) do
+ minetest.register_craft({
+ output = "homedecor:picture_frame"..i,
+ recipe = {
+ { picture_dyes[i][1], picture_dyes[i][2] },
+ { "homedecor:blank_canvas", "group:stick" },
+ },
+ })
+end
+
+local dlamp_colors = { "red","blue","green","violet" }
+
+for _, color in ipairs(dlamp_colors) do
+ minetest.register_craft({
+ output = "homedecor:desk_lamp_"..color,
+ recipe = {
+ { "", "homedecor:steel_strip", "homedecor:glowlight_small_cube" },
+ { "", "homedecor:copper_wire", "" },
+ { "homedecor:plastic_sheeting", "dye:"..color, "homedecor:plastic_sheeting" },
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "homedecor:hanging_lantern 2",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "" },
+ { "default:iron_lump", "homedecor:lattice_lantern_large", "" },
+ { "default:iron_lump", "", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lantern 2",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "default:iron_lump", "homedecor:lattice_lantern_large", "default:iron_lump" },
+ { "", "default:iron_lump", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_lamp 2",
+ recipe = {
+ { "", "homedecor:lattice_lantern_large", "" },
+ { "default:iron_lump", "group:stick", "" },
+ { "default:iron_lump", "group:stick", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "dye:green" },
+ { "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "group:stick", "stairs:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "dye:green" },
+ { "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "group:stick", "moreblocks:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:tool_cabinet",
+ recipe = {
+ { "homedecor:motor", "default:axe_steel", "default:pick_steel" },
+ { "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:bathroom_set",
+ recipe = {
+ { "", "homedecor:glass_table_small_round", "" },
+ { "homedecor:plastic_sheeting", "homedecor:glass_table_small_round", "homedecor:plastic_sheeting" },
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:trash_can_green",
+ recipe = {
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "dye:green", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lamp",
+ recipe = {
+ { "", "technic:brass_ingot", ""},
+ { "", "homedecor:chainlink_brass", ""},
+ { "default:glass", "homedecor:glowlight_small", "default:glass"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lamp",
+ recipe = {
+ { "", "chains:chain_top_brass", ""},
+ { "default:glass", "homedecor:glowlight_small", "default:glass"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:spiral_staircase",
+ recipe = {
+ { "default:steelblock", "homedecor:pole_wrought_iron", "" },
+ { "", "homedecor:pole_wrought_iron", "default:steelblock" },
+ { "default:steelblock", "homedecor:pole_wrought_iron", "" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:soda_machine",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+ {"default:steel_ingot", "dye:red", "default:steel_ingot"},
+ {"default:steel_ingot", "default:copperblock", "default:steel_ingot"},
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 5",
+ recipe = {"moreblocks:micro_goldblock_1", "default:sword_stone"}
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 15",
+ recipe = {"default:gold_ingot", "default:sword_steel"}
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 50",
+ recipe = {"default:goldblock", "default:sword_mese"}
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_wood 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_white_wood 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "dye:white", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_wood_vegetal 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "group:leaves", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_white_wood_vegetal 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "group:leaves", "group:wood"},
+ {"group:stick", "dye:white", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 8",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "default:glass", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "xpanes:pane", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craftitem("homedecor:flower_pot_small", {
+ description = S("Small Flower Pot"),
+ inventory_image = "homedecor_flowerpot_small_inv.png"
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_small",
+ recipe = {
+ { "default:clay_brick", "", "default:clay_brick" },
+ { "", "default:clay_brick", "" }
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_small 3",
+ recipe = { { "homedecor:flower_pot_terracotta" } }
+})
+
+minetest.register_craft({
+ output = "homedecor:shrubbery_green 3",
+ recipe = {
+ { "group:leaves", "group:leaves", "group:leaves" },
+ { "group:leaves", "group:leaves", "group:leaves" },
+ { "group:stick", "group:stick", "group:stick" }
+ }
+})
+
+for _, color in ipairs(homedecor.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
+
+for i in ipairs(homedecor.banister_materials) do
+
+ local name = homedecor.banister_materials[i][1]
+ local topmat = homedecor.banister_materials[i][5]
+ local vertmat = homedecor.banister_materials[i][6]
+ local dye1 = homedecor.banister_materials[i][7]
+ local dye2 = homedecor.banister_materials[i][8]
+
+ minetest.register_craft({
+ output = "homedecor:banister_"..name.."_horizontal 2",
+ recipe = {
+ { topmat, "", dye1 },
+ { vertmat, topmat, "" },
+ { dye2, vertmat, topmat }
+ },
+ })
+end
+
+if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then
+ technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} })
+end
diff --git a/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/gastronomy.lua b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/gastronomy.lua
new file mode 100644
index 0000000..052e526
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/gastronomy.lua
@@ -0,0 +1,207 @@
+
+local cutlery_cbox = {
+ type = "fixed",
+ fixed = {
+ { -5/16, -8/16, -6/16, 5/16, -7/16, 2/16 },
+ { -2/16, -8/16, 2/16, 2/16, -4/16, 6/16 }
+ }
+}
+
+homedecor.register("cutlery_set", {
+ drawtype = "mesh",
+ mesh = "homedecor_cutlery_set.obj",
+ tiles = { "homedecor_cutlery_set.png" },
+ inventory_image = "homedecor_cutlery_set_inv.png",
+ description = "Cutlery set",
+ groups = {snappy=3},
+ selection_box = cutlery_cbox,
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+})
+
+local bottle_cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.125, -0.5, -0.125, 0.125, 0, 0.125}
+ }
+}
+
+local fbottle_cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.375, -0.5, -0.3125, 0.375, 0, 0.3125 }
+ }
+}
+
+local bottle_colors = {"brown", "green"}
+
+for _, b in ipairs(bottle_colors) do
+
+ homedecor.register("bottle_"..b, {
+ tiles = { "homedecor_bottle_"..b..".png" },
+ inventory_image = "homedecor_bottle_"..b.."_inv.png",
+ description = "Bottle ("..b..")",
+ mesh = "homedecor_bottle.obj",
+ walkable = false,
+ groups = {snappy=3},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = bottle_cbox
+ })
+
+ -- 4-bottle sets
+
+ homedecor.register("4_bottles_"..b, {
+ tiles = {
+ "homedecor_bottle_"..b..".png",
+ "homedecor_bottle_"..b..".png"
+ },
+ inventory_image = "homedecor_4_bottles_"..b.."_inv.png",
+ description = "Four "..b.." bottles",
+ mesh = "homedecor_4_bottles.obj",
+ walkable = false,
+ groups = {snappy=3},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = fbottle_cbox
+ })
+end
+
+homedecor.register("4_bottles_multi", {
+ tiles = {
+ "homedecor_bottle_brown.png",
+ "homedecor_bottle_green.png"
+ },
+ inventory_image = "homedecor_4_bottles_multi_inv.png",
+ description = "Four misc brown/green bottles",
+ mesh = "homedecor_4_bottles.obj",
+ groups = {snappy=3},
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = fbottle_cbox
+})
+
+local wine_cbox = homedecor.nodebox.slab_z(-0.75)
+homedecor.register("wine_rack", {
+ description = "Wine Rack",
+ mesh = "homedecor_wine_rack.obj",
+ tiles = {
+ "homedecor_generic_wood_red.png",
+ "homedecor_bottle_brown.png",
+ "homedecor_bottle_brown2.png",
+ "homedecor_bottle_brown3.png",
+ "homedecor_bottle_brown4.png"
+ },
+ inventory_image = "homedecor_wine_rack_inv.png",
+ groups = {choppy=2},
+ selection_box = wine_cbox,
+ collision_box = wine_cbox,
+ sounds = default.node_sound_defaults(),
+})
+
+homedecor.register("dartboard", {
+ description = "Dartboard",
+ mesh = "homedecor_dartboard.obj",
+ tiles = { "homedecor_dartboard.png" },
+ inventory_image = "homedecor_dartboard_inv.png",
+ wield_image = "homedecor_dartboard_inv.png",
+ paramtype2 = "wallmounted",
+ walkable = false,
+ selection_box = {
+ type = "wallmounted",
+ },
+ groups = {choppy=2,dig_immediate=2,attached_node=1},
+ legacy_wallmounted = true,
+ sounds = default.node_sound_wood_defaults(),
+})
+
+homedecor.register("beer_tap", {
+ description = "Beer tap",
+ mesh = "homedecor_beer_taps.obj",
+ tiles = {
+ "homedecor_generic_metal_bright.png",
+ { name = "homedecor_generic_metal.png", color = homedecor.color_black }
+ },
+ inventory_image = "homedecor_beertap_inv.png",
+ groups = { snappy=3 },
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 }
+ },
+ on_punch = function(pos, node, puncher, pointed_thing)
+ local wielditem = puncher:get_wielded_item()
+ local inv = puncher:get_inventory()
+
+ local wieldname = wielditem:get_name()
+ if wieldname == "vessels:drinking_glass" then
+ if inv:room_for_item("main", "homedecor:beer_mug 1") then
+ wielditem:take_item()
+ puncher:set_wielded_item(wielditem)
+ inv:add_item("main", "homedecor:beer_mug 1")
+ minetest.chat_send_player(puncher:get_player_name(), "Ahh, a frosty cold beer - look in your inventory for it!")
+ else
+ minetest.chat_send_player(puncher:get_player_name(), "No room in your inventory to add a beer mug!")
+ end
+ end
+ end
+})
+
+minetest.register_craft({
+ output = "homedecor:beer_tap",
+ recipe = {
+ { "group:stick","default:steel_ingot","group:stick" },
+ { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" },
+ { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }
+ },
+})
+
+local beer_cbox = {
+ type = "fixed",
+ fixed = { -5/32, -8/16, -9/32 , 7/32, -2/16, 1/32 }
+}
+
+homedecor.register("beer_mug", {
+ description = "Beer mug",
+ drawtype = "mesh",
+ mesh = "homedecor_beer_mug.obj",
+ tiles = { "homedecor_beer_mug.png" },
+ inventory_image = "homedecor_beer_mug_inv.png",
+ groups = { snappy=3, oddly_breakable_by_hand=3 },
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = beer_cbox,
+ on_use = minetest.item_eat(2)
+})
+
+local svm_cbox = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
+}
+
+homedecor.register("soda_machine", {
+ description = "Soda Vending Machine",
+ mesh = "homedecor_soda_machine.obj",
+ tiles = {"homedecor_soda_machine.png"},
+ groups = {snappy=3},
+ selection_box = svm_cbox,
+ collision_box = svm_cbox,
+ expand = { top="placeholder" },
+ sounds = default.node_sound_wood_defaults(),
+ on_rotate = screwdriver.rotate_simple,
+ on_punch = function(pos, node, puncher, pointed_thing)
+ local wielditem = puncher:get_wielded_item()
+ local wieldname = wielditem:get_name()
+ local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
+ local fdir = node.param2
+ local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] }
+ if wieldname == "homedecor:coin" then
+ wielditem:take_item()
+ puncher:set_wielded_item(wielditem)
+ minetest.spawn_item(pos_drop, "homedecor:soda_can")
+ minetest.sound_play("insert_coin", {
+ pos=pos, max_hear_distance = 5
+ })
+ else
+ minetest.chat_send_player(puncher:get_player_name(), "Please insert a coin in the machine.")
+ end
+ end
+})
diff --git a/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/models/homedecor_beer_mug.obj b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/models/homedecor_beer_mug.obj
new file mode 100644
index 0000000..4e1d6e7
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/models/homedecor_beer_mug.obj
@@ -0,0 +1,421 @@
+# Blender v2.73 (sub 0) OBJ File: 'beer_mug.blend'
+# www.blender.org
+o Torus.001
+v -0.200872 -0.271336 -0.101373
+v 0.027435 -0.500000 0.013804
+v 0.078127 -0.500000 -0.007193
+v -0.213731 -0.262707 -0.113186
+v 0.116925 -0.500000 -0.045991
+v 0.137922 -0.500000 -0.096683
+v -0.201779 -0.214262 -0.136814
+v 0.137922 -0.500000 -0.151551
+v 0.116925 -0.500000 -0.202243
+v -0.190840 -0.230675 -0.148627
+v 0.078127 -0.500000 -0.241041
+v 0.027435 -0.500000 -0.262038
+v -0.179901 -0.247087 -0.136814
+v -0.027433 -0.500000 -0.262038
+v -0.078125 -0.500000 -0.241041
+v -0.179901 -0.247087 -0.113186
+v -0.116923 -0.500000 -0.202243
+v -0.137920 -0.500000 -0.151551
+v -0.190840 -0.230675 -0.101373
+v -0.137920 -0.500000 -0.096682
+v -0.116923 -0.500000 -0.045991
+v -0.201779 -0.214262 -0.113186
+v -0.078125 -0.500000 -0.007193
+v -0.027433 -0.500000 0.013804
+v -0.183162 -0.175815 -0.136814
+v 0.024062 -0.166667 -0.003152
+v 0.068522 -0.166667 -0.021568
+v -0.175215 -0.198406 -0.148627
+v 0.102550 -0.166667 -0.055596
+v 0.120966 -0.166667 -0.100055
+v -0.167267 -0.220996 -0.136814
+v 0.120966 -0.166667 -0.148178
+v 0.102550 -0.166667 -0.192638
+v -0.167267 -0.220996 -0.113186
+v 0.068522 -0.166667 -0.226666
+v 0.024062 -0.166667 -0.245082
+v -0.175215 -0.198406 -0.101373
+v -0.024061 -0.166667 -0.245082
+v -0.068520 -0.166667 -0.226666
+v -0.183162 -0.175815 -0.113186
+v -0.102548 -0.166667 -0.192638
+v -0.120964 -0.166667 -0.148178
+v -0.159704 -0.151131 -0.136814
+v -0.120964 -0.166667 -0.100055
+v -0.102548 -0.166667 -0.055596
+v -0.155526 -0.177688 -0.148627
+v -0.068520 -0.166667 -0.021568
+v -0.024060 -0.166667 -0.003152
+v -0.151348 -0.204244 -0.136814
+v 0.027435 -0.125001 0.013804
+v 0.078127 -0.125001 -0.007193
+v -0.151348 -0.204244 -0.113186
+v 0.116925 -0.125001 -0.045991
+v 0.137922 -0.125001 -0.096683
+v -0.155526 -0.177688 -0.101373
+v 0.137922 -0.125001 -0.151551
+v 0.116925 -0.125001 -0.202243
+v -0.159704 -0.151131 -0.113186
+v 0.078127 -0.125001 -0.241041
+v 0.027435 -0.125001 -0.262038
+v -0.133701 -0.142626 -0.136814
+v -0.027433 -0.125001 -0.262038
+v -0.078125 -0.125001 -0.241041
+v -0.133701 -0.170549 -0.148627
+v -0.116923 -0.125001 -0.202243
+v -0.137921 -0.125001 -0.151551
+v -0.133701 -0.198472 -0.136814
+v -0.137921 -0.125001 -0.096682
+v -0.116923 -0.125001 -0.045991
+v -0.133701 -0.198472 -0.113186
+v -0.078125 -0.125001 -0.007193
+v -0.027433 -0.125001 0.013804
+v -0.133701 -0.170549 -0.101373
+v 0.024062 -0.125001 -0.003152
+v 0.068522 -0.125001 -0.021568
+v -0.133701 -0.142626 -0.113186
+v 0.102550 -0.125001 -0.055596
+v 0.120966 -0.125001 -0.100055
+v -0.133701 -0.490192 -0.136814
+v 0.120966 -0.125001 -0.148178
+v 0.102550 -0.125001 -0.192638
+v -0.133701 -0.462269 -0.148627
+v 0.068522 -0.125001 -0.226666
+v 0.024062 -0.125001 -0.245082
+v -0.133701 -0.434346 -0.136814
+v -0.024061 -0.125001 -0.245082
+v -0.068520 -0.125001 -0.226666
+v -0.133701 -0.434346 -0.113186
+v -0.102548 -0.125001 -0.192638
+v -0.120964 -0.125001 -0.148178
+v -0.133701 -0.462269 -0.101373
+v -0.120964 -0.125001 -0.100055
+v -0.102548 -0.125001 -0.055596
+v -0.133701 -0.490192 -0.113186
+v -0.068520 -0.125001 -0.021568
+v -0.024061 -0.125001 -0.003152
+v -0.188013 -0.279964 -0.113186
+v -0.188013 -0.279964 -0.136814
+v -0.200872 -0.271336 -0.148627
+v -0.213731 -0.262707 -0.136814
+v -0.217850 -0.316409 -0.113186
+v -0.204329 -0.316409 -0.101373
+v -0.190808 -0.316409 -0.113186
+v -0.190808 -0.316409 -0.136814
+v -0.204329 -0.316409 -0.148627
+v -0.217850 -0.316409 -0.136814
+v -0.213731 -0.370111 -0.113186
+v -0.200872 -0.361482 -0.101373
+v -0.188013 -0.352853 -0.113186
+v -0.188013 -0.352853 -0.136814
+v -0.200872 -0.361482 -0.148627
+v -0.213731 -0.370111 -0.136814
+v -0.201779 -0.418556 -0.113186
+v -0.190840 -0.402143 -0.101373
+v -0.179901 -0.385730 -0.113186
+v -0.179901 -0.385730 -0.136814
+v -0.190840 -0.402143 -0.148627
+v -0.201779 -0.418556 -0.136814
+v -0.183162 -0.457002 -0.113186
+v -0.175215 -0.434412 -0.101373
+v -0.167268 -0.411822 -0.113186
+v -0.167268 -0.411822 -0.136814
+v -0.175215 -0.434412 -0.148627
+v -0.183162 -0.457002 -0.136814
+v -0.159704 -0.481686 -0.113186
+v -0.155526 -0.455130 -0.101373
+v -0.151348 -0.428574 -0.113186
+v -0.151348 -0.428574 -0.136814
+v -0.155526 -0.455130 -0.148627
+v -0.159704 -0.481686 -0.136814
+vt 0.156250 0.218750
+vt 0.156250 0.187500
+vt 0.218750 0.187500
+vt 0.218750 0.218750
+vt 0.465889 0.405864
+vt 0.537350 0.405864
+vt 0.603372 0.433211
+vt 0.653903 0.483742
+vt 0.681251 0.549764
+vt 0.681251 0.621226
+vt 0.653904 0.687248
+vt 0.603372 0.737779
+vt 0.537350 0.765126
+vt 0.465889 0.765126
+vt 0.399867 0.737779
+vt 0.349335 0.687248
+vt 0.321988 0.621226
+vt 0.321988 0.549764
+vt 0.349335 0.483742
+vt 0.399867 0.433211
+vt 0.625000 0.906250
+vt 0.687500 0.906250
+vt 0.687500 0.937500
+vt 0.625000 0.937500
+vt 0.937500 0.906250
+vt 1.000000 0.906250
+vt 1.000000 0.937500
+vt 0.937500 0.937500
+vt 0.250000 0.906250
+vt 0.312500 0.906250
+vt 0.312500 0.937500
+vt 0.250000 0.937500
+vt 0.562500 0.906250
+vt 0.562500 0.937500
+vt 0.875000 0.906250
+vt 0.875000 0.937500
+vt 0.187500 0.906250
+vt 0.187500 0.937500
+vt 0.812500 0.906250
+vt 0.812500 0.937500
+vt 0.437500 0.906250
+vt 0.500000 0.906250
+vt 0.500000 0.937500
+vt 0.437500 0.937500
+vt 0.125000 0.906250
+vt 0.125000 0.937500
+vt 0.750000 0.906250
+vt 0.750000 0.937500
+vt 0.375000 0.906250
+vt 0.375000 0.937500
+vt 0.062500 0.906250
+vt 0.062500 0.937500
+vt -0.000000 0.906250
+vt -0.000000 0.937500
+vt 0.281250 0.312500
+vt 0.281250 0.281250
+vt 0.343750 0.281250
+vt 0.343750 0.312500
+vt 0.093750 0.218750
+vt 0.156250 0.250000
+vt 0.093750 0.250000
+vt 0.375000 1.000000
+vt 0.312500 1.000000
+vt 0.281250 0.250000
+vt 0.343750 0.250000
+vt 0.156250 0.312500
+vt 0.156250 0.281250
+vt 0.218750 0.281250
+vt 0.218750 0.312500
+vt 0.531250 0.187500
+vt 0.593750 0.187500
+vt 0.593750 0.218750
+vt 0.531250 0.218750
+vt 0.656250 0.187500
+vt 0.656250 0.218750
+vt 0.093750 0.187500
+vt 0.218750 0.250000
+vt 0.125000 0.406250
+vt 0.187500 0.406250
+vt 0.687500 1.000000
+vt 0.625000 1.000000
+vt 0.937500 0.406250
+vt 1.000000 0.406250
+vt 0.062500 1.000000
+vt 0.125000 1.000000
+vt 0.375000 0.406250
+vt 0.437500 0.406250
+vt 0.687500 0.406250
+vt 0.750000 0.406250
+vt 0.937500 1.000000
+vt 0.875000 1.000000
+vt 0.250000 0.406250
+vt 0.187500 1.000000
+vt 0.093750 0.343750
+vt 0.093750 0.312500
+vt 0.156250 0.343750
+vt 0.500000 0.406250
+vt 0.812500 0.406250
+vt 0.437500 1.000000
+vt 0.218750 0.156250
+vt 0.281250 0.156250
+vt 0.281250 0.187500
+vt 0.750000 1.000000
+vt 0.031250 0.250000
+vt 0.031250 0.218750
+vt 0.562500 0.406250
+vt -0.000000 0.406250
+vt 0.062500 0.406250
+vt 1.000000 1.000000
+vt 0.343750 0.187500
+vt 0.343750 0.156250
+vt 0.406250 0.156250
+vt 0.406250 0.187500
+vt 0.312500 0.406250
+vt 0.625000 0.406250
+vt 0.250000 1.000000
+vt 0.406250 0.343750
+vt 0.406250 0.312500
+vt 0.468750 0.312500
+vt 0.468750 0.343750
+vt 0.875000 0.406250
+vt 0.468750 0.156250
+vt 0.468750 0.187500
+vt 0.500000 1.000000
+vt 0.812500 1.000000
+vt 0.406250 0.281250
+vt 0.406250 0.250000
+vt 0.562500 1.000000
+vt -0.000000 1.000000
+vt 0.218750 0.343750
+vt 0.531250 0.312500
+vt 0.531250 0.281250
+vt 0.593750 0.281250
+vt 0.593750 0.312500
+vt 0.468750 0.281250
+vt 0.468750 0.250000
+vt 0.531250 0.250000
+vt 0.281250 0.343750
+vt 0.593750 0.250000
+vt 0.281250 0.218750
+vt 0.343750 0.218750
+vt 0.031250 0.156250
+vt 0.093750 0.156250
+vt 0.031250 0.187500
+vt 0.813063 0.373140
+vt 0.756333 0.349641
+vt 0.712914 0.306222
+vt 0.689415 0.249492
+vt 0.689415 0.188087
+vt 0.712914 0.131357
+vt 0.756333 0.087938
+vt 0.813063 0.064439
+vt 0.874467 0.064439
+vt 0.931197 0.087938
+vt 0.974617 0.131357
+vt 0.998115 0.188088
+vt 0.998115 0.249492
+vt 0.974617 0.306222
+vt 0.931197 0.349641
+vt 0.874467 0.373140
+vt 0.156250 0.156250
+vt 0.656250 0.250000
+vt 0.031250 0.312500
+vt 0.031250 0.281250
+vt 0.093750 0.281250
+vt 0.656250 0.281250
+vt 0.656250 0.312500
+vt 0.406250 0.218750
+vt 0.468750 0.218750
+vt 0.031250 0.343750
+vt 0.656250 0.343750
+vt 0.593750 0.343750
+vt 0.531250 0.343750
+vt 0.531250 0.156250
+vt 0.593750 0.156250
+vt 0.343750 0.343750
+vt 0.656250 0.156250
+s 1
+f 120/1 121/2 115/3 114/4
+f 2/5 24/6 23/7 21/8 20/9 18/10 17/11 15/12 14/13 12/14 11/15 9/16 8/17 6/18 5/19 3/20
+f 51/21 53/22 77/23 75/24
+f 59/25 60/26 84/27 83/28
+f 66/29 68/30 92/31 90/32
+f 50/33 51/21 75/24 74/34
+f 57/35 59/25 83/28 81/36
+f 65/37 66/29 90/32 89/38
+f 56/39 57/35 81/36 80/40
+f 71/41 72/42 96/43 95/44
+f 63/45 65/37 89/38 87/46
+f 54/47 56/39 80/40 78/48
+f 69/49 71/41 95/44 93/50
+f 62/51 63/45 87/46 86/52
+f 53/22 54/47 78/48 77/23
+f 60/53 62/51 86/52 84/54
+f 111/55 112/56 106/57 105/58
+f 72/42 50/33 74/34 96/43
+f 126/59 120/1 119/60 125/61
+f 45/62 44/63 92/31 93/50
+f 106/57 112/56 107/64 101/65
+f 123/66 124/67 118/68 117/69
+f 34/70 52/71 55/72 37/73
+f 55/72 52/71 70/74 73/75
+f 126/59 127/76 121/2 120/1
+f 112/56 118/68 113/77 107/64
+f 15/78 17/79 65/37 63/45
+f 29/80 27/81 75/24 77/23
+f 11/82 12/83 60/26 59/25
+f 38/84 86/52 87/46 39/85
+f 21/86 23/87 71/41 69/49
+f 5/88 6/89 54/47 53/22
+f 35/90 33/91 81/36 83/28
+f 17/79 18/92 66/29 65/37
+f 41/93 39/85 87/46 89/38
+f 128/94 129/95 123/66 122/96
+f 23/87 24/97 72/42 71/41
+f 6/89 8/98 56/39 54/47
+f 47/99 45/62 93/50 95/44
+f 115/3 116/100 110/101 109/102
+f 30/103 29/80 77/23 78/48
+f 94/104 91/105 126/59 125/61
+f 24/97 2/106 50/33 72/42
+f 12/107 14/108 62/51 60/53
+f 36/109 35/90 83/28 84/27
+f 103/110 104/111 98/112 97/113
+f 18/92 20/114 68/30 66/29
+f 2/106 3/115 51/21 50/33
+f 42/116 41/93 89/38 90/32
+f 98/117 99/118 10/119 13/120
+f 8/98 9/121 57/35 56/39
+f 97/113 98/112 13/122 16/123
+f 48/124 47/99 95/44 96/43
+f 32/125 30/103 78/48 80/40
+f 100/126 106/57 101/65 4/127
+f 14/108 15/78 63/45 62/51
+f 118/68 112/56 111/55 117/69
+f 26/128 48/124 96/43 74/34
+f 38/84 36/129 84/54 86/52
+f 20/114 21/86 69/49 68/30
+f 122/96 123/66 117/69 116/130
+f 3/115 5/88 53/22 51/21
+f 44/63 42/116 90/32 92/31
+f 27/81 26/128 74/34 75/24
+f 28/131 25/132 43/133 46/134
+f 9/121 11/82 59/25 57/35
+f 33/91 32/125 80/40 81/36
+f 25/132 7/135 22/136 40/137
+f 116/130 117/69 111/55 110/138
+f 40/137 37/73 55/72 58/139
+f 107/64 108/140 102/141 101/65
+f 105/58 106/57 100/126 99/118
+f 43/133 25/132 40/137 58/139
+f 85/142 128/143 127/76 88/144
+f 26/145 27/146 29/147 30/148 32/149 33/150 35/151 36/152 38/153 39/154 41/155 42/156 44/157 45/158 47/159 48/160
+f 68/30 69/49 93/50 92/31
+f 127/76 128/143 122/161 121/2
+f 55/72 73/75 76/162 58/139
+f 99/118 100/126 7/135 10/119
+f 82/163 79/164 130/165 129/95
+f 119/60 120/1 114/4 113/77
+f 118/68 124/67 119/60 113/77
+f 43/133 61/166 64/167 46/134
+f 10/119 7/135 25/132 28/131
+f 130/165 124/67 123/66 129/95
+f 4/127 1/168 19/169 22/136
+f 124/67 130/165 125/61 119/60
+f 61/166 43/133 58/139 76/162
+f 110/101 104/111 103/110 109/102
+f 108/140 109/102 103/110 102/141
+f 88/144 127/76 126/59 91/105
+f 97/113 16/123 19/169 1/168
+f 82/163 129/95 128/94 85/170
+f 19/169 16/123 34/70 37/73
+f 19/169 37/73 40/137 22/136
+f 46/134 64/167 67/171 49/172
+f 114/4 108/140 107/64 113/77
+f 115/3 109/102 108/140 114/4
+f 101/65 102/141 1/168 4/127
+f 10/119 28/131 31/173 13/120
+f 16/123 13/122 31/174 34/70
+f 102/141 103/110 97/113 1/168
+f 31/174 49/175 52/71 34/70
+f 111/55 105/58 104/176 110/138
+f 7/135 100/126 4/127 22/136
+f 122/161 116/100 115/3 121/2
+f 105/58 99/118 98/117 104/176
+f 31/173 28/131 46/134 49/172
+f 130/165 79/164 94/104 125/61
+f 52/71 49/175 67/177 70/74
diff --git a/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug.png b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug.png
new file mode 100644
index 0000000..2a80924
Binary files /dev/null and b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug.png differ
diff --git a/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug_inv.png b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug_inv.png
new file mode 100644
index 0000000..1887d5d
Binary files /dev/null and b/patches/subgame-basis/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug_inv.png differ
diff --git a/patches/subgame-basis/mods/homedecor_modpack/homedecor/LICENSE b/patches/subgame-basis/mods/homedecor_modpack/homedecor/LICENSE
new file mode 100644
index 0000000..0a3df5e
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack/homedecor/LICENSE
@@ -0,0 +1,199 @@
+For the Lua code: LGPL 3.0 or higher
+For all models, all textures, and all sounds: CC-by-SA 3.0 or higher
+For everything else: WTFPL
+
+Exceptions to the above:
+
+Fancy mesh fire model and texture by NathanS (CC-0).
+
+===============================================================================
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+===============================================================================
+
+This work is licensed under the Creative Commons Attribution-ShareAlike
+4.0 International License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
+Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+===============================================================================
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/patches/subgame-basis/mods/homedecor_modpack/homedecor/crafts.lua b/patches/subgame-basis/mods/homedecor_modpack/homedecor/crafts.lua
new file mode 100644
index 0000000..a0b9bfb
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack/homedecor/crafts.lua
@@ -0,0 +1,3130 @@
+-- Crafting for homedecor mod (includes folding) by Vanessa Ezekowitz
+--
+-- Mostly my own code; overall template borrowed from game default
+
+local S = homedecor_i18n.gettext
+
+-- misc craftitems
+
+minetest.register_craftitem("homedecor:terracotta_base", {
+ description = S("Uncooked Terracotta Base"),
+ inventory_image = "homedecor_terracotta_base.png",
+})
+
+minetest.register_craftitem("homedecor:roof_tile_terracotta", {
+ description = S("Terracotta Roof Tile"),
+ inventory_image = "homedecor_roof_tile_terracotta.png",
+})
+
+minetest.register_craftitem("homedecor:oil_extract", {
+ description = S("Oil extract"),
+ inventory_image = "homedecor_oil_extract.png",
+})
+
+minetest.register_craftitem("homedecor:paraffin", {
+ description = S("Unprocessed paraffin"),
+ inventory_image = "homedecor_paraffin.png",
+})
+
+minetest.register_alias("homedecor:plastic_base", "homedecor:paraffin")
+
+minetest.register_craftitem("homedecor:plastic_sheeting", {
+ description = S("Plastic sheet"),
+ inventory_image = "homedecor_plastic_sheeting.png",
+})
+
+minetest.register_craftitem("homedecor:plastic_strips", {
+ description = S("Plastic strips"),
+ inventory_image = "homedecor_plastic_strips.png",
+})
+
+minetest.register_craftitem("homedecor:drawer_small", {
+ description = S("Small Wooden Drawer"),
+ inventory_image = "homedecor_drawer_small.png",
+})
+
+minetest.register_craftitem("homedecor:ic", {
+ description = S("Simple Integrated Circuit"),
+ inventory_image = "homedecor_ic.png",
+})
+
+minetest.register_craftitem("homedecor:heating_element", {
+ description = S("Heating element"),
+ inventory_image = "homedecor_heating_element.png",
+})
+
+minetest.register_craftitem("homedecor:motor", {
+ description = S("Motor"),
+ inventory_image = "homedecor_motor.png",
+})
+
+minetest.register_craftitem("homedecor:power_crystal", {
+ description = S("Power Crystal"),
+ inventory_image = "homedecor_power_crystal.png",
+})
+
+minetest.register_craftitem("homedecor:blank_canvas", {
+ description = S("Blank Canvas"),
+ inventory_image = "homedecor_blank_canvas.png"
+})
+
+minetest.register_craftitem("homedecor:vcr", {
+ description = S("VCR"),
+ inventory_image = "homedecor_vcr.png"
+})
+
+minetest.register_craftitem("homedecor:dvd_player", {
+ description = S("DVD Player"),
+ inventory_image = "homedecor_dvd_player.png"
+})
+
+minetest.register_craftitem("homedecor:copper_wire", {
+ description = S("Spool of copper wire"),
+ inventory_image = "homedecor_copper_wire.png"
+})
+
+minetest.register_craftitem("homedecor:steel_wire", {
+ description = S("Spool of steel wire"),
+ inventory_image = "homedecor_steel_wire.png"
+})
+
+minetest.register_craftitem("homedecor:speaker_driver", {
+ description = S("Speaker driver"),
+ inventory_image = "homedecor_speaker_driver_inv.png"
+})
+
+minetest.register_craftitem("homedecor:fan_blades", {
+ description = S("Fan blades"),
+ inventory_image = "homedecor_fan_blades.png"
+})
+
+minetest.register_craftitem("homedecor:copper_strip", {
+ description = S("Copper Strip"),
+ inventory_image = "homedecor_copper_strip.png"
+})
+
+minetest.register_craftitem("homedecor:steel_strip", {
+ description = S("Steel Strip"),
+ inventory_image = "homedecor_steel_strip.png"
+})
+
+minetest.register_craftitem(":glooptest:chainlink", {
+ description = S("Steel chainlink"),
+ inventory_image = "homedecor_chainlink_steel.png"
+})
+
+minetest.register_craftitem("homedecor:chainlink_brass", {
+ description = S("Brass chainlink"),
+ inventory_image = "homedecor_chainlink_brass.png"
+})
+
+minetest.register_craftitem("homedecor:soda_can", {
+ description = S("Soda Can"),
+ inventory_image = "homedecor_soda_can.png",
+ on_use = minetest.item_eat(2),
+})
+
+minetest.register_craftitem("homedecor:coin", {
+ description = S("Gold Coin (for soda vending machine)"),
+ inventory_image = "homedecor_coin.png",
+})
+
+-- alternate crafting if mesecons is/isn't installed
+
+if not minetest.get_modpath("mesecons") then
+
+ minetest.register_craftitem(":mesecons_materials:silicon", {
+ description = S("Silicon lump"),
+ inventory_image = "homedecor_silicon.png",
+ })
+
+ minetest.register_craft( {
+ output = "mesecons_materials:silicon 4",
+ recipe = {
+ { "default:sand", "default:sand" },
+ { "default:sand", "default:steel_ingot" },
+ },
+ })
+
+end
+
+-- alternate crafting if technic is/isn't installed
+if not minetest.get_modpath("technic") then
+ minetest.register_craftitem(":technic:brass_ingot", {
+ description = S("Brass Ingot"),
+ inventory_image = "homedecor_brass_ingot.png",
+ })
+
+ if minetest.get_modpath("moreores") then
+ minetest.register_craft( {
+ type = "shapeless",
+ output = "technic:brass_ingot 2",
+ recipe = {
+ "moreores:silver_ingot",
+ "default:copper_ingot",
+ },
+ })
+ else
+ minetest.register_craft( {
+ type = "shapeless",
+ output = "technic:brass_ingot 3",
+ recipe = {
+ "default:steel_ingot",
+ "default:copper_ingot",
+ "default:gold_ingot",
+ },
+ })
+ end
+end
+
+minetest.register_alias("homedecor:brass_ingot", "technic:brass_ingot")
+
+-- the actual crafts
+
+minetest.register_craft( {
+ output = "homedecor:copper_strip 12",
+ recipe = {
+ { "", "default:copper_ingot", "" },
+ { "default:copper_ingot", "", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:steel_strip 12",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:fan_blades 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "", "default:steel_ingot", "" },
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:steel_wire 4",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:steel_ingot", "homedecor:plastic_sheeting", "default:steel_ingot" },
+ { "", "homedecor:plastic_sheeting", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:copper_wire 4",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:copper_ingot", "homedecor:plastic_sheeting", "default:copper_ingot" },
+ { "", "homedecor:plastic_sheeting", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:plastic_strips 3",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:heating_element 2",
+ recipe = {
+ { "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:motor 2",
+ recipe = {
+ { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" },
+ { "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft({
+ --type = "shapeless",
+ output = "homedecor:power_crystal 2",
+ recipe = {
+ { "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" },
+ { "default:diamond", "default:gold_ingot", "default:diamond" }
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:power_crystal",
+ burntime = 50,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:terracotta_base 8",
+ recipe = {
+ "default:dirt",
+ "default:clay_lump",
+ "bucket:bucket_water"
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, },
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:roof_tile_terracotta",
+ recipe = "homedecor:terracotta_base",
+})
+
+minetest.register_craft( {
+ output = "homedecor:shingles_terracotta",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"},
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:roof_tile_terracotta 8",
+ recipe = {
+ { "homedecor:shingles_terracotta", "homedecor:shingles_terracotta" }
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_terracotta",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" },
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta" },
+ },
+})
+
+--
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:oil_extract 4",
+ recipe = {
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves"
+ }
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:paraffin",
+ recipe = "homedecor:oil_extract",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:plastic_sheeting",
+ recipe = "homedecor:paraffin",
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:oil_extract",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:paraffin",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:plastic_sheeting",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_green",
+ recipe = {
+ { "", "dye:dark_green", "" },
+ { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_black",
+ recipe = {
+ { "dye:black", "dye:black", "dye:black" },
+ { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:projection_screen 3",
+ recipe = {
+ { "", "default:glass", "" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:projection_screen",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:ceiling_paint 20",
+ recipe = {
+ "dye:white",
+ "dye:white",
+ "default:sand",
+ "bucket:bucket_water",
+ },
+ replacements = { { "bucket:bucket_water","bucket:bucket_empty" } }
+})
+
+minetest.register_craft( {
+ output = "homedecor:ceiling_tile 10",
+ recipe = {
+ { "", "dye:white", "" },
+ { "default:steel_ingot", "default:stone", "default:steel_ingot" },
+
+ },
+})
+
+
+-- =======================================================
+-- Items/recipes not requiring smelting of anything new
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_small_round_b 15",
+ recipe = {
+ { "", "default:glass", "" },
+ { "default:glass", "default:glass", "default:glass" },
+ { "", "default:glass", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_small_square_b 2",
+ recipe = {
+ {"homedecor:glass_table_small_round", "homedecor:glass_table_small_round" },
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_large_b 2",
+ recipe = {
+ { "homedecor:glass_table_small_square", "homedecor:glass_table_small_square" },
+ }
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_small_round_b 15",
+ recipe = {
+ { "", "group:wood", "" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "", "group:wood", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_small_square_b 2",
+ recipe = {
+ { "homedecor:wood_table_small_round","homedecor:wood_table_small_round" },
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_large_b 2",
+ recipe = {
+ { "homedecor:wood_table_small_square", "homedecor:wood_table_small_square" },
+ }
+})
+
+--
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_small_round_b",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_small_square_b",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_large_b",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:shingles_asphalt 6",
+ recipe = {
+ { "building_blocks:gravel_spread", "dye:black", "building_blocks:gravel_spread" },
+ { "group:sand", "dye:black", "group:sand" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:shingles_wood 12",
+ recipe = {
+ { "group:stick", "group:wood"},
+ { "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:shingles_wood 12",
+ recipe = {
+ { "group:wood", "group:stick"},
+ { "group:stick", "group:wood"},
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shingles_wood",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:skylight 4",
+ recipe = {
+ { "homedecor:glass_table_large", "homedecor:glass_table_large" },
+ { "homedecor:glass_table_large", "homedecor:glass_table_large" },
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:skylight_frosted",
+ recipe = {
+ "dye:white",
+ "homedecor:skylight"
+ },
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:skylight",
+ recipe = "homedecor:skylight_frosted",
+})
+
+minetest.register_craft( {
+ output = "homedecor:shutter 2",
+ recipe = {
+ { "group:stick", "group:stick" },
+ { "group:stick", "group:stick" },
+ { "group:stick", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_oak",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:drawer_small",
+ recipe = {
+ { "group:wood", "default:steel_ingot", "group:wood" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:drawer_small",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_one_drawer",
+ recipe = {
+ { "homedecor:drawer_small" },
+ { "group:wood" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_oak_one_drawer",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_two_drawers",
+ recipe = {
+ { "homedecor:drawer_small" },
+ { "homedecor:drawer_small" },
+ { "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_two_drawers",
+ recipe = {
+ { "homedecor:nightstand_oak_one_drawer" },
+ { "homedecor:drawer_small" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_oak_two_drawers",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:nightstand_mahogany_one_drawer",
+ recipe = {
+ "homedecor:nightstand_oak_one_drawer",
+ "dye:brown",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_mahogany_one_drawer",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:nightstand_mahogany_two_drawers",
+ recipe = {
+ "homedecor:nightstand_oak_two_drawers",
+ "dye:brown",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_mahogany_two_drawers",
+ burntime = 30,
+})
+
+-- Table legs
+
+minetest.register_craft( {
+ output = "homedecor:table_legs_wrought_iron 3",
+ recipe = {
+ { "", "default:iron_lump", "" },
+ { "", "default:iron_lump", "" },
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:table_legs_brass 3",
+ recipe = {
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" },
+ { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:utility_table_legs",
+ recipe = {
+ { "group:stick", "group:stick", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:utility_table_legs",
+ burntime = 30,
+})
+
+-- vertical poles/lampposts
+
+minetest.register_craft( {
+ output = "homedecor:pole_brass 4",
+ recipe = {
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:pole_wrought_iron 4",
+ recipe = {
+ { "default:iron_lump", },
+ { "default:iron_lump", },
+ { "default:iron_lump", },
+ },
+})
+
+-- Home electronics
+
+minetest.register_craft( {
+ output = "homedecor:ic 4",
+ recipe = {
+ { "mesecons_materials:silicon", "mesecons_materials:silicon" },
+ { "mesecons_materials:silicon", "default:copper_ingot" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:television",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "moreblocks:glow_glass", "homedecor:plastic_sheeting" },
+ { "homedecor:ic", "homedecor:ic", "homedecor:ic" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:television",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" },
+ { "homedecor:ic", "homedecor:power_crystal", "homedecor:ic" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:stereo",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "default:steel_ingot", "homedecor:ic", "default:steel_ingot" },
+ },
+})
+
+-- ===========================================================
+-- Recipes that require materials from wool (cotton alternate)
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_small 8",
+ recipe = {
+ "wool:red",
+ "wool:yellow",
+ "wool:blue",
+ "wool:black"
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:rug_persian 8",
+ recipe = {
+ { "", "wool:yellow", "" },
+ { "wool:red", "wool:blue", "wool:red" },
+ { "", "wool:yellow", "" }
+ },
+})
+
+-- cotton versions:
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_small 8",
+ recipe = {
+ "cotton:red",
+ "cotton:yellow",
+ "cotton:blue",
+ "cotton:black"
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:rug_persian 8",
+ recipe = {
+ { "", "cotton:yellow", "" },
+ { "cotton:red", "cotton:blue", "cotton:red" },
+ { "", "cotton:yellow", "" }
+ },
+})
+
+-- fuel recipes for same
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_small",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_large 2",
+ recipe = {
+ "homedecor:rug_small",
+ "homedecor:rug_small",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_large",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_persian",
+ burntime = 30,
+})
+
+-- Speakers
+
+minetest.register_craft( {
+ output = "homedecor:speaker_driver 2",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:paper", "homedecor:copper_wire", "default:iron_lump" },
+ { "", "default: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" },
+ },
+})
+
+-- Curtains
+
+minetest.register_craft( {
+ output = "homedecor:curtain_closed 4",
+ recipe = {
+ { "wool:white", "", ""},
+ { "wool:white", "", ""},
+ { "wool:white", "", ""},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:curtain_closed 4",
+ recipe = {
+ { "cottages:wool", "", ""},
+ { "cottages:wool", "", ""},
+ { "cottages:wool", "", ""},
+ },
+})
+
+local mats = {
+ { "brass", "homedecor:pole_brass" },
+ { "wrought_iron", "homedecor:pole_wrought_iron" },
+ { "wood", "group:stick" }
+}
+
+for i in ipairs(mats) do
+ local material = mats[i][1]
+ local ingredient = mats[i][2]
+ minetest.register_craft( {
+ output = "homedecor:curtainrod_"..material.." 3",
+ recipe = {
+ { ingredient, ingredient, ingredient },
+ },
+ })
+end
+
+-- Recycling recipes
+
+-- Some glass objects recycle via the glass fragments item/recipe in the Vessels mod.
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_small_round",
+ "homedecor:glass_table_small_round",
+ "homedecor:glass_table_small_round"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_small_square",
+ "homedecor:glass_table_small_square",
+ "homedecor:glass_table_small_square"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_large",
+ "homedecor:glass_table_large",
+ "homedecor:glass_table_large"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments 2",
+ recipe = {
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight"
+ }
+})
+
+-- Wooden tabletops can turn into sticks
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_small_round",
+ "homedecor:wood_table_small_round",
+ "homedecor:wood_table_small_round"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_small_square",
+ "homedecor:wood_table_small_square",
+ "homedecor:wood_table_small_square"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_large",
+ "homedecor:wood_table_large",
+ "homedecor:wood_table_large"
+ }
+})
+
+-- Kitchen stuff
+
+minetest.register_craft({
+ output = "homedecor:oven_steel",
+ recipe = {
+ {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", },
+ {"default:steel_ingot", "moreblocks:iron_glass", "default:steel_ingot", },
+ {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oven_steel",
+ recipe = {
+ {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", },
+ {"default:steel_ingot", "default:glass", "default:steel_ingot", },
+ {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", },
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:oven",
+ recipe = {
+ "homedecor:oven_steel",
+ "dye:white",
+ "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", "homedecor:ic", },
+ {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:microwave_oven 2",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
+ {"default:steel_ingot", "default:glass", "homedecor:ic", },
+ {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", },
+ }
+})
+
+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", },
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:refrigerator_white",
+ recipe = {
+ "homedecor:refrigerator_steel",
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet",
+ recipe = {
+ {"group:wood", "group:stick", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_steel",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+ {"", "homedecor:kitchen_cabinet", ""},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_steel",
+ recipe = {
+ {"moreblocks:slab_steelblock_1"},
+ { "homedecor:kitchen_cabinet" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_marble",
+ recipe = {
+ {"building_blocks:slab_marble"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_marble",
+ recipe = {
+ {"technic:slab_marble_1"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_granite",
+ recipe = {
+ {"technic:slab_granite_1"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:kitchen_cabinet_half 2",
+ recipe = { "homedecor:kitchen_cabinet" }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_with_sink",
+ recipe = {
+ {"group:wood", "default:steel_ingot", "group:wood", },
+ {"group:wood", "default:steel_ingot", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ }
+})
+
+------- Lighting
+
+-- candles
+
+minetest.register_craft({
+ output = "homedecor:candle_thin 4",
+ recipe = {
+ {"farming:string" },
+ {"homedecor:paraffin" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candle 2",
+ recipe = {
+ {"farming:string" },
+ {"homedecor:paraffin" },
+ {"homedecor:paraffin" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_sconce 2",
+ recipe = {
+ {"default:iron_lump", "", ""},
+ {"default:iron_lump", "homedecor:candle", ""},
+ {"default:iron_lump", "", ""},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candlestick_wrought_iron",
+ recipe = {
+ {""},
+ {"homedecor:candle_thin"},
+ {"default:iron_lump"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candlestick_brass",
+ recipe = {
+ {""},
+ {"homedecor:candle_thin"},
+ {"technic:brass_ingot"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oil_lamp",
+ recipe = {
+ { "", "vessels:glass_bottle", "" },
+ { "", "farming:string", "" },
+ { "default:steel_ingot", "homedecor:oil_extract", "default:steel_ingot" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oil_lamp_tabletop",
+ recipe = {
+ { "", "vessels:glass_bottle", "" },
+ { "", "farming:string", "" },
+ { "default:iron_lump", "homedecor:oil_extract", "default:iron_lump" }
+ }
+})
+
+-- Wrought-iron wall latern
+
+minetest.register_craft({
+ output = "homedecor:ground_lantern",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "default:iron_lump", "default:torch", "default:iron_lump" },
+ { "", "default:iron_lump", "" }
+ }
+})
+
+-- wood-lattice lamps
+
+minetest.register_craft( {
+ output = "homedecor:lattice_lantern_large 2",
+ recipe = {
+ { "dye:black", "dye:yellow", "dye:black" },
+ { "group:stick", "building_blocks:woodglass", "group:stick" },
+ { "group:stick", "homedecor:power_crystal", "group:stick" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:lattice_lantern_small 8",
+ recipe = {
+ { "homedecor:lattice_lantern_large" },
+ },
+})
+
+-- glowlights
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half 6",
+ recipe = {
+ { "dye:white", "dye:white", "dye:white" },
+ { "default:glass", "homedecor:power_crystal", "default:glass", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half 6",
+ recipe = {
+ { "dye:white", "dye:white", "dye:white" },
+ {"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_quarter 6",
+ recipe = {
+ {"homedecor:glowlight_half", "homedecor:glowlight_half", "homedecor:glowlight_half", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 8",
+ recipe = {
+ { "dye:white" },
+ { "default:glass" },
+ { "homedecor:power_crystal" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 8",
+ recipe = {
+ {"dye:white" },
+ {"moreblocks:super_glow_glass" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 4",
+ recipe = {
+ {"homedecor:glowlight_half" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half",
+ recipe = {
+ {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"},
+ {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"}
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half",
+ type = "shapeless",
+ recipe = {
+ "homedecor:glowlight_quarter",
+ "homedecor:glowlight_quarter"
+ }
+})
+
+----
+
+minetest.register_craft({
+ output = "homedecor:plasma_lamp",
+ recipe = {
+ {"", "default:glass", ""},
+ {"default:glass", "homedecor:power_crystal", "default:glass"},
+ {"", "default:glass", ""}
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:plasma_ball 2",
+ recipe = {
+ {"", "default:glass", ""},
+ {"default:glass", "default:copper_ingot", "default:glass"},
+ {"homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting"}
+ }
+})
+
+-- Brass/wrought iron fences
+
+
+minetest.register_craft( {
+ output = "homedecor:fence_brass 6",
+ recipe = {
+ { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" },
+ { "technic:brass_ingot", "technic:brass_ingot", "technic: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", "homedecor:steel_wire", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ { "group:stick", "homedecor: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" },
+ { "homedecor:steel_wire", "homedecor:steel_wire", "default:steel_ingot" },
+ { "homedecor:steel_wire", "homedecor: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" },
+})
+
+
+-- Gates
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_picket_white_closed",
+ recipe = {
+ "homedecor:fence_picket_white"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_picket_white",
+ recipe = {
+ "homedecor:gate_picket_white_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_picket_closed",
+ recipe = {
+ "homedecor:fence_picket"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_picket",
+ recipe = {
+ "homedecor:gate_picket_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_barbed_wire_closed",
+ recipe = {
+ "homedecor:fence_barbed_wire"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_barbed_wire",
+ recipe = {
+ "homedecor:gate_barbed_wire_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_chainlink_closed",
+ recipe = {
+ "homedecor:fence_chainlink"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_chainlink",
+ recipe = {
+ "homedecor:gate_chainlink_closed"
+ },
+})
+
+------ Doors
+
+-- plain wood, non-windowed
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_plain_left 2",
+ recipe = {
+ { "group:wood", "group:wood", "" },
+ { "group:wood", "group:wood", "default:steel_ingot" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- fancy exterior
+
+minetest.register_craft( {
+ output = "homedecor:door_exterior_fancy_left 2",
+ recipe = {
+ { "group:wood", "default:glass" },
+ { "group:wood", "group:wood" },
+ { "group:wood", "group:wood" },
+ },
+})
+
+-- wood and glass (grid style)
+
+-- bare
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_glass_oak_left 2",
+ recipe = {
+ { "default:glass", "group:wood" },
+ { "group:wood", "default:glass" },
+ { "default:glass", "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_glass_oak_left 2",
+ recipe = {
+ { "group:wood", "default:glass" },
+ { "default:glass", "group:wood" },
+ { "group:wood", "default:glass" },
+ },
+})
+
+-- mahogany
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_mahogany_left 2",
+ recipe = {
+ "default:dirt",
+ "default:coal_lump",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_mahogany_left 2",
+ recipe = {
+ "dye:brown",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+-- white
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_white_left 2",
+ recipe = {
+ "dye:white",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+-- Solid glass with metal handle
+
+minetest.register_craft( {
+ output = "homedecor:door_glass_left 2",
+ recipe = {
+ { "default:glass", "default:glass" },
+ { "default:glass", "default:steel_ingot" },
+ { "default:glass", "default:glass" },
+ },
+})
+
+-- Closet doors
+
+-- oak
+
+minetest.register_craft( {
+ output = "homedecor:door_closet_oak_left 2",
+ recipe = {
+ { "", "group:stick", "group:stick" },
+ { "default:steel_ingot", "group:stick", "group:stick" },
+ { "", "group:stick", "group:stick" },
+ },
+})
+
+-- mahogany
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_closet_mahogany_left 2",
+ recipe = {
+ "homedecor:door_closet_oak_left",
+ "homedecor:door_closet_oak_left",
+ "default:dirt",
+ "default:coal_lump",
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_closet_mahogany_left 2",
+ recipe = {
+ "homedecor:door_closet_oak_left",
+ "homedecor:door_closet_oak_left",
+ "dye:brown"
+ },
+})
+
+-- wrought fence-like door
+
+minetest.register_craft( {
+ output = "homedecor:door_wrought_iron_left 2",
+ recipe = {
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" }
+ },
+})
+
+-- bedroom door
+
+minetest.register_craft( {
+ output = "homedecor:door_bedroom_left",
+ recipe = {
+ { "dye:white", "dye:white", "" },
+ { "homedecor:door_wood_plain_left", "technic:brass_ingot", "" },
+ { "", "", "" },
+ },
+})
+
+-- woodglass door
+
+minetest.register_craft( {
+ output = "homedecor:door_woodglass_left",
+ recipe = {
+ { "group:wood", "default:glass", "" },
+ { "group:wood", "default:glass", "technic:brass_ingot" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- woodglass door type 2
+
+minetest.register_craft( {
+ output = "homedecor:door_woodglass2_left",
+ recipe = {
+ { "default:glass", "default:glass", "" },
+ { "group:wood", "group:wood", "default:iron_lump" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- laundry stuff
+
+minetest.register_craft( {
+ output = "homedecor:washing_machine",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:washing_machine",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dryer",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_empty", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dryer",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_empty", "technic:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:ironing_board",
+ recipe = {
+ { "wool:grey", "wool:grey", "wool:grey"},
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "default:steel_ingot" }
+ },
+})
+
+-- dishwashers
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher",
+ recipe = {
+ { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
+ { "default:steel_ingot", "homedecor:shower_head", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher",
+ recipe = {
+ { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
+ { "default:steel_ingot", "homedecor:shower_head", "technic:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "stairs:slab_wood" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "moreblocks:slab_wood" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "moreblocks:slab_wood_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_steel",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "", "homedecor:dishwasher", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_steel",
+ recipe = {
+ { "moreblocks:slab_steelblock_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_marble",
+ recipe = {
+ { "building_blocks:slab_marble" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_marble",
+ recipe = {
+ { "technic:slab_marble_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_granite",
+ recipe = {
+ { "technic:slab_granite_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+-- paintings
+
+minetest.register_craft({
+ output = "homedecor:blank_canvas",
+ recipe = {
+ { "", "group:stick", "" },
+ { "group:stick", "wool:white", "group:stick" },
+ { "", "group:stick", "" },
+ }
+})
+
+local painting_patterns = {
+ [1] = { { "brown", "red", "brown" },
+ { "dark_green", "red", "green" } },
+
+ [2] = { { "green", "yellow", "green" },
+ { "green", "yellow", "green" } },
+
+ [3] = { { "green", "pink", "green" },
+ { "brown", "pink", "brown" } },
+
+ [4] = { { "black", "orange", "grey" },
+ { "dark_green", "orange", "orange" } },
+
+ [5] = { { "blue", "orange", "yellow" },
+ { "green", "red", "brown" } },
+
+ [6] = { { "green", "red", "orange" },
+ { "orange", "yellow", "green" } },
+
+ [7] = { { "blue", "dark_green", "dark_green" },
+ { "green", "grey", "green" } },
+
+ [8] = { { "blue", "blue", "blue" },
+ { "green", "green", "green" } },
+
+ [9] = { { "blue", "blue", "dark_green" },
+ { "green", "grey", "dark_green" } },
+
+ [10] = { { "green", "white", "green" },
+ { "dark_green", "white", "dark_green" } },
+
+ [11] = { { "blue", "white", "blue" },
+ { "blue", "grey", "dark_green" } },
+
+ [12] = { { "green", "green", "green" },
+ { "grey", "grey", "green" } },
+
+ [13] = { { "blue", "blue", "grey" },
+ { "dark_green", "white", "white" } },
+
+ [14] = { { "red", "yellow", "blue" },
+ { "blue", "green", "violet" } },
+
+ [15] = { { "blue", "yellow", "blue" },
+ { "black", "black", "black" } },
+
+ [16] = { { "red", "orange", "blue" },
+ { "black", "dark_grey", "grey" } },
+
+ [17] = { { "orange", "yellow", "orange" },
+ { "black", "black", "black" } },
+
+ [18] = { { "grey", "dark_green", "grey" },
+ { "white", "white", "white" } },
+
+ [19] = { { "white", "brown", "green" },
+ { "green", "brown", "brown" } },
+
+ [20] = { { "blue", "blue", "blue" },
+ { "red", "brown", "grey" } }
+}
+
+for i,recipe in pairs(painting_patterns) do
+
+ local item1 = "dye:"..recipe[1][1]
+ local item2 = "dye:"..recipe[1][2]
+ local item3 = "dye:"..recipe[1][3]
+ local item4 = "dye:"..recipe[2][1]
+ local item5 = "dye:"..recipe[2][2]
+ local item6 = "dye:"..recipe[2][3]
+
+ minetest.register_craft({
+ output = "homedecor:painting_"..i,
+ recipe = {
+ { item1, item2, item3 },
+ { item4, item5, item6 },
+ {"", "homedecor:blank_canvas", "" }
+ }
+ })
+end
+
+-- more misc stuff here
+
+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:fishtank",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:glowlight_small_cube", "homedecor:plastic_sheeting" },
+ { "default:glass", "bucket:bucket_water", "default:glass" },
+ { "default:glass", "building_blocks:gravel_spread", "default:glass" },
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} }
+})
+
+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" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:cardboard_box 2",
+ recipe = {
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "default:paper", "default:paper" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:cardboard_box_big 2",
+ recipe = {
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "default:paper", "default:paper" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:filing_cabinet",
+ recipe = {
+ { "", "default:wood", "" },
+ { "default:wood", "homedecor:drawer_small", "default:wood" },
+ { "", "default:wood", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:analog_clock_plastic 2",
+ recipe = {
+ { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:analog_clock_wood 2",
+ recipe = {
+ { "group:stick", "dye:black", "group:stick" },
+ { "group:stick", "homedecor:ic", "group:stick" },
+ { "group:stick", "dye:black", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:digital_clock 2",
+ recipe = {
+ { "homedecor:plastic_sheeting", "default:paper", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:alarm_clock",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:speaker_driver", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:digital_clock", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:air_conditioner",
+ recipe = {
+ { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:fan_blades", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:air_conditioner",
+ recipe = {
+ { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_fan",
+ recipe = {
+ { "homedecor:motor" },
+ { "homedecor:fan_blades" },
+ { "homedecor:glowlight_small_cube" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_fan",
+ recipe = {
+ { "technic:motor" },
+ { "homedecor:fan_blades" },
+ { "homedecor:glowlight_small_cube" }
+ }
+})
+
+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({
+ type = "shapeless",
+ output = "homedecor:window_plain 8",
+ recipe = {
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ "building_blocks:woodglass"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:window_quartered",
+ recipe = {
+ "dye:white",
+ "group:stick",
+ "group:stick",
+ "homedecor:window_plain"
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:vcr 2",
+ recipe = {
+ { "homedecor:ic", "default:steel_ingot", "homedecor:plastic_sheeting" },
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dvd_player 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:obsidian_glass", "homedecor:motor", "homedecor:motor" },
+ { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dvd_player 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:obsidian_glass", "technic:motor", "technic:motor" },
+ { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" },
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:dvd_vcr",
+ recipe = {
+ "homedecor:vcr",
+ "homedecor:dvd_player"
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:blinds_thin",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" },
+ { "farming:string", "homedecor:plastic_strips", "" },
+ { "", "homedecor:plastic_strips", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:blinds_thick",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" },
+ { "farming:string", "homedecor:plastic_strips", "homedecor:plastic_strips" },
+ { "", "homedecor:plastic_strips", "homedecor:plastic_strips" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:openframe_bookshelf",
+ recipe = {
+ {"group:wood", "", "group:wood"},
+ {"default:book", "default:book", "default:book"},
+ {"group:wood", "", "group:wood"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:desk_fan",
+ recipe = {
+ {"default:steel_ingot", "homedecor:fan_blades", "homedecor:motor"},
+ {"", "default:steel_ingot", ""}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:space_heater",
+ recipe = {
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "homedecor:fan_blades", "homedecor:motor"},
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:radiator",
+ recipe = {
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" },
+ { "homedecor:ic", "homedecor:heating_element", "" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+-- bathroom/kitchen tiles
+
+minetest.register_craft( {
+ output = "homedecor:bathroom_tiles_light 4",
+ recipe = {
+ { "group:marble", "group:marble", "" },
+ { "group:marble", "group:marble", "dye:white" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bathroom_tiles_medium 4",
+ recipe = {
+ { "group:marble", "group:marble", "" },
+ { "group:marble", "group:marble", "dye:grey" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bathroom_tiles_dark 4",
+ recipe = {
+ { "group:marble", "group:marble", "" },
+ { "group:marble", "group:marble", "dye:dark_grey" }
+ },
+})
+
+-- misc electrical
+
+minetest.register_craft( {
+ output = "homedecor:power_outlet",
+ recipe = {
+ {"homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"homedecor:plastic_sheeting", ""},
+ {"homedecor:plastic_sheeting", "homedecor:copper_strip"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:light_switch",
+ recipe = {
+ {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"}
+ },
+})
+
+-- doghouse
+
+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"}
+ },
+})
+
+-- japanese walls and mat
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"group:stick", "default:paper"},
+ {"default:paper", "group:stick"},
+ {"group:stick", "default:paper"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"default:paper", "group:stick"},
+ {"group:stick", "default:paper"},
+ {"default:paper", "group:stick"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_middle",
+ recipe = {
+ {"homedecor:japanese_wall_top"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_bottom",
+ recipe = {
+ {"homedecor:japanese_wall_middle"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"homedecor:japanese_wall_bottom"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:tatami_mat",
+ recipe = {
+ {"farming:wheat", "farming:wheat", "farming:wheat"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:wardrobe",
+ recipe = {
+ { "homedecor:drawer_small", "homedecor:kitchen_cabinet" },
+ { "homedecor:drawer_small", "default:wood" },
+ { "homedecor:drawer_small", "default:wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:pool_table",
+ recipe = {
+ { "wool:dark_green", "wool:dark_green", "wool:dark_green" },
+ { "building_blocks:hardwood", "building_blocks:hardwood", "building_blocks:hardwood" },
+ { "building_blocks:slab_hardwood", "", "building_blocks:slab_hardwood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:trash_can 3",
+ recipe = {
+ { "homedecor:steel_wire", "", "homedecor:steel_wire" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:telephone",
+ recipe = {
+ { "homedecor:speaker_driver", "homedecor:copper_wire", "homedecor:speaker_driver" },
+ { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cobweb_corner 5",
+ recipe = {
+ { "farming:string", "", "farming:string" },
+ { "", "farming:string", "" },
+ { "farming:string", "", "farming:string" }
+ },
+})
+
+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: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" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:doorbell",
+ recipe = {
+ { "homedecor:light_switch", "homedecor:power_crystal", "homedecor:speaker_driver" }
+ },
+})
+
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_1",
+ recipe = {
+ { "group:wood", "group:wood", "group:wood" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_2_left",
+ recipe = {
+ { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "stairs:slab_wood", "", "stairs:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_2_left",
+ recipe = {
+ { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "moreblocks:slab_wood", "", "moreblocks:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:kitchen_faucet",
+ recipe = {
+ { "", "default:steel_ingot" },
+ { "default:steel_ingot", "" },
+ { "homedecor:taps", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cutlery_set",
+ recipe = {
+ { "", "vessels:drinking_glass", "" },
+ { "homedecor:steel_strip", "building_blocks:slab_marble", "homedecor:steel_strip" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cutlery_set",
+ recipe = {
+ { "", "vessels:drinking_glass", "" },
+ { "homedecor:steel_strip", "building_blocks:micro_marble_1", "homedecor:steel_strip" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:simple_bench",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "stairs:slab_wood", "", "stairs:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:simple_bench",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "moreblocks:slab_wood", "", "moreblocks:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bed_regular",
+ recipe = {
+ { "group:stick", "", "group:stick" },
+ { "wool:white", "wool:white", "wool:white" },
+ { "group:wood", "", "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bed_kingsize",
+ recipe = {
+ { "homedecor:bed_regular", "homedecor:bed_regular" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bottle_green",
+ recipe = {
+ { "vessels:glass_bottle", "dye:green" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bottle_brown",
+ recipe = {
+ { "vessels:glass_bottle", "dye:brown" }
+ },
+})
+
+if not minetest.get_modpath("glooptest") then
+
+ minetest.register_craft({
+ output = "glooptest:chainlink 12",
+ recipe = {
+ {"", "default:steel_ingot", "default:steel_ingot"},
+ { "default:steel_ingot", "", "default:steel_ingot" },
+ { "default:steel_ingot", "default:steel_ingot", "" },
+ },
+ })
+
+end
+
+minetest.register_alias("homedecor:chainlink_steel", "glooptest:chainlink")
+
+minetest.register_craft({
+ output = "homedecor:chains 4",
+ recipe = {
+ { "default:steel_ingot", "", "default:steel_ingot"},
+ { "glooptest:chainlink", "", "glooptest:chainlink" },
+ { "glooptest:chainlink", "", "glooptest:chainlink" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:chainlink_brass 12",
+ recipe = {
+ {"", "technic:brass_ingot", "technic:brass_ingot"},
+ { "technic:brass_ingot", "", "technic:brass_ingot" },
+ { "technic:brass_ingot", "technic:brass_ingot", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:coffee_maker",
+ recipe = {
+ {"homedecor:plastic_sheeting", "bucket:bucket_water", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dartboard",
+ recipe = {
+ {"dye:black", "homedecor:plastic_sheeting", "dye:white"},
+ {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting"},
+ {"dye:dark_green", "homedecor:plastic_sheeting", "dye:red"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:piano",
+ recipe = {
+ { "", "homedecor:steel_wire", "building_blocks:hardwood" },
+ { "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" },
+ { "technic:brass_ingot", "default:steelblock", "building_blocks:hardwood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:toaster",
+ recipe = {
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:deckchair",
+ recipe = {
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" },
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" },
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:deckchair_striped_blue",
+ type = "shapeless",
+ recipe = {
+ "homedecor:deckchair",
+ "dye:blue"
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:office_chair_basic",
+ recipe = {
+ { "", "", "wool:black" },
+ { "", "wool:black", "default:steel_ingot" },
+ { "group:stick", "homedecor:pole_wrought_iron", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:office_chair_upscale",
+ recipe = {
+ { "dye:black", "building_blocks:sticks", "group:wool" },
+ { "homedecor:plastic_sheeting", "group:wool", "default:steel_ingot" },
+ { "building_blocks:sticks", "homedecor:pole_wrought_iron", "building_blocks:sticks" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_shelf 2",
+ recipe = {
+ { "homedecor:wood_table_small_square", "homedecor:curtainrod_wood", "homedecor:curtainrod_wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:trophy 3",
+ recipe = {
+ { "default:gold_ingot","","default:gold_ingot" },
+ { "","default:gold_ingot","" },
+ { "group:wood","default:gold_ingot","group:wood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:grandfather_clock",
+ recipe = {
+ { "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
+ { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" },
+ { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:sportbench",
+ recipe = {
+ { "stairs:slab_steelblock","homedecor:pole_wrought_iron","stairs:slab_steelblock" },
+ { "default:steel_ingot","wool:black","default:steel_ingot" },
+ { "default:steel_ingot","wool:black","default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:skateboard",
+ recipe = {
+ { "dye:yellow","dye:green","dye:blue" },
+ { "homedecor:wood_table_small_square","homedecor:wood_table_small_square","homedecor:wood_table_small_square" },
+ { "default:steel_ingot","","default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:copper_pans",
+ recipe = {
+ { "homedecor:copper_strip","","homedecor:copper_strip" },
+ { "default:copper_ingot","","default:copper_ingot" },
+ { "default:copper_ingot","","default:copper_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:window_flowerbox",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" },
+ { "", "homedecor:roof_tile_terracotta", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:paper_towel",
+ recipe = {
+ { "homedecor:toilet_paper", "homedecor:toilet_paper" }
+ },
+})
+
+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" },
+ { "homedecor:pole_wrought_iron","default:steel_ingot","homedecor:pole_wrought_iron" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:beer_tap",
+ recipe = {
+ { "group:stick","default:steel_ingot","group:stick" },
+ { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" },
+ { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }
+ },
+})
+
+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" }
+ },
+})
+
+local bookcolors = {
+ "red",
+ "green",
+ "blue",
+ "violet",
+ "grey",
+ "brown"
+}
+
+for _, color in ipairs(bookcolors) do
+ minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:book_"..color,
+ recipe = {
+ "dye:"..color,
+ "default:book"
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "homedecor:door_japanese_closed",
+ recipe = {
+ { "homedecor:japanese_wall_top" },
+ { "homedecor:japanese_wall_bottom" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:calendar",
+ recipe = {
+ { "","dye:red","" },
+ { "","dye:black","" },
+ { "","default:paper","" }
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_brown",
+ recipe = {
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown"
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_green",
+ recipe = {
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green"
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_multi",
+ recipe = {
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wine_rack",
+ recipe = {
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ },
+})
+
+local picture_dyes = {
+ {"dye:brown", "dye:green"}, -- the figure sitting by the tree, wielding a pick
+ {"dye:green", "dye:blue"} -- the "family photo"
+}
+
+for i in ipairs(picture_dyes) do
+ minetest.register_craft({
+ output = "homedecor:picture_frame"..i,
+ recipe = {
+ { picture_dyes[i][1], picture_dyes[i][2] },
+ { "homedecor:blank_canvas", "group:stick" },
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "homedecor:desk_lamp 2",
+ recipe = {
+ { "", "default:steel_ingot", "homedecor:glowlight_small_cube" },
+ { "", "homedecor:steel_strip", "" },
+ { "homedecor:plastic_sheeting", "homedecor:copper_wire", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:hanging_lantern 2",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "" },
+ { "default:iron_lump", "homedecor:lattice_lantern_large", "" },
+ { "default:iron_lump", "", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lantern 2",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "default:iron_lump", "homedecor:lattice_lantern_large", "default:iron_lump" },
+ { "", "default:iron_lump", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_lamp 2",
+ recipe = {
+ { "", "homedecor:lattice_lantern_large", "" },
+ { "default:iron_lump", "group:stick", "" },
+ { "default:iron_lump", "group:stick", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "dye:green" },
+ { "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "group:stick", "stairs:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "dye:green" },
+ { "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "group:stick", "moreblocks:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:tool_cabinet",
+ recipe = {
+ { "homedecor:motor", "default:axe_steel", "default:pick_steel" },
+ { "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:bathroom_set",
+ recipe = {
+ { "", "homedecor:glass_table_small_round", "" },
+ { "homedecor:plastic_sheeting", "homedecor:glass_table_small_round", "homedecor:plastic_sheeting" },
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:trash_can_green",
+ recipe = {
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "dye:green", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lamp",
+ recipe = {
+ { "", "technic:brass_ingot", ""},
+ { "", "homedecor:chainlink_brass", ""},
+ { "default:glass", "homedecor:glowlight_small", "default:glass"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lamp",
+ recipe = {
+ { "", "chains:chain_top_brass", ""},
+ { "default:glass", "homedecor:glowlight_small", "default:glass"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:spiral_staircase",
+ recipe = {
+ { "default:steelblock", "homedecor:pole_wrought_iron", "" },
+ { "", "homedecor:pole_wrought_iron", "default:steelblock" },
+ { "default:steelblock", "homedecor:pole_wrought_iron", "" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:soda_machine",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+ {"default:steel_ingot", "dye:red", "default:steel_ingot"},
+ {"default:steel_ingot", "default:copperblock", "default:steel_ingot"},
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 5",
+ recipe = {"moreblocks:micro_goldblock_1", "default:sword_stone"}
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 15",
+ recipe = {"default:gold_ingot", "default:sword_steel"}
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 50",
+ recipe = {"default:goldblock", "default:sword_mese"}
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_wood 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_white_wood 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "dye:white", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_wood_vegetal 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "group:leaves", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_white_wood_vegetal 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "group:leaves", "group:wood"},
+ {"group:stick", "dye:white", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 8",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "default:glass", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 3",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "xpanes:pane_flat", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 2",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "cottages:glass_pane_side", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 2",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "cottages:glass_pane", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craftitem("homedecor:flower_pot_small", {
+ description = S("Small Flower Pot"),
+ inventory_image = "homedecor_flowerpot_small_inv.png"
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_small",
+ recipe = {
+ { "default:clay_brick", "", "default:clay_brick" },
+ { "", "default:clay_brick", "" }
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_small 3",
+ recipe = { { "homedecor:flower_pot_terracotta" } }
+})
+
+minetest.register_craft({
+ output = "homedecor:shrubbery_green 3",
+ recipe = {
+ { "group:leaves", "group:leaves", "group:leaves" },
+ { "group:leaves", "group:leaves", "group:leaves" },
+ { "group:stick", "group:stick", "group:stick" }
+ }
+})
+
+for _, color in ipairs(homedecor.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
+
+for i in ipairs(homedecor.banister_materials) do
+
+ local name = homedecor.banister_materials[i][1]
+ local topmat = homedecor.banister_materials[i][5]
+ local vertmat = homedecor.banister_materials[i][6]
+ local dye1 = homedecor.banister_materials[i][7]
+ local dye2 = homedecor.banister_materials[i][8]
+
+ minetest.register_craft({
+ output = "homedecor:banister_"..name.."_horizontal 2",
+ recipe = {
+ { topmat, "", dye1 },
+ { vertmat, topmat, "" },
+ { dye2, vertmat, topmat }
+ },
+ })
+end
+
+if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then
+ technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} })
+end
diff --git a/patches/subgame-basis/mods/homedecor_modpack/homedecor/gastronomy.lua b/patches/subgame-basis/mods/homedecor_modpack/homedecor/gastronomy.lua
new file mode 100644
index 0000000..d261700
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack/homedecor/gastronomy.lua
@@ -0,0 +1,236 @@
+
+local S = homedecor_i18n.gettext
+
+local cutlery_cbox = {
+ type = "fixed",
+ fixed = {
+ { -5/16, -8/16, -6/16, 5/16, -7/16, 2/16 },
+ { -2/16, -8/16, 2/16, 2/16, -4/16, 6/16 }
+ }
+}
+
+homedecor.register("cutlery_set", {
+ drawtype = "mesh",
+ mesh = "homedecor_cutlery_set.obj",
+ tiles = { "homedecor_cutlery_set.png" },
+ inventory_image = "homedecor_cutlery_set_inv.png",
+ description = S("Cutlery set"),
+ groups = {snappy=3},
+ selection_box = cutlery_cbox,
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+})
+
+local bottle_cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.125, -0.5, -0.125, 0.125, 0, 0.125}
+ }
+}
+
+local fbottle_cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.375, -0.5, -0.3125, 0.375, 0, 0.3125 }
+ }
+}
+
+local bottle_colors = {
+ { "brown", S("Brown bottle"), S("Four brown bottles") },
+ { "green", S("Green bottle"), S("Four green bottles") },
+}
+
+for _, b in ipairs(bottle_colors) do
+
+ local name, desc, desc4 = unpack(b)
+
+ homedecor.register("bottle_"..name, {
+ tiles = { "homedecor_bottle_"..name..".png" },
+ inventory_image = "homedecor_bottle_"..name.."_inv.png",
+ description = desc,
+ mesh = "homedecor_bottle.obj",
+ walkable = false,
+ groups = {snappy=3},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = bottle_cbox
+ })
+
+ -- 4-bottle sets
+
+ homedecor.register("4_bottles_"..name, {
+ tiles = {
+ "homedecor_bottle_"..name..".png",
+ "homedecor_bottle_"..name..".png"
+ },
+ inventory_image = "homedecor_4_bottles_"..name.."_inv.png",
+ description = desc4,
+ mesh = "homedecor_4_bottles.obj",
+ walkable = false,
+ groups = {snappy=3},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = fbottle_cbox
+ })
+end
+
+homedecor.register("4_bottles_multi", {
+ tiles = {
+ "homedecor_bottle_brown.png",
+ "homedecor_bottle_green.png"
+ },
+ inventory_image = "homedecor_4_bottles_multi_inv.png",
+ description = S("Four misc brown/green bottles"),
+ mesh = "homedecor_4_bottles.obj",
+ groups = {snappy=3},
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = fbottle_cbox
+})
+
+local wine_cbox = homedecor.nodebox.slab_z(-0.75)
+homedecor.register("wine_rack", {
+ description = S("Wine rack"),
+ mesh = "homedecor_wine_rack.obj",
+ tiles = {
+ "homedecor_generic_wood_red.png",
+ "homedecor_bottle_brown.png",
+ "homedecor_bottle_brown2.png",
+ "homedecor_bottle_brown3.png",
+ "homedecor_bottle_brown4.png"
+ },
+ inventory_image = "homedecor_wine_rack_inv.png",
+ groups = {choppy=2},
+ selection_box = wine_cbox,
+ collision_box = wine_cbox,
+ sounds = default.node_sound_defaults(),
+})
+
+homedecor.register("dartboard", {
+ description = S("Dartboard"),
+ mesh = "homedecor_dartboard.obj",
+ tiles = { "homedecor_dartboard.png" },
+ inventory_image = "homedecor_dartboard_inv.png",
+ wield_image = "homedecor_dartboard_inv.png",
+ paramtype2 = "wallmounted",
+ walkable = false,
+ selection_box = {
+ type = "wallmounted",
+ },
+ groups = {choppy=2,dig_immediate=2,attached_node=1},
+ legacy_wallmounted = true,
+ sounds = default.node_sound_wood_defaults(),
+})
+
+homedecor.register("beer_tap", {
+ description = S("Beer tap"),
+ mesh = "homedecor_beer_taps.obj",
+ tiles = {
+ "homedecor_generic_metal_bright.png",
+ { name = "homedecor_generic_metal.png", color = homedecor.color_black }
+ },
+ inventory_image = "homedecor_beertap_inv.png",
+ groups = { snappy=3 },
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 }
+ },
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+ local inv = clicker:get_inventory()
+
+ local wieldname = itemstack:get_name()
+ if wieldname == "vessels:drinking_glass" then
+ if inv:room_for_item("main", "homedecor:beer_mug 1") then
+ itemstack:take_item()
+ clicker:set_wielded_item(itemstack)
+ inv:add_item("main", "homedecor:beer_mug 1")
+ minetest.chat_send_player(clicker:get_player_name(),
+ S("Ahh, a frosty cold beer - look in your inventory for it!"))
+ else
+ minetest.chat_send_player(clicker:get_player_name(),
+ S("No room in your inventory to add a beer mug!"))
+ end
+ end
+ end
+})
+
+minetest.register_craft({
+ output = "homedecor:beer_tap",
+ recipe = {
+ { "group:stick","default:steel_ingot","group:stick" },
+ { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" },
+ { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }
+ },
+})
+
+local beer_cbox = {
+ type = "fixed",
+ fixed = { -5/32, -8/16, -9/32 , 7/32, -2/16, 1/32 }
+}
+
+homedecor.register("beer_mug", {
+ description = S("Beer mug"),
+ drawtype = "mesh",
+ mesh = "homedecor_beer_mug.obj",
+ tiles = { "homedecor_beer_mug.png" },
+ inventory_image = "homedecor_beer_mug_inv.png",
+ groups = { snappy=3, oddly_breakable_by_hand=3 },
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = beer_cbox,
+ on_use = function(itemstack, user, pointed_thing)
+ local inv = user:get_inventory()
+ if not creative.is_enabled_for(user:get_player_name()) then
+ if inv:room_for_item("main", "vessels:drinking_glass 1") then
+ inv:add_item("main", "vessels:drinking_glass 1")
+ else
+ local pos = user:get_pos()
+ local dir = user:get_look_dir()
+ local fdir = minetest.dir_to_facedir(dir)
+ local pos_fwd = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1],
+ y = pos.y + 1,
+ z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
+ minetest.add_item(pos_fwd, "vessels:drinking_glass 1")
+ end
+ minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
+ return itemstack
+ end
+ end
+})
+
+local svm_cbox = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
+}
+
+homedecor.register("soda_machine", {
+ description = S("Soda vending machine"),
+ mesh = "homedecor_soda_machine.obj",
+ tiles = {"homedecor_soda_machine.png"},
+ groups = {snappy=3},
+ selection_box = svm_cbox,
+ collision_box = svm_cbox,
+ expand = { top="placeholder" },
+ sounds = default.node_sound_wood_defaults(),
+ on_rotate = screwdriver.rotate_simple,
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+ local playername = clicker:get_player_name()
+ local wielditem = clicker:get_wielded_item()
+ local wieldname = wielditem:get_name()
+ local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
+ local fdir = node.param2
+ local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] }
+ if wieldname == "homedecor:coin" then
+ minetest.spawn_item(pos_drop, "homedecor:soda_can")
+ minetest.sound_play("insert_coin", {
+ pos=pos, max_hear_distance = 5
+ })
+ if not creative.is_enabled_for(playername) then
+ wielditem:take_item()
+ clicker:set_wielded_item(wielditem)
+ return wielditem
+ end
+ else
+ minetest.chat_send_player(playername, S("Please insert a coin in the machine."))
+ end
+ end
+})
diff --git a/patches/subgame-basis/mods/homedecor_modpack/homedecor/models/homedecor_beer_mug.obj b/patches/subgame-basis/mods/homedecor_modpack/homedecor/models/homedecor_beer_mug.obj
new file mode 100644
index 0000000..4e1d6e7
--- /dev/null
+++ b/patches/subgame-basis/mods/homedecor_modpack/homedecor/models/homedecor_beer_mug.obj
@@ -0,0 +1,421 @@
+# Blender v2.73 (sub 0) OBJ File: 'beer_mug.blend'
+# www.blender.org
+o Torus.001
+v -0.200872 -0.271336 -0.101373
+v 0.027435 -0.500000 0.013804
+v 0.078127 -0.500000 -0.007193
+v -0.213731 -0.262707 -0.113186
+v 0.116925 -0.500000 -0.045991
+v 0.137922 -0.500000 -0.096683
+v -0.201779 -0.214262 -0.136814
+v 0.137922 -0.500000 -0.151551
+v 0.116925 -0.500000 -0.202243
+v -0.190840 -0.230675 -0.148627
+v 0.078127 -0.500000 -0.241041
+v 0.027435 -0.500000 -0.262038
+v -0.179901 -0.247087 -0.136814
+v -0.027433 -0.500000 -0.262038
+v -0.078125 -0.500000 -0.241041
+v -0.179901 -0.247087 -0.113186
+v -0.116923 -0.500000 -0.202243
+v -0.137920 -0.500000 -0.151551
+v -0.190840 -0.230675 -0.101373
+v -0.137920 -0.500000 -0.096682
+v -0.116923 -0.500000 -0.045991
+v -0.201779 -0.214262 -0.113186
+v -0.078125 -0.500000 -0.007193
+v -0.027433 -0.500000 0.013804
+v -0.183162 -0.175815 -0.136814
+v 0.024062 -0.166667 -0.003152
+v 0.068522 -0.166667 -0.021568
+v -0.175215 -0.198406 -0.148627
+v 0.102550 -0.166667 -0.055596
+v 0.120966 -0.166667 -0.100055
+v -0.167267 -0.220996 -0.136814
+v 0.120966 -0.166667 -0.148178
+v 0.102550 -0.166667 -0.192638
+v -0.167267 -0.220996 -0.113186
+v 0.068522 -0.166667 -0.226666
+v 0.024062 -0.166667 -0.245082
+v -0.175215 -0.198406 -0.101373
+v -0.024061 -0.166667 -0.245082
+v -0.068520 -0.166667 -0.226666
+v -0.183162 -0.175815 -0.113186
+v -0.102548 -0.166667 -0.192638
+v -0.120964 -0.166667 -0.148178
+v -0.159704 -0.151131 -0.136814
+v -0.120964 -0.166667 -0.100055
+v -0.102548 -0.166667 -0.055596
+v -0.155526 -0.177688 -0.148627
+v -0.068520 -0.166667 -0.021568
+v -0.024060 -0.166667 -0.003152
+v -0.151348 -0.204244 -0.136814
+v 0.027435 -0.125001 0.013804
+v 0.078127 -0.125001 -0.007193
+v -0.151348 -0.204244 -0.113186
+v 0.116925 -0.125001 -0.045991
+v 0.137922 -0.125001 -0.096683
+v -0.155526 -0.177688 -0.101373
+v 0.137922 -0.125001 -0.151551
+v 0.116925 -0.125001 -0.202243
+v -0.159704 -0.151131 -0.113186
+v 0.078127 -0.125001 -0.241041
+v 0.027435 -0.125001 -0.262038
+v -0.133701 -0.142626 -0.136814
+v -0.027433 -0.125001 -0.262038
+v -0.078125 -0.125001 -0.241041
+v -0.133701 -0.170549 -0.148627
+v -0.116923 -0.125001 -0.202243
+v -0.137921 -0.125001 -0.151551
+v -0.133701 -0.198472 -0.136814
+v -0.137921 -0.125001 -0.096682
+v -0.116923 -0.125001 -0.045991
+v -0.133701 -0.198472 -0.113186
+v -0.078125 -0.125001 -0.007193
+v -0.027433 -0.125001 0.013804
+v -0.133701 -0.170549 -0.101373
+v 0.024062 -0.125001 -0.003152
+v 0.068522 -0.125001 -0.021568
+v -0.133701 -0.142626 -0.113186
+v 0.102550 -0.125001 -0.055596
+v 0.120966 -0.125001 -0.100055
+v -0.133701 -0.490192 -0.136814
+v 0.120966 -0.125001 -0.148178
+v 0.102550 -0.125001 -0.192638
+v -0.133701 -0.462269 -0.148627
+v 0.068522 -0.125001 -0.226666
+v 0.024062 -0.125001 -0.245082
+v -0.133701 -0.434346 -0.136814
+v -0.024061 -0.125001 -0.245082
+v -0.068520 -0.125001 -0.226666
+v -0.133701 -0.434346 -0.113186
+v -0.102548 -0.125001 -0.192638
+v -0.120964 -0.125001 -0.148178
+v -0.133701 -0.462269 -0.101373
+v -0.120964 -0.125001 -0.100055
+v -0.102548 -0.125001 -0.055596
+v -0.133701 -0.490192 -0.113186
+v -0.068520 -0.125001 -0.021568
+v -0.024061 -0.125001 -0.003152
+v -0.188013 -0.279964 -0.113186
+v -0.188013 -0.279964 -0.136814
+v -0.200872 -0.271336 -0.148627
+v -0.213731 -0.262707 -0.136814
+v -0.217850 -0.316409 -0.113186
+v -0.204329 -0.316409 -0.101373
+v -0.190808 -0.316409 -0.113186
+v -0.190808 -0.316409 -0.136814
+v -0.204329 -0.316409 -0.148627
+v -0.217850 -0.316409 -0.136814
+v -0.213731 -0.370111 -0.113186
+v -0.200872 -0.361482 -0.101373
+v -0.188013 -0.352853 -0.113186
+v -0.188013 -0.352853 -0.136814
+v -0.200872 -0.361482 -0.148627
+v -0.213731 -0.370111 -0.136814
+v -0.201779 -0.418556 -0.113186
+v -0.190840 -0.402143 -0.101373
+v -0.179901 -0.385730 -0.113186
+v -0.179901 -0.385730 -0.136814
+v -0.190840 -0.402143 -0.148627
+v -0.201779 -0.418556 -0.136814
+v -0.183162 -0.457002 -0.113186
+v -0.175215 -0.434412 -0.101373
+v -0.167268 -0.411822 -0.113186
+v -0.167268 -0.411822 -0.136814
+v -0.175215 -0.434412 -0.148627
+v -0.183162 -0.457002 -0.136814
+v -0.159704 -0.481686 -0.113186
+v -0.155526 -0.455130 -0.101373
+v -0.151348 -0.428574 -0.113186
+v -0.151348 -0.428574 -0.136814
+v -0.155526 -0.455130 -0.148627
+v -0.159704 -0.481686 -0.136814
+vt 0.156250 0.218750
+vt 0.156250 0.187500
+vt 0.218750 0.187500
+vt 0.218750 0.218750
+vt 0.465889 0.405864
+vt 0.537350 0.405864
+vt 0.603372 0.433211
+vt 0.653903 0.483742
+vt 0.681251 0.549764
+vt 0.681251 0.621226
+vt 0.653904 0.687248
+vt 0.603372 0.737779
+vt 0.537350 0.765126
+vt 0.465889 0.765126
+vt 0.399867 0.737779
+vt 0.349335 0.687248
+vt 0.321988 0.621226
+vt 0.321988 0.549764
+vt 0.349335 0.483742
+vt 0.399867 0.433211
+vt 0.625000 0.906250
+vt 0.687500 0.906250
+vt 0.687500 0.937500
+vt 0.625000 0.937500
+vt 0.937500 0.906250
+vt 1.000000 0.906250
+vt 1.000000 0.937500
+vt 0.937500 0.937500
+vt 0.250000 0.906250
+vt 0.312500 0.906250
+vt 0.312500 0.937500
+vt 0.250000 0.937500
+vt 0.562500 0.906250
+vt 0.562500 0.937500
+vt 0.875000 0.906250
+vt 0.875000 0.937500
+vt 0.187500 0.906250
+vt 0.187500 0.937500
+vt 0.812500 0.906250
+vt 0.812500 0.937500
+vt 0.437500 0.906250
+vt 0.500000 0.906250
+vt 0.500000 0.937500
+vt 0.437500 0.937500
+vt 0.125000 0.906250
+vt 0.125000 0.937500
+vt 0.750000 0.906250
+vt 0.750000 0.937500
+vt 0.375000 0.906250
+vt 0.375000 0.937500
+vt 0.062500 0.906250
+vt 0.062500 0.937500
+vt -0.000000 0.906250
+vt -0.000000 0.937500
+vt 0.281250 0.312500
+vt 0.281250 0.281250
+vt 0.343750 0.281250
+vt 0.343750 0.312500
+vt 0.093750 0.218750
+vt 0.156250 0.250000
+vt 0.093750 0.250000
+vt 0.375000 1.000000
+vt 0.312500 1.000000
+vt 0.281250 0.250000
+vt 0.343750 0.250000
+vt 0.156250 0.312500
+vt 0.156250 0.281250
+vt 0.218750 0.281250
+vt 0.218750 0.312500
+vt 0.531250 0.187500
+vt 0.593750 0.187500
+vt 0.593750 0.218750
+vt 0.531250 0.218750
+vt 0.656250 0.187500
+vt 0.656250 0.218750
+vt 0.093750 0.187500
+vt 0.218750 0.250000
+vt 0.125000 0.406250
+vt 0.187500 0.406250
+vt 0.687500 1.000000
+vt 0.625000 1.000000
+vt 0.937500 0.406250
+vt 1.000000 0.406250
+vt 0.062500 1.000000
+vt 0.125000 1.000000
+vt 0.375000 0.406250
+vt 0.437500 0.406250
+vt 0.687500 0.406250
+vt 0.750000 0.406250
+vt 0.937500 1.000000
+vt 0.875000 1.000000
+vt 0.250000 0.406250
+vt 0.187500 1.000000
+vt 0.093750 0.343750
+vt 0.093750 0.312500
+vt 0.156250 0.343750
+vt 0.500000 0.406250
+vt 0.812500 0.406250
+vt 0.437500 1.000000
+vt 0.218750 0.156250
+vt 0.281250 0.156250
+vt 0.281250 0.187500
+vt 0.750000 1.000000
+vt 0.031250 0.250000
+vt 0.031250 0.218750
+vt 0.562500 0.406250
+vt -0.000000 0.406250
+vt 0.062500 0.406250
+vt 1.000000 1.000000
+vt 0.343750 0.187500
+vt 0.343750 0.156250
+vt 0.406250 0.156250
+vt 0.406250 0.187500
+vt 0.312500 0.406250
+vt 0.625000 0.406250
+vt 0.250000 1.000000
+vt 0.406250 0.343750
+vt 0.406250 0.312500
+vt 0.468750 0.312500
+vt 0.468750 0.343750
+vt 0.875000 0.406250
+vt 0.468750 0.156250
+vt 0.468750 0.187500
+vt 0.500000 1.000000
+vt 0.812500 1.000000
+vt 0.406250 0.281250
+vt 0.406250 0.250000
+vt 0.562500 1.000000
+vt -0.000000 1.000000
+vt 0.218750 0.343750
+vt 0.531250 0.312500
+vt 0.531250 0.281250
+vt 0.593750 0.281250
+vt 0.593750 0.312500
+vt 0.468750 0.281250
+vt 0.468750 0.250000
+vt 0.531250 0.250000
+vt 0.281250 0.343750
+vt 0.593750 0.250000
+vt 0.281250 0.218750
+vt 0.343750 0.218750
+vt 0.031250 0.156250
+vt 0.093750 0.156250
+vt 0.031250 0.187500
+vt 0.813063 0.373140
+vt 0.756333 0.349641
+vt 0.712914 0.306222
+vt 0.689415 0.249492
+vt 0.689415 0.188087
+vt 0.712914 0.131357
+vt 0.756333 0.087938
+vt 0.813063 0.064439
+vt 0.874467 0.064439
+vt 0.931197 0.087938
+vt 0.974617 0.131357
+vt 0.998115 0.188088
+vt 0.998115 0.249492
+vt 0.974617 0.306222
+vt 0.931197 0.349641
+vt 0.874467 0.373140
+vt 0.156250 0.156250
+vt 0.656250 0.250000
+vt 0.031250 0.312500
+vt 0.031250 0.281250
+vt 0.093750 0.281250
+vt 0.656250 0.281250
+vt 0.656250 0.312500
+vt 0.406250 0.218750
+vt 0.468750 0.218750
+vt 0.031250 0.343750
+vt 0.656250 0.343750
+vt 0.593750 0.343750
+vt 0.531250 0.343750
+vt 0.531250 0.156250
+vt 0.593750 0.156250
+vt 0.343750 0.343750
+vt 0.656250 0.156250
+s 1
+f 120/1 121/2 115/3 114/4
+f 2/5 24/6 23/7 21/8 20/9 18/10 17/11 15/12 14/13 12/14 11/15 9/16 8/17 6/18 5/19 3/20
+f 51/21 53/22 77/23 75/24
+f 59/25 60/26 84/27 83/28
+f 66/29 68/30 92/31 90/32
+f 50/33 51/21 75/24 74/34
+f 57/35 59/25 83/28 81/36
+f 65/37 66/29 90/32 89/38
+f 56/39 57/35 81/36 80/40
+f 71/41 72/42 96/43 95/44
+f 63/45 65/37 89/38 87/46
+f 54/47 56/39 80/40 78/48
+f 69/49 71/41 95/44 93/50
+f 62/51 63/45 87/46 86/52
+f 53/22 54/47 78/48 77/23
+f 60/53 62/51 86/52 84/54
+f 111/55 112/56 106/57 105/58
+f 72/42 50/33 74/34 96/43
+f 126/59 120/1 119/60 125/61
+f 45/62 44/63 92/31 93/50
+f 106/57 112/56 107/64 101/65
+f 123/66 124/67 118/68 117/69
+f 34/70 52/71 55/72 37/73
+f 55/72 52/71 70/74 73/75
+f 126/59 127/76 121/2 120/1
+f 112/56 118/68 113/77 107/64
+f 15/78 17/79 65/37 63/45
+f 29/80 27/81 75/24 77/23
+f 11/82 12/83 60/26 59/25
+f 38/84 86/52 87/46 39/85
+f 21/86 23/87 71/41 69/49
+f 5/88 6/89 54/47 53/22
+f 35/90 33/91 81/36 83/28
+f 17/79 18/92 66/29 65/37
+f 41/93 39/85 87/46 89/38
+f 128/94 129/95 123/66 122/96
+f 23/87 24/97 72/42 71/41
+f 6/89 8/98 56/39 54/47
+f 47/99 45/62 93/50 95/44
+f 115/3 116/100 110/101 109/102
+f 30/103 29/80 77/23 78/48
+f 94/104 91/105 126/59 125/61
+f 24/97 2/106 50/33 72/42
+f 12/107 14/108 62/51 60/53
+f 36/109 35/90 83/28 84/27
+f 103/110 104/111 98/112 97/113
+f 18/92 20/114 68/30 66/29
+f 2/106 3/115 51/21 50/33
+f 42/116 41/93 89/38 90/32
+f 98/117 99/118 10/119 13/120
+f 8/98 9/121 57/35 56/39
+f 97/113 98/112 13/122 16/123
+f 48/124 47/99 95/44 96/43
+f 32/125 30/103 78/48 80/40
+f 100/126 106/57 101/65 4/127
+f 14/108 15/78 63/45 62/51
+f 118/68 112/56 111/55 117/69
+f 26/128 48/124 96/43 74/34
+f 38/84 36/129 84/54 86/52
+f 20/114 21/86 69/49 68/30
+f 122/96 123/66 117/69 116/130
+f 3/115 5/88 53/22 51/21
+f 44/63 42/116 90/32 92/31
+f 27/81 26/128 74/34 75/24
+f 28/131 25/132 43/133 46/134
+f 9/121 11/82 59/25 57/35
+f 33/91 32/125 80/40 81/36
+f 25/132 7/135 22/136 40/137
+f 116/130 117/69 111/55 110/138
+f 40/137 37/73 55/72 58/139
+f 107/64 108/140 102/141 101/65
+f 105/58 106/57 100/126 99/118
+f 43/133 25/132 40/137 58/139
+f 85/142 128/143 127/76 88/144
+f 26/145 27/146 29/147 30/148 32/149 33/150 35/151 36/152 38/153 39/154 41/155 42/156 44/157 45/158 47/159 48/160
+f 68/30 69/49 93/50 92/31
+f 127/76 128/143 122/161 121/2
+f 55/72 73/75 76/162 58/139
+f 99/118 100/126 7/135 10/119
+f 82/163 79/164 130/165 129/95
+f 119/60 120/1 114/4 113/77
+f 118/68 124/67 119/60 113/77
+f 43/133 61/166 64/167 46/134
+f 10/119 7/135 25/132 28/131
+f 130/165 124/67 123/66 129/95
+f 4/127 1/168 19/169 22/136
+f 124/67 130/165 125/61 119/60
+f 61/166 43/133 58/139 76/162
+f 110/101 104/111 103/110 109/102
+f 108/140 109/102 103/110 102/141
+f 88/144 127/76 126/59 91/105
+f 97/113 16/123 19/169 1/168
+f 82/163 129/95 128/94 85/170
+f 19/169 16/123 34/70 37/73
+f 19/169 37/73 40/137 22/136
+f 46/134 64/167 67/171 49/172
+f 114/4 108/140 107/64 113/77
+f 115/3 109/102 108/140 114/4
+f 101/65 102/141 1/168 4/127
+f 10/119 28/131 31/173 13/120
+f 16/123 13/122 31/174 34/70
+f 102/141 103/110 97/113 1/168
+f 31/174 49/175 52/71 34/70
+f 111/55 105/58 104/176 110/138
+f 7/135 100/126 4/127 22/136
+f 122/161 116/100 115/3 121/2
+f 105/58 99/118 98/117 104/176
+f 31/173 28/131 46/134 49/172
+f 130/165 79/164 94/104 125/61
+f 52/71 49/175 67/177 70/74
diff --git a/patches/subgame-basis/mods/homedecor_modpack/homedecor/textures/homedecor_beer_mug.png b/patches/subgame-basis/mods/homedecor_modpack/homedecor/textures/homedecor_beer_mug.png
new file mode 100644
index 0000000..2a80924
Binary files /dev/null and b/patches/subgame-basis/mods/homedecor_modpack/homedecor/textures/homedecor_beer_mug.png differ
diff --git a/patches/subgame-basis/mods/homedecor_modpack/homedecor/textures/homedecor_beer_mug_inv.png b/patches/subgame-basis/mods/homedecor_modpack/homedecor/textures/homedecor_beer_mug_inv.png
new file mode 100644
index 0000000..1887d5d
Binary files /dev/null and b/patches/subgame-basis/mods/homedecor_modpack/homedecor/textures/homedecor_beer_mug_inv.png differ
diff --git a/patches/subgame/mods/bones/init-0.4.15 or lower.lua b/patches/subgame/mods/bones/init-0.4.15 or lower.lua
new file mode 100644
index 0000000..38dc61c
--- /dev/null
+++ b/patches/subgame/mods/bones/init-0.4.15 or lower.lua
@@ -0,0 +1,258 @@
+-- Minetest 0.4 mod: bones
+-- See README.txt for licensing and other information.
+
+local function is_owner(pos, name)
+ local owner = minetest.get_meta(pos):get_string("owner")
+ if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then
+ return true
+ end
+ return false
+end
+
+local bones_formspec =
+ "size[8,9]" ..
+ default.gui_bg ..
+ default.gui_bg_img ..
+ default.gui_slots ..
+ "list[current_name;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[current_name;main]" ..
+ "listring[current_player;main]" ..
+ default.get_hotbar_bg(0,4.85)
+
+local share_bones_time = tonumber(minetest.setting_get("share_bones_time")) or 1200
+local share_bones_time_early = tonumber(minetest.setting_get("share_bones_time_early")) or share_bones_time / 4
+
+minetest.register_node("bones:bones", {
+ description = "Bones",
+ tiles = {
+ "bones_top.png^[transform2",
+ "bones_bottom.png",
+ "bones_side.png",
+ "bones_side.png",
+ "bones_rear.png",
+ "bones_front.png"
+ },
+ paramtype2 = "facedir",
+ groups = {dig_immediate = 2},
+ sounds = default.node_sound_gravel_defaults(),
+
+ can_dig = function(pos, player)
+ local inv = minetest.get_meta(pos):get_inventory()
+ local name = ""
+ if player then
+ name = player:get_player_name()
+ end
+ return is_owner(pos, name) and inv:is_empty("main")
+ end,
+
+ allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+ if is_owner(pos, player:get_player_name()) then
+ return count
+ end
+ return 0
+ end,
+
+ allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+ return 0
+ end,
+
+ allow_metadata_inventory_take = function(pos, listname, index, stack, player)
+ if is_owner(pos, player:get_player_name()) then
+ return stack:get_count()
+ end
+ return 0
+ end,
+
+ on_metadata_inventory_take = function(pos, listname, index, stack, player)
+ local meta = minetest.get_meta(pos)
+ if meta:get_inventory():is_empty("main") then
+ minetest.remove_node(pos)
+ end
+ end,
+
+ on_punch = function(pos, node, player)
+ if not is_owner(pos, player:get_player_name()) then
+ return
+ end
+
+ if minetest.get_meta(pos):get_string("infotext") == "" then
+ return
+ end
+
+ local inv = minetest.get_meta(pos):get_inventory()
+ local player_inv = player:get_inventory()
+ local has_space = true
+
+ for i = 1, inv:get_size("main") do
+ local stk = inv:get_stack("main", i)
+ if player_inv:room_for_item("main", stk) then
+ inv:set_stack("main", i, nil)
+ player_inv:add_item("main", stk)
+ else
+ has_space = false
+ break
+ end
+ end
+
+ -- remove bones if player emptied them
+ if has_space then
+ if player_inv:room_for_item("main", {name = "bones:bones"}) then
+ player_inv:add_item("main", {name = "bones:bones"})
+ else
+ minetest.add_item(pos,"bones:bones")
+ end
+ minetest.remove_node(pos)
+ end
+ end,
+
+ on_timer = function(pos, elapsed)
+ local meta = minetest.get_meta(pos)
+ local time = meta:get_int("time") + elapsed
+ if time >= share_bones_time then
+ meta:set_string("infotext", meta:get_string("owner") .. "'s old bones")
+ meta:set_string("owner", "")
+ else
+ meta:set_int("time", time)
+ return true
+ end
+ end,
+ on_blast = function(pos)
+ end,
+})
+
+local function may_replace(pos, player)
+ local node_name = minetest.get_node(pos).name
+ local node_definition = minetest.registered_nodes[node_name]
+
+ -- if the node is unknown, we return false
+ if not node_definition then
+ return false
+ end
+
+ -- allow replacing air and liquids
+ if node_name == "air" or node_definition.liquidtype ~= "none" then
+ return true
+ end
+
+ -- don't replace filled chests and other nodes that don't allow it
+ local can_dig_func = node_definition.can_dig
+ if can_dig_func and not can_dig_func(pos, player) then
+ return false
+ end
+
+ -- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones?
+ -- flowers being squished by bones are more realistical than a squished stone, too
+ -- exception are of course any protected buildable_to
+ return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name())
+end
+
+local drop = function(pos, itemstack)
+ local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
+ if obj then
+ obj:setvelocity({
+ x = math.random(-10, 10) / 9,
+ y = 5,
+ z = math.random(-10, 10) / 9,
+ })
+ end
+end
+
+minetest.register_on_dieplayer(function(player)
+
+ local bones_mode = minetest.setting_get("bones_mode") or "bones"
+ if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then
+ bones_mode = "bones"
+ end
+
+ local pos = vector.round(player:getpos())
+ -- return if keep inventory set or in creative mode
+ if bones_mode == "keep" or minetest.setting_getbool("creative_mode") then
+ minetest.log("action", "[bones] " .. player:get_player_name() .. "'s bones do not remain since in creative_mode -- died at " .. minetest.pos_to_string(vector.round(player:getpos())))
+ minetest.chat_send_player(player:get_player_name(), player:get_player_name() .. "'s bones do not remain since in creative_mode -- died at " .. minetest.pos_to_string(pos)) --formerly ("Bones placed at %s."):format(pos)
+ return
+ end
+
+ local player_inv = player:get_inventory()
+ if player_inv:is_empty("main") and
+ player_inv:is_empty("craft") then
+ minetest.log("action", "[bones] " .. player:get_player_name() .. "'s bones do not remain since inventory and craft are empty -- died at " .. minetest.pos_to_string(vector.round(player:getpos())))
+ minetest.chat_send_player(player:get_player_name(), player:get_player_name() .. "'s bones do not remain since inventory and craft are empty -- died at " .. minetest.pos_to_string(pos)) --formerly ("Bones placed at %s."):format(pos)
+ return
+ end
+
+ local pos = vector.round(player:getpos())
+ local player_name = player:get_player_name()
+
+ -- check if it's possible to place bones, if not find space near player
+ if bones_mode == "bones" and not may_replace(pos, player) then
+ local air = minetest.find_node_near(pos, 1, {"air"})
+ if air and not minetest.is_protected(air, player_name) then
+ pos = air
+ else
+ bones_mode = "drop"
+ end
+ end
+
+ if bones_mode == "drop" then
+
+ -- drop inventory items
+ for i = 1, player_inv:get_size("main") do
+ drop(pos, player_inv:get_stack("main", i))
+ end
+ player_inv:set_list("main", {})
+
+ -- drop crafting grid items
+ for i = 1, player_inv:get_size("craft") do
+ drop(pos, player_inv:get_stack("craft", i))
+ end
+ player_inv:set_list("craft", {})
+
+ drop(pos, ItemStack("bones:bones"))
+
+ minetest.log("action", "[bones] " .. player:get_player_name() .. "'s bones do not remain since area is_protected -- died at " .. minetest.pos_to_string(pos))
+ minetest.chat_send_player(player:get_player_name(), player:get_player_name() .. "'s do not remain since area is_protected -- died at " .. minetest.pos_to_string(pos)) --formerly ("Bones placed at %s."):format(pos)
+ return
+ end
+
+ local param2 = minetest.dir_to_facedir(player:get_look_dir())
+ minetest.set_node(pos, {name = "bones:bones", param2 = param2})
+ minetest.log("action", "[bones] " .. player:get_player_name() .. "'s bones remain where died at " .. minetest.pos_to_string(pos))
+ minetest.chat_send_player(player:get_player_name(), player:get_player_name() .. "'s bones remain where died at " .. minetest.pos_to_string(pos)) --formerly ("Bones placed at %s."):format(pos)
+
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ inv:set_size("main", 8 * 4)
+ inv:set_list("main", player_inv:get_list("main"))
+
+ for i = 1, player_inv:get_size("craft") do
+ local stack = player_inv:get_stack("craft", i)
+ if inv:room_for_item("main", stack) then
+ inv:add_item("main", stack)
+ else
+ --drop if no space left
+ drop(pos, stack)
+ end
+ end
+
+ player_inv:set_list("main", {})
+ player_inv:set_list("craft", {})
+
+ meta:set_string("formspec", bones_formspec)
+ meta:set_string("owner", player_name)
+
+ if share_bones_time ~= 0 then
+ meta:set_string("infotext", player_name .. "'s fresh bones")
+
+ if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then
+ meta:set_int("time", 0)
+ else
+ meta:set_int("time", (share_bones_time - share_bones_time_early))
+ end
+
+ minetest.get_node_timer(pos):start(10)
+ else
+ meta:set_string("infotext", player_name.."'s bones")
+ end
+end)
diff --git a/patches/subgame/mods/bones/init.lua b/patches/subgame/mods/bones/init.lua
index 38dc61c..f1fe190 100644
--- a/patches/subgame/mods/bones/init.lua
+++ b/patches/subgame/mods/bones/init.lua
@@ -21,8 +21,8 @@ local bones_formspec =
"listring[current_player;main]" ..
default.get_hotbar_bg(0,4.85)
-local share_bones_time = tonumber(minetest.setting_get("share_bones_time")) or 1200
-local share_bones_time_early = tonumber(minetest.setting_get("share_bones_time_early")) or share_bones_time / 4
+local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200
+local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4
minetest.register_node("bones:bones", {
description = "Bones",
@@ -161,14 +161,15 @@ end
minetest.register_on_dieplayer(function(player)
- local bones_mode = minetest.setting_get("bones_mode") or "bones"
+ local bones_mode = minetest.settings:get("bones_mode") or "bones"
if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then
bones_mode = "bones"
end
local pos = vector.round(player:getpos())
-- return if keep inventory set or in creative mode
- if bones_mode == "keep" or minetest.setting_getbool("creative_mode") then
+ if bones_mode == "keep" or (creative and creative.is_enabled_for
+ and creative.is_enabled_for(player:get_player_name())) then
minetest.log("action", "[bones] " .. player:get_player_name() .. "'s bones do not remain since in creative_mode -- died at " .. minetest.pos_to_string(vector.round(player:getpos())))
minetest.chat_send_player(player:get_player_name(), player:get_player_name() .. "'s bones do not remain since in creative_mode -- died at " .. minetest.pos_to_string(pos)) --formerly ("Bones placed at %s."):format(pos)
return
diff --git a/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/crafts.lua b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/crafts.lua
new file mode 100644
index 0000000..5f445f3
--- /dev/null
+++ b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/crafts.lua
@@ -0,0 +1,3343 @@
+-- Crafting for homedecor mod (includes folding) by Vanessa Ezekowitz
+--
+-- Mostly my own code; overall template borrowed from game default
+
+local S = homedecor_i18n.gettext
+
+-- misc craftitems
+
+minetest.register_craftitem("homedecor:terracotta_base", {
+ description = S("Uncooked Terracotta Base"),
+ inventory_image = "homedecor_terracotta_base.png",
+})
+
+minetest.register_craftitem("homedecor:roof_tile_terracotta", {
+ description = S("Terracotta Roof Tile"),
+ inventory_image = "homedecor_roof_tile_terracotta.png",
+})
+
+minetest.register_craftitem("homedecor:oil_extract", {
+ description = S("Oil extract"),
+ inventory_image = "homedecor_oil_extract.png",
+})
+
+minetest.register_craftitem("homedecor:paraffin", {
+ description = S("Unprocessed paraffin"),
+ inventory_image = "homedecor_paraffin.png",
+})
+
+minetest.register_alias("homedecor:plastic_base", "homedecor:paraffin")
+
+minetest.register_craftitem("homedecor:plastic_sheeting", {
+ description = S("Plastic sheet"),
+ inventory_image = "homedecor_plastic_sheeting.png",
+})
+
+minetest.register_craftitem("homedecor:plastic_strips", {
+ description = S("Plastic strips"),
+ inventory_image = "homedecor_plastic_strips.png",
+})
+
+minetest.register_craftitem("homedecor:drawer_small", {
+ description = S("Small Wooden Drawer"),
+ inventory_image = "homedecor_drawer_small.png",
+})
+
+minetest.register_craftitem("homedecor:ic", {
+ description = S("Simple Integrated Circuit"),
+ inventory_image = "homedecor_ic.png",
+})
+
+minetest.register_craftitem("homedecor:heating_element", {
+ description = S("Heating element"),
+ inventory_image = "homedecor_heating_element.png",
+})
+
+minetest.register_craftitem("homedecor:motor", {
+ description = S("Motor"),
+ inventory_image = "homedecor_motor.png",
+})
+
+minetest.register_craftitem("homedecor:power_crystal", {
+ description = S("Power Crystal"),
+ inventory_image = "homedecor_power_crystal.png",
+})
+
+minetest.register_craftitem("homedecor:blank_canvas", {
+ description = S("Blank Canvas"),
+ inventory_image = "homedecor_blank_canvas.png"
+})
+
+minetest.register_craftitem("homedecor:vcr", {
+ description = S("VCR"),
+ inventory_image = "homedecor_vcr.png"
+})
+
+minetest.register_craftitem("homedecor:dvd_player", {
+ description = S("DVD Player"),
+ inventory_image = "homedecor_dvd_player.png"
+})
+
+minetest.register_craftitem("homedecor:copper_wire", {
+ description = S("Spool of copper wire"),
+ inventory_image = "homedecor_copper_wire.png"
+})
+
+minetest.register_craftitem("homedecor:steel_wire", {
+ description = S("Spool of steel wire"),
+ inventory_image = "homedecor_steel_wire.png"
+})
+
+minetest.register_craftitem("homedecor:speaker_driver", {
+ description = S("Speaker driver"),
+ inventory_image = "homedecor_speaker_driver_inv.png"
+})
+
+minetest.register_craftitem("homedecor:fan_blades", {
+ description = S("Fan blades"),
+ inventory_image = "homedecor_fan_blades.png"
+})
+
+minetest.register_craftitem("homedecor:copper_strip", {
+ description = S("Copper Strip"),
+ inventory_image = "homedecor_copper_strip.png"
+})
+
+minetest.register_craftitem("homedecor:steel_strip", {
+ description = S("Steel Strip"),
+ inventory_image = "homedecor_steel_strip.png"
+})
+
+minetest.register_craftitem(":glooptest:chainlink", {
+ description = S("Steel chainlink"),
+ inventory_image = "homedecor_chainlink_steel.png"
+})
+
+minetest.register_craftitem("homedecor:chainlink_brass", {
+ description = S("Brass chainlink"),
+ inventory_image = "homedecor_chainlink_brass.png"
+})
+
+minetest.register_craftitem("homedecor:soda_can", {
+ description = S("Soda Can"),
+ inventory_image = "homedecor_soda_can.png",
+ on_use = minetest.item_eat(2),
+})
+
+minetest.register_craftitem("homedecor:coin", {
+ description = S("Gold Coin (for soda vending machine)"),
+ inventory_image = "homedecor_coin.png",
+})
+
+-- alternate crafting if mesecons is/isn't installed
+
+if not minetest.get_modpath("mesecons") then
+
+ minetest.register_craftitem(":mesecons_materials:silicon", {
+ description = S("Silicon lump"),
+ inventory_image = "homedecor_silicon.png",
+ })
+
+ minetest.register_craft( {
+ output = "mesecons_materials:silicon 4",
+ recipe = {
+ { "default:sand", "default:sand" },
+ { "default:sand", "default:steel_ingot" },
+ },
+ })
+
+end
+
+-- alternate crafting if technic is/isn't installed
+if not minetest.get_modpath("technic") then
+ minetest.register_craftitem(":technic:brass_ingot", {
+ description = S("Brass Ingot"),
+ inventory_image = "homedecor_brass_ingot.png",
+ })
+
+ if minetest.get_modpath("moreores") then
+ minetest.register_craft( {
+ type = "shapeless",
+ output = "technic:brass_ingot 2",
+ recipe = {
+ "moreores:silver_ingot",
+ "default:copper_ingot",
+ },
+ })
+ else
+ minetest.register_craft( {
+ type = "shapeless",
+ output = "technic:brass_ingot 3",
+ recipe = {
+ "default:steel_ingot",
+ "default:copper_ingot",
+ "default:gold_ingot",
+ },
+ })
+ end
+end
+
+minetest.register_alias("homedecor:brass_ingot", "technic:brass_ingot")
+
+-- the actual crafts
+
+minetest.register_craft( {
+ output = "homedecor:copper_strip 12",
+ recipe = {
+ { "", "default:copper_ingot", "" },
+ { "default:copper_ingot", "", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:steel_strip 12",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:fan_blades 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "", "default:steel_ingot", "" },
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:steel_wire 4",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:steel_ingot", "homedecor:plastic_sheeting", "default:steel_ingot" },
+ { "", "homedecor:plastic_sheeting", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:copper_wire 4",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:copper_ingot", "homedecor:plastic_sheeting", "default:copper_ingot" },
+ { "", "homedecor:plastic_sheeting", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:plastic_strips 3",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:heating_element 2",
+ recipe = {
+ { "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:motor 2",
+ recipe = {
+ { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" },
+ { "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft({
+ --type = "shapeless",
+ output = "homedecor:power_crystal 2",
+ recipe = {
+ { "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" },
+ { "default:diamond", "default:gold_ingot", "default:diamond" }
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:power_crystal",
+ burntime = 50,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:terracotta_base 8",
+ recipe = {
+ "default:dirt",
+ "default:clay_lump",
+ "bucket:bucket_water"
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, },
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:roof_tile_terracotta",
+ recipe = "homedecor:terracotta_base",
+})
+
+minetest.register_craft( {
+ output = "homedecor:shingles_terracotta",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"},
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:roof_tile_terracotta 8",
+ recipe = {
+ { "homedecor:shingles_terracotta", "homedecor:shingles_terracotta" }
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_terracotta",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" },
+ { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta" },
+ },
+})
+
+--
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:oil_extract 4",
+ recipe = {
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves",
+ "group:leaves"
+ }
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:paraffin",
+ recipe = "homedecor:oil_extract",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:plastic_sheeting",
+ recipe = "homedecor:paraffin",
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:oil_extract",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:paraffin",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:plastic_sheeting",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_green",
+ recipe = {
+ { "", "dye:dark_green", "" },
+ { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_black",
+ recipe = {
+ { "dye:black", "dye:black", "dye:black" },
+ { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:projection_screen 3",
+ recipe = {
+ { "", "default:glass", "" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:projection_screen",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:ceiling_paint 20",
+ recipe = {
+ "dye:white",
+ "dye:white",
+ "default:sand",
+ "bucket:bucket_water",
+ },
+ replacements = { { "bucket:bucket_water","bucket:bucket_empty" } }
+})
+
+minetest.register_craft( {
+ output = "homedecor:ceiling_tile 10",
+ recipe = {
+ { "", "dye:white", "" },
+ { "default:steel_ingot", "default:stone", "default:steel_ingot" },
+
+ },
+})
+
+
+-- =======================================================
+-- Items/recipes not requiring smelting of anything new
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_small_round_b 15",
+ recipe = {
+ { "", "default:glass", "" },
+ { "default:glass", "default:glass", "default:glass" },
+ { "", "default:glass", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_small_square_b 2",
+ recipe = {
+ {"homedecor:glass_table_small_round", "homedecor:glass_table_small_round" },
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:glass_table_large_b 2",
+ recipe = {
+ { "homedecor:glass_table_small_square", "homedecor:glass_table_small_square" },
+ }
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_small_round_b 15",
+ recipe = {
+ { "", "group:wood", "" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "", "group:wood", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_small_square_b 2",
+ recipe = {
+ { "homedecor:wood_table_small_round","homedecor:wood_table_small_round" },
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:wood_table_large_b 2",
+ recipe = {
+ { "homedecor:wood_table_small_square", "homedecor:wood_table_small_square" },
+ }
+})
+
+--
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_small_round_b",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_small_square_b",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:wood_table_large_b",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:shingles_asphalt 6",
+ recipe = {
+ { "building_blocks:gravel_spread", "dye:black", "building_blocks:gravel_spread" },
+ { "group:sand", "dye:black", "group:sand" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ },
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:shingles_wood 12",
+ recipe = {
+ { "group:stick", "group:wood"},
+ { "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:shingles_wood 12",
+ recipe = {
+ { "group:wood", "group:stick"},
+ { "group:stick", "group:wood"},
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shingles_wood",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:skylight 4",
+ recipe = {
+ { "homedecor:glass_table_large", "homedecor:glass_table_large" },
+ { "homedecor:glass_table_large", "homedecor:glass_table_large" },
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:skylight_frosted",
+ recipe = {
+ "dye:white",
+ "homedecor:skylight"
+ },
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:skylight",
+ recipe = "homedecor:skylight_frosted",
+})
+
+-- Various colors of shutters
+
+minetest.register_craft( {
+ output = "homedecor:shutter_oak 2",
+ recipe = {
+ { "group:stick", "group:stick" },
+ { "group:stick", "group:stick" },
+ { "group:stick", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_oak",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_black 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:black"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_black",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_dark_grey 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:dark_grey"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_dark_grey",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_grey 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:grey"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_grey",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_white 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:white"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_white",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_mahogany 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:brown"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_mahogany",
+ burntime = 30,
+})
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_red 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:red"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_red",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_yellow 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:yellow"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_yellow",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_forest_green 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:dark_green"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_forest_green",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_light_blue 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "unifieddyes:light_blue"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_light_blue",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:shutter_violet 4",
+ recipe = {
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "homedecor:shutter_oak",
+ "dye:violet"
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:shutter_violet",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:drawer_small",
+ recipe = {
+ { "group:wood", "default:steel_ingot", "group:wood" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:drawer_small",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_one_drawer",
+ recipe = {
+ { "homedecor:drawer_small" },
+ { "group:wood" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_oak_one_drawer",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_two_drawers",
+ recipe = {
+ { "homedecor:drawer_small" },
+ { "homedecor:drawer_small" },
+ { "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:nightstand_oak_two_drawers",
+ recipe = {
+ { "homedecor:nightstand_oak_one_drawer" },
+ { "homedecor:drawer_small" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_oak_two_drawers",
+ burntime = 30,
+})
+
+--
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:nightstand_mahogany_one_drawer",
+ recipe = {
+ "homedecor:nightstand_oak_one_drawer",
+ "dye:brown",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_mahogany_one_drawer",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:nightstand_mahogany_two_drawers",
+ recipe = {
+ "homedecor:nightstand_oak_two_drawers",
+ "dye:brown",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:nightstand_mahogany_two_drawers",
+ burntime = 30,
+})
+
+-- Table legs
+
+minetest.register_craft( {
+ output = "homedecor:table_legs_wrought_iron 3",
+ recipe = {
+ { "", "default:iron_lump", "" },
+ { "", "default:iron_lump", "" },
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:table_legs_brass 3",
+ recipe = {
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" },
+ { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:utility_table_legs",
+ recipe = {
+ { "group:stick", "group:stick", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:utility_table_legs",
+ burntime = 30,
+})
+
+-- vertical poles/lampposts
+
+minetest.register_craft( {
+ output = "homedecor:pole_brass 4",
+ recipe = {
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" },
+ { "", "technic:brass_ingot", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:pole_wrought_iron 4",
+ recipe = {
+ { "default:iron_lump", },
+ { "default:iron_lump", },
+ { "default:iron_lump", },
+ },
+})
+
+-- Home electronics
+
+minetest.register_craft( {
+ output = "homedecor:ic 4",
+ recipe = {
+ { "mesecons_materials:silicon", "mesecons_materials:silicon" },
+ { "mesecons_materials:silicon", "default:copper_ingot" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:television",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "moreblocks:glow_glass", "homedecor:plastic_sheeting" },
+ { "homedecor:ic", "homedecor:ic", "homedecor:ic" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:television",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" },
+ { "homedecor:ic", "homedecor:power_crystal", "homedecor:ic" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:stereo",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "default:steel_ingot", "homedecor:ic", "default:steel_ingot" },
+ },
+})
+
+-- ===========================================================
+-- Recipes that require materials from wool (cotton alternate)
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_small 8",
+ recipe = {
+ "wool:red",
+ "wool:yellow",
+ "wool:blue",
+ "wool:black"
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:rug_persian 8",
+ recipe = {
+ { "", "wool:yellow", "" },
+ { "wool:red", "wool:blue", "wool:red" },
+ { "", "wool:yellow", "" }
+ },
+})
+
+-- cotton versions:
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_small 8",
+ recipe = {
+ "cotton:red",
+ "cotton:yellow",
+ "cotton:blue",
+ "cotton:black"
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:rug_persian 8",
+ recipe = {
+ { "", "cotton:yellow", "" },
+ { "cotton:red", "cotton:blue", "cotton:red" },
+ { "", "cotton:yellow", "" }
+ },
+})
+
+-- fuel recipes for same
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_small",
+ burntime = 30,
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:rug_large 2",
+ recipe = {
+ "homedecor:rug_small",
+ "homedecor:rug_small",
+ },
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_large",
+ burntime = 30,
+})
+
+minetest.register_craft({
+ type = "fuel",
+ recipe = "homedecor:rug_persian",
+ burntime = 30,
+})
+
+-- Speakers
+
+minetest.register_craft( {
+ output = "homedecor:speaker_driver 2",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:paper", "homedecor:copper_wire", "default:iron_lump" },
+ { "", "default: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" },
+ },
+})
+
+-- Curtains
+
+minetest.register_craft( {
+ output = "homedecor:curtain_closed 4",
+ recipe = {
+ { "wool:white", "", ""},
+ { "wool:white", "", ""},
+ { "wool:white", "", ""},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:curtain_closed 4",
+ recipe = {
+ { "cottages:wool", "", ""},
+ { "cottages:wool", "", ""},
+ { "cottages:wool", "", ""},
+ },
+})
+
+local mats = {
+ { "brass", "homedecor:pole_brass" },
+ { "wrought_iron", "homedecor:pole_wrought_iron" },
+ { "wood", "group:stick" }
+}
+
+for i in ipairs(mats) do
+ local material = mats[i][1]
+ local ingredient = mats[i][2]
+ minetest.register_craft( {
+ output = "homedecor:curtainrod_"..material.." 3",
+ recipe = {
+ { ingredient, ingredient, ingredient },
+ },
+ })
+end
+
+-- Recycling recipes
+
+-- Some glass objects recycle via the glass fragments item/recipe in the Vessels mod.
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_small_round",
+ "homedecor:glass_table_small_round",
+ "homedecor:glass_table_small_round"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_small_square",
+ "homedecor:glass_table_small_square",
+ "homedecor:glass_table_small_square"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments",
+ recipe = {
+ "homedecor:glass_table_large",
+ "homedecor:glass_table_large",
+ "homedecor:glass_table_large"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "vessels:glass_fragments 2",
+ recipe = {
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight",
+ "homedecor:skylight"
+ }
+})
+
+-- Wooden tabletops can turn into sticks
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_small_round",
+ "homedecor:wood_table_small_round",
+ "homedecor:wood_table_small_round"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_small_square",
+ "homedecor:wood_table_small_square",
+ "homedecor:wood_table_small_square"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "default:stick 4",
+ recipe = {
+ "homedecor:wood_table_large",
+ "homedecor:wood_table_large",
+ "homedecor:wood_table_large"
+ }
+})
+
+-- Kitchen stuff
+
+minetest.register_craft({
+ output = "homedecor:oven_steel",
+ recipe = {
+ {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", },
+ {"default:steel_ingot", "moreblocks:iron_glass", "default:steel_ingot", },
+ {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oven_steel",
+ recipe = {
+ {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", },
+ {"default:steel_ingot", "default:glass", "default:steel_ingot", },
+ {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", },
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:oven",
+ recipe = {
+ "homedecor:oven_steel",
+ "dye:white",
+ "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", "homedecor:ic", },
+ {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:microwave_oven 2",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
+ {"default:steel_ingot", "default:glass", "homedecor:ic", },
+ {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", },
+ }
+})
+
+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", },
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:refrigerator_white",
+ recipe = {
+ "homedecor:refrigerator_steel",
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet",
+ recipe = {
+ {"group:wood", "group:stick", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_steel",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+ {"", "homedecor:kitchen_cabinet", ""},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_steel",
+ recipe = {
+ {"moreblocks:slab_steelblock_1"},
+ { "homedecor:kitchen_cabinet" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_marble",
+ recipe = {
+ {"building_blocks:slab_marble"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_marble",
+ recipe = {
+ {"technic:slab_marble_1"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_granite",
+ recipe = {
+ {"technic:slab_granite_1"},
+ {"homedecor:kitchen_cabinet"},
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:kitchen_cabinet_half 2",
+ recipe = { "homedecor:kitchen_cabinet" }
+})
+
+minetest.register_craft({
+ output = "homedecor:kitchen_cabinet_with_sink",
+ recipe = {
+ {"group:wood", "default:steel_ingot", "group:wood", },
+ {"group:wood", "default:steel_ingot", "group:wood", },
+ {"group:wood", "group:stick", "group:wood", },
+ }
+})
+
+------- Lighting
+
+-- candles
+
+minetest.register_craft({
+ output = "homedecor:candle_thin 4",
+ recipe = {
+ {"farming:string" },
+ {"homedecor:paraffin" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candle 2",
+ recipe = {
+ {"farming:string" },
+ {"homedecor:paraffin" },
+ {"homedecor:paraffin" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_sconce 2",
+ recipe = {
+ {"default:iron_lump", "", ""},
+ {"default:iron_lump", "homedecor:candle", ""},
+ {"default:iron_lump", "", ""},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candlestick_wrought_iron",
+ recipe = {
+ {""},
+ {"homedecor:candle_thin"},
+ {"default:iron_lump"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:candlestick_brass",
+ recipe = {
+ {""},
+ {"homedecor:candle_thin"},
+ {"technic:brass_ingot"},
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oil_lamp",
+ recipe = {
+ { "", "vessels:glass_bottle", "" },
+ { "", "farming:string", "" },
+ { "default:steel_ingot", "homedecor:oil_extract", "default:steel_ingot" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:oil_lamp_tabletop",
+ recipe = {
+ { "", "vessels:glass_bottle", "" },
+ { "", "farming:string", "" },
+ { "default:iron_lump", "homedecor:oil_extract", "default:iron_lump" }
+ }
+})
+
+-- Wrought-iron wall latern
+
+minetest.register_craft({
+ output = "homedecor:ground_lantern",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "default:iron_lump", "default:torch", "default:iron_lump" },
+ { "", "default:iron_lump", "" }
+ }
+})
+
+-- wood-lattice lamps
+
+minetest.register_craft( {
+ output = "homedecor:lattice_lantern_large 2",
+ recipe = {
+ { "dye:black", "dye:yellow", "dye:black" },
+ { "group:stick", "building_blocks:woodglass", "group:stick" },
+ { "group:stick", "homedecor:power_crystal", "group:stick" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:lattice_lantern_small 8",
+ recipe = {
+ { "homedecor:lattice_lantern_large" },
+ },
+})
+
+-- glowlights
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half 6",
+ recipe = {
+ { "dye:white", "dye:white", "dye:white" },
+ { "default:glass", "homedecor:power_crystal", "default:glass", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half 6",
+ recipe = {
+ { "dye:white", "dye:white", "dye:white" },
+ {"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_quarter 6",
+ recipe = {
+ {"homedecor:glowlight_half", "homedecor:glowlight_half", "homedecor:glowlight_half", },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 8",
+ recipe = {
+ { "dye:white" },
+ { "default:glass" },
+ { "homedecor:power_crystal" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 8",
+ recipe = {
+ {"dye:white" },
+ {"moreblocks:super_glow_glass" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_small_cube 4",
+ recipe = {
+ {"homedecor:glowlight_half" },
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half",
+ recipe = {
+ {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"},
+ {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"}
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:glowlight_half",
+ type = "shapeless",
+ recipe = {
+ "homedecor:glowlight_quarter",
+ "homedecor:glowlight_quarter"
+ }
+})
+
+----
+
+minetest.register_craft({
+ output = "homedecor:plasma_lamp",
+ recipe = {
+ {"", "default:glass", ""},
+ {"default:glass", "homedecor:power_crystal", "default:glass"},
+ {"", "default:glass", ""}
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:plasma_ball 2",
+ recipe = {
+ {"", "default:glass", ""},
+ {"default:glass", "default:copper_ingot", "default:glass"},
+ {"homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting"}
+ }
+})
+
+-- Brass/wrought iron fences
+
+
+minetest.register_craft( {
+ output = "homedecor:fence_brass 6",
+ recipe = {
+ { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" },
+ { "technic:brass_ingot", "technic:brass_ingot", "technic: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 2",
+ recipe = {
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:fence_wrought_iron_2 2",
+ 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", "homedecor:steel_wire", "group:stick" },
+ { "group:stick", "", "group:stick" },
+ { "group:stick", "homedecor: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" },
+ { "homedecor:steel_wire", "homedecor:steel_wire", "default:steel_ingot" },
+ { "homedecor:steel_wire", "homedecor: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" },
+})
+
+
+-- Gates
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_picket_white_closed",
+ recipe = {
+ "homedecor:fence_picket_white"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_picket_white",
+ recipe = {
+ "homedecor:gate_picket_white_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_picket_closed",
+ recipe = {
+ "homedecor:fence_picket"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_picket",
+ recipe = {
+ "homedecor:gate_picket_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_barbed_wire_closed",
+ recipe = {
+ "homedecor:fence_barbed_wire"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_barbed_wire",
+ recipe = {
+ "homedecor:gate_barbed_wire_closed"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:gate_chainlink_closed",
+ recipe = {
+ "homedecor:fence_chainlink"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:fence_chainlink",
+ recipe = {
+ "homedecor:gate_chainlink_closed"
+ },
+})
+
+------ Doors
+
+-- plain wood, non-windowed
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_plain_left 2",
+ recipe = {
+ { "group:wood", "group:wood", "" },
+ { "group:wood", "group:wood", "default:steel_ingot" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- fancy exterior
+
+minetest.register_craft( {
+ output = "homedecor:door_exterior_fancy_left 2",
+ recipe = {
+ { "group:wood", "default:glass" },
+ { "group:wood", "group:wood" },
+ { "group:wood", "group:wood" },
+ },
+})
+
+-- wood and glass (grid style)
+
+-- bare
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_glass_oak_left 2",
+ recipe = {
+ { "default:glass", "group:wood" },
+ { "group:wood", "default:glass" },
+ { "default:glass", "group:wood" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:door_wood_glass_oak_left 2",
+ recipe = {
+ { "group:wood", "default:glass" },
+ { "default:glass", "group:wood" },
+ { "group:wood", "default:glass" },
+ },
+})
+
+-- mahogany
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_mahogany_left 2",
+ recipe = {
+ "default:dirt",
+ "default:coal_lump",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_mahogany_left 2",
+ recipe = {
+ "dye:brown",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+-- white
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_wood_glass_white_left 2",
+ recipe = {
+ "dye:white",
+ "homedecor:door_wood_glass_oak_left",
+ "homedecor:door_wood_glass_oak_left"
+ },
+})
+
+-- Solid glass with metal handle
+
+minetest.register_craft( {
+ output = "homedecor:door_glass_left 2",
+ recipe = {
+ { "default:glass", "default:glass" },
+ { "default:glass", "default:steel_ingot" },
+ { "default:glass", "default:glass" },
+ },
+})
+
+-- Closet doors
+
+-- oak
+
+minetest.register_craft( {
+ output = "homedecor:door_closet_oak_left 2",
+ recipe = {
+ { "", "group:stick", "group:stick" },
+ { "default:steel_ingot", "group:stick", "group:stick" },
+ { "", "group:stick", "group:stick" },
+ },
+})
+
+-- mahogany
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_closet_mahogany_left 2",
+ recipe = {
+ "homedecor:door_closet_oak_left",
+ "homedecor:door_closet_oak_left",
+ "default:dirt",
+ "default:coal_lump",
+ },
+})
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "homedecor:door_closet_mahogany_left 2",
+ recipe = {
+ "homedecor:door_closet_oak_left",
+ "homedecor:door_closet_oak_left",
+ "dye:brown"
+ },
+})
+
+-- wrought fence-like door
+
+minetest.register_craft( {
+ output = "homedecor:door_wrought_iron_left 2",
+ recipe = {
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" },
+ { "homedecor:pole_wrought_iron", "default:iron_lump" }
+ },
+})
+
+-- bedroom door
+
+minetest.register_craft( {
+ output = "homedecor:door_bedroom_left",
+ recipe = {
+ { "dye:white", "dye:white", "" },
+ { "homedecor:door_wood_plain_left", "technic:brass_ingot", "" },
+ { "", "", "" },
+ },
+})
+
+-- woodglass door
+
+minetest.register_craft( {
+ output = "homedecor:door_woodglass_left",
+ recipe = {
+ { "group:wood", "default:glass", "" },
+ { "group:wood", "default:glass", "technic:brass_ingot" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- woodglass door type 2
+
+minetest.register_craft( {
+ output = "homedecor:door_woodglass2_left",
+ recipe = {
+ { "default:glass", "default:glass", "" },
+ { "group:wood", "group:wood", "default:iron_lump" },
+ { "group:wood", "group:wood", "" },
+ },
+})
+
+-- laundry stuff
+
+minetest.register_craft( {
+ output = "homedecor:washing_machine",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:washing_machine",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dryer",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_empty", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dryer",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" },
+ { "default:steel_ingot", "bucket:bucket_empty", "technic:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:ironing_board",
+ recipe = {
+ { "wool:grey", "wool:grey", "wool:grey"},
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "default:steel_ingot" }
+ },
+})
+
+-- dishwashers
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher",
+ recipe = {
+ { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
+ { "default:steel_ingot", "homedecor:shower_head", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher",
+ recipe = {
+ { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
+ { "default:steel_ingot", "homedecor:shower_head", "technic:motor" },
+ { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "stairs:slab_wood" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "moreblocks:slab_wood" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_wood",
+ recipe = {
+ { "moreblocks:slab_wood_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_steel",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "", "homedecor:dishwasher", "" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_steel",
+ recipe = {
+ { "moreblocks:slab_steelblock_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_marble",
+ recipe = {
+ { "building_blocks:slab_marble" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_marble",
+ recipe = {
+ { "technic:slab_marble_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:dishwasher_granite",
+ recipe = {
+ { "technic:slab_granite_1" },
+ { "homedecor:dishwasher" },
+ },
+})
+
+-- paintings
+
+minetest.register_craft({
+ output = "homedecor:blank_canvas",
+ recipe = {
+ { "", "group:stick", "" },
+ { "group:stick", "wool:white", "group:stick" },
+ { "", "group:stick", "" },
+ }
+})
+
+local painting_patterns = {
+ [1] = { { "brown", "red", "brown" },
+ { "dark_green", "red", "green" } },
+
+ [2] = { { "green", "yellow", "green" },
+ { "green", "yellow", "green" } },
+
+ [3] = { { "green", "pink", "green" },
+ { "brown", "pink", "brown" } },
+
+ [4] = { { "black", "orange", "grey" },
+ { "dark_green", "orange", "orange" } },
+
+ [5] = { { "blue", "orange", "yellow" },
+ { "green", "red", "brown" } },
+
+ [6] = { { "green", "red", "orange" },
+ { "orange", "yellow", "green" } },
+
+ [7] = { { "blue", "dark_green", "dark_green" },
+ { "green", "grey", "green" } },
+
+ [8] = { { "blue", "blue", "blue" },
+ { "green", "green", "green" } },
+
+ [9] = { { "blue", "blue", "dark_green" },
+ { "green", "grey", "dark_green" } },
+
+ [10] = { { "green", "white", "green" },
+ { "dark_green", "white", "dark_green" } },
+
+ [11] = { { "blue", "white", "blue" },
+ { "blue", "grey", "dark_green" } },
+
+ [12] = { { "green", "green", "green" },
+ { "grey", "grey", "green" } },
+
+ [13] = { { "blue", "blue", "grey" },
+ { "dark_green", "white", "white" } },
+
+ [14] = { { "red", "yellow", "blue" },
+ { "blue", "green", "violet" } },
+
+ [15] = { { "blue", "yellow", "blue" },
+ { "black", "black", "black" } },
+
+ [16] = { { "red", "orange", "blue" },
+ { "black", "dark_grey", "grey" } },
+
+ [17] = { { "orange", "yellow", "orange" },
+ { "black", "black", "black" } },
+
+ [18] = { { "grey", "dark_green", "grey" },
+ { "white", "white", "white" } },
+
+ [19] = { { "white", "brown", "green" },
+ { "green", "brown", "brown" } },
+
+ [20] = { { "blue", "blue", "blue" },
+ { "red", "brown", "grey" } }
+}
+
+for i,recipe in pairs(painting_patterns) do
+
+ local item1 = "dye:"..recipe[1][1]
+ local item2 = "dye:"..recipe[1][2]
+ local item3 = "dye:"..recipe[1][3]
+ local item4 = "dye:"..recipe[2][1]
+ local item5 = "dye:"..recipe[2][2]
+ local item6 = "dye:"..recipe[2][3]
+
+ minetest.register_craft({
+ output = "homedecor:painting_"..i,
+ recipe = {
+ { item1, item2, item3 },
+ { item4, item5, item6 },
+ {"", "homedecor:blank_canvas", "" }
+ }
+ })
+end
+
+-- more misc stuff here
+
+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:fishtank",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:glowlight_small_cube", "homedecor:plastic_sheeting" },
+ { "default:glass", "bucket:bucket_water", "default:glass" },
+ { "default:glass", "building_blocks:gravel_spread", "default:glass" },
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} }
+})
+
+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" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:cardboard_box 2",
+ recipe = {
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "default:paper", "default:paper" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:cardboard_box_big 2",
+ recipe = {
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "", "default:paper" },
+ { "default:paper", "default:paper", "default:paper" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:filing_cabinet",
+ recipe = {
+ { "", "default:wood", "" },
+ { "default:wood", "homedecor:drawer_small", "default:wood" },
+ { "", "default:wood", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:analog_clock_plastic 2",
+ recipe = {
+ { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:analog_clock_wood 2",
+ recipe = {
+ { "group:stick", "dye:black", "group:stick" },
+ { "group:stick", "homedecor:ic", "group:stick" },
+ { "group:stick", "dye:black", "group:stick" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:digital_clock 2",
+ recipe = {
+ { "homedecor:plastic_sheeting", "default:paper", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:alarm_clock",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:speaker_driver", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:digital_clock", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:air_conditioner",
+ recipe = {
+ { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:fan_blades", "homedecor:motor" },
+ { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:air_conditioner",
+ recipe = {
+ { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" },
+ { "default:steel_ingot", "technic:motor", "default:steel_ingot" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_fan",
+ recipe = {
+ { "homedecor:motor" },
+ { "homedecor:fan_blades" },
+ { "homedecor:glowlight_small_cube" }
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_fan",
+ recipe = {
+ { "technic:motor" },
+ { "homedecor:fan_blades" },
+ { "homedecor:glowlight_small_cube" }
+ }
+})
+
+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({
+ type = "shapeless",
+ output = "homedecor:window_plain 8",
+ recipe = {
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ "dye:white",
+ "building_blocks:woodglass"
+ }
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:window_quartered",
+ recipe = {
+ "dye:white",
+ "group:stick",
+ "group:stick",
+ "homedecor:window_plain"
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:vcr 2",
+ recipe = {
+ { "homedecor:ic", "default:steel_ingot", "homedecor:plastic_sheeting" },
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dvd_player 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:obsidian_glass", "homedecor:motor", "homedecor:motor" },
+ { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dvd_player 2",
+ recipe = {
+ { "", "homedecor:plastic_sheeting", "" },
+ { "default:obsidian_glass", "technic:motor", "technic:motor" },
+ { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" },
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:dvd_vcr",
+ recipe = {
+ "homedecor:vcr",
+ "homedecor:dvd_player"
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:blinds_thin",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" },
+ { "farming:string", "homedecor:plastic_strips", "" },
+ { "", "homedecor:plastic_strips", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:blinds_thick",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" },
+ { "farming:string", "homedecor:plastic_strips", "homedecor:plastic_strips" },
+ { "", "homedecor:plastic_strips", "homedecor:plastic_strips" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:openframe_bookshelf",
+ recipe = {
+ {"group:wood", "", "group:wood"},
+ {"default:book", "default:book", "default:book"},
+ {"group:wood", "", "group:wood"},
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:desk_fan",
+ recipe = {
+ {"default:steel_ingot", "homedecor:fan_blades", "homedecor:motor"},
+ {"", "default:steel_ingot", ""}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:space_heater",
+ recipe = {
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "homedecor:fan_blades", "homedecor:motor"},
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:radiator",
+ recipe = {
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" },
+ { "homedecor:ic", "homedecor:heating_element", "" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+-- bathroom/kitchen tiles
+
+local color_pairings = {
+ { "grey", "white", "1" },
+ { "dark_grey", "white", "2" },
+ { "black", "white", "3" },
+ { "black", "dark_grey", "4" },
+ { "red", "white", "red" },
+ { "green", "white", "green" },
+ { "blue", "white", "blue" },
+ { "yellow", "white", "yellow" },
+ { "brown", "white", "tan" }
+}
+
+for i in ipairs(color_pairings) do
+ local dye1 = color_pairings[i][1]
+ local dye2 = color_pairings[i][2]
+ local result = color_pairings[i][3]
+ minetest.register_craft( {
+ output = "homedecor:tiles_"..result.." 2",
+ recipe = {
+ { "group:marble", "dye:"..dye1 },
+ { "group:marble", "dye:"..dye2 }
+ },
+ })
+end
+
+-- misc electrical
+
+minetest.register_craft( {
+ output = "homedecor:power_outlet",
+ recipe = {
+ {"homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"homedecor:plastic_sheeting", ""},
+ {"homedecor:plastic_sheeting", "homedecor:copper_strip"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:light_switch",
+ recipe = {
+ {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:copper_strip"},
+ {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"}
+ },
+})
+
+-- doghouse
+
+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"}
+ },
+})
+
+-- japanese walls and mat
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"group:stick", "default:paper"},
+ {"default:paper", "group:stick"},
+ {"group:stick", "default:paper"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"default:paper", "group:stick"},
+ {"group:stick", "default:paper"},
+ {"default:paper", "group:stick"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_middle",
+ recipe = {
+ {"homedecor:japanese_wall_top"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_bottom",
+ recipe = {
+ {"homedecor:japanese_wall_middle"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:japanese_wall_top",
+ recipe = {
+ {"homedecor:japanese_wall_bottom"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:tatami_mat",
+ recipe = {
+ {"farming:wheat", "farming:wheat", "farming:wheat"}
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:wardrobe",
+ recipe = {
+ { "homedecor:drawer_small", "homedecor:kitchen_cabinet" },
+ { "homedecor:drawer_small", "default:wood" },
+ { "homedecor:drawer_small", "default:wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:pool_table",
+ recipe = {
+ { "wool:dark_green", "wool:dark_green", "wool:dark_green" },
+ { "building_blocks:hardwood", "building_blocks:hardwood", "building_blocks:hardwood" },
+ { "building_blocks:slab_hardwood", "", "building_blocks:slab_hardwood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:trash_can 3",
+ recipe = {
+ { "homedecor:steel_wire", "", "homedecor:steel_wire" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:telephone",
+ recipe = {
+ { "homedecor:speaker_driver", "homedecor:copper_wire", "homedecor:speaker_driver" },
+ { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cobweb_corner 5",
+ recipe = {
+ { "farming:string", "", "farming:string" },
+ { "", "farming:string", "" },
+ { "farming:string", "", "farming:string" }
+ },
+})
+
+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: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" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:doorbell",
+ recipe = {
+ { "homedecor:light_switch", "homedecor:power_crystal", "homedecor:speaker_driver" }
+ },
+})
+
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_1",
+ recipe = {
+ { "group:wood", "group:wood", "group:wood" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_2_left",
+ recipe = {
+ { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "stairs:slab_wood", "", "stairs:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bench_large_2_left",
+ recipe = {
+ { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" },
+ { "group:wood", "group:wood", "group:wood" },
+ { "moreblocks:slab_wood", "", "moreblocks:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:kitchen_faucet",
+ recipe = {
+ { "", "default:steel_ingot" },
+ { "default:steel_ingot", "" },
+ { "homedecor:taps", "" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cutlery_set",
+ recipe = {
+ { "", "vessels:drinking_glass", "" },
+ { "homedecor:steel_strip", "building_blocks:slab_marble", "homedecor:steel_strip" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:cutlery_set",
+ recipe = {
+ { "", "vessels:drinking_glass", "" },
+ { "homedecor:steel_strip", "building_blocks:micro_marble_1", "homedecor:steel_strip" },
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:simple_bench",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "stairs:slab_wood", "", "stairs:slab_wood" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:simple_bench",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "moreblocks:slab_wood", "", "moreblocks:slab_wood" }
+ },
+})
+
+local bedcolors = {
+ { "red", "red"},
+ { "orange", "orange" },
+ { "yellow", "yellow"},
+ { "green", "dark_green"},
+ { "blue", "blue"},
+ { "violet", "violet"},
+ { "pink", "pink"},
+ { "darkgrey", "dark_grey"},
+ { "brown", "brown" },
+}
+
+for c in ipairs(bedcolors) do
+ local color = bedcolors[c][1]
+ local woolcolor = bedcolors[c][2]
+
+ minetest.register_craft( {
+ output = "homedecor:bed_"..color.."_regular",
+ recipe = {
+ { "group:stick", "", "group:stick" },
+ { "wool:white", "wool:"..woolcolor, "wool:"..woolcolor },
+ { "group:wood", "", "group:wood" },
+ },
+ })
+
+ minetest.register_craft( {
+ output = "homedecor:bed_"..color.."_kingsize",
+ recipe = {
+ { "homedecor:bed_"..color.."_regular", "homedecor:bed_"..color.."_regular" }
+ },
+ })
+
+end
+
+minetest.register_craft( {
+ output = "homedecor:bottle_green",
+ recipe = {
+ { "vessels:glass_bottle", "dye:green" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bottle_brown",
+ recipe = {
+ { "vessels:glass_bottle", "dye:brown" }
+ },
+})
+
+if not minetest.get_modpath("glooptest") then
+
+ minetest.register_craft({
+ output = "glooptest:chainlink 12",
+ recipe = {
+ {"", "default:steel_ingot", "default:steel_ingot"},
+ { "default:steel_ingot", "", "default:steel_ingot" },
+ { "default:steel_ingot", "default:steel_ingot", "" },
+ },
+ })
+
+end
+
+minetest.register_alias("homedecor:chainlink_steel", "glooptest:chainlink")
+
+minetest.register_craft({
+ output = "homedecor:chains 4",
+ recipe = {
+ { "default:steel_ingot", "", "default:steel_ingot"},
+ { "glooptest:chainlink", "", "glooptest:chainlink" },
+ { "glooptest:chainlink", "", "glooptest:chainlink" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:chainlink_brass 12",
+ recipe = {
+ {"", "technic:brass_ingot", "technic:brass_ingot"},
+ { "technic:brass_ingot", "", "technic:brass_ingot" },
+ { "technic:brass_ingot", "technic:brass_ingot", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:coffee_maker",
+ recipe = {
+ {"homedecor:plastic_sheeting", "bucket:bucket_water", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting"},
+ {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:dartboard",
+ recipe = {
+ {"dye:black", "homedecor:plastic_sheeting", "dye:white"},
+ {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting"},
+ {"dye:dark_green", "homedecor:plastic_sheeting", "dye:red"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:piano",
+ recipe = {
+ { "", "homedecor:steel_wire", "building_blocks:hardwood" },
+ { "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" },
+ { "technic:brass_ingot", "default:steelblock", "building_blocks:hardwood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:toaster",
+ recipe = {
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:deckchair",
+ recipe = {
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" },
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" },
+ { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:deckchair_striped_blue",
+ type = "shapeless",
+ recipe = {
+ "homedecor:deckchair",
+ "dye:blue"
+ }
+})
+
+minetest.register_craft({
+ output = "homedecor:office_chair_basic",
+ recipe = {
+ { "", "", "wool:black" },
+ { "", "wool:black", "default:steel_ingot" },
+ { "group:stick", "homedecor:pole_wrought_iron", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:office_chair_upscale",
+ recipe = {
+ { "dye:black", "building_blocks:sticks", "group:wool" },
+ { "homedecor:plastic_sheeting", "group:wool", "default:steel_ingot" },
+ { "building_blocks:sticks", "homedecor:pole_wrought_iron", "building_blocks:sticks" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_shelf 2",
+ recipe = {
+ { "homedecor:wood_table_small_square", "homedecor:curtainrod_wood", "homedecor:curtainrod_wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:trophy 3",
+ recipe = {
+ { "default:gold_ingot","","default:gold_ingot" },
+ { "","default:gold_ingot","" },
+ { "group:wood","default:gold_ingot","group:wood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:grandfather_clock",
+ recipe = {
+ { "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
+ { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" },
+ { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:sportbench",
+ recipe = {
+ { "stairs:slab_steelblock","homedecor:pole_wrought_iron","stairs:slab_steelblock" },
+ { "default:steel_ingot","wool:black","default:steel_ingot" },
+ { "default:steel_ingot","wool:black","default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:skateboard",
+ recipe = {
+ { "dye:yellow","dye:green","dye:blue" },
+ { "homedecor:wood_table_small_square","homedecor:wood_table_small_square","homedecor:wood_table_small_square" },
+ { "default:steel_ingot","","default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:copper_pans",
+ recipe = {
+ { "homedecor:copper_strip","","homedecor:copper_strip" },
+ { "default:copper_ingot","","default:copper_ingot" },
+ { "default:copper_ingot","","default:copper_ingot" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:window_flowerbox",
+ recipe = {
+ { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" },
+ { "", "homedecor:roof_tile_terracotta", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:paper_towel",
+ recipe = {
+ { "homedecor:toilet_paper", "homedecor:toilet_paper" }
+ },
+})
+
+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" },
+ { "homedecor:pole_wrought_iron","default:steel_ingot","homedecor:pole_wrought_iron" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:drink_tap",
+ recipe = {
+ { "group:stick","default:steel_ingot","group:stick" },
+ { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" },
+ { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }
+ },
+})
+-- already done in gastronomy.lua: minetest.register_alias("homedecor:beer_tap", "homedecor:drink_tap")
+
+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" }
+ },
+})
+
+local bookcolors = {
+ "red",
+ "green",
+ "blue",
+ "violet",
+ "grey",
+ "brown"
+}
+
+for _, color in ipairs(bookcolors) do
+ minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:book_"..color,
+ recipe = {
+ "dye:"..color,
+ "default:book"
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "homedecor:door_japanese_closed",
+ recipe = {
+ { "homedecor:japanese_wall_top" },
+ { "homedecor:japanese_wall_bottom" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:calendar",
+ recipe = {
+ { "","dye:red","" },
+ { "","dye:black","" },
+ { "","default:paper","" }
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_brown",
+ recipe = {
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown"
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_green",
+ recipe = {
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green"
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:4_bottles_multi",
+ recipe = {
+ "homedecor:bottle_brown",
+ "homedecor:bottle_brown",
+ "homedecor:bottle_green",
+ "homedecor:bottle_green",
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:drink_rack",
+ recipe = {
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ { "homedecor:4_bottles_brown", "group:wood", "homedecor:4_bottles_brown" },
+ },
+})
+minetest.register_alias("homedecor:wine_rack", "homedecor:drink_rack")
+
+
+local picture_dyes = {
+ {"dye:brown", "dye:green"}, -- the figure sitting by the tree, wielding a pick
+ {"dye:green", "dye:blue"} -- the "family photo"
+}
+
+for i in ipairs(picture_dyes) do
+ minetest.register_craft({
+ output = "homedecor:picture_frame"..i,
+ recipe = {
+ { picture_dyes[i][1], picture_dyes[i][2] },
+ { "homedecor:blank_canvas", "group:stick" },
+ },
+ })
+end
+
+local dlamp_colors = { "red","blue","green","violet" }
+
+for _, color in ipairs(dlamp_colors) do
+ minetest.register_craft({
+ output = "homedecor:desk_lamp_"..color,
+ recipe = {
+ { "", "homedecor:steel_strip", "homedecor:glowlight_small_cube" },
+ { "", "homedecor:copper_wire", "" },
+ { "homedecor:plastic_sheeting", "dye:"..color, "homedecor:plastic_sheeting" },
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "homedecor:hanging_lantern 2",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "" },
+ { "default:iron_lump", "homedecor:lattice_lantern_large", "" },
+ { "default:iron_lump", "", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lantern 2",
+ recipe = {
+ { "default:iron_lump", "default:iron_lump", "default:iron_lump" },
+ { "default:iron_lump", "homedecor:lattice_lantern_large", "default:iron_lump" },
+ { "", "default:iron_lump", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:wall_lamp 2",
+ recipe = {
+ { "", "homedecor:lattice_lantern_large", "" },
+ { "default:iron_lump", "group:stick", "" },
+ { "default:iron_lump", "group:stick", "" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "dye:green" },
+ { "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "group:stick", "stairs:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "homedecor:plastic_sheeting", "dye:green" },
+ { "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "group:stick", "moreblocks:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:tool_cabinet",
+ recipe = {
+ { "homedecor:motor", "default:axe_steel", "default:pick_steel" },
+ { "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" },
+ { "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:bathroom_set",
+ recipe = {
+ { "", "homedecor:glass_table_small_round", "" },
+ { "homedecor:plastic_sheeting", "homedecor:glass_table_small_round", "homedecor:plastic_sheeting" },
+ { "group:stick", "homedecor:plastic_sheeting", "group:stick" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:trash_can_green",
+ recipe = {
+ { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "dye:green", "homedecor:plastic_sheeting" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lamp",
+ recipe = {
+ { "", "technic:brass_ingot", ""},
+ { "", "homedecor:chainlink_brass", ""},
+ { "default:glass", "homedecor:glowlight_small", "default:glass"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:ceiling_lamp",
+ recipe = {
+ { "", "chains:chain_top_brass", ""},
+ { "default:glass", "homedecor:glowlight_small", "default:glass"}
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:spiral_staircase",
+ recipe = {
+ { "default:steelblock", "homedecor:pole_wrought_iron", "" },
+ { "", "homedecor:pole_wrought_iron", "default:steelblock" },
+ { "default:steelblock", "homedecor:pole_wrought_iron", "" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:soda_machine",
+ recipe = {
+ {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+ {"default:steel_ingot", "dye:red", "default:steel_ingot"},
+ {"default:steel_ingot", "default:copperblock", "default:steel_ingot"},
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 5",
+ recipe = {"moreblocks:micro_goldblock_1", "default:sword_stone"}
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 15",
+ recipe = {"default:gold_ingot", "default:sword_steel"}
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "homedecor:coin 50",
+ recipe = {"default:goldblock", "default:sword_mese"}
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_wood 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_white_wood 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "dye:white", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_wood_vegetal 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "group:leaves", "group:wood"},
+ {"group:stick", "group:wood", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:lattice_white_wood_vegetal 8",
+ recipe = {
+ {"group:stick", "group:wood", "group:stick"},
+ {"group:wood", "group:leaves", "group:wood"},
+ {"group:stick", "dye:white", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 8",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "default:glass", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "xpanes:pane", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craftitem("homedecor:flower_pot_small", {
+ description = S("Small Flower Pot"),
+ inventory_image = "homedecor_flowerpot_small_inv.png"
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_small",
+ recipe = {
+ { "default:clay_brick", "", "default:clay_brick" },
+ { "", "default:clay_brick", "" }
+ }
+})
+
+minetest.register_craft( {
+ output = "homedecor:flower_pot_small 3",
+ recipe = { { "homedecor:flower_pot_terracotta" } }
+})
+
+minetest.register_craft({
+ output = "homedecor:shrubbery_green 3",
+ recipe = {
+ { "group:leaves", "group:leaves", "group:leaves" },
+ { "group:leaves", "group:leaves", "group:leaves" },
+ { "group:stick", "group:stick", "group:stick" }
+ }
+})
+
+for _, color in ipairs(homedecor.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
+
+for i in ipairs(homedecor.banister_materials) do
+
+ local name = homedecor.banister_materials[i][1]
+ local topmat = homedecor.banister_materials[i][5]
+ local vertmat = homedecor.banister_materials[i][6]
+ local dye1 = homedecor.banister_materials[i][7]
+ local dye2 = homedecor.banister_materials[i][8]
+
+ minetest.register_craft({
+ output = "homedecor:banister_"..name.."_horizontal 2",
+ recipe = {
+ { topmat, "", dye1 },
+ { vertmat, topmat, "" },
+ { dye2, vertmat, topmat }
+ },
+ })
+end
+
+if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then
+ technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} })
+end
diff --git a/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/gastronomy.lua b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/gastronomy.lua
new file mode 100644
index 0000000..81a29d1
--- /dev/null
+++ b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/gastronomy.lua
@@ -0,0 +1,209 @@
+
+local cutlery_cbox = {
+ type = "fixed",
+ fixed = {
+ { -5/16, -8/16, -6/16, 5/16, -7/16, 2/16 },
+ { -2/16, -8/16, 2/16, 2/16, -4/16, 6/16 }
+ }
+}
+
+homedecor.register("cutlery_set", {
+ drawtype = "mesh",
+ mesh = "homedecor_cutlery_set.obj",
+ tiles = { "homedecor_cutlery_set.png" },
+ inventory_image = "homedecor_cutlery_set_inv.png",
+ description = "Cutlery set",
+ groups = {snappy=3},
+ selection_box = cutlery_cbox,
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+})
+
+local bottle_cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.125, -0.5, -0.125, 0.125, 0, 0.125}
+ }
+}
+
+local fbottle_cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.375, -0.5, -0.3125, 0.375, 0, 0.3125 }
+ }
+}
+
+local bottle_colors = {"brown", "green"}
+
+for _, b in ipairs(bottle_colors) do
+
+ homedecor.register("bottle_"..b, {
+ tiles = { "homedecor_bottle_"..b..".png" },
+ inventory_image = "homedecor_bottle_"..b.."_inv.png",
+ description = "Bottle ("..b..")",
+ mesh = "homedecor_bottle.obj",
+ walkable = false,
+ groups = {snappy=3},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = bottle_cbox
+ })
+
+ -- 4-bottle sets
+
+ homedecor.register("4_bottles_"..b, {
+ tiles = {
+ "homedecor_bottle_"..b..".png",
+ "homedecor_bottle_"..b..".png"
+ },
+ inventory_image = "homedecor_4_bottles_"..b.."_inv.png",
+ description = "Four "..b.." bottles",
+ mesh = "homedecor_4_bottles.obj",
+ walkable = false,
+ groups = {snappy=3},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = fbottle_cbox
+ })
+end
+
+homedecor.register("4_bottles_multi", {
+ tiles = {
+ "homedecor_bottle_brown.png",
+ "homedecor_bottle_green.png"
+ },
+ inventory_image = "homedecor_4_bottles_multi_inv.png",
+ description = "Four misc brown/green bottles",
+ mesh = "homedecor_4_bottles.obj",
+ groups = {snappy=3},
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = fbottle_cbox
+})
+
+local wine_cbox = homedecor.nodebox.slab_z(-0.75)
+homedecor.register("drink_rack", {
+ description = "Drink rack",
+ mesh = "homedecor_wine_rack.obj",
+ tiles = {
+ "homedecor_generic_wood_red.png",
+ "homedecor_bottle_brown.png",
+ "homedecor_bottle_brown2.png",
+ "homedecor_bottle_brown3.png",
+ "homedecor_bottle_brown4.png"
+ },
+ inventory_image = "homedecor_wine_rack_inv.png",
+ groups = {choppy=2},
+ selection_box = wine_cbox,
+ collision_box = wine_cbox,
+ sounds = default.node_sound_defaults(),
+})
+
+homedecor.register("dartboard", {
+ description = "Dartboard",
+ mesh = "homedecor_dartboard.obj",
+ tiles = { "homedecor_dartboard.png" },
+ inventory_image = "homedecor_dartboard_inv.png",
+ wield_image = "homedecor_dartboard_inv.png",
+ paramtype2 = "wallmounted",
+ walkable = false,
+ selection_box = {
+ type = "wallmounted",
+ },
+ groups = {choppy=2,dig_immediate=2,attached_node=1},
+ legacy_wallmounted = true,
+ sounds = default.node_sound_wood_defaults(),
+})
+
+homedecor.register("drink_tap", {
+ description = "Drink tap",
+ mesh = "homedecor_beer_taps.obj",
+ tiles = {
+ "homedecor_generic_metal_bright.png",
+ { name = "homedecor_generic_metal.png", color = homedecor.color_black }
+ },
+ inventory_image = "homedecor_beertap_inv.png",
+ groups = { snappy=3 },
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 }
+ },
+ on_punch = function(pos, node, puncher, pointed_thing)
+ local wielditem = puncher:get_wielded_item()
+ local inv = puncher:get_inventory()
+
+ local wieldname = wielditem:get_name()
+ if wieldname == "vessels:drinking_glass" then
+ if inv:room_for_item("main", "homedecor:drink_mug 1") then
+ wielditem:take_item()
+ puncher:set_wielded_item(wielditem)
+ inv:add_item("main", "homedecor:drink_mug 1")
+ minetest.chat_send_player(puncher:get_player_name(), "Ahh, a nice cold drink - look in your inventory for it!")
+ else
+ minetest.chat_send_player(puncher:get_player_name(), "No room in your inventory to add a drink mug!")
+ end
+ end
+ end
+})
+minetest.register_alias("homedecor:beer_tap", "homedecor:drink_tap")
+
+minetest.register_craft({
+ output = "homedecor:drink_tap",
+ recipe = {
+ { "group:stick","default:steel_ingot","group:stick" },
+ { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" },
+ { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }
+ },
+})
+
+local beer_cbox = {
+ type = "fixed",
+ fixed = { -5/32, -8/16, -9/32 , 7/32, -2/16, 1/32 }
+}
+
+homedecor.register("drink_mug", {
+ description = "Drink mug",
+ drawtype = "mesh",
+ mesh = "homedecor_beer_mug.obj",
+ tiles = { "homedecor_beer_mug.png" },
+ inventory_image = "homedecor_beer_mug_inv.png",
+ groups = { snappy=3, oddly_breakable_by_hand=3 },
+ walkable = false,
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = beer_cbox,
+ on_use = minetest.item_eat(2)
+})
+minetest.register_alias("homedecor:beer_mug", "homedecor:drink_mug")
+
+local svm_cbox = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
+}
+
+homedecor.register("soda_machine", {
+ description = "Soda Vending Machine",
+ mesh = "homedecor_soda_machine.obj",
+ tiles = {"homedecor_soda_machine.png"},
+ groups = {snappy=3},
+ selection_box = svm_cbox,
+ collision_box = svm_cbox,
+ expand = { top="placeholder" },
+ sounds = default.node_sound_wood_defaults(),
+ on_rotate = screwdriver.rotate_simple,
+ on_punch = function(pos, node, puncher, pointed_thing)
+ local wielditem = puncher:get_wielded_item()
+ local wieldname = wielditem:get_name()
+ local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
+ local fdir = node.param2
+ local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] }
+ if wieldname == "homedecor:coin" then
+ wielditem:take_item()
+ puncher:set_wielded_item(wielditem)
+ minetest.spawn_item(pos_drop, "homedecor:soda_can")
+ minetest.sound_play("insert_coin", {
+ pos=pos, max_hear_distance = 5
+ })
+ else
+ minetest.chat_send_player(puncher:get_player_name(), "Please insert a coin in the machine.")
+ end
+ end
+})
diff --git a/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/models/homedecor_beer_mug.obj b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/models/homedecor_beer_mug.obj
new file mode 100644
index 0000000..4e1d6e7
--- /dev/null
+++ b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/models/homedecor_beer_mug.obj
@@ -0,0 +1,421 @@
+# Blender v2.73 (sub 0) OBJ File: 'beer_mug.blend'
+# www.blender.org
+o Torus.001
+v -0.200872 -0.271336 -0.101373
+v 0.027435 -0.500000 0.013804
+v 0.078127 -0.500000 -0.007193
+v -0.213731 -0.262707 -0.113186
+v 0.116925 -0.500000 -0.045991
+v 0.137922 -0.500000 -0.096683
+v -0.201779 -0.214262 -0.136814
+v 0.137922 -0.500000 -0.151551
+v 0.116925 -0.500000 -0.202243
+v -0.190840 -0.230675 -0.148627
+v 0.078127 -0.500000 -0.241041
+v 0.027435 -0.500000 -0.262038
+v -0.179901 -0.247087 -0.136814
+v -0.027433 -0.500000 -0.262038
+v -0.078125 -0.500000 -0.241041
+v -0.179901 -0.247087 -0.113186
+v -0.116923 -0.500000 -0.202243
+v -0.137920 -0.500000 -0.151551
+v -0.190840 -0.230675 -0.101373
+v -0.137920 -0.500000 -0.096682
+v -0.116923 -0.500000 -0.045991
+v -0.201779 -0.214262 -0.113186
+v -0.078125 -0.500000 -0.007193
+v -0.027433 -0.500000 0.013804
+v -0.183162 -0.175815 -0.136814
+v 0.024062 -0.166667 -0.003152
+v 0.068522 -0.166667 -0.021568
+v -0.175215 -0.198406 -0.148627
+v 0.102550 -0.166667 -0.055596
+v 0.120966 -0.166667 -0.100055
+v -0.167267 -0.220996 -0.136814
+v 0.120966 -0.166667 -0.148178
+v 0.102550 -0.166667 -0.192638
+v -0.167267 -0.220996 -0.113186
+v 0.068522 -0.166667 -0.226666
+v 0.024062 -0.166667 -0.245082
+v -0.175215 -0.198406 -0.101373
+v -0.024061 -0.166667 -0.245082
+v -0.068520 -0.166667 -0.226666
+v -0.183162 -0.175815 -0.113186
+v -0.102548 -0.166667 -0.192638
+v -0.120964 -0.166667 -0.148178
+v -0.159704 -0.151131 -0.136814
+v -0.120964 -0.166667 -0.100055
+v -0.102548 -0.166667 -0.055596
+v -0.155526 -0.177688 -0.148627
+v -0.068520 -0.166667 -0.021568
+v -0.024060 -0.166667 -0.003152
+v -0.151348 -0.204244 -0.136814
+v 0.027435 -0.125001 0.013804
+v 0.078127 -0.125001 -0.007193
+v -0.151348 -0.204244 -0.113186
+v 0.116925 -0.125001 -0.045991
+v 0.137922 -0.125001 -0.096683
+v -0.155526 -0.177688 -0.101373
+v 0.137922 -0.125001 -0.151551
+v 0.116925 -0.125001 -0.202243
+v -0.159704 -0.151131 -0.113186
+v 0.078127 -0.125001 -0.241041
+v 0.027435 -0.125001 -0.262038
+v -0.133701 -0.142626 -0.136814
+v -0.027433 -0.125001 -0.262038
+v -0.078125 -0.125001 -0.241041
+v -0.133701 -0.170549 -0.148627
+v -0.116923 -0.125001 -0.202243
+v -0.137921 -0.125001 -0.151551
+v -0.133701 -0.198472 -0.136814
+v -0.137921 -0.125001 -0.096682
+v -0.116923 -0.125001 -0.045991
+v -0.133701 -0.198472 -0.113186
+v -0.078125 -0.125001 -0.007193
+v -0.027433 -0.125001 0.013804
+v -0.133701 -0.170549 -0.101373
+v 0.024062 -0.125001 -0.003152
+v 0.068522 -0.125001 -0.021568
+v -0.133701 -0.142626 -0.113186
+v 0.102550 -0.125001 -0.055596
+v 0.120966 -0.125001 -0.100055
+v -0.133701 -0.490192 -0.136814
+v 0.120966 -0.125001 -0.148178
+v 0.102550 -0.125001 -0.192638
+v -0.133701 -0.462269 -0.148627
+v 0.068522 -0.125001 -0.226666
+v 0.024062 -0.125001 -0.245082
+v -0.133701 -0.434346 -0.136814
+v -0.024061 -0.125001 -0.245082
+v -0.068520 -0.125001 -0.226666
+v -0.133701 -0.434346 -0.113186
+v -0.102548 -0.125001 -0.192638
+v -0.120964 -0.125001 -0.148178
+v -0.133701 -0.462269 -0.101373
+v -0.120964 -0.125001 -0.100055
+v -0.102548 -0.125001 -0.055596
+v -0.133701 -0.490192 -0.113186
+v -0.068520 -0.125001 -0.021568
+v -0.024061 -0.125001 -0.003152
+v -0.188013 -0.279964 -0.113186
+v -0.188013 -0.279964 -0.136814
+v -0.200872 -0.271336 -0.148627
+v -0.213731 -0.262707 -0.136814
+v -0.217850 -0.316409 -0.113186
+v -0.204329 -0.316409 -0.101373
+v -0.190808 -0.316409 -0.113186
+v -0.190808 -0.316409 -0.136814
+v -0.204329 -0.316409 -0.148627
+v -0.217850 -0.316409 -0.136814
+v -0.213731 -0.370111 -0.113186
+v -0.200872 -0.361482 -0.101373
+v -0.188013 -0.352853 -0.113186
+v -0.188013 -0.352853 -0.136814
+v -0.200872 -0.361482 -0.148627
+v -0.213731 -0.370111 -0.136814
+v -0.201779 -0.418556 -0.113186
+v -0.190840 -0.402143 -0.101373
+v -0.179901 -0.385730 -0.113186
+v -0.179901 -0.385730 -0.136814
+v -0.190840 -0.402143 -0.148627
+v -0.201779 -0.418556 -0.136814
+v -0.183162 -0.457002 -0.113186
+v -0.175215 -0.434412 -0.101373
+v -0.167268 -0.411822 -0.113186
+v -0.167268 -0.411822 -0.136814
+v -0.175215 -0.434412 -0.148627
+v -0.183162 -0.457002 -0.136814
+v -0.159704 -0.481686 -0.113186
+v -0.155526 -0.455130 -0.101373
+v -0.151348 -0.428574 -0.113186
+v -0.151348 -0.428574 -0.136814
+v -0.155526 -0.455130 -0.148627
+v -0.159704 -0.481686 -0.136814
+vt 0.156250 0.218750
+vt 0.156250 0.187500
+vt 0.218750 0.187500
+vt 0.218750 0.218750
+vt 0.465889 0.405864
+vt 0.537350 0.405864
+vt 0.603372 0.433211
+vt 0.653903 0.483742
+vt 0.681251 0.549764
+vt 0.681251 0.621226
+vt 0.653904 0.687248
+vt 0.603372 0.737779
+vt 0.537350 0.765126
+vt 0.465889 0.765126
+vt 0.399867 0.737779
+vt 0.349335 0.687248
+vt 0.321988 0.621226
+vt 0.321988 0.549764
+vt 0.349335 0.483742
+vt 0.399867 0.433211
+vt 0.625000 0.906250
+vt 0.687500 0.906250
+vt 0.687500 0.937500
+vt 0.625000 0.937500
+vt 0.937500 0.906250
+vt 1.000000 0.906250
+vt 1.000000 0.937500
+vt 0.937500 0.937500
+vt 0.250000 0.906250
+vt 0.312500 0.906250
+vt 0.312500 0.937500
+vt 0.250000 0.937500
+vt 0.562500 0.906250
+vt 0.562500 0.937500
+vt 0.875000 0.906250
+vt 0.875000 0.937500
+vt 0.187500 0.906250
+vt 0.187500 0.937500
+vt 0.812500 0.906250
+vt 0.812500 0.937500
+vt 0.437500 0.906250
+vt 0.500000 0.906250
+vt 0.500000 0.937500
+vt 0.437500 0.937500
+vt 0.125000 0.906250
+vt 0.125000 0.937500
+vt 0.750000 0.906250
+vt 0.750000 0.937500
+vt 0.375000 0.906250
+vt 0.375000 0.937500
+vt 0.062500 0.906250
+vt 0.062500 0.937500
+vt -0.000000 0.906250
+vt -0.000000 0.937500
+vt 0.281250 0.312500
+vt 0.281250 0.281250
+vt 0.343750 0.281250
+vt 0.343750 0.312500
+vt 0.093750 0.218750
+vt 0.156250 0.250000
+vt 0.093750 0.250000
+vt 0.375000 1.000000
+vt 0.312500 1.000000
+vt 0.281250 0.250000
+vt 0.343750 0.250000
+vt 0.156250 0.312500
+vt 0.156250 0.281250
+vt 0.218750 0.281250
+vt 0.218750 0.312500
+vt 0.531250 0.187500
+vt 0.593750 0.187500
+vt 0.593750 0.218750
+vt 0.531250 0.218750
+vt 0.656250 0.187500
+vt 0.656250 0.218750
+vt 0.093750 0.187500
+vt 0.218750 0.250000
+vt 0.125000 0.406250
+vt 0.187500 0.406250
+vt 0.687500 1.000000
+vt 0.625000 1.000000
+vt 0.937500 0.406250
+vt 1.000000 0.406250
+vt 0.062500 1.000000
+vt 0.125000 1.000000
+vt 0.375000 0.406250
+vt 0.437500 0.406250
+vt 0.687500 0.406250
+vt 0.750000 0.406250
+vt 0.937500 1.000000
+vt 0.875000 1.000000
+vt 0.250000 0.406250
+vt 0.187500 1.000000
+vt 0.093750 0.343750
+vt 0.093750 0.312500
+vt 0.156250 0.343750
+vt 0.500000 0.406250
+vt 0.812500 0.406250
+vt 0.437500 1.000000
+vt 0.218750 0.156250
+vt 0.281250 0.156250
+vt 0.281250 0.187500
+vt 0.750000 1.000000
+vt 0.031250 0.250000
+vt 0.031250 0.218750
+vt 0.562500 0.406250
+vt -0.000000 0.406250
+vt 0.062500 0.406250
+vt 1.000000 1.000000
+vt 0.343750 0.187500
+vt 0.343750 0.156250
+vt 0.406250 0.156250
+vt 0.406250 0.187500
+vt 0.312500 0.406250
+vt 0.625000 0.406250
+vt 0.250000 1.000000
+vt 0.406250 0.343750
+vt 0.406250 0.312500
+vt 0.468750 0.312500
+vt 0.468750 0.343750
+vt 0.875000 0.406250
+vt 0.468750 0.156250
+vt 0.468750 0.187500
+vt 0.500000 1.000000
+vt 0.812500 1.000000
+vt 0.406250 0.281250
+vt 0.406250 0.250000
+vt 0.562500 1.000000
+vt -0.000000 1.000000
+vt 0.218750 0.343750
+vt 0.531250 0.312500
+vt 0.531250 0.281250
+vt 0.593750 0.281250
+vt 0.593750 0.312500
+vt 0.468750 0.281250
+vt 0.468750 0.250000
+vt 0.531250 0.250000
+vt 0.281250 0.343750
+vt 0.593750 0.250000
+vt 0.281250 0.218750
+vt 0.343750 0.218750
+vt 0.031250 0.156250
+vt 0.093750 0.156250
+vt 0.031250 0.187500
+vt 0.813063 0.373140
+vt 0.756333 0.349641
+vt 0.712914 0.306222
+vt 0.689415 0.249492
+vt 0.689415 0.188087
+vt 0.712914 0.131357
+vt 0.756333 0.087938
+vt 0.813063 0.064439
+vt 0.874467 0.064439
+vt 0.931197 0.087938
+vt 0.974617 0.131357
+vt 0.998115 0.188088
+vt 0.998115 0.249492
+vt 0.974617 0.306222
+vt 0.931197 0.349641
+vt 0.874467 0.373140
+vt 0.156250 0.156250
+vt 0.656250 0.250000
+vt 0.031250 0.312500
+vt 0.031250 0.281250
+vt 0.093750 0.281250
+vt 0.656250 0.281250
+vt 0.656250 0.312500
+vt 0.406250 0.218750
+vt 0.468750 0.218750
+vt 0.031250 0.343750
+vt 0.656250 0.343750
+vt 0.593750 0.343750
+vt 0.531250 0.343750
+vt 0.531250 0.156250
+vt 0.593750 0.156250
+vt 0.343750 0.343750
+vt 0.656250 0.156250
+s 1
+f 120/1 121/2 115/3 114/4
+f 2/5 24/6 23/7 21/8 20/9 18/10 17/11 15/12 14/13 12/14 11/15 9/16 8/17 6/18 5/19 3/20
+f 51/21 53/22 77/23 75/24
+f 59/25 60/26 84/27 83/28
+f 66/29 68/30 92/31 90/32
+f 50/33 51/21 75/24 74/34
+f 57/35 59/25 83/28 81/36
+f 65/37 66/29 90/32 89/38
+f 56/39 57/35 81/36 80/40
+f 71/41 72/42 96/43 95/44
+f 63/45 65/37 89/38 87/46
+f 54/47 56/39 80/40 78/48
+f 69/49 71/41 95/44 93/50
+f 62/51 63/45 87/46 86/52
+f 53/22 54/47 78/48 77/23
+f 60/53 62/51 86/52 84/54
+f 111/55 112/56 106/57 105/58
+f 72/42 50/33 74/34 96/43
+f 126/59 120/1 119/60 125/61
+f 45/62 44/63 92/31 93/50
+f 106/57 112/56 107/64 101/65
+f 123/66 124/67 118/68 117/69
+f 34/70 52/71 55/72 37/73
+f 55/72 52/71 70/74 73/75
+f 126/59 127/76 121/2 120/1
+f 112/56 118/68 113/77 107/64
+f 15/78 17/79 65/37 63/45
+f 29/80 27/81 75/24 77/23
+f 11/82 12/83 60/26 59/25
+f 38/84 86/52 87/46 39/85
+f 21/86 23/87 71/41 69/49
+f 5/88 6/89 54/47 53/22
+f 35/90 33/91 81/36 83/28
+f 17/79 18/92 66/29 65/37
+f 41/93 39/85 87/46 89/38
+f 128/94 129/95 123/66 122/96
+f 23/87 24/97 72/42 71/41
+f 6/89 8/98 56/39 54/47
+f 47/99 45/62 93/50 95/44
+f 115/3 116/100 110/101 109/102
+f 30/103 29/80 77/23 78/48
+f 94/104 91/105 126/59 125/61
+f 24/97 2/106 50/33 72/42
+f 12/107 14/108 62/51 60/53
+f 36/109 35/90 83/28 84/27
+f 103/110 104/111 98/112 97/113
+f 18/92 20/114 68/30 66/29
+f 2/106 3/115 51/21 50/33
+f 42/116 41/93 89/38 90/32
+f 98/117 99/118 10/119 13/120
+f 8/98 9/121 57/35 56/39
+f 97/113 98/112 13/122 16/123
+f 48/124 47/99 95/44 96/43
+f 32/125 30/103 78/48 80/40
+f 100/126 106/57 101/65 4/127
+f 14/108 15/78 63/45 62/51
+f 118/68 112/56 111/55 117/69
+f 26/128 48/124 96/43 74/34
+f 38/84 36/129 84/54 86/52
+f 20/114 21/86 69/49 68/30
+f 122/96 123/66 117/69 116/130
+f 3/115 5/88 53/22 51/21
+f 44/63 42/116 90/32 92/31
+f 27/81 26/128 74/34 75/24
+f 28/131 25/132 43/133 46/134
+f 9/121 11/82 59/25 57/35
+f 33/91 32/125 80/40 81/36
+f 25/132 7/135 22/136 40/137
+f 116/130 117/69 111/55 110/138
+f 40/137 37/73 55/72 58/139
+f 107/64 108/140 102/141 101/65
+f 105/58 106/57 100/126 99/118
+f 43/133 25/132 40/137 58/139
+f 85/142 128/143 127/76 88/144
+f 26/145 27/146 29/147 30/148 32/149 33/150 35/151 36/152 38/153 39/154 41/155 42/156 44/157 45/158 47/159 48/160
+f 68/30 69/49 93/50 92/31
+f 127/76 128/143 122/161 121/2
+f 55/72 73/75 76/162 58/139
+f 99/118 100/126 7/135 10/119
+f 82/163 79/164 130/165 129/95
+f 119/60 120/1 114/4 113/77
+f 118/68 124/67 119/60 113/77
+f 43/133 61/166 64/167 46/134
+f 10/119 7/135 25/132 28/131
+f 130/165 124/67 123/66 129/95
+f 4/127 1/168 19/169 22/136
+f 124/67 130/165 125/61 119/60
+f 61/166 43/133 58/139 76/162
+f 110/101 104/111 103/110 109/102
+f 108/140 109/102 103/110 102/141
+f 88/144 127/76 126/59 91/105
+f 97/113 16/123 19/169 1/168
+f 82/163 129/95 128/94 85/170
+f 19/169 16/123 34/70 37/73
+f 19/169 37/73 40/137 22/136
+f 46/134 64/167 67/171 49/172
+f 114/4 108/140 107/64 113/77
+f 115/3 109/102 108/140 114/4
+f 101/65 102/141 1/168 4/127
+f 10/119 28/131 31/173 13/120
+f 16/123 13/122 31/174 34/70
+f 102/141 103/110 97/113 1/168
+f 31/174 49/175 52/71 34/70
+f 111/55 105/58 104/176 110/138
+f 7/135 100/126 4/127 22/136
+f 122/161 116/100 115/3 121/2
+f 105/58 99/118 98/117 104/176
+f 31/173 28/131 46/134 49/172
+f 130/165 79/164 94/104 125/61
+f 52/71 49/175 67/177 70/74
diff --git a/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug.png b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug.png
new file mode 100644
index 0000000..0b4b20a
Binary files /dev/null and b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug.png differ
diff --git a/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug_inv.png b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug_inv.png
new file mode 100644
index 0000000..5acdb1f
Binary files /dev/null and b/patches/subgame/mods/homedecor_modpack-0.4.15 or lower/homedecor/textures/homedecor_beer_mug_inv.png differ
diff --git a/patches/subgame/mods/homedecor_modpack/homedecor/LICENSE b/patches/subgame/mods/homedecor_modpack/homedecor/LICENSE
new file mode 100644
index 0000000..0a3df5e
--- /dev/null
+++ b/patches/subgame/mods/homedecor_modpack/homedecor/LICENSE
@@ -0,0 +1,199 @@
+For the Lua code: LGPL 3.0 or higher
+For all models, all textures, and all sounds: CC-by-SA 3.0 or higher
+For everything else: WTFPL
+
+Exceptions to the above:
+
+Fancy mesh fire model and texture by NathanS (CC-0).
+
+===============================================================================
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+===============================================================================
+
+This work is licensed under the Creative Commons Attribution-ShareAlike
+4.0 International License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
+Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+===============================================================================
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/patches/subgame/mods/homedecor_modpack/homedecor/crafts.lua b/patches/subgame/mods/homedecor_modpack/homedecor/crafts.lua
index 5f445f3..a339240 100644
--- a/patches/subgame/mods/homedecor_modpack/homedecor/crafts.lua
+++ b/patches/subgame/mods/homedecor_modpack/homedecor/crafts.lua
@@ -537,218 +537,21 @@ minetest.register_craft({
recipe = "homedecor:skylight_frosted",
})
--- Various colors of shutters
-
minetest.register_craft( {
- output = "homedecor:shutter_oak 2",
- recipe = {
+ output = "homedecor:shutter 2",
+ recipe = {
{ "group:stick", "group:stick" },
{ "group:stick", "group:stick" },
{ "group:stick", "group:stick" },
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_oak",
- burntime = 30,
-})
-
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_black 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:black"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_black",
- burntime = 30,
-})
-
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_dark_grey 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:dark_grey"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_dark_grey",
- burntime = 30,
-})
-
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_grey 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:grey"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_grey",
- burntime = 30,
-})
-
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_white 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:white"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_white",
- burntime = 30,
-})
-
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_mahogany 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:brown"
},
})
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_mahogany",
- burntime = 30,
-})
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_red 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:red"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_red",
- burntime = 30,
-})
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_yellow 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:yellow"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_yellow",
- burntime = 30,
-})
-
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_forest_green 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:dark_green"
- },
-})
-
minetest.register_craft({
type = "fuel",
- recipe = "homedecor:shutter_forest_green",
+ recipe = "homedecor:shutter_oak",
burntime = 30,
})
---
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_light_blue 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "unifieddyes:light_blue"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_light_blue",
- burntime = 30,
-})
-
-minetest.register_craft( {
- type = "shapeless",
- output = "homedecor:shutter_violet 4",
- recipe = {
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "homedecor:shutter_oak",
- "dye:violet"
- },
-})
-
-minetest.register_craft({
- type = "fuel",
- recipe = "homedecor:shutter_violet",
- burntime = 30,
-})
-
---
-
minetest.register_craft( {
output = "homedecor:drawer_small",
recipe = {
@@ -1495,15 +1298,7 @@ minetest.register_craft( {
-- other types of fences
minetest.register_craft( {
- output = "homedecor:fence_wrought_iron_2 2",
- recipe = {
- { "homedecor:pole_wrought_iron", "default:iron_lump" },
- { "homedecor:pole_wrought_iron", "default:iron_lump" },
- },
-})
-
-minetest.register_craft( {
- output = "homedecor:fence_wrought_iron_2 2",
+ output = "homedecor:fence_wrought_iron_2 4",
recipe = {
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
@@ -2424,30 +2219,29 @@ minetest.register_craft( {
-- bathroom/kitchen tiles
-local color_pairings = {
- { "grey", "white", "1" },
- { "dark_grey", "white", "2" },
- { "black", "white", "3" },
- { "black", "dark_grey", "4" },
- { "red", "white", "red" },
- { "green", "white", "green" },
- { "blue", "white", "blue" },
- { "yellow", "white", "yellow" },
- { "brown", "white", "tan" }
-}
+minetest.register_craft( {
+ output = "homedecor:bathroom_tiles_light 4",
+ recipe = {
+ { "group:marble", "group:marble", "" },
+ { "group:marble", "group:marble", "dye:white" }
+ },
+})
-for i in ipairs(color_pairings) do
- local dye1 = color_pairings[i][1]
- local dye2 = color_pairings[i][2]
- local result = color_pairings[i][3]
- minetest.register_craft( {
- output = "homedecor:tiles_"..result.." 2",
- recipe = {
- { "group:marble", "dye:"..dye1 },
- { "group:marble", "dye:"..dye2 }
- },
- })
-end
+minetest.register_craft( {
+ output = "homedecor:bathroom_tiles_medium 4",
+ recipe = {
+ { "group:marble", "group:marble", "" },
+ { "group:marble", "group:marble", "dye:grey" }
+ },
+})
+
+minetest.register_craft( {
+ output = "homedecor:bathroom_tiles_dark 4",
+ recipe = {
+ { "group:marble", "group:marble", "" },
+ { "group:marble", "group:marble", "dye:dark_grey" }
+ },
+})
-- misc electrical
@@ -2673,39 +2467,21 @@ minetest.register_craft( {
},
})
-local bedcolors = {
- { "red", "red"},
- { "orange", "orange" },
- { "yellow", "yellow"},
- { "green", "dark_green"},
- { "blue", "blue"},
- { "violet", "violet"},
- { "pink", "pink"},
- { "darkgrey", "dark_grey"},
- { "brown", "brown" },
-}
-
-for c in ipairs(bedcolors) do
- local color = bedcolors[c][1]
- local woolcolor = bedcolors[c][2]
-
- minetest.register_craft( {
- output = "homedecor:bed_"..color.."_regular",
- recipe = {
- { "group:stick", "", "group:stick" },
- { "wool:white", "wool:"..woolcolor, "wool:"..woolcolor },
- { "group:wood", "", "group:wood" },
- },
- })
-
- minetest.register_craft( {
- output = "homedecor:bed_"..color.."_kingsize",
- recipe = {
- { "homedecor:bed_"..color.."_regular", "homedecor:bed_"..color.."_regular" }
- },
- })
+minetest.register_craft( {
+ output = "homedecor:bed_regular",
+ recipe = {
+ { "group:stick", "", "group:stick" },
+ { "wool:white", "wool:white", "wool:white" },
+ { "group:wood", "", "group:wood" },
+ },
+})
-end
+minetest.register_craft( {
+ output = "homedecor:bed_kingsize",
+ recipe = {
+ { "homedecor:bed_regular", "homedecor:bed_regular" }
+ },
+})
minetest.register_craft( {
output = "homedecor:bottle_green",
@@ -3045,7 +2821,6 @@ minetest.register_craft({
})
minetest.register_alias("homedecor:wine_rack", "homedecor:drink_rack")
-
local picture_dyes = {
{"dye:brown", "dye:green"}, -- the figure sitting by the tree, wielding a pick
{"dye:green", "dye:blue"} -- the "family photo"
@@ -3061,18 +2836,14 @@ for i in ipairs(picture_dyes) do
})
end
-local dlamp_colors = { "red","blue","green","violet" }
-
-for _, color in ipairs(dlamp_colors) do
- minetest.register_craft({
- output = "homedecor:desk_lamp_"..color,
- recipe = {
- { "", "homedecor:steel_strip", "homedecor:glowlight_small_cube" },
- { "", "homedecor:copper_wire", "" },
- { "homedecor:plastic_sheeting", "dye:"..color, "homedecor:plastic_sheeting" },
- },
- })
-end
+minetest.register_craft({
+ output = "homedecor:desk_lamp 2",
+ recipe = {
+ { "", "default:steel_ingot", "homedecor:glowlight_small_cube" },
+ { "", "homedecor:steel_strip", "" },
+ { "homedecor:plastic_sheeting", "homedecor:copper_wire", "homedecor:plastic_sheeting" },
+ },
+})
minetest.register_craft({
output = "homedecor:hanging_lantern 2",
@@ -3245,10 +3016,28 @@ minetest.register_craft({
})
minetest.register_craft({
- output = "homedecor:stained_glass",
+ output = "homedecor:stained_glass 3",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "xpanes:pane_flat", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 2",
+ recipe = {
+ {"", "dye:blue", ""},
+ {"dye:red", "cottages:glass_pane_side", "dye:green"},
+ {"", "dye:yellow", ""},
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:stained_glass 2",
recipe = {
{"", "dye:blue", ""},
- {"dye:red", "xpanes:pane", "dye:green"},
+ {"dye:red", "cottages:glass_pane", "dye:green"},
{"", "dye:yellow", ""},
},
})
diff --git a/patches/subgame/mods/homedecor_modpack/homedecor/gastronomy.lua b/patches/subgame/mods/homedecor_modpack/homedecor/gastronomy.lua
index b5a9f66..bee7b10 100644
--- a/patches/subgame/mods/homedecor_modpack/homedecor/gastronomy.lua
+++ b/patches/subgame/mods/homedecor_modpack/homedecor/gastronomy.lua
@@ -1,4 +1,6 @@
+local S = homedecor_i18n.gettext
+
local cutlery_cbox = {
type = "fixed",
fixed = {
@@ -12,7 +14,7 @@ homedecor.register("cutlery_set", {
mesh = "homedecor_cutlery_set.obj",
tiles = { "homedecor_cutlery_set.png" },
inventory_image = "homedecor_cutlery_set_inv.png",
- description = "Cutlery set",
+ description = S("Cutlery set"),
groups = {snappy=3},
selection_box = cutlery_cbox,
walkable = false,
@@ -33,14 +35,19 @@ local fbottle_cbox = {
}
}
-local bottle_colors = {"brown", "green"}
+local bottle_colors = {
+ { "brown", S("Brown bottle"), S("Four brown bottles") },
+ { "green", S("Green bottle"), S("Four green bottles") },
+}
for _, b in ipairs(bottle_colors) do
- homedecor.register("bottle_"..b, {
- tiles = { "homedecor_bottle_"..b..".png" },
- inventory_image = "homedecor_bottle_"..b.."_inv.png",
- description = "Bottle ("..b..")",
+ local name, desc, desc4 = unpack(b)
+
+ homedecor.register("bottle_"..name, {
+ tiles = { "homedecor_bottle_"..name..".png" },
+ inventory_image = "homedecor_bottle_"..name.."_inv.png",
+ description = desc,
mesh = "homedecor_bottle.obj",
walkable = false,
groups = {snappy=3},
@@ -50,13 +57,13 @@ for _, b in ipairs(bottle_colors) do
-- 4-bottle sets
- homedecor.register("4_bottles_"..b, {
+ homedecor.register("4_bottles_"..name, {
tiles = {
- "homedecor_bottle_"..b..".png",
- "homedecor_bottle_"..b..".png"
+ "homedecor_bottle_"..name..".png",
+ "homedecor_bottle_"..name..".png"
},
- inventory_image = "homedecor_4_bottles_"..b.."_inv.png",
- description = "Four "..b.." bottles",
+ inventory_image = "homedecor_4_bottles_"..name.."_inv.png",
+ description = desc4,
mesh = "homedecor_4_bottles.obj",
walkable = false,
groups = {snappy=3},
@@ -71,7 +78,7 @@ homedecor.register("4_bottles_multi", {
"homedecor_bottle_green.png"
},
inventory_image = "homedecor_4_bottles_multi_inv.png",
- description = "Four misc brown/green bottles",
+ description = S("Four misc brown/green bottles"),
mesh = "homedecor_4_bottles.obj",
groups = {snappy=3},
walkable = false,
@@ -81,7 +88,7 @@ homedecor.register("4_bottles_multi", {
local wine_cbox = homedecor.nodebox.slab_z(-0.75)
homedecor.register("drink_rack", {
- description = "Drink rack",
+ description = S("Drink rack"),
mesh = "homedecor_wine_rack.obj",
tiles = {
"homedecor_generic_wood_red.png",
@@ -98,7 +105,7 @@ homedecor.register("drink_rack", {
})
homedecor.register("dartboard", {
- description = "Dartboard",
+ description = S("Dartboard"),
mesh = "homedecor_dartboard.obj",
tiles = { "homedecor_dartboard.png" },
inventory_image = "homedecor_dartboard_inv.png",
@@ -114,7 +121,7 @@ homedecor.register("dartboard", {
})
homedecor.register("drink_tap", {
- description = "Drink tap",
+ description = S("drink tap"),
mesh = "homedecor_beer_taps.obj",
tiles = {
"homedecor_generic_metal_bright.png",
@@ -127,26 +134,26 @@ homedecor.register("drink_tap", {
type = "fixed",
fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 }
},
- on_punch = function(pos, node, puncher, pointed_thing)
- local wielditem = puncher:get_wielded_item()
- local inv = puncher:get_inventory()
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+ local inv = clicker:get_inventory()
- local wieldname = wielditem:get_name()
+ local wieldname = itemstack:get_name()
if wieldname == "vessels:drinking_glass" then
if inv:room_for_item("main", "homedecor:drink_mug 1") then
- wielditem:take_item()
- puncher:set_wielded_item(wielditem)
+ itemstack:take_item()
+ clicker:set_wielded_item(itemstack)
inv:add_item("main", "homedecor:drink_mug 1")
- minetest.chat_send_player(puncher:get_player_name(), "Ahh, a nice cold drink - look in your inventory for it!")
+ minetest.chat_send_player(clicker:get_player_name(),
+ S("Ahh, a nice cold drink - look in your inventory for it!"))
else
- minetest.chat_send_player(puncher:get_player_name(), "No room in your inventory to add a drink mug!")
+ minetest.chat_send_player(clicker:get_player_name(),
+ S("No room in your inventory to add a drink mug!"))
end
end
end
})
minetest.register_alias("homedecor:beer_tap", "homedecor:drink_tap")
-
minetest.register_craft({
output = "homedecor:drink_tap",
recipe = {
@@ -162,7 +169,7 @@ local beer_cbox = {
}
homedecor.register("drink_mug", {
- description = "Drink mug",
+ description = S("Drink mug"),
drawtype = "mesh",
mesh = "homedecor_beer_mug.obj",
tiles = { "homedecor_beer_mug.png" },
@@ -171,7 +178,24 @@ homedecor.register("drink_mug", {
walkable = false,
sounds = default.node_sound_glass_defaults(),
selection_box = beer_cbox,
- on_use = minetest.item_eat(2)
+ on_use = function(itemstack, user, pointed_thing)
+ local inv = user:get_inventory()
+ if not creative.is_enabled_for(user:get_player_name()) then
+ if inv:room_for_item("main", "vessels:drinking_glass 1") then
+ inv:add_item("main", "vessels:drinking_glass 1")
+ else
+ local pos = user:get_pos()
+ local dir = user:get_look_dir()
+ local fdir = minetest.dir_to_facedir(dir)
+ local pos_fwd = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1],
+ y = pos.y + 1,
+ z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
+ minetest.add_item(pos_fwd, "vessels:drinking_glass 1")
+ end
+ minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
+ return itemstack
+ end
+ end
})
minetest.register_alias("homedecor:beer_mug", "homedecor:drink_mug")
@@ -181,7 +205,7 @@ local svm_cbox = {
}
homedecor.register("soda_machine", {
- description = "Soda Vending Machine",
+ description = S("Soda vending machine"),
mesh = "homedecor_soda_machine.obj",
tiles = {"homedecor_soda_machine.png"},
groups = {snappy=3},
@@ -190,21 +214,25 @@ homedecor.register("soda_machine", {
expand = { top="placeholder" },
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.rotate_simple,
- on_punch = function(pos, node, puncher, pointed_thing)
- local wielditem = puncher:get_wielded_item()
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+ local playername = clicker:get_player_name()
+ local wielditem = clicker:get_wielded_item()
local wieldname = wielditem:get_name()
local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
local fdir = node.param2
local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] }
if wieldname == "homedecor:coin" then
- wielditem:take_item()
- puncher:set_wielded_item(wielditem)
minetest.spawn_item(pos_drop, "homedecor:soda_can")
minetest.sound_play("insert_coin", {
pos=pos, max_hear_distance = 5
})
+ if not creative.is_enabled_for(playername) then
+ wielditem:take_item()
+ clicker:set_wielded_item(wielditem)
+ return wielditem
+ end
else
- minetest.chat_send_player(puncher:get_player_name(), "Please insert a coin in the machine.")
+ minetest.chat_send_player(playername, S("Please insert a coin in the machine."))
end
end
})