1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-07-27 17:30:17 +02:00

Compare commits

..

24 Commits

Author SHA1 Message Date
6e973c3830 Merge remote-tracking branch 'upstream/master' 2021-03-02 23:11:41 +01:00
177a97eab3 Merge remote-tracking branch 'upstream/master' 2021-01-31 13:39:49 +01:00
a832b66977 Merge remote-tracking branch 'upstream/master' 2021-01-29 17:42:33 +01:00
df9e8aea4b Merge remote-tracking branch 'upstream/master' 2021-01-24 12:40:06 +01:00
99a01301a8 Merge remote-tracking branch 'upstream/master' 2020-12-03 20:50:27 +01:00
2ef259fa24 Merge remote-tracking branch 'upstream/master' 2020-11-25 21:53:41 +01:00
caaa963eaf Merge remote-tracking branch 'upstream/master' 2020-10-14 21:31:35 +02:00
e5866b7928 Merge remote-tracking branch 'upstream/master' 2020-10-12 18:43:38 +02:00
b6ecc0b95f Merge remote-tracking branch 'upstream/master' 2020-10-09 19:30:42 +02:00
320cd1d449 Merge remote-tracking branch 'upstream/master' 2020-09-15 21:39:14 +02:00
3675e9c266 Merge remote-tracking branch 'upstream/master' 2020-08-19 21:23:52 +02:00
3567b42c39 Merge remote-tracking branch 'upstream/master' 2020-08-08 10:04:04 +02:00
bd67ba2499 Merge remote-tracking branch 'upstream/master' 2020-08-04 20:48:58 +02:00
5612f4c884 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-16 22:26:41 +02:00
7bcfbbca3a Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-02-09 21:38:24 +01:00
e372ccb4d8 Merge branch 'master' of yunohost:mtcontrib/homedecor_modpack into nalc-1.2-dev 2019-12-22 13:26:45 +01:00
5c6a994698 Merge branch 'nalc-1.2' of yunohost:nalc/homedecor_modpack into nalc-1.2 2019-05-26 19:11:29 +02:00
1eec6e3615 Merge branch 'master' into nalc-1.2 2019-05-26 19:07:00 +02:00
0753606eb0 Merge branch 'master' into nalc-1.2 2019-05-25 15:36:01 +02:00
778b5493c7 Merge branch 'master' into nalc-1.2 2019-05-09 22:11:30 +02:00
fb0ca9a15c Supprime 2 dossiers non supprimés par le merge précédent 2019-05-04 20:45:50 +02:00
1520d27a73 Merge branch 'master' into nalc-1.2 2019-05-04 19:25:15 +02:00
5d4c64d3b2 Corrige problème de stack des lampes dans inventaire après récolte.
L'auteur du mod a oublié de définir la variable drop des objets
concernés :
- homedecor:glowlight_half,
- homedecor:glowlight_quarter,
- homedecor:glowlight_small_cube,
- homedecor:standing_lamp_off,
- homedecor:desk_lamp.
2019-04-07 14:04:00 +02:00
4eb9ffb088 Ajoute messages de chargement des mods dans le journal "action" 2018-12-25 17:41:16 +01:00
213 changed files with 3773 additions and 5312 deletions

View File

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

View File

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

8
README Normal file
View File

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

View File

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

19
bower.json Normal file
View File

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

View File

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

View File

@ -40,10 +40,8 @@ if not minetest.get_modpath("technic") then
description = S("Granite"),
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "technic:granite 9",

View File

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

View File

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

View File

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

View File

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

View File

