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

Compare commits

...

25 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
da1f2b1430 use swap_node(), not set_node() 2021-03-26 09:44:02 -04:00
117 changed files with 2252 additions and 1089 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 stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
local function building_blocks_stairs(nodename, def)
minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
if minetest.get_modpath("moreblocks") then
local mod, name = nodename:match("(.*):(.*)")
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
local stairs_groups = {}
for _, groupname in ipairs(stairs_groups_names) do
stairs_groups[groupname] = def.groups[groupname]
end
stairsplus:register_all(mod, name, nodename, def)
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
mod,
name,
nodename,
{
description = def.description,
tiles = def.tiles,
groups = stairs_groups,
sounds = def.sounds,
}
)
else
stairs.register_stair_and_slab(name,nodename,
stairs_groups,
def.tiles,
def.stair_desc,
def.slab_desc,
def.sounds
--FIXME: Missing descriptions for Inner and Outer stairs
-- See https://github.com/minetest/minetest_game/pull/2584
)
end
minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
end
end
building_blocks_stairs("building_blocks:grate", {
drawtype = "glasslike",
description = S("Grate"),
stair_desc = S("Grate Stair"),
slab = S("Grate Slab"),
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {cracky=1},
sounds = default.node_sound_metal_defaults(),
})
building_blocks_stairs("building_blocks:smoothglass", {
drawtype = "glasslike",
description = S("Streak Free Glass"),
stair_desc = S("Streak Free Glass Stair"),
slab_desc = S("Streak Free Glass Slab"),
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
building_blocks_stairs("building_blocks:woodglass", {
drawtype = "glasslike",
description = S("Wood Framed Glass"),
stair_desc = S("Wood Framed Glass Stair"),
slab_desc = S("Wood Framed Glass Slab"),
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
@ -79,8 +50,6 @@ building_blocks_stairs("building_blocks:woodglass", {
building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"),
stair_desc = S("Adobe Stair"),
slab_desc = S("Adobe Slab"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
@ -88,8 +57,6 @@ building_blocks_stairs("building_blocks:Adobe", {
building_blocks_stairs("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
description = S("Fake Grass"),
stair_desc = S("Fake Grass Stair"),
slab_desc = S("Fake Grass Slab"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
@ -100,8 +67,6 @@ building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
description = S("Hardwood"),
stair_desc = S("Hardwood Stair"),
slab_desc = S("Hardwood Slab"),
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
})
@ -109,15 +74,11 @@ building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
description = S("Roof block"),
stair_desc = S("Roof block Stair"),
slab_desc = S("Roof block Slab"),
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
})
building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"),
stair_desc = S("Tar Stair"),
slab_desc = S("Tar Slab"),
tiles = {"building_blocks_tar.png"},
is_ground_content = true,
groups = {crumbly=1, tar_block = 1},
@ -125,8 +86,6 @@ building_blocks_stairs("building_blocks:Tar", {
})
building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"),
stair_desc = S("Marble Stair"),
slab_desc = S("Marble Slab"),
tiles = {"building_blocks_marble.png"},
is_ground_content = true,
groups = {cracky=3, marble = 1},

View File

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

View File

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

View File

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

View File

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

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", {
mesh = "homedecor_bed_regular.obj",
@ -67,9 +67,9 @@ homedecor.register("bed_regular", {
if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack
-- else
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
else
bed_on_rightclick(pos, node, clicker)
return itemstack
end
end
})
@ -96,10 +96,10 @@ homedecor.register("bed_extended", {
homedecor.unextend_bed(pos)
end,
on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
bed_on_rightclick(pos, node, clicker)
return itemstack
end,
drop = "homedecor:bed_regular"
})
@ -133,10 +133,10 @@ homedecor.register("bed_kingsize", {
end
end,
on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
bed_on_rightclick(pos, node, clicker)
return itemstack
end,
})
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"
},
groups = { snappy = 3 },
use_texture_alpha = "clip",
sounds = default.node_sound_leaves_defaults(),
selection_box = { type="regular" },
})
@ -95,6 +96,7 @@ homedecor.register("ceiling_fan", {
{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
}
},
use_texture_alpha = "clip",
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(),

View File

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

View File

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

View File

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

View File

@ -1,5 +1,12 @@
local S = minetest.get_translator("homedecor_common")
local has_hopper = minetest.get_modpath("hopper")
local has_safe_hopper = has_hopper and
-- mod from https://github.com/minetest-mods/hopper respects the owner
(hopper.neighbors or
-- mod from https://notabug.org/TenPlus1/hopper respects the owner since 20220123
(hopper.version and hopper.version >= "20220123"))
local default_can_dig = function(pos,player)
local meta = minetest.get_meta(pos)
return meta:get_inventory():is_empty("main")
@ -97,6 +104,23 @@ function homedecor.handle_inventory(name, def, original_def)
end
local locked = inventory.locked
if has_hopper and (not locked or has_safe_hopper) then
if inventory.size then
hopper:add_container({
{"top", "homedecor:"..name, "main"},
{"bottom", "homedecor:"..name, "main"},
{"side", "homedecor:"..name, "main"},
})
elseif original_def.is_furnace then
hopper:add_container({
{"top", "homedecor:"..name, "dst"},
{"bottom", "homedecor:"..name, "src"},
{"side", "homedecor:"..name, "fuel"},
})
end
end
if locked then
local after_place_node = def.after_place_node
def.after_place_node = function(pos, placer)

View File

@ -1,4 +1,4 @@
name = homedecor_common
description = Homedecor mod: common
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)
local def = table.copy(original_def)
def.is_furnace = nil
def.drawtype = def.drawtype
or (def.mesh and "mesh")
or (def.node_box and "nodebox")

View File

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

View File

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

View File

@ -35,6 +35,7 @@ homedecor.register("fence_picket", {
"homedecor_fence_picket_backside.png",
"homedecor_fence_picket.png"
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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.png",
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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.png"
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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.png",
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
@ -152,6 +156,7 @@ homedecor.register("fence_barbed_wire", {
description = S("Barbed Wire Fence"),
mesh = "homedecor_fence_barbed_wire.obj",
tiles = {"homedecor_fence_barbed_wire.png"},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.slab_z(-0.125),
@ -162,6 +167,7 @@ homedecor.register("fence_barbed_wire_corner", {
description = S("Barbed Wire Fence Corner"),
mesh = "homedecor_fence_barbed_wire_corner.obj",
tiles = { "homedecor_fence_barbed_wire.png" },
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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",
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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",
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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"
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
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"
},
use_texture_alpha = "clip",
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
selection_box = homedecor.nodebox.corner_xz(0.08, -0.08),

View File

@ -1,38 +1,5 @@
local S = minetest.get_translator("homedecor_furniture")
local table_colors = {
{ "", S("Table"), homedecor.plain_wood },
{ "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
{ "_white", S("White Table"), homedecor.white_wood }
}
for _, t in ipairs(table_colors) do
local suffix, desc, texture = unpack(t)
homedecor.register("table"..suffix, {
description = desc,
tiles = { texture },
node_box = {
type = "fixed",
fixed = {
{ -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 },
{ 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 },
{ -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 },
{ 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 },
{ -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 },
{ -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 },
{ 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 },
{ -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 },
{ -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 },
},
},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
})
end
local ob_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
@ -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(),
})
-- 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:L_binding_bars", "homedecor:L_binding_bars")
minetest.register_alias("3dforniture:chains", "homedecor:chains")

View File

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

View File

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

View File

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

View File

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

View File

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

View File

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 319 B

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_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

View File

@ -263,7 +263,7 @@ for brightness_level = 0, 14 do
description = S("Thick Glowlight"),
tiles = tiles,
overlay_tiles = overlay,
use_texture_alpha = true,
use_texture_alpha = "blend",
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorwallmounted",
@ -329,7 +329,7 @@ for brightness_level = 0, 14 do
description = S("Thin Glowlight"),
tiles = tiles,
overlay_tiles = overlay,
use_texture_alpha = true,
use_texture_alpha = "blend",
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorwallmounted",
@ -396,7 +396,7 @@ for brightness_level = 0, 14 do
description = S("Small Glowlight Cube"),
tiles = tiles,
overlay_tiles = overlay,
use_texture_alpha = true,
use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "colorwallmounted",
drawtype = "nodebox",
@ -448,7 +448,7 @@ for brightness_level = 0, 14 do
"default_gold_block.png",
lighttex
},
use_texture_alpha = true,
use_texture_alpha = "blend",
light_source = brightness_level,
sunlight_propagates = true,
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"),
mesh = "homedecor_ground_lantern.obj",
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",
wield_image = "homedecor_ground_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici},
@ -500,7 +500,7 @@ for brightness_level = 0, 14 do
description = S("Hanging Lantern/Light"),
mesh = "homedecor_hanging_lantern.obj",
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",
wield_image = "homedecor_hanging_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici},
@ -527,7 +527,7 @@ for brightness_level = 0, 14 do
drawtype = "mesh",
mesh = "homedecor_ceiling_lantern.obj",
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",
description = S("Ceiling Lantern/Light"),
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, {
description = S("Lattice lantern/Light (large)"),
tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" },
use_texture_alpha = "clip",
groups = { snappy = 3, not_in_creative_inventory = nici },
light_source = brightness_level,
sounds = default.node_sound_glass_defaults(),
@ -590,6 +591,7 @@ for brightness_level = 0, 14 do
type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
},
use_texture_alpha = "clip",
groups = { snappy = 3, not_in_creative_inventory = nici },
light_source = brightness_level,
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 }
},
walkable = false,
use_texture_alpha = true,
use_texture_alpha = "blend",
light_source = onflag and (default.LIGHT_MAX - 5) or nil,
sunlight_propagates = true,
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,
"homedecor_generic_metal_wrought_iron.png"
},
use_texture_alpha = true,
use_texture_alpha = "blend",
inventory_image = "homedecor_wall_lamp_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici},
light_source = onflag and (default.LIGHT_MAX - 3) or nil,
@ -954,6 +956,7 @@ homedecor.register("candle", {
inventory_image = "homedecor_candle_inv.png",
selection_box = tc_cbox,
walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4,
})
@ -975,6 +978,7 @@ homedecor.register("candle_thin", {
inventory_image = "homedecor_candle_thin_inv.png",
selection_box = c_cbox,
walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4,
})
@ -997,6 +1001,7 @@ homedecor.register("candlestick_wrought_iron", {
inventory_image = "homedecor_candlestick_wrought_iron_inv.png",
selection_box = cs_cbox,
walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4,
})
@ -1012,6 +1017,7 @@ homedecor.register("candlestick_brass", {
inventory_image = "homedecor_candlestick_brass_inv.png",
selection_box = cs_cbox,
walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 },
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 }
},
walkable = false,
use_texture_alpha = "clip",
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-4,
})
@ -1053,7 +1060,7 @@ homedecor.register("oil_lamp", {
{ name = "homedecor_generic_metal.png", color = 0xffa00000 },
"homedecor_oil_lamp_glass.png",
},
use_texture_alpha = true,
use_texture_alpha = "blend",
inventory_image = "homedecor_oil_lamp_inv.png",
selection_box = ol_cbox,
walkable = false,
@ -1132,6 +1139,7 @@ minetest.register_node(":homedecor:chandelier_steel", {
},
drawtype = "mesh",
mesh = "homedecor_chandelier.obj",
use_texture_alpha = "clip",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
@ -1158,6 +1166,7 @@ minetest.register_node(":homedecor:chandelier_brass", {
},
drawtype = "mesh",
mesh = "homedecor_chandelier.obj",
use_texture_alpha = "clip",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
@ -1186,6 +1195,7 @@ homedecor.register("torch_wall", {
type = "fixed",
fixed = { -0.15, -0.45, 0.15, 0.15,0.35, 0.5 },
},
use_texture_alpha = "clip",
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
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"
},
walkable = false,
use_texture_alpha = "clip",
groups = {snappy = 3},
sounds = default.node_sound_glass_defaults(),
selection_box = {
@ -183,7 +184,7 @@ homedecor.register("fishtank", {
"homedecor_fishtank_water_top.png",
"homedecor_fishtank_sides.png",
},
use_texture_alpha = true,
use_texture_alpha = "blend",
selection_box = ft_cbox,
collision_box = ft_cbox,
groups = {cracky=3,oddly_breakable_by_hand=3},
@ -206,7 +207,7 @@ homedecor.register("fishtank_lighted", {
"homedecor_fishtank_sides_lighted.png",
},
light_source = default.LIGHT_MAX-4,
use_texture_alpha = true,
use_texture_alpha = "blend",
selection_box = ft_cbox,
collision_box = ft_cbox,
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_sides.png',
},
use_texture_alpha = "clip",
groups = { snappy = 3 },
infotext=S("Cardboard box"),
inventory = {
@ -245,6 +247,7 @@ homedecor.register("cardboard_box", {
{-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125},
}
},
use_texture_alpha = "clip",
groups = { snappy = 3 },
infotext=S("Cardboard box"),
inventory = {
@ -366,6 +369,7 @@ homedecor.register("skateboard", {
tiles = { "homedecor_skateboard.png" },
inventory_image = "homedecor_skateboard_inv.png",
description = S("Skateboard"),
use_texture_alpha = "clip",
groups = {snappy=3},
selection_box = skate_cbox,
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_top = { -4/16, 5/16, -8/16, 4/16, 8/16, 5/16 }
},
use_texture_alpha = "clip",
groups = {choppy=2,attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(),

View File

@ -11,7 +11,7 @@ read_globals = {
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"screwdriver",
"screwdriver", "homedecor",
}
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
minetest.register_node("plasmascreen:stand", {
homedecor.register("tv_stand", {
description = S("Plasma Screen TV Stand"),
tiles = {"plasmascreen_back.png"},
tiles = {"homedecor_plasmascreen_back.png"},
paramtype = "light",
paramtype2 = "facedir",
drawtype = "nodebox",
@ -26,13 +26,6 @@ minetest.register_node("plasmascreen:stand", {
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 = {
{ -1, 0 },
{ 0, 1 },
@ -95,13 +88,13 @@ local function checkwall(pos)
return true
end
minetest.register_node("plasmascreen:tv", {
homedecor.register("tv", {
description = S("Plasma TV"),
drawtype = "mesh",
mesh = "plasmascreen_tv.obj",
mesh = "homedecor_plasmascreen_tv.obj",
tiles = {
"plasmascreen_case.png",
{ name="plasmascreen_video.png",
"homedecor_plasmascreen_case.png",
{ name="homedecor_plasmascreen_video.png",
animation={
type="vertical_frames",
aspect_w = 42,
@ -111,8 +104,8 @@ minetest.register_node("plasmascreen:tv", {
}
},
inventory_image = "plasmascreen_tv_inv.png",
wield_image = "plasmascreen_tv_inv.png",
inventory_image = "homedecor_plasmascreen_tv_inv.png",
wield_image = "homedecor_plasmascreen_tv_inv.png",
paramtype = "light",
paramtype2 = "facedir",
light_source = 10,
@ -127,20 +120,20 @@ minetest.register_node("plasmascreen:tv", {
end
end,
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
})
minetest.register_node("plasmascreen:tv_off", {
homedecor.register("tv_off", {
description = S("Plasma TV (off)"),
drawtype = "mesh",
mesh = "plasmascreen_tv.obj",
mesh = "homedecor_plasmascreen_tv.obj",
tiles = {
"plasmascreen_case_off.png",
"plasmascreen_screen_off.png",
"homedecor_plasmascreen_case_off.png",
"homedecor_plasmascreen_screen_off.png",
},
inventory_image = "plasmascreen_tv_inv.png",
wield_image = "plasmascreen_tv_inv.png",
inventory_image = "homedecor_plasmascreen_tv_inv.png",
wield_image = "homedecor_plasmascreen_tv_inv.png",
paramtype = "light",
paramtype2 = "facedir",
light_source = 10,
@ -155,15 +148,15 @@ minetest.register_node("plasmascreen:tv_off", {
end
end,
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,
drop = "plasmascreen:tv"
drop = "homedecor:tv"
})
-- crafting recipes
minetest.register_craft({
output = "plasmascreen:tv",
output = "homedecor:tv",
recipe = {
{'default:glass', 'default:coal_lump', 'default:glass'},
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
@ -173,15 +166,25 @@ minetest.register_craft({
minetest.register_craft({
type = "shapeless",
output = "plasmascreen:tv",
output = "homedecor:tv",
recipe = {'homedecor:television', 'homedecor:television'},
})
minetest.register_craft({
output = "plasmascreen:stand",
output = "homedecor:tv_stand",
recipe = {
{'', '', ''},
{'', 'default:steel_ingot', ''},
{'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
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" },
wield_image = "homedecor_skylight_frosted.png",
inventory_image = "homedecor_skylight_frosted_inv.png",
use_texture_alpha = true,
use_texture_alpha = "blend",
groups = { snappy = 3 },
paramtype = "light",
sounds = default.node_sound_glass_defaults(),
@ -134,6 +134,7 @@ homedecor_roofing.register_slope = function(modname, subname, recipeitem, groups
paramtype2 = "facedir",
selection_box = slope_cbox,
collision_box = slope_cbox,
use_texture_alpha = "blend",
groups = groups,
on_place = minetest.rotate_node,
sounds = default.node_sound_wood_defaults()

View File

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

View File

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

View File

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

View File

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

View File

@ -2,26 +2,60 @@
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",
S("Small square glass table"),
S("Small round glass table"),
S("Large glass table piece"),
S("Small square glass tabletop"),
S("Small round glass tabletop"),
S("Large glass tabletop piece"),
},
{ "wood",
S("Small square wooden table"),
S("Small round wooden table"),
S("Large wooden table piece"),
S("Small square wooden tabletop"),
S("Small round wooden tabletop"),
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 = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
}
for i, mat in ipairs(materials) do
local m, small_s, small_r, large = unpack(mat)
for i, mat in ipairs(tabletop_materials) do
local m = unpack(mat)
local s
if m == "glass" then
@ -30,179 +64,104 @@ for i, mat in ipairs(materials) do
s = default.node_sound_wood_defaults()
end
-- small square tables
for _, shape in ipairs(table_shapes) do
homedecor.register(m.."_table_small_square", {
description = small_s,
mesh = "homedecor_table_small_square.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
})
homedecor.register(m.."_table_"..shape, {
description = shape.." "..m.." tabletop",
mesh = "homedecor_table_"..shape..".obj",
tiles = {
'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_edges.png',
'homedecor_blanktile.png',
'homedecor_blanktile.png',
'homedecor_blanktile.png',
},
wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
use_texture_alpha = "blend",
groups = { snappy = 3 },
sounds = s,
selection_box = tables_cbox,
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
})
-- small round tables
for _, l in ipairs(leg_materials) do
local leg_mat = unpack(l)
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 = {
'homedecor_'..m..'_table_large_tb.png',
'homedecor_'..m..'_table_large_tb.png',
'homedecor_'..m..'_table_large_edges.png',
'homedecor_'..m..'_table_large_edges.png',
'homedecor_'..m..'_table_large_edges.png',
'homedecor_'..m..'_table_large_edges.png'
},
wield_image = 'homedecor_'..m..'_table_large_inv.png',
inventory_image = 'homedecor_'..m..'_table_large_inv.png',
groups = { snappy = 3 },
sounds = s,
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
},
selection_box = tables_cbox,
on_place = minetest.rotate_node
})
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_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_large', 'homedecor:'..m..'_table_large_square')
end
-- conversion routines for old non-6dfacedir tables
-- old-style tables that used to be from 3dforniture.
local tlist_s = {}
local tlist_t = {}
local dirs2 = { 9, 18, 7, 12 }
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") },
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(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,
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 }
},
})
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
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
minetest.register_craft( {
output = "homedecor:glass_table_small_round_b 15",
recipe = {
@ -226,8 +185,6 @@ minetest.register_craft( {
}
})
--
minetest.register_craft( {
output = "homedecor:wood_table_small_round_b 15",
recipe = {
@ -305,7 +262,73 @@ minetest.register_craft({
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
@ -368,3 +391,8 @@ minetest.register_craft({
"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
description = Homedecor mod: tables
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
v 0.499 -0.499 0.499
v -0.499 -0.499 0.499
v -0.499 -0.499 -0.499
v 0.499 -0.469 -0.499
v 0.499 -0.469 0.499
v -0.499 -0.469 0.499
v -0.499 -0.469 -0.499
v 0.469 -0.437 -0.469
v 0.469 -0.437 0.469
v -0.469 -0.437 0.469
v -0.469 -0.437 -0.469
vt 0.5 0.029
vt 0.971 0.029
vt 0.971 0.5
vt 0.5 0.5
vt 0.015 0.985
vt 0.015 0.515
vt 0.029 0.529
vt 0.029 0.971
vt 0.985 0.5
vt 0.985 0.029
vt 0.5 0.515
vt 0.971 0.515
vt 0.485 0.029
vt 0.485 0.5
vt 0.971 0.015
vt 0.5 0.015
vt 0.471 0.971
vt 0.471 0.529
vt 0.485 0.515
vt 0.485 0.985
# Blender v2.83.5 OBJ File: 'homedecor small square 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.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.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.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.468750 0.500000 0.468750
v 0.500000 0.468750 0.500000
v 0.500000 0.468750 -0.500000
v 0.468750 0.500000 -0.468750
v 0.500000 -0.468750 -0.500000
v 0.468750 -0.437500 -0.468750
v 0.500000 -0.468750 0.500000
v 0.468750 -0.437500 0.468750
v -0.500000 -0.468750 -0.500000
v -0.468750 -0.437500 -0.468750
v -0.468750 -0.437500 0.468750
v -0.500000 -0.468750 0.500000
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
f 1/1 2/2 3/3 4/4
f 8/5 7/6 11/7 12/8
f 1/9 5/3 6/2 2/10
f 2/11 6/4 7/3 3/12
f 3/13 7/1 8/4 4/14
f 5/15 1/2 4/1 8/16
f 9/17 12/8 11/7 10/18
f 7/6 6/19 10/18 11/7
f 5/20 8/5 12/8 9/17
f 6/19 5/20 9/17 10/18
f 9/1/1 2/2/1 8/3/1 1/4/1
f 22/5/2 26/6/2 27/7/2 24/8/2
f 24/8/3 27/7/3 28/9/3 23/10/3
f 22/5/4 24/8/4 23/10/4 21/11/4
f 26/6/5 22/5/5 21/11/5 25/12/5
f 27/7/6 26/6/6 25/12/6 28/9/6
g Cube_Cube.001_edges
f 23/13/7 28/14/7 1/15/7 8/16/7
f 25/17/8 21/18/8 2/19/8 9/20/8
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