1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-07-20 14:20:22 +02:00

Compare commits

...

24 Commits

Author SHA1 Message Date
f4db7d0fb1 add a global .luacheckrc 2022-03-29 07:58:15 +02:00
3ba59dc2d5 fix almost all warning spam (#26) 2022-03-29 07:44:05 +02:00
2f0e52f978 add skinsdb hand support for wardrobe skins (#24)
* add skinsdb hand support for wardrobe skins

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

* fix hd 3d extras warnings

* fix hd climate control warnings

* fix hd clocks warnings

* fix hd cobweb warnings

* fix hd doors/gates warnings

* fix hd exterior warnings

* fix hd fences warnings

* fix hd gastronomy warnings

* fix hd kitchen missing dependency

* fix hd office warnings

* fix hd roofing warnings

* fix hd table warnings

* fix hd trash cans warnings

* fix hd wardrobe warnings

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

Closes #39

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

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

Tecccccccccchhnically, wood legs should only have been allowed to
combine with wooden tabletops...  then I googled around a bit,
and found a number of glass tables with wooden legs that were
surprisingly similar to the in-game versions.
2021-03-26 23:08:06 -04:00
40cd59aa24 get rid of old table conversion abms 2021-03-26 17:02:25 -04:00
117 changed files with 2251 additions and 1088 deletions

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

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

38
.luacheckrc Normal file
View File

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

View File

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

View File

@ -1,77 +1,48 @@
local S = minetest.get_translator("building_blocks") local S = minetest.get_translator("building_blocks")
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
local function building_blocks_stairs(nodename, def) local function building_blocks_stairs(nodename, def)
minetest.register_node(nodename, def) minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
local mod, name = nodename:match("(.*):(.*)")
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
local stairs_groups = {}
for _, groupname in ipairs(stairs_groups_names) do
stairs_groups[groupname] = def.groups[groupname]
end
if minetest.get_modpath("moreblocks") then if minetest.get_modpath("moreblocks") then
stairsplus:register_all( local mod, name = nodename:match("(.*):(.*)")
mod, stairsplus:register_all(mod, name, nodename, def)
name,
nodename, minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
{ minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
description = def.description, minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
tiles = def.tiles, minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
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
end end
building_blocks_stairs("building_blocks:grate", { building_blocks_stairs("building_blocks:grate", {
drawtype = "glasslike", drawtype = "glasslike",
description = S("Grate"), description = S("Grate"),
stair_desc = S("Grate Stair"),
slab = S("Grate Slab"),
tiles = {"building_blocks_grate.png"}, tiles = {"building_blocks_grate.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
is_ground_content = true, is_ground_content = true,
use_texture_alpha = "clip",
groups = {cracky=1}, groups = {cracky=1},
sounds = default.node_sound_metal_defaults(), sounds = default.node_sound_metal_defaults(),
}) })
building_blocks_stairs("building_blocks:smoothglass", { building_blocks_stairs("building_blocks:smoothglass", {
drawtype = "glasslike", drawtype = "glasslike",
description = S("Streak Free Glass"), description = S("Streak Free Glass"),
stair_desc = S("Streak Free Glass Stair"),
slab_desc = S("Streak Free Glass Slab"),
tiles = {"building_blocks_sglass.png"}, tiles = {"building_blocks_sglass.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
is_ground_content = true, is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3}, groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
building_blocks_stairs("building_blocks:woodglass", { building_blocks_stairs("building_blocks:woodglass", {
drawtype = "glasslike", drawtype = "glasslike",
description = S("Wood Framed Glass"), description = S("Wood Framed Glass"),
stair_desc = S("Wood Framed Glass Stair"),
slab_desc = S("Wood Framed Glass Slab"),
tiles = {"building_blocks_wglass.png"}, tiles = {"building_blocks_wglass.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
is_ground_content = true, is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3}, groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
@ -79,8 +50,6 @@ building_blocks_stairs("building_blocks:woodglass", {
building_blocks_stairs("building_blocks:Adobe", { building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"}, tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"), description = S("Adobe"),
stair_desc = S("Adobe Stair"),
slab_desc = S("Adobe Slab"),
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -88,8 +57,6 @@ building_blocks_stairs("building_blocks:Adobe", {
building_blocks_stairs("building_blocks:fakegrass", { building_blocks_stairs("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
description = S("Fake Grass"), description = S("Fake Grass"),
stair_desc = S("Fake Grass Stair"),
slab_desc = S("Fake Grass Slab"),
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
@ -100,8 +67,6 @@ building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"}, tiles = {"building_blocks_hardwood.png"},
is_ground_content = true, is_ground_content = true,
description = S("Hardwood"), description = S("Hardwood"),
stair_desc = S("Hardwood Stair"),
slab_desc = S("Hardwood Slab"),
groups = {choppy=1,flammable=1}, groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
@ -109,15 +74,11 @@ building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"}, tiles = {"building_blocks_Roofing.png"},
is_ground_content = true, is_ground_content = true,
description = S("Roof block"), description = S("Roof block"),
stair_desc = S("Roof block Stair"),
slab_desc = S("Roof block Slab"),
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
building_blocks_stairs("building_blocks:Tar", { building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"), description = S("Tar"),
stair_desc = S("Tar Stair"),
slab_desc = S("Tar Slab"),
tiles = {"building_blocks_tar.png"}, tiles = {"building_blocks_tar.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=1, tar_block = 1}, groups = {crumbly=1, tar_block = 1},
@ -125,8 +86,6 @@ building_blocks_stairs("building_blocks:Tar", {
}) })
building_blocks_stairs("building_blocks:Marble", { building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"), description = S("Marble"),
stair_desc = S("Marble Stair"),
slab_desc = S("Marble Slab"),
tiles = {"building_blocks_marble.png"}, tiles = {"building_blocks_marble.png"},
is_ground_content = true, is_ground_content = true,
groups = {cracky=3, marble = 1}, groups = {cracky=3, marble = 1},

View File

@ -179,6 +179,7 @@ minetest.register_node("fake_fire:fancy_fire", {
mesh = "fancy_fire.obj", mesh = "fancy_fire.obj",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = "clip",
groups = {oddly_breakable_by_hand=3, flammable=0}, groups = {oddly_breakable_by_hand=3, flammable=0},
sunlight_propagates = true, sunlight_propagates = true,
light_source = 13, light_source = 13,

View File

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

View File

@ -21,7 +21,7 @@ if minetest.get_modpath("vessels") then
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = true use_texture_alpha = "blend",
}) })
local sbox = { local sbox = {
@ -35,7 +35,7 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"}, tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png", inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
wield_image = "homedecor_3d_vessels_glass_bottle_inv.png", wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
use_texture_alpha = true, use_texture_alpha = "blend",
selection_box = sbox selection_box = sbox
}) })
@ -54,7 +54,7 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"}, tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png", inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
wield_image = "homedecor_3d_vessels_drinking_glass_inv.png", wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
use_texture_alpha = true, use_texture_alpha = "blend",
selection_box = sbox selection_box = sbox
}) })
end end

View File

@ -91,6 +91,10 @@ homedecor.register("medicine_cabinet", {
node.name = "homedecor:medicine_cabinet_open" node.name = "homedecor:medicine_cabinet_open"
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
end, end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
infotext=S("Medicine cabinet"), infotext=S("Medicine cabinet"),
inventory = { inventory = {
size=6, size=6,
@ -115,6 +119,10 @@ homedecor.register("medicine_cabinet_open", {
node.name = "homedecor:medicine_cabinet" node.name = "homedecor:medicine_cabinet"
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
end, end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
}) })
-- "Sanitation" related -- "Sanitation" related
@ -163,6 +171,7 @@ homedecor.register("toilet_open", {
selection_box = toilet_sbox, selection_box = toilet_sbox,
collision_box = toilet_cbox, collision_box = toilet_cbox,
drop = "homedecor:toilet", drop = "homedecor:toilet",
use_texture_alpha = "blend",
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -223,6 +232,7 @@ homedecor.register("sink", {
"building_blocks_marble.png", "building_blocks_marble.png",
"default_water.png" "default_water.png"
}, },
use_texture_alpha = "blend",
inventory_image="homedecor_bathroom_sink_inv.png", inventory_image="homedecor_bathroom_sink_inv.png",
selection_box = sink_sbox, selection_box = sink_sbox,
collision_box = sink_cbox, collision_box = sink_cbox,
@ -239,9 +249,7 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing)
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z}) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and if below and
below.name == "homedecor:shower_tray" or below.name == "homedecor:shower_tray" or
below.name == "homedecor:sink" or string.find(below.name, "homedecor:.*sink") then
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
local particledef = { local particledef = {
outlet = { x = 0, y = -0.44, z = 0.28 }, outlet = { x = 0, y = -0.44, z = 0.28 },
velocity_x = { min = -0.1, max = 0.1 }, velocity_x = { min = -0.1, max = 0.1 },

View File

@ -31,7 +31,7 @@ local kbed_cbox = {
} }
-- local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
homedecor.register("bed_regular", { homedecor.register("bed_regular", {
mesh = "homedecor_bed_regular.obj", mesh = "homedecor_bed_regular.obj",
@ -67,9 +67,9 @@ homedecor.register("bed_regular", {
if itemname == "homedecor:bed_regular" then if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true) homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack return itemstack
-- else else
-- bed_on_rightclick(pos, node, clicker) bed_on_rightclick(pos, node, clicker)
-- return itemstack return itemstack
end end
end end
}) })
@ -96,10 +96,10 @@ homedecor.register("bed_extended", {
homedecor.unextend_bed(pos) homedecor.unextend_bed(pos)
end, end,
on_dig = unifieddyes.on_dig, on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker) bed_on_rightclick(pos, node, clicker)
-- return itemstack return itemstack
-- end, end,
drop = "homedecor:bed_regular" drop = "homedecor:bed_regular"
}) })
@ -133,10 +133,10 @@ homedecor.register("bed_kingsize", {
end end
end, end,
on_dig = unifieddyes.on_dig, on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker) bed_on_rightclick(pos, node, clicker)
-- return itemstack return itemstack
-- end, end,
}) })
for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do

View File

@ -10,6 +10,7 @@ homedecor.register("air_conditioner", {
"default_glass.png" "default_glass.png"
}, },
groups = { snappy = 3 }, groups = { snappy = 3 },
use_texture_alpha = "clip",
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
selection_box = { type="regular" }, selection_box = { type="regular" },
}) })
@ -95,6 +96,7 @@ homedecor.register("ceiling_fan", {
{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 } { -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
} }
}, },
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
light_source = default.LIGHT_MAX-1, light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),

View File

@ -88,6 +88,7 @@ homedecor.register("grandfather_clock", {
"homedecor_grandfather_clock_face_edge.png", "homedecor_grandfather_clock_face_edge.png",
"homedecor_generic_metal_brass.png" "homedecor_generic_metal_brass.png"
}, },
use_texture_alpha = "clip",
inventory_image = "homedecor_grandfather_clock_inv.png", inventory_image = "homedecor_grandfather_clock_inv.png",
groups = { snappy = 3 }, groups = { snappy = 3 },
selection_box = gf_cbox, selection_box = gf_cbox,

View File

@ -30,6 +30,7 @@ minetest.register_node(":homedecor:cobweb_centered", {
drawtype = "nodebox", drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" }, tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
use_texture_alpha = "clip",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
sunlight_propagates = true, sunlight_propagates = true,
@ -59,6 +60,7 @@ minetest.register_node(":homedecor:cobweb_flat", {
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = "clip",
sunlight_propagates = true, sunlight_propagates = true,
liquid_viscosity = 8, liquid_viscosity = 8,
liquidtype = "source", liquidtype = "source",

View File

@ -148,7 +148,8 @@ function homedecor.register_furnace(name, furnacedef)
can_dig = furnace_can_dig, can_dig = furnace_can_dig,
allow_metadata_inventory_put = furnace_allow_put, allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move, allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true } inventory = { lockable = true },
is_furnace = true
} }
local def_active = { local def_active = {
@ -162,7 +163,8 @@ function homedecor.register_furnace(name, furnacedef)
can_dig = furnace_can_dig, can_dig = furnace_can_dig,
allow_metadata_inventory_put = furnace_allow_put, allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move, allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true } inventory = { lockable = true },
is_furnace = true
} }
if furnacedef.extra_nodedef_fields then if furnacedef.extra_nodedef_fields then

View File

@ -1,5 +1,12 @@
local S = minetest.get_translator("homedecor_common") 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 default_can_dig = function(pos,player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
return meta:get_inventory():is_empty("main") return meta:get_inventory():is_empty("main")
@ -97,6 +104,23 @@ function homedecor.handle_inventory(name, def, original_def)
end end
local locked = inventory.locked 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 if locked then
local after_place_node = def.after_place_node local after_place_node = def.after_place_node
def.after_place_node = function(pos, placer) def.after_place_node = function(pos, placer)

View File

@ -1,4 +1,4 @@
name = homedecor_common name = homedecor_common
description = Homedecor mod: common description = Homedecor mod: common
depends = default, creative depends = default, creative
optional_depends = screwdriver optional_depends = screwdriver, hopper

View File

@ -6,6 +6,8 @@ local placeholder_node = "homedecor:expansion_placeholder"
function homedecor.register(name, original_def) function homedecor.register(name, original_def)
local def = table.copy(original_def) local def = table.copy(original_def)
def.is_furnace = nil
def.drawtype = def.drawtype def.drawtype = def.drawtype
or (def.mesh and "mesh") or (def.mesh and "mesh")
or (def.node_box and "nodebox") or (def.node_box and "nodebox")

View File

@ -4,209 +4,137 @@ local S = minetest.get_translator("homedecor_doors_and_gates")
local mesecons_mp = minetest.get_modpath("mesecons") local mesecons_mp = minetest.get_modpath("mesecons")
homedecor_doors_and_gates = {} homedecor_doors_and_gates = {}
-- new doors using minetest_game doors API
local door_list = { local door_list = {
{ {
name = "wood_plain", name = "wood_plain",
description = S("Plain Wooden Door"), description = S("Plain Wooden Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { sound_open = "homedecor_door_open",
main = default.node_sound_wood_defaults(), sound_close = "homedecor_door_close",
open = "homedecor_door_open",
close = "homedecor_door_close",
}
}, },
{ {
name = "exterior_fancy", name = "exterior_fancy",
description = S("Fancy Wood/Glass Door"), description = S("Fancy Wood/Glass Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { sound_open = "homedecor_door_open",
main = default.node_sound_wood_defaults(), sound_close = "homedecor_door_close",
open = "homedecor_door_open", mesh = "homedecor_door_fancy.obj"
close = "homedecor_door_close",
}, },
backface = true,
alpha = true,
custom_model = "homedecor_door_fancy"
},
{ {
name = "french_oak", name = "french_oak",
description = S("French door, Oak-colored"), description = S("French door, Oak-colored"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_glass_defaults(),
sounds = { mesh = "homedecor_door_french.obj"
main = default.node_sound_glass_defaults(),
}, },
backface = true,
alpha = true,
custom_model = "homedecor_door_french"
},
{ {
name = "french_mahogany", name = "french_mahogany",
description = S("French door, Mahogany-colored"), description = S("French door, Mahogany-colored"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_glass_defaults(),
sounds = { mesh = "homedecor_door_french.obj"
main = default.node_sound_glass_defaults(),
}, },
backface = true,
alpha = true,
custom_model = "homedecor_door_french"
},
{ {
name = "french_white", name = "french_white",
description = S("French door, White"), description = S("French door, White"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_glass_defaults(),
sounds = { mesh = "homedecor_door_french.obj"
main = default.node_sound_glass_defaults(),
}, },
backface = true,
alpha = true,
custom_model = "homedecor_door_french"
},
{ {
name = "basic_panel", name = "basic_panel",
description = S("Basic white panel Door"), description = S("Basic white panel Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { sound_open = "homedecor_door_open",
main = default.node_sound_wood_defaults(), sound_close = "homedecor_door_close",
open = "homedecor_door_open",
close = "homedecor_door_close",
}
}, },
{ {
name = "wrought_iron", name = "wrought_iron",
description = S("Wrought Iron Gate/Door"), description = S("Wrought Iron Gate/Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_metal_defaults(),
sounds = { sound_open = "doors_steel_door_open",
main = default.node_sound_metal_defaults(), sound_close = "doors_steel_door_close",
open = "doors_steel_door_open", mesh = "homedecor_door_wrought_iron.obj"
close = "doors_steel_door_close",
}, },
backface = true,
custom_model = "homedecor_door_wrought_iron"
},
{ {
name = "carolina", name = "carolina",
description = S("Wooden Carolina door"), description = S("Wooden Carolina door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { sound_open = "homedecor_door_open",
main = default.node_sound_wood_defaults(), sound_close = "homedecor_door_close",
open = "homedecor_door_open",
close = "homedecor_door_close",
}, },
backface = true,
alpha = true
},
{ {
name = "woodglass", name = "woodglass",
description = S("Wooden door with glass insert, type 3"), description = S("Wooden door with glass insert, type 3"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { sound_open = "homedecor_door_open",
main = default.node_sound_wood_defaults(), sound_close = "homedecor_door_close",
open = "homedecor_door_open", mesh = "homedecor_door_wood_glass_3.obj"
close = "homedecor_door_close",
}, },
backface = true,
alpha = true,
custom_model = "homedecor_door_wood_glass_3"
},
{ {
name = "closet_mahogany", name = "closet_mahogany",
description = S("Mahogany Closet Door"), description = S("Mahogany Closet Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { mesh = "homedecor_door_closet.obj"
main = default.node_sound_wood_defaults(),
}, },
custom_model = "homedecor_door_closet"
},
{ {
name = "closet_oak", name = "closet_oak",
description = S("Oak Closet Door"), description = S("Oak Closet Door"),
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(),
sounds = { mesh = "homedecor_door_closet"
main = default.node_sound_wood_defaults(),
},
custom_model = "homedecor_door_closet"
}, },
} }
local old_doors = {} local old_doors = {}
local mesecons
-- This part blatantly copied from Mesecons, and modified :-) local door_types = {"_a", "_b", "_c", "_d"}
if mesecons_mp then
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 = { mesecons = {
effector = { effector = {
action_on = function(pos, node) action_on = function(pos, node)
local door = doors.get(pos) local door = doors.get(pos)
if door then if door then door:open() end
door:open()
end
end, end,
action_off = function(pos, node) action_off = function(pos, node)
local door = doors.get(pos) local door = doors.get(pos)
if door then if door then door:close() end
door:close()
end
end, end,
rules = mesecon.rules.pplate rules = minetest.global_exists("mesecon") and mesecon.rules.pplate or nil
} }
},
} }
for k, v in pairs(default_settings) do
if not def[k] then def[k] = v end
end
def.name = nil
return def
end end
local hd_3d = minetest.get_modpath("homedecor_3d_extras")
for _, door in ipairs(door_list) do for _, door in ipairs(door_list) do
doors.register("homedecor_"..door.name, { local name = door.name
tiles = {{ name = "homedecor_door_"..door.name..".png", backface_culling = door.backface }}, doors.register("homedecor_" .. name, generate_door(door))
description = door.description,
inventory_image = "homedecor_door_"..door.name.."_inv.png", --hack to get around doors not allowing custom meshes
groups = table.copy(door.groups), if door.mesh then
sounds = door.sounds.main, for _, v in pairs(door_types) do
sound_open = door.sounds.open, minetest.override_item("doors:homedecor_" .. name .. v, {
sound_close = door.sounds.close, mesh = door.mesh
mesecons = mesecons
}) })
end
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 end
if door.custom_model and hd_3d then --compatibility
def = table.copy(minetest.registered_nodes[nn_a]) old_doors[#old_doors + 1] = "homedecor:door_"..name.."_left"
def.mesh = door.custom_model.."_a.obj" old_doors[#old_doors + 1] = "homedecor:door_"..name.."_right"
minetest.register_node(":"..nn_a, def)
def = table.copy(minetest.registered_nodes[nn_b]) minetest.register_alias("doors:"..name.."_a", "doors:homedecor_"..name.."_a")
def.mesh = door.custom_model.."_b.obj" minetest.register_alias("doors:"..name.."_b", "doors:homedecor_"..name.."_b")
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 end
-- Gates -- Gates
@ -307,6 +235,7 @@ for i, g in ipairs(gate_list) do
description = gatedesc, description = gatedesc,
tiles = tiles, tiles = tiles,
paramtype = "light", paramtype = "light",
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir", paramtype2 = "facedir",

View File

@ -94,6 +94,7 @@ homedecor.register("lattice_"..name, {
description = S("Garden Lattice (@1)", desc), description = S("Garden Lattice (@1)", desc),
tiles = {"homedecor_lattice"..texture}, tiles = {"homedecor_lattice"..texture},
inventory_image = "homedecor_lattice"..texture, inventory_image = "homedecor_lattice"..texture,
use_texture_alpha = "clip",
groups = { snappy=3 }, groups = { snappy=3 },
node_box = { node_box = {
type = "fixed", type = "fixed",
@ -121,6 +122,7 @@ homedecor.register("swing", {
"homedecor_swing_top.png" "homedecor_swing_top.png"
}, },
inventory_image = "homedecor_swing_inv.png", inventory_image = "homedecor_swing_inv.png",
use_texture_alpha = "clip",
groups = { snappy=3, oddly_breakable_by_hand=3 }, groups = { snappy=3, oddly_breakable_by_hand=3 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
walkable = false, walkable = false,
@ -219,6 +221,7 @@ homedecor.register("well", {
}, },
inventory_image = "homedecor_well_inv.png", inventory_image = "homedecor_well_inv.png",
description = S("Water well"), description = S("Water well"),
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
selection_box = homedecor.nodebox.slab_y(2), selection_box = homedecor.nodebox.slab_y(2),
collision_box = homedecor.nodebox.slab_y(2), collision_box = homedecor.nodebox.slab_y(2),
@ -265,6 +268,7 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
tiles = {"homedecor_shrubbery_"..color..".png"}, tiles = {"homedecor_shrubbery_"..color..".png"},
paramtype = "light", paramtype = "light",
is_ground_content = false, is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3, flammable=2}, groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
@ -280,6 +284,7 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
}, },
paramtype = "light", paramtype = "light",
is_ground_content = false, is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3, flammable=2}, groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
selection_box = shrub_cbox, selection_box = shrub_cbox,

View File

@ -35,6 +35,7 @@ homedecor.register("fence_picket", {
"homedecor_fence_picket_backside.png", "homedecor_fence_picket_backside.png",
"homedecor_fence_picket.png" "homedecor_fence_picket.png"
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.slab_z(-0.1), selection_box = homedecor.nodebox.slab_z(-0.1),
@ -51,6 +52,7 @@ homedecor.register("fence_picket_corner", {
"homedecor_fence_picket_backside.png", "homedecor_fence_picket_backside.png",
"homedecor_fence_picket.png", "homedecor_fence_picket.png",
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1), selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
@ -67,6 +69,7 @@ homedecor.register("fence_picket_white", {
"homedecor_fence_picket_white_backside.png", "homedecor_fence_picket_white_backside.png",
"homedecor_fence_picket_white.png" "homedecor_fence_picket_white.png"
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.slab_z(-0.1), selection_box = homedecor.nodebox.slab_z(-0.1),
@ -83,6 +86,7 @@ homedecor.register("fence_picket_corner_white", {
"homedecor_fence_picket_white_backside.png", "homedecor_fence_picket_white_backside.png",
"homedecor_fence_picket_white.png", "homedecor_fence_picket_white.png",
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1), selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
@ -152,6 +156,7 @@ homedecor.register("fence_barbed_wire", {
description = S("Barbed Wire Fence"), description = S("Barbed Wire Fence"),
mesh = "homedecor_fence_barbed_wire.obj", mesh = "homedecor_fence_barbed_wire.obj",
tiles = {"homedecor_fence_barbed_wire.png"}, tiles = {"homedecor_fence_barbed_wire.png"},
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.slab_z(-0.125), selection_box = homedecor.nodebox.slab_z(-0.125),
@ -162,6 +167,7 @@ homedecor.register("fence_barbed_wire_corner", {
description = S("Barbed Wire Fence Corner"), description = S("Barbed Wire Fence Corner"),
mesh = "homedecor_fence_barbed_wire_corner.obj", mesh = "homedecor_fence_barbed_wire_corner.obj",
tiles = { "homedecor_fence_barbed_wire.png" }, tiles = { "homedecor_fence_barbed_wire.png" },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.125, -0.125), selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
@ -179,6 +185,7 @@ homedecor.register("fence_chainlink", {
"homedecor_fence_chainlink_fb.png", "homedecor_fence_chainlink_fb.png",
"homedecor_fence_chainlink_fb.png", "homedecor_fence_chainlink_fb.png",
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.slab_z(-0.125), selection_box = homedecor.nodebox.slab_z(-0.125),
@ -197,6 +204,7 @@ homedecor.register("fence_chainlink_corner", {
"homedecor_fence_chainlink_corner_front.png", "homedecor_fence_chainlink_corner_front.png",
"homedecor_fence_chainlink_corner_front.png", "homedecor_fence_chainlink_corner_front.png",
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.125, -0.125), selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
@ -213,6 +221,7 @@ homedecor.register("fence_wrought_iron_2", {
"homedecor_fence_wrought_iron_2_fb.png", "homedecor_fence_wrought_iron_2_fb.png",
"homedecor_fence_wrought_iron_2_fb.png" "homedecor_fence_wrought_iron_2_fb.png"
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.slab_z(-0.08), selection_box = homedecor.nodebox.slab_z(-0.08),
@ -240,6 +249,7 @@ homedecor.register("fence_wrought_iron_2_corner", {
"homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX", "homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX",
"homedecor_fence_corner_wrought_iron_2_sides.png" "homedecor_fence_corner_wrought_iron_2_sides.png"
}, },
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.08, -0.08), selection_box = homedecor.nodebox.corner_xz(0.08, -0.08),

View File

@ -1,38 +1,5 @@
local S = minetest.get_translator("homedecor_furniture") 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 = { local ob_cbox = {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 } fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
@ -69,224 +36,3 @@ homedecor.register("wall_shelf", {
} }
} }
}) })
-- Crafts
minetest.register_craft({
output = "homedecor:table",
recipe = {
{ "group:wood","group:wood", "group:wood" },
{ "group:stick", "", "group:stick" },
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"dye:brown",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"unifieddyes:dark_orange",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_white",
recipe = {
"homedecor:table",
"dye:white",
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_mahogany",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_white",
burntime = 30,
})
minetest.register_craft({
output = "homedecor:standing_lamp_off",
recipe = {
{"homedecor:table_lamp_off"},
{"group:stick"},
{"group:stick"},
},
})
unifieddyes.register_color_craft({
output = "homedecor:standing_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:standing_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_lamp_off",
burntime = 10,
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:table_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:table_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:toilet",
recipe = {
{ "","","bucket:bucket_water"},
{ "group:marble","group:marble", "group:marble" },
{ "", "bucket:bucket_empty", "" },
},
})
minetest.register_craft({
output = "homedecor:sink",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
{ "", "group:marble", "" }
},
})
minetest.register_craft({
output = "homedecor:taps",
recipe = {
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:taps_brass",
recipe = {
{ "technic:brass_ingot","bucket:bucket_water", "technic:brass_ingot" },
},
})
minetest.register_craft({
output = "homedecor:shower_tray",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
},
})
minetest.register_craft({
output = "homedecor:shower_head",
recipe = {
{"default:steel_ingot", "bucket:bucket_water"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_brass_taps",
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_chrome_taps",
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bars 6",
recipe = {
{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
},
})
minetest.register_craft({
output = "homedecor:L_binding_bars 3",
recipe = {
{ "homedecor:bars","" },
{ "homedecor:bars","homedecor:bars" },
},
})
minetest.register_craft({
output = "homedecor:torch_wall 10",
recipe = {
{ "default:coal_lump" },
{ "default:steel_ingot" },
},
})
-- Aliases for 3dforniture mod.
minetest.register_alias("3dforniture:table", "homedecor:table")
minetest.register_alias('table', 'homedecor:table')

View File

@ -57,6 +57,24 @@ homedecor.register("chains", {
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
-- Crafts
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_alias("3dforniture:bars", "homedecor:bars") minetest.register_alias("3dforniture:bars", "homedecor:bars")
minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars") minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars")
minetest.register_alias("3dforniture:chains", "homedecor:chains") minetest.register_alias("3dforniture:chains", "homedecor:chains")

View File

@ -136,6 +136,7 @@ homedecor.register("toaster", {
tiles = { "homedecor_toaster_sides.png" }, tiles = { "homedecor_toaster_sides.png" },
inventory_image = "homedecor_toaster_inv.png", inventory_image = "homedecor_toaster_inv.png",
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy=3 }, groups = { snappy=3 },
node_box = { node_box = {
type = "fixed", type = "fixed",
@ -165,6 +166,7 @@ homedecor.register("toaster_loaf", {
"homedecor_toaster_sides.png" "homedecor_toaster_sides.png"
}, },
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy=3, not_in_creative_inventory=1 }, groups = { snappy=3, not_in_creative_inventory=1 },
node_box = { node_box = {
type = "fixed", type = "fixed",

View File

@ -12,7 +12,7 @@ read_globals = {
"VoxelManip", "VoxelArea", "VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack", "PseudoRandom", "ItemStack",
"default", "default",
"screwdriver", "screwdriver", "homedecor",
} }
globals = { globals = {

View File

@ -3,7 +3,7 @@ local S = minetest.get_translator("inbox")
local inbox = {} local inbox = {}
minetest.register_craft({ minetest.register_craft({
output ="inbox:empty", output ="homedecor:inbox",
recipe = { recipe = {
{"","default:steel_ingot",""}, {"","default:steel_ingot",""},
{"default:steel_ingot","","default:steel_ingot"}, {"default:steel_ingot","","default:steel_ingot"},
@ -16,17 +16,17 @@ local mb_cbox = {
fixed = { -5/16, -8/16, -8/16, 5/16, 2/16, 8/16 } fixed = { -5/16, -8/16, -8/16, 5/16, 2/16, 8/16 }
} }
minetest.register_node("inbox:empty", { homedecor.register("inbox", {
paramtype = "light", paramtype = "light",
drawtype = "mesh", drawtype = "mesh",
mesh = "inbox_mailbox.obj", mesh = "homedecor_inbox_mailbox.obj",
description = S("Mailbox"), description = S("Mailbox"),
tiles = { tiles = {
"inbox_red_metal.png", "homedecor_inbox_red_metal.png",
"inbox_white_metal.png", "homedecor_inbox_white_metal.png",
"inbox_grey_metal.png", "homedecor_inbox_grey_metal.png",
}, },
inventory_image = "mailbox_inv.png", inventory_image = "homedecor_mailbox_inv.png",
selection_box = mb_cbox, selection_box = mb_cbox,
collision_box = mb_cbox, collision_box = mb_cbox,
paramtype2 = "facedir", paramtype2 = "facedir",
@ -105,6 +105,8 @@ minetest.register_node("inbox:empty", {
end, end,
}) })
minetest.register_alias("inbox:empty", "homedecor:inbox")
function inbox.get_inbox_formspec(pos) function inbox.get_inbox_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = local formspec =

View File

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

View File

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

View File

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 319 B

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -86,6 +86,7 @@ homedecor.register_furnace("microwave_oven", {
output_width = 2, output_width = 2,
cook_speed = 1.5, cook_speed = 1.5,
extra_nodedef_fields = { extra_nodedef_fields = {
use_texture_alpha = "clip",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 }, fixed = { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 },
@ -154,6 +155,7 @@ homedecor.kitchen_convert_nodes = {}
for _, mat in ipairs(counter_materials) do for _, mat in ipairs(counter_materials) do
local desc = S("Kitchen Cabinet") local desc = S("Kitchen Cabinet")
local desc2 = S("Kitchen Cabinet with drawers")
local material = "" local material = ""
if mat ~= "" then if mat ~= "" then
@ -177,7 +179,7 @@ for _, mat in ipairs(counter_materials) do
.."{homedecor_kitchen_cabinet_front.png" .."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides, .."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj", mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "wallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material, airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material,
place_param2 = 0, place_param2 = 0,
@ -237,10 +239,9 @@ for _, mat in ipairs(counter_materials) do
.."{homedecor_kitchen_cabinet_front_with_drawers.png" .."{homedecor_kitchen_cabinet_front_with_drawers.png"
.."{"..ic_cabinet_sides, .."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj", mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "wallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material, airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material,
place_param2 = 0,
groups = { snappy = 3, ud_param2_colorable = 1}, groups = { snappy = 3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet with drawers"), infotext=S("Kitchen Cabinet with drawers"),
@ -282,8 +283,10 @@ for _, mat in ipairs(counter_materials) do
end 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_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_locked"..material "homedecor:kitchen_cabinet"..material
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] =
"homedecor:kitchen_cabinet"..material.."_locked"
end end
@ -300,7 +303,7 @@ homedecor.register("kitchen_cabinet_colorable_half", {
'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.png' 'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
}, },
mesh = "homedecor_kitchen_cabinet_half.obj", mesh = "homedecor_kitchen_cabinet_half.obj",
paramtype2 = "wallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half", airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half",
place_param2 = 0, place_param2 = 0,
@ -363,7 +366,7 @@ homedecor.register("kitchen_cabinet_colorable_with_sink", {
.."{homedecor_kitchen_sink_top.png" .."{homedecor_kitchen_sink_top.png"
.."{homedecor_kitchen_cabinet_front.png" .."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides, .."{"..ic_cabinet_sides,
paramtype2 = "wallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink", airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink",
place_param2 = 0, place_param2 = 0,
@ -469,10 +472,7 @@ homedecor.register("kitchen_faucet", {
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil, on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) 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}) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and if below and 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 = { local particledef = {
outlet = { x = 0, y = -0.19, z = 0.13 }, outlet = { x = 0, y = -0.19, z = 0.13 },
velocity_x = { min = -0.05, max = 0.05 }, velocity_x = { min = -0.05, max = 0.05 },
@ -573,7 +573,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet", output = "homedecor:kitchen_cabinet_colorable",
recipe = { recipe = {
{"group:wood", "group:stick", "group:wood", }, {"group:wood", "group:stick", "group:wood", },
{"group:wood", "group:stick", "group:wood", }, {"group:wood", "group:stick", "group:wood", },
@ -582,53 +582,53 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet_steel", output = "homedecor:kitchen_cabinet_colorable_steel",
recipe = { recipe = {
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
{"", "homedecor:kitchen_cabinet", ""}, {"", "homedecor:kitchen_cabinet_colorable", ""},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet_steel", output = "homedecor:kitchen_cabinet_colorable_steel",
recipe = { recipe = {
{"moreblocks:slab_steelblock_1"}, {"moreblocks:slab_steelblock_1"},
{ "homedecor:kitchen_cabinet" }, { "homedecor:kitchen_cabinet_colorable" },
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet_marble", output = "homedecor:kitchen_cabinet_colorable_marble",
recipe = { recipe = {
{"building_blocks:slab_marble"}, {"building_blocks:slab_marble"},
{"homedecor:kitchen_cabinet"}, {"homedecor:kitchen_cabinet_colorable"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet_marble", output = "homedecor:kitchen_cabinet_colorable_marble",
recipe = { recipe = {
{"technic:slab_marble_1"}, {"technic:slab_marble_1"},
{"homedecor:kitchen_cabinet"}, {"homedecor:kitchen_cabinet_colorable"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet_granite", output = "homedecor:kitchen_cabinet_colorable_granite",
recipe = { recipe = {
{"technic:slab_granite_1"}, {"technic:slab_granite_1"},
{"homedecor:kitchen_cabinet"}, {"homedecor:kitchen_cabinet_colorable"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "homedecor:kitchen_cabinet_half 2", output = "homedecor:kitchen_cabinet_colorable_half 2",
recipe = { "homedecor:kitchen_cabinet" } recipe = { "homedecor:kitchen_cabinet_colorable" }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:kitchen_cabinet_with_sink", output = "homedecor:kitchen_cabinet_colorable_with_sink",
recipe = { recipe = {
{"group:wood", "default:steel_ingot", "group:wood", }, {"group:wood", "default:steel_ingot", "group:wood", },
{"group:wood", "default:steel_ingot", "group:wood", }, {"group:wood", "default:steel_ingot", "group:wood", },

View File

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

View File

@ -263,7 +263,7 @@ for brightness_level = 0, 14 do
description = S("Thick Glowlight"), description = S("Thick Glowlight"),
tiles = tiles, tiles = tiles,
overlay_tiles = overlay, overlay_tiles = overlay,
use_texture_alpha = true, use_texture_alpha = "blend",
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
@ -329,7 +329,7 @@ for brightness_level = 0, 14 do
description = S("Thin Glowlight"), description = S("Thin Glowlight"),
tiles = tiles, tiles = tiles,
overlay_tiles = overlay, overlay_tiles = overlay,
use_texture_alpha = true, use_texture_alpha = "blend",
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
@ -396,7 +396,7 @@ for brightness_level = 0, 14 do
description = S("Small Glowlight Cube"), description = S("Small Glowlight Cube"),
tiles = tiles, tiles = tiles,
overlay_tiles = overlay, overlay_tiles = overlay,
use_texture_alpha = true, use_texture_alpha = "blend",
paramtype = "light", paramtype = "light",
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
drawtype = "nodebox", drawtype = "nodebox",
@ -448,7 +448,7 @@ for brightness_level = 0, 14 do
"default_gold_block.png", "default_gold_block.png",
lighttex lighttex
}, },
use_texture_alpha = true, use_texture_alpha = "blend",
light_source = brightness_level, light_source = brightness_level,
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici}, groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici},
@ -473,7 +473,7 @@ for brightness_level = 0, 14 do
description = S("Ground Lantern/Light"), description = S("Ground Lantern/Light"),
mesh = "homedecor_ground_lantern.obj", mesh = "homedecor_ground_lantern.obj",
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" }, tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
use_texture_alpha = true, use_texture_alpha = "blend",
inventory_image = "homedecor_ground_lantern_inv.png", inventory_image = "homedecor_ground_lantern_inv.png",
wield_image = "homedecor_ground_lantern_inv.png", wield_image = "homedecor_ground_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
@ -500,7 +500,7 @@ for brightness_level = 0, 14 do
description = S("Hanging Lantern/Light"), description = S("Hanging Lantern/Light"),
mesh = "homedecor_hanging_lantern.obj", mesh = "homedecor_hanging_lantern.obj",
tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow }, tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow },
use_texture_alpha = true, use_texture_alpha = "blend",
inventory_image = "homedecor_hanging_lantern_inv.png", inventory_image = "homedecor_hanging_lantern_inv.png",
wield_image = "homedecor_hanging_lantern_inv.png", wield_image = "homedecor_hanging_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
@ -527,7 +527,7 @@ for brightness_level = 0, 14 do
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_ceiling_lantern.obj", mesh = "homedecor_ceiling_lantern.obj",
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" }, tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
use_texture_alpha = true, use_texture_alpha = "blend",
inventory_image = "homedecor_ceiling_lantern_inv.png", inventory_image = "homedecor_ceiling_lantern_inv.png",
description = S("Ceiling Lantern/Light"), description = S("Ceiling Lantern/Light"),
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
@ -549,6 +549,7 @@ for brightness_level = 0, 14 do
homedecor.register("lattice_lantern_large_"..brightness_level, { homedecor.register("lattice_lantern_large_"..brightness_level, {
description = S("Lattice lantern/Light (large)"), description = S("Lattice lantern/Light (large)"),
tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" }, tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" },
use_texture_alpha = "clip",
groups = { snappy = 3, not_in_creative_inventory = nici }, groups = { snappy = 3, not_in_creative_inventory = nici },
light_source = brightness_level, light_source = brightness_level,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
@ -590,6 +591,7 @@ for brightness_level = 0, 14 do
type = "fixed", type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
}, },
use_texture_alpha = "clip",
groups = { snappy = 3, not_in_creative_inventory = nici }, groups = { snappy = 3, not_in_creative_inventory = nici },
light_source = brightness_level, light_source = brightness_level,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
@ -792,7 +794,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
fixed = { -0.1875, -0.5, -0.1875, 0.1875, 0, 0.1875 } fixed = { -0.1875, -0.5, -0.1875, 0.1875, 0, 0.1875 }
}, },
walkable = false, walkable = false,
use_texture_alpha = true, use_texture_alpha = "blend",
light_source = onflag and (default.LIGHT_MAX - 5) or nil, light_source = onflag and (default.LIGHT_MAX - 5) or nil,
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici}, groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici},
@ -916,7 +918,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
gen_ls_tex_yellow, gen_ls_tex_yellow,
"homedecor_generic_metal_wrought_iron.png" "homedecor_generic_metal_wrought_iron.png"
}, },
use_texture_alpha = true, use_texture_alpha = "blend",
inventory_image = "homedecor_wall_lamp_inv.png", inventory_image = "homedecor_wall_lamp_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
light_source = onflag and (default.LIGHT_MAX - 3) or nil, light_source = onflag and (default.LIGHT_MAX - 3) or nil,
@ -954,6 +956,7 @@ homedecor.register("candle", {
inventory_image = "homedecor_candle_inv.png", inventory_image = "homedecor_candle_inv.png",
selection_box = tc_cbox, selection_box = tc_cbox,
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4, light_source = default.LIGHT_MAX-4,
}) })
@ -975,6 +978,7 @@ homedecor.register("candle_thin", {
inventory_image = "homedecor_candle_thin_inv.png", inventory_image = "homedecor_candle_thin_inv.png",
selection_box = c_cbox, selection_box = c_cbox,
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4, light_source = default.LIGHT_MAX-4,
}) })
@ -997,6 +1001,7 @@ homedecor.register("candlestick_wrought_iron", {
inventory_image = "homedecor_candlestick_wrought_iron_inv.png", inventory_image = "homedecor_candlestick_wrought_iron_inv.png",
selection_box = cs_cbox, selection_box = cs_cbox,
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4, light_source = default.LIGHT_MAX-4,
}) })
@ -1012,6 +1017,7 @@ homedecor.register("candlestick_brass", {
inventory_image = "homedecor_candlestick_brass_inv.png", inventory_image = "homedecor_candlestick_brass_inv.png",
selection_box = cs_cbox, selection_box = cs_cbox,
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4, light_source = default.LIGHT_MAX-4,
}) })
@ -1031,6 +1037,7 @@ homedecor.register("wall_sconce", {
fixed = { -0.1875, -0.25, 0.3125, 0.1875, 0.25, 0.5 } fixed = { -0.1875, -0.25, 0.3125, 0.1875, 0.25, 0.5 }
}, },
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4, light_source = default.LIGHT_MAX-4,
}) })
@ -1053,7 +1060,7 @@ homedecor.register("oil_lamp", {
{ name = "homedecor_generic_metal.png", color = 0xffa00000 }, { name = "homedecor_generic_metal.png", color = 0xffa00000 },
"homedecor_oil_lamp_glass.png", "homedecor_oil_lamp_glass.png",
}, },
use_texture_alpha = true, use_texture_alpha = "blend",
inventory_image = "homedecor_oil_lamp_inv.png", inventory_image = "homedecor_oil_lamp_inv.png",
selection_box = ol_cbox, selection_box = ol_cbox,
walkable = false, walkable = false,
@ -1132,6 +1139,7 @@ minetest.register_node(":homedecor:chandelier_steel", {
}, },
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_chandelier.obj", mesh = "homedecor_chandelier.obj",
use_texture_alpha = "clip",
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -1158,6 +1166,7 @@ minetest.register_node(":homedecor:chandelier_brass", {
}, },
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_chandelier.obj", mesh = "homedecor_chandelier.obj",
use_texture_alpha = "clip",
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -1186,6 +1195,7 @@ homedecor.register("torch_wall", {
type = "fixed", type = "fixed",
fixed = { -0.15, -0.45, 0.15, 0.15,0.35, 0.5 }, fixed = { -0.15, -0.45, 0.15, 0.15,0.35, 0.5 },
}, },
use_texture_alpha = "clip",
groups = {cracky=3}, groups = {cracky=3},
}) })
@ -1789,6 +1799,14 @@ unifieddyes.register_color_craft({
} }
}) })
minetest.register_craft({
output = "homedecor:torch_wall 10",
recipe = {
{ "default:coal_lump" },
{ "default:steel_ingot" },
},
})
-- aliases -- aliases
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top") minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")

View File

@ -112,6 +112,7 @@ for _, f in ipairs(flowers_list) do
"flowers_"..flower..".png" "flowers_"..flower..".png"
}, },
walkable = false, walkable = false,
use_texture_alpha = "clip",
groups = {snappy = 3}, groups = {snappy = 3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
selection_box = { selection_box = {
@ -183,7 +184,7 @@ homedecor.register("fishtank", {
"homedecor_fishtank_water_top.png", "homedecor_fishtank_water_top.png",
"homedecor_fishtank_sides.png", "homedecor_fishtank_sides.png",
}, },
use_texture_alpha = true, use_texture_alpha = "blend",
selection_box = ft_cbox, selection_box = ft_cbox,
collision_box = ft_cbox, collision_box = ft_cbox,
groups = {cracky=3,oddly_breakable_by_hand=3}, groups = {cracky=3,oddly_breakable_by_hand=3},
@ -206,7 +207,7 @@ homedecor.register("fishtank_lighted", {
"homedecor_fishtank_sides_lighted.png", "homedecor_fishtank_sides_lighted.png",
}, },
light_source = default.LIGHT_MAX-4, light_source = default.LIGHT_MAX-4,
use_texture_alpha = true, use_texture_alpha = "blend",
selection_box = ft_cbox, selection_box = ft_cbox,
collision_box = ft_cbox, collision_box = ft_cbox,
groups = {cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, groups = {cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
@ -225,6 +226,7 @@ homedecor.register("cardboard_box_big", {
'homedecor_cardbox_big_tb.png', 'homedecor_cardbox_big_tb.png',
'homedecor_cardbox_big_sides.png', 'homedecor_cardbox_big_sides.png',
}, },
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
infotext=S("Cardboard box"), infotext=S("Cardboard box"),
inventory = { inventory = {
@ -245,6 +247,7 @@ homedecor.register("cardboard_box", {
{-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125}, {-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125},
} }
}, },
use_texture_alpha = "clip",
groups = { snappy = 3 }, groups = { snappy = 3 },
infotext=S("Cardboard box"), infotext=S("Cardboard box"),
inventory = { inventory = {
@ -366,6 +369,7 @@ homedecor.register("skateboard", {
tiles = { "homedecor_skateboard.png" }, tiles = { "homedecor_skateboard.png" },
inventory_image = "homedecor_skateboard_inv.png", inventory_image = "homedecor_skateboard_inv.png",
description = S("Skateboard"), description = S("Skateboard"),
use_texture_alpha = "clip",
groups = {snappy=3}, groups = {snappy=3},
selection_box = skate_cbox, selection_box = skate_cbox,
walkable = false, walkable = false,

View File

@ -77,6 +77,7 @@ homedecor.register("calendar", {
wall_bottom = { -4/16, -8/16, -8/16, 4/16, -5/16, 5/16 }, wall_bottom = { -4/16, -8/16, -8/16, 4/16, -5/16, 5/16 },
wall_top = { -4/16, 5/16, -8/16, 4/16, 8/16, 5/16 } wall_top = { -4/16, 5/16, -8/16, 4/16, 8/16, 5/16 }
}, },
use_texture_alpha = "clip",
groups = {choppy=2,attached_node=1}, groups = {choppy=2,attached_node=1},
legacy_wallmounted = true, legacy_wallmounted = true,
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),

View File

@ -11,7 +11,7 @@ read_globals = {
"vector", "nodeupdate", "vector", "nodeupdate",
"VoxelManip", "VoxelArea", "VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack", "PseudoRandom", "ItemStack",
"screwdriver", "screwdriver", "homedecor",
} }
globals = { globals = {

View File

@ -2,9 +2,9 @@ local S = minetest.get_translator("plasmascreen")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
minetest.register_node("plasmascreen:stand", { homedecor.register("tv_stand", {
description = S("Plasma Screen TV Stand"), description = S("Plasma Screen TV Stand"),
tiles = {"plasmascreen_back.png"}, tiles = {"homedecor_plasmascreen_back.png"},
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
drawtype = "nodebox", drawtype = "nodebox",
@ -26,13 +26,6 @@ minetest.register_node("plasmascreen:stand", {
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
}) })
minetest.register_alias("plasmascreen:screen1", "air")
minetest.register_alias("plasmascreen:screen2", "air")
minetest.register_alias("plasmascreen:screen3", "air")
minetest.register_alias("plasmascreen:screen4", "air")
minetest.register_alias("plasmascreen:screen5", "plasmascreen:tv")
minetest.register_alias("plasmascreen:screen6", "air")
local fdir_to_left = { local fdir_to_left = {
{ -1, 0 }, { -1, 0 },
{ 0, 1 }, { 0, 1 },
@ -95,13 +88,13 @@ local function checkwall(pos)
return true return true
end end
minetest.register_node("plasmascreen:tv", { homedecor.register("tv", {
description = S("Plasma TV"), description = S("Plasma TV"),
drawtype = "mesh", drawtype = "mesh",
mesh = "plasmascreen_tv.obj", mesh = "homedecor_plasmascreen_tv.obj",
tiles = { tiles = {
"plasmascreen_case.png", "homedecor_plasmascreen_case.png",
{ name="plasmascreen_video.png", { name="homedecor_plasmascreen_video.png",
animation={ animation={
type="vertical_frames", type="vertical_frames",
aspect_w = 42, aspect_w = 42,
@ -111,8 +104,8 @@ minetest.register_node("plasmascreen:tv", {
} }
}, },
inventory_image = "plasmascreen_tv_inv.png", inventory_image = "homedecor_plasmascreen_tv_inv.png",
wield_image = "plasmascreen_tv_inv.png", wield_image = "homedecor_plasmascreen_tv_inv.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
light_source = 10, light_source = 10,
@ -127,20 +120,20 @@ minetest.register_node("plasmascreen:tv", {
end end
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "plasmascreen:tv_off", param2 = node.param2}) minetest.set_node(pos, {name = "homedecor:tv_off", param2 = node.param2})
end end
}) })
minetest.register_node("plasmascreen:tv_off", { homedecor.register("tv_off", {
description = S("Plasma TV (off)"), description = S("Plasma TV (off)"),
drawtype = "mesh", drawtype = "mesh",
mesh = "plasmascreen_tv.obj", mesh = "homedecor_plasmascreen_tv.obj",
tiles = { tiles = {
"plasmascreen_case_off.png", "homedecor_plasmascreen_case_off.png",
"plasmascreen_screen_off.png", "homedecor_plasmascreen_screen_off.png",
}, },
inventory_image = "plasmascreen_tv_inv.png", inventory_image = "homedecor_plasmascreen_tv_inv.png",
wield_image = "plasmascreen_tv_inv.png", wield_image = "homedecor_plasmascreen_tv_inv.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
light_source = 10, light_source = 10,
@ -155,15 +148,15 @@ minetest.register_node("plasmascreen:tv_off", {
end end
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "plasmascreen:tv", param2 = node.param2}) minetest.set_node(pos, {name = "homedecor:tv", param2 = node.param2})
end, end,
drop = "plasmascreen:tv" drop = "homedecor:tv"
}) })
-- crafting recipes -- crafting recipes
minetest.register_craft({ minetest.register_craft({
output = "plasmascreen:tv", output = "homedecor:tv",
recipe = { recipe = {
{'default:glass', 'default:coal_lump', 'default:glass'}, {'default:glass', 'default:coal_lump', 'default:glass'},
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, {'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
@ -173,15 +166,25 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "plasmascreen:tv", output = "homedecor:tv",
recipe = {'homedecor:television', 'homedecor:television'}, recipe = {'homedecor:television', 'homedecor:television'},
}) })
minetest.register_craft({ minetest.register_craft({
output = "plasmascreen:stand", output = "homedecor:tv_stand",
recipe = { recipe = {
{'', '', ''}, {'', '', ''},
{'', 'default:steel_ingot', ''}, {'', 'default:steel_ingot', ''},
{'group:stick', 'default:coal_lump', 'group:stick'}, {'group:stick', 'default:coal_lump', 'group:stick'},
} }
}) })
minetest.register_alias("plasmascreen:screen1", "air")
minetest.register_alias("plasmascreen:screen2", "air")
minetest.register_alias("plasmascreen:screen3", "air")
minetest.register_alias("plasmascreen:screen4", "air")
minetest.register_alias("plasmascreen:screen6", "air")
minetest.register_alias("plasmascreen:screen5", "homedecor:tv")
minetest.register_alias("plasmascreen:stand", "homedecor:tv_stand")
minetest.register_alias("plasmascreen:tv", "homedecor:tv")
minetest.register_alias("plasmascreen:tv_off", "homedecor:tv_off")

View File

@ -1,3 +1,3 @@
name = plasmascreen name = homedecor_plasmascreen
depends = default, homedecor_common, homedecor_electronics depends = default, homedecor_common, homedecor_electronics
optional_depends = screwdriver optional_depends = screwdriver

View File

Before

Width:  |  Height:  |  Size: 184 B

After

Width:  |  Height:  |  Size: 184 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 313 B

View File

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 105 B

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -20,7 +20,7 @@ minetest.register_node(":homedecor:skylight_frosted", {
tiles = { "homedecor_skylight_frosted.png" }, tiles = { "homedecor_skylight_frosted.png" },
wield_image = "homedecor_skylight_frosted.png", wield_image = "homedecor_skylight_frosted.png",
inventory_image = "homedecor_skylight_frosted_inv.png", inventory_image = "homedecor_skylight_frosted_inv.png",
use_texture_alpha = true, use_texture_alpha = "blend",
groups = { snappy = 3 }, groups = { snappy = 3 },
paramtype = "light", paramtype = "light",
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
@ -134,6 +134,7 @@ homedecor_roofing.register_slope = function(modname, subname, recipeitem, groups
paramtype2 = "facedir", paramtype2 = "facedir",
selection_box = slope_cbox, selection_box = slope_cbox,
collision_box = slope_cbox, collision_box = slope_cbox,
use_texture_alpha = "blend",
groups = groups, groups = groups,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()

View File

@ -47,7 +47,6 @@ minetest.register_node(":lrfurn:longsofa", {
end end
pos.y = pos.y-0.5 pos.y = pos.y-0.5
clicker:setpos(pos) clicker:setpos(pos)
clicker:set_hp(20)
return itemstack return itemstack
end end
}) })

View File

@ -47,7 +47,6 @@ minetest.register_node(":lrfurn:sofa", {
end end
pos.y = pos.y-0.5 pos.y = pos.y-0.5
clicker:setpos(pos) clicker:setpos(pos)
clicker:set_hp(20)
return itemstack return itemstack
end end
}) })

View File

@ -57,6 +57,7 @@ minetest.register_node(":lrfurn:coffeetable", {
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = "blend",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
node_box = { node_box = {

View File

@ -15,6 +15,7 @@ minetest.register_node(":lrfurn:endtable", {
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = "blend",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
node_box = { node_box = {

View File

@ -2,26 +2,60 @@
local S = minetest.get_translator("homedecor_tables") local S = minetest.get_translator("homedecor_tables")
local materials = { -- Various kinds of table legs
local table_shapes = {"large_square", "small_square", "small_round"}
local tabletop_materials = {
{ "glass", { "glass",
S("Small square glass table"), S("Small square glass tabletop"),
S("Small round glass table"), S("Small round glass tabletop"),
S("Large glass table piece"), S("Large glass tabletop piece"),
}, },
{ "wood", { "wood",
S("Small square wooden table"), S("Small square wooden tabletop"),
S("Small round wooden table"), S("Small round wooden tabletop"),
S("Large wooden table piece"), S("Large wooden tabletop piece"),
} }
} }
local leg_materials = {
{ "brass", S("brass") },
{ "wrought_iron", S("wrought iron") },
{ "wood", S("wood") }
}
for _, t in ipairs(leg_materials) do
local name, desc = unpack(t)
homedecor.register("table_legs_"..name, {
description = S("Table Legs (@1)", desc),
drawtype = "plantlike",
tiles = {"homedecor_table_legs_"..name..".png"},
inventory_image = "homedecor_table_legs_"..name..".png",
wield_image = "homedecor_table_legs_"..name..".png",
walkable = false,
use_texture_alpha = "blend",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed",
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 }
},
})
end
minetest.register_alias("homedecor:utility_table_legs", "homedecor:table_legs_wood")
minetest.register_alias("homedecor:utility_table_top", "homedecor:wood_table_small_square")
-- table tops and combined tables
local tables_cbox = { local tables_cbox = {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
} }
for i, mat in ipairs(materials) do for i, mat in ipairs(tabletop_materials) do
local m, small_s, small_r, large = unpack(mat) local m = unpack(mat)
local s local s
if m == "glass" then if m == "glass" then
@ -30,179 +64,104 @@ for i, mat in ipairs(materials) do
s = default.node_sound_wood_defaults() s = default.node_sound_wood_defaults()
end end
-- small square tables for _, shape in ipairs(table_shapes) do
homedecor.register(m.."_table_small_square", { homedecor.register(m.."_table_"..shape, {
description = small_s, description = shape.." "..m.." tabletop",
mesh = "homedecor_table_small_square.obj", mesh = "homedecor_table_"..shape..".obj",
tiles = { 'homedecor_'..m..'_table_small_square.png' },
wield_image = 'homedecor_'..m..'_table_small_square_inv.png',
inventory_image = 'homedecor_'..m..'_table_small_square_inv.png',
groups = { snappy = 3 },
sounds = s,
selection_box = tables_cbox,
collision_box = tables_cbox,
on_place = minetest.rotate_node
})
-- small round tables
homedecor.register(m..'_table_small_round', {
description = small_r,
mesh = "homedecor_table_small_round.obj",
tiles = { "homedecor_"..m.."_table_small_round.png" },
wield_image = 'homedecor_'..m..'_table_small_round_inv.png',
inventory_image = 'homedecor_'..m..'_table_small_round_inv.png',
groups = { snappy = 3 },
sounds = s,
selection_box = tables_cbox,
collision_box = tables_cbox,
on_place = minetest.rotate_node
})
-- Large square table pieces
homedecor.register(m..'_table_large', {
description = large,
tiles = { tiles = {
'homedecor_'..m..'_table_large_tb.png', 'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_large_tb.png', 'homedecor_'..m..'_table_edges.png',
'homedecor_'..m..'_table_large_edges.png', 'homedecor_blanktile.png',
'homedecor_'..m..'_table_large_edges.png', 'homedecor_blanktile.png',
'homedecor_'..m..'_table_large_edges.png', 'homedecor_blanktile.png',
'homedecor_'..m..'_table_large_edges.png'
}, },
wield_image = 'homedecor_'..m..'_table_large_inv.png', wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
inventory_image = 'homedecor_'..m..'_table_large_inv.png', use_texture_alpha = "blend",
groups = { snappy = 3 }, groups = { snappy = 3 },
sounds = s, sounds = s,
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
},
selection_box = tables_cbox, selection_box = tables_cbox,
on_place = minetest.rotate_node collision_box = tables_cbox,
on_place = function(itemstack, placer, pointed_thing)
local player_name = placer:get_player_name()
if minetest.is_protected(pointed_thing.under, player_name) then return end
local node = minetest.get_node(pointed_thing.under)
if string.find(node.name, "homedecor:table_legs") then
local newname = string.format("homedecor:%s_table_%s_with_%s_legs",
m, shape, string.sub(node.name, 22))
minetest.set_node(pointed_thing.under, {name = newname})
if not creative.is_enabled_for(player_name) then
itemstack:take_item()
return itemstack
end
else
return minetest.rotate_node(itemstack, placer, pointed_thing)
end
end
}) })
for _, l in ipairs(leg_materials) do
local leg_mat = unpack(l)
homedecor.register(string.format("%s_table_%s_with_%s_legs", m, shape, leg_mat), {
description = string.format("%s %s table with %s legs", shape, m, leg_mat),
mesh = "homedecor_table_"..shape..".obj",
tiles = {
'homedecor_blanktile.png',
'homedecor_blanktile.png',
'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_edges.png',
"homedecor_table_legs_"..leg_mat..".png",
},
use_texture_alpha = "blend",
groups = { snappy = 3 },
sounds = s,
})
end
end
minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large') minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large')
minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square') minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square')
minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round') minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round')
minetest.register_alias('homedecor:'..m..'_table_large', 'homedecor:'..m..'_table_large_square')
end end
-- conversion routines for old non-6dfacedir tables -- old-style tables that used to be from 3dforniture.
local tlist_s = {} local table_colors = {
local tlist_t = {} { "", S("Table"), homedecor.plain_wood },
local dirs2 = { 9, 18, 7, 12 } { "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
{ "_white", S("White Table"), homedecor.white_wood }
for i in ipairs(materials) do
local m = materials[i][1]
table.insert(tlist_s, "homedecor:"..m.."_table_large_s")
table.insert(tlist_s, "homedecor:"..m.."_table_small_square_s")
table.insert(tlist_s, "homedecor:"..m.."_table_small_round_s")
table.insert(tlist_t, "homedecor:"..m.."_table_large_t")
table.insert(tlist_t, "homedecor:"..m.."_table_small_square_t")
table.insert(tlist_t, "homedecor:"..m.."_table_small_round_t")
end
minetest.register_abm({
nodenames = tlist_s,
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local newnode = string.sub(node.name, 1, -3) -- strip the "_s" from the name
local fdir = node.param2 or 0
minetest.set_node(pos, {name = newnode, param2 = dirs2[fdir+1]})
end
})
minetest.register_abm({
nodenames = tlist_t,
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local newnode = string.sub(node.name, 1, -3) -- strip the "_t" from the name
minetest.set_node(pos, { name = newnode, param2 = 20 })
end
})
-- other tables
homedecor.register("utility_table_top", {
description = S("Utility Table"),
tiles = {
'homedecor_utility_table_tb.png',
'homedecor_utility_table_tb.png',
'homedecor_utility_table_edges.png',
'homedecor_utility_table_edges.png',
'homedecor_utility_table_edges.png',
'homedecor_utility_table_edges.png'
},
wield_image = 'homedecor_utility_table_tb.png',
inventory_image = 'homedecor_utility_table_tb.png',
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
paramtype2 = "wallmounted",
node_box = {
type = "wallmounted",
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 },
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 },
},
selection_box = {
type = "wallmounted",
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 },
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 },
},
})
-- Various kinds of table legs
-- local above
materials = {
{ "brass", S("brass") },
{ "wrought_iron", S("wrought iron") },
} }
for _, t in ipairs(materials) do for _, t in ipairs(table_colors) do
local name, desc = unpack(t) local suffix, desc, texture = unpack(t)
homedecor.register("table_legs_"..name, {
description = S("Table Legs (@1)", desc), homedecor.register("table"..suffix, {
drawtype = "plantlike", description = desc,
tiles = {"homedecor_table_legs_"..name..".png"}, tiles = { texture },
inventory_image = "homedecor_table_legs_"..name..".png", node_box = {
wield_image = "homedecor_table_legs_"..name..".png",
walkable = false,
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed", type = "fixed",
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } 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 end
homedecor.register("utility_table_legs", {
description = S("Legs for Utility Table"),
drawtype = "plantlike",
tiles = { 'homedecor_utility_table_legs.png' },
inventory_image = 'homedecor_utility_table_legs_inv.png',
wield_image = 'homedecor_utility_table_legs.png',
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed",
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 }
},
})
-- crafting -- crafting
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:glass_table_small_round_b 15", output = "homedecor:glass_table_small_round_b 15",
recipe = { recipe = {
@ -226,8 +185,6 @@ minetest.register_craft( {
} }
}) })
--
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:wood_table_small_round_b 15", output = "homedecor:wood_table_small_round_b 15",
recipe = { recipe = {
@ -305,7 +262,73 @@ minetest.register_craft({
burntime = 30, burntime = 30,
}) })
for _, shape in ipairs (table_shapes) do
for _, leg in ipairs(leg_materials) do
for _, mat in ipairs(tabletop_materials) do
minetest.register_craft({
output = "homedecor:"..mat[1].."_table_"..shape.."_with_"..leg[1].."_legs",
type = "shapeless",
recipe = {
"homedecor:"..mat[1].."_table_"..shape,
"homedecor:table_legs_"..leg[1]
},
})
end
end
end
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,
})
-- recycling -- recycling
@ -368,3 +391,8 @@ minetest.register_craft({
"homedecor:wood_table_large" "homedecor:wood_table_large"
} }
}) })
-- Aliases for the above 3dforniture-like tables
minetest.register_alias("3dforniture:table", "homedecor:table")
minetest.register_alias('table', 'homedecor:table')

View File

@ -1,3 +1,4 @@
name = homedecor_tables name = homedecor_tables
description = Homedecor mod: tables description = Homedecor mod: tables
depends = homedecor_common, default, basic_materials depends = homedecor_common, default, basic_materials
optional_depends = creative

View File

@ -0,0 +1,107 @@
# Blender v2.83.5 OBJ File: 'homedecor table with legs.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.437500 -0.500000
v -0.353553 -0.500000 0.353554
v -0.353553 0.437515 0.353554
v 0.353553 -0.500000 -0.353553
v 0.353553 0.437515 -0.353553
v 0.500000 -0.500000 0.500000
v 0.500000 -0.437500 -0.500000
v 0.500000 -0.437500 0.500000
v -0.500000 -0.437500 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.437500 0.500000
v 0.500000 0.437500 -0.500000
v 0.500000 0.437500 0.500000
v -0.500000 0.500000 -0.500000
v -0.500000 0.437500 0.500000
v -0.500000 0.500000 0.500000
v 0.353553 -0.500000 0.353554
v 0.353553 0.437515 0.353554
v -0.353553 -0.500000 -0.353553
v -0.353553 0.437515 -0.353553
vt -0.000000 -0.000000
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt -0.000000 0.500000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 0.500000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt -0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt 0.000000 0.500000
vt 0.000000 -0.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt -0.000000 0.937500
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
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 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
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
g Cube_Cube.001_top-bottom
s off
f 14/1/1 2/2/1 10/3/1 1/4/1
f 11/5/2 13/6/2 15/7/2 12/8/2
g Cube_Cube.001_edges
f 11/5/3 12/9/3 10/10/3 2/11/3
f 13/6/4 14/12/4 1/13/4 15/14/4
f 12/15/5 15/16/5 1/17/5 10/18/5
f 13/19/6 11/20/6 2/21/6 14/22/6
g Cube_Cube.001_top-bot_with_legs
f 20/23/2 3/24/2 4/25/2 18/26/2
f 16/27/1 17/28/1 19/29/1 5/30/1
g Cube_Cube.001_edges_with_legs
f 20/31/5 19/32/5 17/33/5 3/34/5
f 4/25/3 3/35/3 17/36/3 16/37/3
f 19/38/4 20/39/4 18/26/4 5/40/4
f 4/41/6 16/42/6 5/43/6 18/44/6
g Cube_Cube.001_legs
f 21/45/7 23/46/7 24/47/7 22/48/7
f 6/49/8 8/50/8 9/51/8 7/52/8

File diff suppressed because it is too large Load Diff

View File

@ -1,43 +1,139 @@
v 0.499 -0.499 -0.499 # Blender v2.83.5 OBJ File: 'homedecor small square table with legs.blend'
v 0.499 -0.499 0.499 # www.blender.org
v -0.499 -0.499 0.499 o Cube_Cube.001
v -0.499 -0.499 -0.499 v -0.500000 -0.500000 0.500000
v 0.499 -0.469 -0.499 v 0.500000 -0.500000 -0.500000
v 0.499 -0.469 0.499 v -0.500000 0.437500 -0.500000
v -0.499 -0.469 0.499 v -0.353553 -0.500000 0.353554
v -0.499 -0.469 -0.499 v -0.353553 0.437515 0.353554
v 0.469 -0.437 -0.469 v 0.353553 -0.500000 -0.353553
v 0.469 -0.437 0.469 v 0.353553 0.437515 -0.353553
v -0.469 -0.437 0.469 v 0.500000 -0.500000 0.500000
v -0.469 -0.437 -0.469 v -0.500000 -0.500000 -0.500000
vt 0.5 0.029 v 0.500000 0.437500 -0.500000
vt 0.971 0.029 v 0.500000 0.437500 0.500000
vt 0.971 0.5 v -0.500000 0.437500 0.500000
vt 0.5 0.5 v 0.353553 -0.500000 0.353554
vt 0.015 0.985 v 0.353553 0.437515 0.353554
vt 0.015 0.515 v -0.353553 -0.500000 -0.353553
vt 0.029 0.529 v -0.353553 0.437515 -0.353553
vt 0.029 0.971 v 0.468750 0.500000 0.468750
vt 0.985 0.5 v 0.500000 0.468750 0.500000
vt 0.985 0.029 v 0.500000 0.468750 -0.500000
vt 0.5 0.515 v 0.468750 0.500000 -0.468750
vt 0.971 0.515 v 0.500000 -0.468750 -0.500000
vt 0.485 0.029 v 0.468750 -0.437500 -0.468750
vt 0.485 0.5 v 0.500000 -0.468750 0.500000
vt 0.971 0.015 v 0.468750 -0.437500 0.468750
vt 0.5 0.015 v -0.500000 -0.468750 -0.500000
vt 0.471 0.971 v -0.468750 -0.437500 -0.468750
vt 0.471 0.529 v -0.468750 -0.437500 0.468750
vt 0.485 0.515 v -0.500000 -0.468750 0.500000
vt 0.485 0.985 v -0.468750 0.500000 -0.468750
v -0.500000 0.468750 -0.500000
v -0.468750 0.500000 0.468750
v -0.500000 0.468750 0.500000
vt -0.000000 -0.000000
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt -0.000000 0.500000
vt 0.968750 0.984375
vt 0.031250 0.984375
vt 0.031250 0.515625
vt 0.968750 0.515625
vt 0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt 0.000000 0.500000
vt 0.000000 -0.000000
vt 0.031250 0.515625
vt 0.968750 0.515625
vt 0.968750 0.984375
vt 0.031250 0.984375
vt 0.000000 1.000000
vt 0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
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 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 0.7071
vn 0.7071 0.7071 0.0000
vn 0.0000 0.7071 -0.7071
vn -0.7071 0.7071 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
g Cube_Cube.001_top-bottom
s off s off
f 1/1 2/2 3/3 4/4 f 9/1/1 2/2/1 8/3/1 1/4/1
f 8/5 7/6 11/7 12/8 f 22/5/2 26/6/2 27/7/2 24/8/2
f 1/9 5/3 6/2 2/10 f 24/8/3 27/7/3 28/9/3 23/10/3
f 2/11 6/4 7/3 3/12 f 22/5/4 24/8/4 23/10/4 21/11/4
f 3/13 7/1 8/4 4/14 f 26/6/5 22/5/5 21/11/5 25/12/5
f 5/15 1/2 4/1 8/16 f 27/7/6 26/6/6 25/12/6 28/9/6
f 9/17 12/8 11/7 10/18 g Cube_Cube.001_edges
f 7/6 6/19 10/18 11/7 f 23/13/7 28/14/7 1/15/7 8/16/7
f 5/20 8/5 12/8 9/17 f 25/17/8 21/18/8 2/19/8 9/20/8
f 6/19 5/20 9/17 10/18 f 25/21/9 9/22/9 1/23/9 28/24/9
f 21/25/10 23/26/10 8/27/10 2/28/10
g Cube_Cube.001_top-bot_with_legs
f 10/29/1 11/30/1 12/31/1 3/32/1
f 31/33/2 17/34/2 20/35/2 29/36/2
f 31/33/6 29/36/6 30/37/6 32/38/6
f 20/35/4 17/34/4 18/39/4 19/40/4
f 17/34/3 31/33/3 32/38/3 18/39/3
f 29/36/5 20/35/5 19/40/5 30/37/5
g Cube_Cube.001_edges_with_legs
f 32/41/7 12/42/7 11/43/7 18/44/7
f 19/45/8 10/46/8 3/47/8 30/48/8
f 12/49/9 32/50/9 30/51/9 3/52/9
f 19/53/10 18/54/10 11/55/10 10/56/10
g Cube_Cube.001_legs
f 13/57/11 15/58/11 16/59/11 14/60/11
f 4/61/12 6/62/12 7/63/12 5/64/12

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 B

View File

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

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