@ -1,54 +0,0 @@
local stairtable = {
{
"slab",
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
{
"stair",
{
{-0.5, -0.5, -0.5, 0.5, 0.0, 0.5},
{-0.5, 0.0, 0.0, 0.5, 0.5, 0.5},
},
},
{
"stair_inner",
{
{-0.5, -0.5, -0.5, 0.5, 0.0, 0.5},
{-0.5, 0.0, 0.0, 0.5, 0.5, 0.5},
{-0.5, 0.0, -0.5, 0.0, 0.5, 0.0},
},
},
{
"stair_outer",
{
{-0.5, -0.5, -0.5, 0.5, 0.0, 0.5},
{-0.5, 0.0, 0.0, 0.0, 0.5, 0.5},
},
},
}
local function register(name, def)
for _, sdef in pairs(stairtable) do
local split = name:split(":")
local ndef = table.copy(def)
local item_name = ":" .. sdef[1] .. "_" .. split[2]
ndef.description = def.description .. " " .. string.gsub(sdef[1], "_", " ")
ndef.paramtype, ndef.paramtype2 = "light", "facedir"
ndef.drawtype = "nodebox"
ndef.node_box = {
type = "fixed",
fixed = sdef[2],
}
minetest.register_node(split[1] .. item_name, ndef)
minetest.register_alias("stairs" .. item_name, split[1] .. item_name)
end
end
minetest.log(
"action",
"[building_blocks]: depreciated legacy support for stairs loaded, please use moreblocks for stair support"
)
return register

19
fake_fire/.luacheckrc Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -97,7 +97,7 @@ for _, c in ipairs(bookcolors) do
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not minetest.is_creative_enabled(plname) then
if not creative.is_enabled_for(plname) then
itemstack:take_item()
end
return itemstack
@ -128,15 +128,16 @@ for _, c in ipairs(bookcolors) do
local owner = meta:get_string("owner") or ""
local formspec
if owner == "" or owner == player_name then
formspec = "size[8,8]"..
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
"field[0.5,1;7.5,0;title;Book title :;"..
minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
minetest.formspec_escape(text).."]"..
"button_exit[2.5,7.5;3,1;save;Save]"
else
formspec = "size[8,8]"..
formspec = "size[8,8]"..default.gui_bg..
"button_exit[7,0.25;1,0.5;close;X]"..
default.gui_bg_img..
"label[0.5,0.5;by "..owner.."]"..
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
@ -166,7 +167,7 @@ for _, c in ipairs(bookcolors) do
output = "homedecor:book_"..color,
recipe = {
"dye:"..color,
homedecor.materials.book
"default:book"
},
})

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -26,12 +26,11 @@ local function make_formspec(furnacedef, percent)
local h = math.ceil(furnacedef.output_slots / furnacedef.output_width)
return "size["..math.max(8, 6 + w)..",9]"..
"image[2.75,1.5;1,1;"..fire.."]"..
"list[current_name;fuel;2.75,2.5;1,1;]"..
"list[current_name;src;2.75,0.5;1,1;]"..
"list[current_name;dst;4.75,0.96;"..w..","..h..";]"..
"list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]"..
"image[2,2;1,1;"..fire.."]"..
"list[current_name;fuel;2,3;1,1;]"..
"list[current_name;src;2,1;1,1;]"..
"list[current_name;dst;5,1;"..w..","..h..";]"..
"list[current_player;main;0,5;8,4;]"..
"listring[current_name;dst]"..
"listring[current_player;main]"..
"listring[current_name;src]"..
@ -143,16 +142,12 @@ function homedecor.register_furnace(name, furnacedef)
description = description,
tiles = make_tiles(furnacedef.tiles, furnacedef.tile_format, false),
groups = furnacedef.groups or {cracky=2},
sounds = furnacedef.sounds,
_sound_def = {
key = "node_sound_wood_defaults",
},
sounds = furnacedef.sounds or default.node_sound_wood_defaults(),
on_construct = furnace_construct,
can_dig = furnace_can_dig,
allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true },
is_furnace = true
inventory = { lockable = true }
}
local def_active = {
@ -161,16 +156,12 @@ function homedecor.register_furnace(name, furnacedef)
light_source = 8,
drop = "homedecor:" .. name,
groups = furnacedef.groups or {cracky=2, not_in_creative_inventory=1},
sounds = furnacedef.sounds,
_sound_def = {
key = "node_sound_stone_defaults",
},
sounds = furnacedef.sounds or default.node_sound_stone_defaults(),
on_construct = furnace_construct,
can_dig = furnace_can_dig,
allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true },
is_furnace = true
inventory = { lockable = true }
}
if furnacedef.extra_nodedef_fields then

View File

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

View File

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

View File

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

View File

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

View File

@ -9,17 +9,16 @@ homedecor.box = {
-- bottom slab (starting from -y) with height optionally shifted upwards
slab_y = function(height, shift) return { -0.5, -0.5+(shift or 0), -0.5, 0.5, -0.5+height+(shift or 0), 0.5 } end,
-- slab starting from -z (+z with negative depth)
slab_z = function(depth, shift)
-- for consistency with the other functions here, we have to assume that a z slab starts from -z and extends by depth,
slab_z = function(depth)
-- for consistency with the other functions here, we have to assume that a "z" slab starts from -z and extends by depth,
-- but since conventionally a lot of nodes place slabs against +z for player convenience, we define
-- a "negative" depth as a depth extending from the other side, i.e. +z
local s = shift or 0
if depth > 0 then
-- slab starting from -z
return { -0.5, -0.5, -0.5+s, 0.5, 0.5, -0.5+depth+s }
return { -0.5, -0.5, -0.5, 0.5, 0.5, -0.5+depth }
else
-- slab starting from +z (z1=0.5-(-depth))
return { -0.5, -0.5, 0.5+depth+s, 0.5, 0.5, 0.5+s }
return { -0.5, -0.5, 0.5+depth, 0.5, 0.5, 0.5 }
end
end,
bar_y = function(radius) return {-radius, -0.5, -radius, radius, 0.5, radius} end,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,10 +8,8 @@ homedecor.register("refrigerator_steel", {
tiles = { "homedecor_refrigerator_steel.png" },
inventory_image = "homedecor_refrigerator_steel_inv.png",
description = S("Refrigerator (stainless steel)"),
groups = {snappy=3, dig_stone=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
selection_box = homedecor.nodebox.slab_y(2),
collision_box = homedecor.nodebox.slab_y(2),
expand = { top="placeholder" },
@ -29,12 +27,10 @@ homedecor.register("refrigerator_white", {
tiles = { "homedecor_refrigerator_white.png" },
inventory_image = "homedecor_refrigerator_white_inv.png",
description = S("Refrigerator"),
groups = {snappy=3, dig_stone=1},
groups = {snappy=3},
selection_box = homedecor.nodebox.slab_y(2),
collision_box = homedecor.nodebox.slab_y(2),
_sound_def = {
key = "node_sound_stone_defaults",
},
sounds = default.node_sound_stone_defaults(),
expand = { top="placeholder" },
infotext=S("Refrigerator"),
inventory = {
@ -90,7 +86,6 @@ homedecor.register_furnace("microwave_oven", {
output_width = 2,
cook_speed = 1.5,
extra_nodedef_fields = {
use_texture_alpha = "clip",
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 },
@ -119,10 +114,8 @@ homedecor.register("dishwasher", {
}
},
selection_box = { type = "regular" },
_sound_def = {
key = "node_sound_stone_defaults",
},
groups = { snappy = 3, dig_stone=1 },
sounds = default.node_sound_stone_defaults(),
groups = { snappy = 3 },
})
local materials = { ["granite"] = S("granite"), ["marble"] = S("marble"), ["steel"] = S("steel"), ["wood"] = S("wood") }
@ -138,176 +131,49 @@ homedecor.register("dishwasher_"..m, {
"homedecor_dishwasher_back.png",
"homedecor_dishwasher_front.png"
},
groups = { snappy = 3, dig_tree=1 },
_sound_def = {
key = "node_sound_stone_defaults",
},
groups = { snappy = 3 },
sounds = default.node_sound_stone_defaults(),
})
end
local wood_tex = homedecor.textures.default_wood
local cabinet_sides = "("..wood_tex.."^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_sides_colored = "(homedecor_generic_wood_plain.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local ic_cabinet_sides = string.gsub(cabinet_sides, "%^", "&")
local ic_cabinet_sides_colored = string.gsub(cabinet_sides_colored, "%^", "&")
local cabinet_bottom = "("..wood_tex.."^[colorize:#000000:100)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom_colored = "homedecor_generic_wood_plain.png^homedecor_kitchen_cabinet_bevel.png"
local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)"
.."^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)"
local function N_(x) return x end
local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") }
homedecor.kitchen_convert_nodes = {}
for _, mat in ipairs(counter_materials) do
local desc = S("Kitchen Cabinet")
local desc2 = S("Kitchen Cabinet with drawers")
local material = ""
if mat ~= "" then
desc = S("Kitchen Cabinet (@1 top)", S(mat))
desc2 = S("Kitchen Cabinet with drawers (@1 top)", S(mat))
material = "_"..mat
end
homedecor.register("kitchen_cabinet_colorable"..material, {
homedecor.register("kitchen_cabinet"..material, {
description = desc,
tiles = {
'homedecor_kitchen_cabinet_top'..material..'.png',
cabinet_bottom,
cabinet_sides,
cabinet_sides,
cabinet_sides,
'homedecor_kitchen_cabinet_front.png^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material,
place_param2 = 0,
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1},
_sound_def = {
key = "node_sound_stone_defaults",
},
tiles = { 'homedecor_kitchen_cabinet_top'..material..'.png',
cabinet_bottom,
cabinet_sides,
cabinet_sides,
cabinet_sides,
'homedecor_kitchen_cabinet_front.png'},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet"),
inventory = {
size=24,
lockable=true,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.register("kitchen_cabinet_colored"..material, {
description = desc,
tiles = {
{name = 'homedecor_kitchen_cabinet_top'..material..'.png', color = 0xFFFFFFFF},
{name = cabinet_bottom, color = 0xFFFFFFFF },
cabinet_sides_colored,
cabinet_sides_colored,
cabinet_sides_colored,
'homedecor_kitchen_cabinet_colored_front.png^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides_colored,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet"),
inventory = {
size=24,
lockable=true,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.register("kitchen_cabinet_colorable_with_drawers"..material, {
description = desc2,
tiles = {
'homedecor_kitchen_cabinet_top'..material..'.png',
cabinet_bottom,
cabinet_sides,
cabinet_sides,
cabinet_sides,
'homedecor_kitchen_cabinet_front_with_drawers.png^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_front_with_drawers.png"
.."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material,
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1},
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet with drawers"),
inventory = {
size=24,
lockable=true,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.register("kitchen_cabinet_colored_with_drawers"..material, {
description = desc2,
tiles = {
{name = 'homedecor_kitchen_cabinet_top'..material..'.png', color = 0xFFFFFFFF},
{name = cabinet_bottom, color = 0xFFFFFFFF },
cabinet_sides_colored,
cabinet_sides_colored,
cabinet_sides_colored,
'homedecor_kitchen_cabinet_colored_front_with_drawers.png^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_colored_front_with_drawers.png"
.."{"..ic_cabinet_sides_colored,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet with drawers"),
inventory = {
size=24,
lockable=true,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1]="homedecor:kitchen_cabinet"..material
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1]="homedecor:kitchen_cabinet"..material.."_locked"
end
local kitchen_cabinet_half_box = homedecor.nodebox.slab_z(0.5, 0.5)
homedecor.register("kitchen_cabinet_colorable_half", {
local kitchen_cabinet_half_box = homedecor.nodebox.slab_y(0.5, 0.5)
homedecor.register("kitchen_cabinet_half", {
description = S('Half-height Kitchen Cabinet (on ceiling)'),
tiles = {
cabinet_sides,
@ -315,84 +181,30 @@ homedecor.register("kitchen_cabinet_colorable_half", {
cabinet_sides,
cabinet_sides,
cabinet_sides,
'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
'homedecor_kitchen_cabinet_front_half.png'
},
mesh = "homedecor_kitchen_cabinet_half.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half",
place_param2 = 0,
selection_box = kitchen_cabinet_half_box,
node_box = kitchen_cabinet_half_box,
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet"),
inventory = {
size=12,
lockable=true,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_half"
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_half_locked"
homedecor.register("kitchen_cabinet_colored_half", {
description = S('Half-height Kitchen Cabinet (on ceiling)'),
tiles = {
{ name = cabinet_sides, color = 0xFFFFFFFF },
cabinet_bottom_colored,
cabinet_sides_colored,
cabinet_sides_colored,
cabinet_sides_colored,
'homedecor_kitchen_cabinet_colored_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
},
mesh = "homedecor_kitchen_cabinet_half.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = kitchen_cabinet_half_box,
node_box = kitchen_cabinet_half_box,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Kitchen Cabinet"),
inventory = {
size=12,
lockable=true,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.register("kitchen_cabinet_colorable_with_sink", {
homedecor.register("kitchen_cabinet_with_sink", {
description = S("Kitchen Cabinet with sink"),
mesh = "homedecor_kitchen_sink.obj",
tiles = {
"homedecor_kitchen_sink_top.png",
cabinet_bottom,
"homedecor_kitchen_cabinet_front.png",
cabinet_sides,
cabinet_sides,
cabinet_sides,
"homedecor_kitchen_cabinet_front.png^homedecor_kitchen_cabinet_bevel.png"
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_sink_top.png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink",
place_param2 = 0,
groups = { snappy = 3, ud_param2_colorable = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
cabinet_bottom
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
infotext=S("Under-sink cabinet"),
inventory = {
size=16,
@ -410,56 +222,6 @@ homedecor.register("kitchen_cabinet_colorable_with_sink", {
},
on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z})
end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_with_sink"
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_with_sink_locked"
homedecor.register("kitchen_cabinet_colored_with_sink", {
description = S("Kitchen Cabinet with sink"),
mesh = "homedecor_kitchen_sink.obj",
tiles = {
{ name = "homedecor_kitchen_sink_top.png", color = 0xFFFFFFFF },
{ name = cabinet_bottom, color = 0xFFFFFFFF},
cabinet_sides_colored,
cabinet_sides_colored,
cabinet_sides_colored,
"homedecor_kitchen_cabinet_colored_front.png^homedecor_kitchen_cabinet_bevel.png",
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_sink_top.png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides_colored,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1, dig_tree=1 },
_sound_def = {
key = "node_sound_wood_defaults",
},
infotext=S("Under-sink cabinet"),
inventory = {
size=16,
lockable=true,
},
node_box = {
type = "fixed",
fixed = {
{ -8/16, -8/16, -8/16, 8/16, 6/16, 8/16 },
{ -8/16, 6/16, -8/16, -6/16, 8/16, 8/16 },
{ 6/16, 6/16, -8/16, 8/16, 8/16, 8/16 },
{ -8/16, 6/16, -8/16, 8/16, 8/16, -6/16 },
{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 },
}
},
on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z})
end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end
})
@ -473,7 +235,7 @@ homedecor.register("copper_pans", {
mesh = "homedecor_copper_pans.obj",
tiles = { "homedecor_polished_copper.png" },
inventory_image = "homedecor_copper_pans_inv.png",
groups = { snappy=3, dig_stone=1 },
groups = { snappy=3 },
selection_box = cp_cbox,
walkable = false,
on_place = minetest.rotate_node
@ -489,13 +251,16 @@ homedecor.register("kitchen_faucet", {
tiles = { "homedecor_generic_metal_bright.png" },
inventory_image = "homedecor_kitchen_faucet_inv.png",
description = S("Kitchen Faucet"),
groups = {snappy=3, dig_stone=1},
groups = {snappy=3},
selection_box = kf_cbox,
walkable = false,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and string.find(below.name, "homedecor:.*sink") then
if below and
below.name == "homedecor:sink" or
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
local particledef = {
outlet = { x = 0, y = -0.19, z = 0.13 },
velocity_x = { min = -0.05, max = 0.05 },
@ -514,11 +279,11 @@ homedecor.register("paper_towel", {
mesh = "homedecor_paper_towel.obj",
tiles = {
"homedecor_generic_quilted_paper.png",
wood_tex
"default_wood.png"
},
inventory_image = "homedecor_paper_towel_inv.png",
description = S("Paper towels"),
groups = { snappy=3, dig_tree=1 },
groups = { snappy=3 },
walkable = false,
selection_box = {
type = "fixed",
@ -532,18 +297,18 @@ homedecor.register("paper_towel", {
minetest.register_craft({
output = "homedecor:oven_steel",
recipe = {
{"basic_materials:heating_element", homedecor.materials.steel_ingot, "basic_materials:heating_element", },
{homedecor.materials.steel_ingot, "moreblocks:iron_glass", homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.steel_ingot, },
{"basic_materials:heating_element", "default:steel_ingot", "basic_materials:heating_element", },
{"default:steel_ingot", "moreblocks:iron_glass", "default:steel_ingot", },
{"default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot", },
}
})
minetest.register_craft({
output = "homedecor:oven_steel",
recipe = {
{"basic_materials:heating_element", homedecor.materials.steel_ingot, "basic_materials:heating_element", },
{homedecor.materials.steel_ingot, homedecor.materials.glass_block, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.steel_ingot, },
{"basic_materials:heating_element", "default:steel_ingot", "basic_materials:heating_element", },
{"default:steel_ingot", "default:glass", "default:steel_ingot", },
{"default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot", },
}
})
@ -552,35 +317,35 @@ minetest.register_craft({
output = "homedecor:oven",
recipe = {
"homedecor:oven_steel",
homedecor.materials.dye_white,
homedecor.materials.dye_white,
"dye:white",
"dye:white",
}
})
minetest.register_craft({
output = "homedecor:microwave_oven 2",
recipe = {
{homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, "moreblocks:iron_glass", "basic_materials:ic", },
{homedecor.materials.steel_ingot, homedecor.materials.copper_ingot, "basic_materials:energy_crystal_simple", },
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
{"default:steel_ingot", "moreblocks:iron_glass", "basic_materials:ic", },
{"default:steel_ingot", "default:copper_ingot", "basic_materials:energy_crystal_simple", },
}
})
minetest.register_craft({
output = "homedecor:microwave_oven 2",
recipe = {
{homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, homedecor.materials.glass_block, "basic_materials:ic", },
{homedecor.materials.steel_ingot, homedecor.materials.copper_ingot, "basic_materials:energy_crystal_simple", },
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", },
{"default:steel_ingot", "default:glass", "basic_materials:ic", },
{"default:steel_ingot", "default:copper_ingot", "basic_materials:energy_crystal_simple", },
}
})
minetest.register_craft({
output = "homedecor:refrigerator_steel",
recipe = {
{homedecor.materials.steel_ingot, "homedecor:glowlight_small_cube", homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, homedecor.materials.copper_ingot, homedecor.materials.steel_ingot, },
{homedecor.materials.steel_ingot, homedecor.materials.clay_lump, homedecor.materials.steel_ingot, },
{"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", },
}
})
@ -589,14 +354,14 @@ minetest.register_craft({
output = "homedecor:refrigerator_white",
recipe = {
"homedecor:refrigerator_steel",
homedecor.materials.dye_white,
homedecor.materials.dye_white,
homedecor.materials.dye_white,
"dye:white",
"dye:white",
"dye:white",
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable",
output = "homedecor:kitchen_cabinet",
recipe = {
{"group:wood", "group:stick", "group:wood", },
{"group:wood", "group:stick", "group:wood", },
@ -605,56 +370,56 @@ minetest.register_craft({
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable_steel",
output = "homedecor:kitchen_cabinet_steel",
recipe = {
{homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot},
{"", "homedecor:kitchen_cabinet_colorable", ""},
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
{"", "homedecor:kitchen_cabinet", ""},
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable_steel",
output = "homedecor:kitchen_cabinet_steel",
recipe = {
{"moreblocks:slab_steelblock_1"},
{ "homedecor:kitchen_cabinet_colorable" },
{ "homedecor:kitchen_cabinet" },
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable_marble",
output = "homedecor:kitchen_cabinet_marble",
recipe = {
{"building_blocks:slab_marble"},
{"homedecor:kitchen_cabinet_colorable"},
{"homedecor:kitchen_cabinet"},
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable_marble",
output = "homedecor:kitchen_cabinet_marble",
recipe = {
{"technic:slab_marble_1"},
{"homedecor:kitchen_cabinet_colorable"},
{"homedecor:kitchen_cabinet"},
}
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable_granite",
output = "homedecor:kitchen_cabinet_granite",
recipe = {
{"technic:slab_granite_1"},
{"homedecor:kitchen_cabinet_colorable"},
{"homedecor:kitchen_cabinet"},
}
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:kitchen_cabinet_colorable_half 2",
recipe = { "homedecor:kitchen_cabinet_colorable" }
output = "homedecor:kitchen_cabinet_half 2",
recipe = { "homedecor:kitchen_cabinet" }
})
minetest.register_craft({
output = "homedecor:kitchen_cabinet_colorable_with_sink",
output = "homedecor:kitchen_cabinet_with_sink",
recipe = {
{"group:wood", homedecor.materials.steel_ingot, "group:wood", },
{"group:wood", homedecor.materials.steel_ingot, "group:wood", },
{"group:wood", "default:steel_ingot", "group:wood", },
{"group:wood", "default:steel_ingot", "group:wood", },
{"group:wood", "group:stick", "group:wood", },
}
})
@ -662,18 +427,18 @@ minetest.register_craft({
minetest.register_craft( {
output = "homedecor:dishwasher",
recipe = {
{ "basic_materials:ic", "building_blocks:slab_grate_1", homedecor.materials.steel_ingot, },
{ homedecor.materials.steel_ingot, "homedecor:shower_head", "basic_materials:motor" },
{ homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.water_bucket }
{ "basic_materials:ic", "building_blocks:slab_grate_1", "default:steel_ingot", },
{ "default:steel_ingot", "homedecor:shower_head", "basic_materials:motor" },
{ "default:steel_ingot", "basic_materials:heating_element", "bucket:bucket_water" }
},
})
minetest.register_craft( {
output = "homedecor:dishwasher",
recipe = {
{ "basic_materials:ic", "homedecor:fence_chainlink", homedecor.materials.steel_ingot, },
{ homedecor.materials.steel_ingot, "homedecor:shower_head", "basic_materials:motor" },
{ homedecor.materials.steel_ingot, "basic_materials:heating_element", homedecor.materials.water_bucket }
{ "basic_materials:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
{ "default:steel_ingot", "homedecor:shower_head", "basic_materials:motor" },
{ "default:steel_ingot", "basic_materials:heating_element", "bucket:bucket_water" }
},
})
@ -704,7 +469,7 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:dishwasher_steel",
recipe = {
{ homedecor.materials.steel_ingot, homedecor.materials.steel_ingot, homedecor.materials.steel_ingot },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
{ "", "homedecor:dishwasher", "" },
},
})
@ -744,8 +509,8 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:kitchen_faucet",
recipe = {
{ "", homedecor.materials.steel_ingot },
{ homedecor.materials.steel_ingot, "" },
{ "", "default:steel_ingot" },
{ "default:steel_ingot", "" },
{ "homedecor:taps", "" }
},
})
@ -753,8 +518,8 @@ minetest.register_craft( {
minetest.register_craft( {
output = "homedecor:kitchen_faucet",
recipe = {
{ homedecor.materials.steel_ingot,"" },
{ "", homedecor.materials.steel_ingot },
{ "default:steel_ingot","" },
{ "", "default:steel_ingot" },
{ "", "homedecor:taps" }
},
})
@ -779,8 +544,8 @@ minetest.register_craft({
output = "homedecor:copper_pans",
recipe = {
{ "basic_materials:copper_strip","","basic_materials:copper_strip" },
{ homedecor.materials.copper_ingot,"",homedecor.materials.copper_ingot },
{ homedecor.materials.copper_ingot,"",homedecor.materials.copper_ingot }
{ "default:copper_ingot","","default:copper_ingot" },
{ "default:copper_ingot","","default:copper_ingot" }
},
})
@ -790,29 +555,3 @@ minetest.register_craft({
{ "homedecor:toilet_paper", "homedecor:toilet_paper" }
},
})
minetest.register_lbm({
name = ":homedecor:convert_kitchen_cabinets",
label = "Convert homedecor kitchen cabinets to use [color]wallmounted",
run_at_every_load = false,
nodenames = homedecor.kitchen_convert_nodes,
action = function(pos, node)
local name = node.name
local newname = string.gsub(name, "_cabinet", "_cabinet_colorable")
local old_fdir = math.floor(node.param2 % 32)
local new_fdir = 3
if old_fdir == 0 then
new_fdir = 3
elseif old_fdir == 1 then
new_fdir = 4
elseif old_fdir == 2 then
new_fdir = 2
elseif old_fdir == 3 then
new_fdir = 5
end
minetest.swap_node(pos, { name = newname, param2 = new_fdir })
end
})

View File

@ -1,4 +1,4 @@
name = homedecor_kitchen
description = Homedecor mod: kitchen
depends = homedecor_common
optional_depends = moreblocks, building_blocks, technic, bucket, screwdriver, default, basic_materials, dye, unifieddyes
depends = homedecor_common, default, basic_materials, dye
optional_depends = moreblocks, building_blocks, technic, bucket, screwdriver

View File

@ -1,50 +0,0 @@
# Blender v2.83.5 OBJ File: 'kitchen_cabinet.blend'
# www.blender.org
o Cube_Cube.001
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.500000
v -0.500000 0.500000 0.500000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 1.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt -0.000000 0.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.000000
vt 1.000000 -0.000000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
g Cube_Cube.001_top
s off
f 8/1/1 4/2/1 2/3/1 6/4/1
g Cube_Cube.001_bottom
f 7/5/2 5/6/2 1/7/2 3/8/2
g Cube_Cube.001_right
f 5/9/3 7/5/3 8/1/3 6/10/3
g Cube_Cube.001_left
f 4/2/4 3/8/4 1/11/4 2/12/4
g Cube_Cube.001_back
f 7/13/5 3/14/5 4/15/5 8/16/5
g Cube_Cube.001_front
f 6/17/6 2/18/6 1/19/6 5/20/6

View File

@ -1,52 +0,0 @@
# Blender v2.83.5 OBJ File: 'kitchen_cabinet_half.blend'
# www.blender.org
o Cube_Cube.001
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.000000
v -0.500000 -0.500000 0.500000
v 0.500000 0.500000 -0.000000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.000000
v -0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 0.500000
vn 0.0000 0.0000 1.0000
vn 0.0000 -0.0000 -1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 1.0000 -0.0000 0.0000
g Cube_Cube.001_top
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
g Cube_Cube.001_bottom
f 2/5/2 6/6/2 4/7/2 8/8/2
g Cube_Cube.001_right
f 7/3/3 5/9/3 4/10/3 6/11/3
g Cube_Cube.001_left
f 1/12/4 3/4/4 2/13/4 8/14/4
g Cube_Cube.001_back
f 3/15/5 7/16/5 6/17/5 2/18/5
g Cube_Cube.001_front
f 5/19/6 1/20/6 8/21/6 4/22/6

View File

@ -1,166 +1,101 @@
# Blender v2.83.5 OBJ File: 'kitchen_sink.blend'
# www.blender.org
o Cube_Cube.001
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.500000
v -0.500000 0.500000 0.500000
v 0.000000 -0.500000 0.500000
v 0.000000 0.500000 0.500000
v 0.000000 0.062500 0.437500
v -0.062500 0.062500 0.375000
v 0.062500 0.062500 0.375000
v 0.062500 -0.062500 0.437500
v 0.000000 -0.062500 0.437500
v 0.062500 -0.062500 0.375000
v -0.062500 -0.062500 0.437500
v -0.062500 0.062500 0.437500
v -0.062500 -0.062500 0.375000
v 0.000000 0.375000 0.437500
v 0.062500 0.062500 0.437500
v 0.000000 -0.375000 0.437500
v -0.375000 -0.375000 0.437500
v -0.375000 0.375000 0.500000
v -0.375000 0.375000 0.437500
v 0.375000 0.375000 0.437500
v 0.000000 0.375000 0.500000
v 0.375000 0.375000 0.500000
v 0.000000 -0.375000 0.500000
v 0.375000 -0.375000 0.500000
v 0.375000 -0.375000 0.437500
v -0.375000 -0.375000 0.500000
vt 0.437500 0.375000
vt 0.562500 0.437500
vt 0.437500 0.437500
vt 0.125000 0.875000
vt 0.875000 0.875000
vt 1.000000 1.000000
vt 0.625000 0.500000
vt 0.625000 0.562500
vt 0.562500 0.562500
vt 0.875000 0.062500
vt 0.125000 0.125000
vt 0.125000 0.062500
vt 0.875000 0.875000
vt 0.437500 0.562500
vt 0.562500 0.562500
vt 0.875000 0.125000
vt 0.125000 0.125000
vt 0.000000 0.000000
vt 0.375000 0.500000
vt 0.375000 0.437500
vt 0.437500 0.625000
vt 0.437500 0.562500
vt 0.875000 0.500000
vt 0.875000 0.125000
vt 0.937500 0.500000
vt 0.125000 0.500000
vt 0.125000 0.875000
vt 0.062500 0.875000
vt 0.562500 0.437500
vt 0.437500 0.437500
vt 0.125000 0.937500
vt 0.875000 0.937500
vt 0.937500 0.125000
vt 0.937500 0.875000
vt 0.062500 0.500000
vt 0.062500 0.125000
vt 0.562500 0.375000
vt 0.625000 0.437500
vt 0.375000 0.562500
vt 0.562500 0.625000
vt 0.562500 0.500000
vt 0.437500 0.500000
vt 0.000000 1.000000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.875000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.500000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 0.500000 1.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt -0.000000 0.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn -0.0000 -1.0000 0.0000
vn 0.0000 1.0000 -0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
g Cube_Cube.001_top
v -0.5 -0.5 -0.5
v 0.5 -0.5 -0.5
v 0.5 -0.5 0.5
v -0.5 -0.5 0.5
v -0.5 0.5 0.5
v -0.5 0.5 -0.5
v 0.5 0.5 -0.5
v 0.5 0.5 0.5
v -0.387 0.5 0.388
v -0.387 0.5 -0.387
v 0.388 0.5 -0.387
v 0.388 0.5 0.388
v -0.387 0.4 0.388
v -0.387 0.4 -0.387
v 0.388 0.4 -0.387
v 0.388 0.4 0.388
v 0.063 0.4 -0.062
v 0.063 0.4 0.063
v -0.062 0.4 -0.062
v -0.062 0.4 0.063
v 0.063 0.313 0.063
v 0.063 0.313 -0.062
v -0.062 0.313 0.063
v -0.062 0.313 -0.062
vt 0.469 0.906
vt 0.469 0.531
vt 0.531 0.469
vt 0.531 0.969
vt 0.031 0.969
vt 0.094 0.906
vt 0.031 0.469
vt 0.094 0.531
vt 0.813 0.5
vt 0.813 0.938
vt 0.781 0.938
vt 0.781 0.5
vt 0.688 0.5
vt 0.719 0.5
vt 0.719 0.938
vt 0.688 0.938
vt 0.906 0.5
vt 0.906 0.938
vt 0.875 0.938
vt 0.875 0.5
vt 0.594 0.5
vt 0.625 0.5
vt 0.625 0.938
vt 0.594 0.938
vt 0.313 0.75
vt 0.313 0.688
vt 0.25 0.688
vt 0.25 0.75
vt 0.219 0.375
vt 0.219 0.313
vt 0.25 0.313
vt 0.25 0.375
vt 0.25 0.406
vt 0.313 0.375
vt 0.313 0.406
vt 0.313 0.313
vt 0.344 0.313
vt 0.344 0.375
vt 0.25 0.281
vt 0.313 0.281
vt 0 0
vt 1 0
vt 1 1
vt 0 1
vn 0 1 0
vn -1 0 0
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn 0 -1 0
g 1
s off
f 14/1/1 13/2/1 16/3/1
f 32/4/2 24/5/2 8/6/2
f 11/7/3 18/8/3 12/9/3
f 28/10/1 31/11/1 30/12/1
f 25/13/2 17/14/2 18/15/2
f 28/16/2 30/17/2 2/18/2
f 15/19/4 14/20/4 16/3/4
f 12/9/5 17/21/5 19/22/5
f 20/23/3 26/24/3 27/25/3
f 22/26/4 23/27/4 32/28/4
f 26/24/2 21/29/2 14/30/2
f 32/31/5 25/13/5 24/32/5
f 12/9/2 19/22/2 16/3/2 13/2/2
f 28/10/1 26/24/1 31/11/1
f 26/24/3 28/33/3 27/25/3
f 27/25/3 24/34/3 20/23/3
f 24/34/3 25/13/3 20/23/3
f 32/28/4 29/35/4 22/26/4
f 29/35/4 30/36/4 22/26/4
f 30/36/4 31/11/4 22/26/4
f 32/31/5 23/27/5 25/13/5
f 14/1/1 21/37/1 13/2/1
f 12/9/3 13/2/3 11/7/3
f 13/2/3 21/38/3 11/7/3
f 16/3/4 19/22/4 15/19/4
f 19/22/4 17/39/4 15/19/4
f 12/9/5 18/40/5 17/21/5
f 11/41/2 20/23/2 18/15/2
f 20/23/2 25/13/2 18/15/2
f 25/13/2 23/27/2 17/14/2
f 23/27/2 22/26/2 17/14/2
f 22/26/2 15/42/2 17/14/2
f 14/30/2 15/42/2 22/26/2
f 22/26/2 31/11/2 14/30/2
f 31/11/2 26/24/2 14/30/2
f 26/24/2 20/23/2 21/29/2
f 20/23/2 11/41/2 21/29/2
f 4/43/2 9/44/2 32/4/2
f 9/44/2 29/45/2 32/4/2
f 27/46/2 10/47/2 24/5/2
f 10/47/2 8/6/2 24/5/2
f 4/43/2 32/4/2 8/6/2
f 6/48/2 10/47/2 28/16/2
f 10/47/2 27/46/2 28/16/2
f 29/45/2 9/44/2 30/17/2
f 9/44/2 2/18/2 30/17/2
f 6/48/2 28/16/2 2/18/2
g Cube_Cube.001_bottom
f 5/49/6 1/50/6 3/51/6 7/52/6
g Cube_Cube.001_right
f 8/6/4 10/53/4 6/54/4 5/55/4 7/52/4
g Cube_Cube.001_left
f 9/56/3 4/43/3 3/51/3 1/57/3 2/58/3
g Cube_Cube.001_back
f 7/59/1 3/60/1 4/61/1 8/62/1
g Cube_Cube.001_front
f 1/63/5 5/64/5 6/65/5 2/66/5
f 9/1/1 10/2/1 6/3/1 5/4/1
f 5/4/1 8/5/1 12/6/1 9/1/1
f 7/7/1 6/3/1 10/2/1 11/8/1
f 8/5/1 7/7/1 11/8/1 12/6/1
f 15/9/2 16/10/2 12/11/2 11/12/2
f 16/13/3 13/14/3 9/15/3 12/16/3
f 13/17/4 14/18/4 10/19/4 9/20/4
f 14/21/5 15/22/5 11/23/5 10/24/5
f 13/2/1 16/1/1 18/25/1 20/26/1
f 19/27/1 14/8/1 13/2/1 20/26/1
f 17/28/1 15/6/1 14/8/1 19/27/1
f 16/1/1 15/6/1 17/28/1 18/25/1
f 17/29/2 22/30/2 21/31/2 18/32/2
f 18/33/3 21/32/3 23/34/3 20/35/3
f 20/34/4 23/36/4 24/37/4 19/38/4
f 19/31/5 24/39/5 22/40/5 17/36/5
f 24/27/1 23/26/1 21/25/1 22/28/1
g 2
f 2/41/3 1/42/3 6/43/3 7/44/3
g 3
f 1/41/2 4/42/2 5/43/2 6/44/2
f 2/42/4 7/43/4 8/44/4 3/41/4
f 4/41/5 3/42/5 8/43/5 5/44/5
g 4
f 1/43/6 2/44/6 3/41/6 4/42/6

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 B

After

Width:  |  Height:  |  Size: 87 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 358 B

View File

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

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