Compare commits

...

25 Commits

Author SHA1 Message Date
aa5571a18f Replace deprecated image fields in crafitem definitions
This has been a legacy field for at least 13 years now
2025-04-27 00:41:28 +02:00
b30d7b532b Merge pull request #92 from AntumMT/player_meta
Set string in PlayerMetaRef instead of in player object attribute
2025-01-10 00:02:37 +01:00
e5119cad05 Set string in PlayerMetaRef instead of in player object attribute 2025-01-06 00:22:36 -08:00
f7d5164559 fix https://github.com/mt-mods/homedecor_modpack/issues/88 - improve usage of use_texture_alpha to improve client rendering (#89) 2024-12-28 22:34:54 -05:00
ecbedd77de make the items opaque to improve rendering performance and hide bad geometry 2024-12-27 18:35:45 -05:00
7bf4f8e185 make the bottle opaque to improve rendering performance and hide bad geometry 2024-12-27 18:09:38 -05:00
b51d27135b Jump drive support for seats (#87)
* psuedo code for jump drive support

* avoid re-calculating node hash in loop

* cache new position for next move

* clean comment and minetest -> core

* cache seat offset for sofas

* use first found sitting position

* cleanup some comments

* bugfix: reported seat occupied when it wasn't

---------

Co-authored-by: Luke aka SwissalpS <Luke@SwissalpS.ws>
2024-12-22 13:59:17 -05:00
94e25c2192 free player when seat is dug (#84) 2024-11-06 23:32:14 -05:00
d8ae7a360d handle corner case where player dies while in chair 2024-11-05 01:20:34 -05:00
40898101be replace physics hell with hopefully better entity hell (#81)
* replace physics hell with hopefully better entity hell

* toss worthless optional depend

* no need to save entity if we dont remove it for some reason - crashes, etc

* fix sofas

* handle the rest of chairs

* catch malformed seating, since lua tables are 1 indexed

* niklp suggestion
2024-10-30 22:57:08 -04:00
79416b962c Add player_monoids support (#80)
* Add `player_monoids` support (*sometimes* broken for whatever reason, see xkcd#1739)

* .
2024-10-20 12:24:57 -04:00
00ee805ed7 Make half doors craftable (#79) 2024-10-15 18:44:55 -04:00
6fb69a56a5 Fix typo in German translation of "Dishwasher" 2024-10-05 19:22:13 +02:00
335559feb3 fix seating only working once till server restarts 2024-09-11 20:18:38 -04:00
a100d20d4d implements https://github.com/mt-mods/homedecor_modpack/issues/31 - show players sitting in seats (#76)
* implment https://github.com/mt-mods/homedecor_modpack/issues/31 - show players sitting in seats

* improve things
2024-09-09 12:11:43 -04:00
b2e5c81e4d switch over to using xcompats function 2024-09-08 19:26:36 -04:00
8f796e43af Replace deprecated get_metadata() call (#75) 2024-07-16 15:50:36 +10:00
1ef4837abe Use initial_properties for entities (#74) 2024-07-03 16:09:31 +10:00
d0ab9b82ce reorder registration of aliases to fix missing recipes, also reorder registration of dye recipes to show item craft first before recipe craft (#72) 2024-05-23 18:37:28 -04:00
fa3f7f816b trash unused function: homedecor.sit (#71) 2024-04-28 14:48:03 -04:00
d400e421ce Replace homedecor_blanktile.png w/ engine provided blank.png (#69) 2024-04-02 18:08:49 -04:00
792c23a7fe handle interact with node check in non mtg games with a fallback (#68) 2024-04-02 06:54:10 -04:00
0d5cab9455 replace hardcoded game agnostic texture support and homedecor.textures to xcompat (#66)
* switch existing to xcompat textures

* replace the rest of the hard coded texture conversions to use homedecor.textures
2024-03-03 15:52:58 -05:00
080551e647 Is ground content (#64)
see https://github.com/pandorabox-io/pandorabox.io/issues/836
2024-02-29 18:49:24 -05:00
280924c02b add in xcompat for game agnostic handling dry (#63) 2024-02-25 12:04:20 -05:00
43 changed files with 450 additions and 535 deletions

View File

@ -15,7 +15,8 @@ globals = {
"homedecor_doors_and_gates",
-- mod-deps
"armor"
"armor",
xcompat = {fields = {"player"}},
}
read_globals = {
@ -39,4 +40,6 @@ read_globals = {
"creative",
"doors",
"i3",
"xcompat",
"player_monoids"
}

View File

@ -25,7 +25,4 @@ required:
* [Unifieddyes](https://github.com/mt-mods/unifieddyes)
* [Basic Materials](https://github.com/mt-mods/basic_materials)
optional:
* [Sound Api](https://github.com/mt-mods/sound_api) - note: needed for sound support
* [xcompat](https://github.com/mt-mods/xcompat)

View File

@ -13,6 +13,8 @@ local function building_blocks_stairs(nodename, def)
def._mcl_hardness=1.6
end
def.is_ground_content = def.is_ground_content == true
minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") then
local mod, name = nodename:match("(.*):(.*)")
@ -31,7 +33,7 @@ building_blocks_stairs("building_blocks:grate", {
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {cracky=1, dig_generic=3},
_sound_def = {
@ -44,7 +46,7 @@ building_blocks_stairs("building_blocks:smoothglass", {
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
_sound_def = {
@ -57,7 +59,7 @@ building_blocks_stairs("building_blocks:woodglass", {
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
_sound_def = {
@ -68,20 +70,21 @@ building_blocks_stairs("building_blocks:woodglass", {
building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"),
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=3, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
local grasstex = {"[combine:16x16^[noalpha^[colorize:#006400"}
if minetest.get_modpath("default") then
grasstex = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}
end
local grasstex = {
homedecor.textures.grass.top,
homedecor.textures.grass.dirt,
homedecor.textures.grass.side
}
building_blocks_stairs("building_blocks:fakegrass", {
tiles = grasstex,
description = S("Fake Grass"),
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=3, dig_sand=3},
_sound_def = {
key = "node_sound_dirt_defaults",
@ -89,7 +92,7 @@ building_blocks_stairs("building_blocks:fakegrass", {
})
building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
is_ground_content = false,
description = S("Hardwood"),
groups = {choppy=1,flammable=1, dig_tree=1},
_sound_def = {
@ -98,7 +101,7 @@ building_blocks_stairs("building_blocks:hardwood", {
})
building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
is_ground_content = false,
description = S("Roof block"),
groups = {snappy=3, dig_generic=4},
_sound_def = {
@ -108,7 +111,7 @@ building_blocks_stairs("building_blocks:Roofing", {
building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"),
tiles = {"building_blocks_tar.png"},
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=1, tar_block = 1, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
@ -117,7 +120,7 @@ building_blocks_stairs("building_blocks:Tar", {
building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"),
tiles = {"building_blocks_marble.png"},
is_ground_content = true,
is_ground_content = false,
groups = {cracky=3, marble = 1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
@ -139,16 +142,13 @@ minetest.register_node("building_blocks:brobble_spread", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
local graveltex = "[combine:16x16^[noalpha^[colorize:#3a3b3c"
if minetest.get_modpath("default") then
graveltex = "default_gravel.png"
end
local graveltex = homedecor.textures.gravel
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = S("Gravel Spread"),
@ -162,7 +162,7 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=2, dig_generic=4, handy=1},
_mcl_hardness=0.6,
_sound_def = {
@ -184,7 +184,7 @@ minetest.register_node("building_blocks:Tarmac_spread", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
groups = {cracky=3, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
@ -204,7 +204,7 @@ minetest.register_node("building_blocks:terrycloth_towel", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
@ -228,7 +228,7 @@ minetest.register_node("building_blocks:BWtile", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
@ -245,7 +245,7 @@ minetest.register_node("building_blocks:Fireplace", {
paramtype2 = "facedir",
light_source = minetest.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
groups = {cracky=2, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {

View File

@ -2,12 +2,12 @@ local S = minetest.get_translator("building_blocks")
minetest.register_craftitem("building_blocks:sticks", {
description = S("Small bundle of sticks"),
image = "building_blocks_sticks.png",
inventory_image = "building_blocks_sticks.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem("building_blocks:tar_base", {
description = S("Tar base"),
image = "building_blocks_tar_base.png",
inventory_image = "building_blocks_tar_base.png",
})
minetest.register_tool("building_blocks:knife", {

View File

@ -146,6 +146,7 @@ minetest.register_node("fake_fire:ice_fire", {
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1, dig_generic=3, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
sunlight_propagates = true,
buildable_to = true,
@ -177,7 +178,7 @@ local sbox = {
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16},
}
local wtex = homedecor.textures.default_junglewood
local wtex = homedecor.textures.wood.jungle.planks
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
@ -188,6 +189,7 @@ minetest.register_node("fake_fire:fancy_fire", {
paramtype2 = "facedir",
use_texture_alpha = "clip",
groups = {oddly_breakable_by_hand=3, flammable=0, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
sunlight_propagates = true,
light_source = 13,
@ -234,6 +236,7 @@ minetest.register_node("fake_fire:embers", {
},
light_source = 9,
groups = {crumbly=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
paramtype = "light",
_sound_def = {
@ -266,6 +269,7 @@ for _, mat in ipairs(materials) do
description = desc,
tiles = {tex.."^chimney_top.png", tex},
groups = {snappy=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
paramtype = "light",
_sound_def = {

View File

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

View File

@ -2,8 +2,8 @@ local S = minetest.get_translator("homedecor_bathroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
local wood_tex = homedecor.textures.default_wood
local water_tex = homedecor.textures.water
local wood_tex = homedecor.textures.wood.apple.planks
local water_tex = homedecor.textures.water.tile
homedecor.register("bathroom_tiles_dark", {
description = S("Bathroom/kitchen tiles (dark)"),
@ -239,7 +239,6 @@ homedecor.register("toilet_open", {
selection_box = toilet_sbox,
collision_box = toilet_cbox,
drop = "homedecor:toilet",
use_texture_alpha = "blend",
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",

View File

@ -2,7 +2,7 @@ local S = minetest.get_translator("homedecor_bedroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
local wood_tex, wool_tex = homedecor.textures.default_wood, homedecor.textures.wool_white
local wood_tex, wool_tex = homedecor.textures.wood.apple.planks, homedecor.textures.wool.white
local bed_sbox = {
type = "wallmounted",

View File

@ -81,7 +81,7 @@ for _, c in ipairs(bookcolors) do
name = "homedecor:book_"..color,
param2 = fdir,
})
local text = itemstack:get_metadata() or ""
local text = itemstack:get_meta():get_string("")
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(text) or {}
if type(data) ~= "table" then

View File

@ -7,7 +7,7 @@ homedecor.register("air_conditioner", {
mesh = "homedecor_ac.obj",
tiles = {
"homedecor_ac.png",
homedecor.textures.glass
homedecor.textures.glass.pane
},
groups = { snappy = 3, dig_stone = 3 },
use_texture_alpha = "clip",
@ -36,11 +36,13 @@ homedecor.register("air_conditioner", {
-- fans
minetest.register_entity(":homedecor:mesh_desk_fan", {
collisionbox = homedecor.nodebox.null,
visual = "mesh",
mesh = "homedecor_desk_fan.b3d",
textures = {"homedecor_desk_fan_uv.png"},
visual_size = {x=10, y=10},
initial_properties = {
collisionbox = homedecor.nodebox.null,
visual = "mesh",
mesh = "homedecor_desk_fan.b3d",
textures = {"homedecor_desk_fan_uv.png"},
visual_size = {x=10, y=10},
}
})
local add_mesh_desk_fan_entity = function(pos)

View File

@ -1,12 +1,6 @@
local S = minetest.get_translator("homedecor_clocks")
local wood
if minetest.get_modpath("default") then
wood = "default_wood.png"
else
wood = "[combine:16x16^[noalpha^[colorize:#563d2d"
end
local wood = homedecor.textures.wood.apple.planks
local plastic_craft = {
output = "homedecor:analog_clock_plastic 2",
@ -135,7 +129,7 @@ homedecor.register("grandfather_clock", {
description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj",
tiles = {
homedecor.textures.glass,
homedecor.textures.glass.pane,
"homedecor_grandfather_clock_face.png",
homedecor.lux_wood,
"homedecor_grandfather_clock_face_edge.png",

View File

@ -54,15 +54,13 @@ homedecor.color_dark_grey = 0xff606060
homedecor.color_med_grey = 0xffa0a0a0
-- load different handler subsystems
dofile(modpath.."/textures.lua")
dofile(modpath.."/materials.lua")
dofile(modpath.."/xcompat.lua")
dofile(modpath.."/nodeboxes.lua")
dofile(modpath.."/expansion.lua")
dofile(modpath.."/furnaces.lua")
dofile(modpath.."/inventory.lua")
dofile(modpath.."/registration.lua")
dofile(modpath.."/water_particles.lua")
dofile(modpath.."/sit.lua")
dofile(modpath.."/crafts.lua")
if minetest.settings:get_bool("log_mod") then

View File

@ -12,6 +12,7 @@ local default_can_dig = function(pos,player)
return meta:get_inventory():is_empty("main")
end
local default_can_interact_with_node = xcompat.functions.can_interact_with_node
local default_inventory_formspecs = {
["4"]="size[8,6]"..
@ -133,7 +134,7 @@ function homedecor.handle_inventory(name, def, original_def)
local allow_move = def.allow_metadata_inventory_move
def.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
if not default.can_interact_with_node(player, pos) then
if not default_can_interact_with_node(player, pos) then
minetest.log("action", player:get_player_name().." tried to access a "..name.." belonging to "
..minetest.get_meta(pos):get_string("owner").." at "..minetest.pos_to_string(pos))
return 0
@ -144,7 +145,7 @@ function homedecor.handle_inventory(name, def, original_def)
local allow_put = def.allow_metadata_inventory_put
def.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if not default.can_interact_with_node(player, pos) then
if not default_can_interact_with_node(player, pos) then
minetest.log("action", player:get_player_name().." tried to access a "..name.." belonging to"
..minetest.get_meta(pos):get_string("owner").." at "..minetest.pos_to_string(pos))
return 0
@ -155,7 +156,7 @@ function homedecor.handle_inventory(name, def, original_def)
local allow_take = def.allow_metadata_inventory_take
def.allow_metadata_inventory_take = function(pos, listname, index, stack, player)
if not default.can_interact_with_node(player, pos) then
if not default_can_interact_with_node(player, pos) then
minetest.log("action", player:get_player_name().." tried to access a "..name.." belonging to"
..minetest.get_meta(pos):get_string("owner").." at ".. minetest.pos_to_string(pos))
return 0
@ -166,7 +167,7 @@ function homedecor.handle_inventory(name, def, original_def)
local can_dig = def.can_dig or default_can_dig
def.can_dig = function(pos, player)
return default.can_interact_with_node(player, pos) and (can_dig and can_dig(pos, player) == true)
return default_can_interact_with_node(player, pos) and (can_dig and can_dig(pos, player) == true)
end
def.on_key_use = function(pos, player)

View File

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

View File

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

View File

@ -19,6 +19,8 @@ function homedecor.register(name, original_def)
def._mcl_hardness=1.6
end
def.is_ground_content = def.is_ground_content == true
def.drawtype = def.drawtype
or (def.mesh and "mesh")
or (def.node_box and "nodebox")

View File

@ -1,34 +0,0 @@
function homedecor.sit(pos, node, clicker)
return -- delete it when the engine is stabler for the player's physics
--[[
local meta = minetest.get_meta(pos)
local param2 = node.param2
local name = clicker:get_player_name()
if name == meta:get_string("is_sit") then
meta:set_string("is_sit", "")
pos.y = pos.y-0.5
clicker:setpos(pos)
clicker:set_eye_offset({x=0,y=0,z=0}, {x=0,y=0,z=0})
clicker:set_physics_override(1, 1, 1)
default.player_attached[name] = false
default.player_set_animation(clicker, "stand", 30)
else
meta:set_string("is_sit", clicker:get_player_name())
clicker:set_eye_offset({x=0,y=-7,z=2}, {x=0,y=0,z=0})
clicker:set_physics_override(0, 0, 0)
clicker:setpos(pos)
default.player_attached[name] = true
default.player_set_animation(clicker, "sit", 30)
if param2 == 0 then
clicker:set_look_yaw(3.15)
elseif param2 == 1 then
clicker:set_look_yaw(7.9)
elseif param2 == 2 then
clicker:set_look_yaw(6.28)
elseif param2 == 3 then
clicker:set_look_yaw(4.75)
else return end
end
--]]
end

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

View File

@ -0,0 +1,8 @@
homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
homedecor.white_wood = "homedecor_generic_wood_plain.png"
homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
homedecor.materials = xcompat.materials
homedecor.textures = xcompat.textures

View File

@ -19,6 +19,7 @@ local door_list = {
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
use_texture_alpha = "opaque",
},
{
name = "exterior_fancy",
@ -26,25 +27,29 @@ local door_list = {
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
mesh = "homedecor_door_fancy"
mesh = "homedecor_door_fancy",
use_texture_alpha = "blend",
},
{
name = "french_oak",
description = S("French door, Oak-colored"),
sounds = default.node_sound_glass_defaults(),
mesh = "homedecor_door_french"
mesh = "homedecor_door_french",
use_texture_alpha = "blend",
},
{
name = "french_mahogany",
description = S("French door, Mahogany-colored"),
sounds = default.node_sound_glass_defaults(),
mesh = "homedecor_door_french"
mesh = "homedecor_door_french",
use_texture_alpha = "blend",
},
{
name = "french_white",
description = S("French door, White"),
sounds = default.node_sound_glass_defaults(),
mesh = "homedecor_door_french"
mesh = "homedecor_door_french",
use_texture_alpha = "blend",
},
{
name = "basic_panel",
@ -52,6 +57,7 @@ local door_list = {
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
use_texture_alpha = "opaque",
},
{
name = "wrought_iron",
@ -59,7 +65,8 @@ local door_list = {
sounds = default.node_sound_metal_defaults(),
sound_open = "doors_steel_door_open",
sound_close = "doors_steel_door_close",
mesh = "homedecor_door_wrought_iron"
mesh = "homedecor_door_wrought_iron",
use_texture_alpha = "clip",
},
{
name = "carolina",
@ -67,6 +74,7 @@ local door_list = {
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
use_texture_alpha = "blend",
},
{
name = "woodglass",
@ -74,19 +82,22 @@ local door_list = {
sounds = default.node_sound_wood_defaults(),
sound_open = "homedecor_door_open",
sound_close = "homedecor_door_close",
mesh = "homedecor_door_wood_glass_3"
mesh = "homedecor_door_wood_glass_3",
use_texture_alpha = "clip",
},
{
name = "closet_mahogany",
description = S("Mahogany Closet Door"),
sounds = default.node_sound_wood_defaults(),
mesh = "homedecor_door_closet"
mesh = "homedecor_door_closet",
use_texture_alpha = "clip",
},
{
name = "closet_oak",
description = S("Oak Closet Door"),
sounds = default.node_sound_wood_defaults(),
mesh = "homedecor_door_closet"
mesh = "homedecor_door_closet",
use_texture_alpha = "clip",
},
}
@ -99,7 +110,7 @@ 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",
use_texture_alpha = def.use_texture_alpha or "blend",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
mesecons = {
effector = {
@ -231,10 +242,10 @@ for i, g in ipairs(gate_list) do
if gate == "picket" or gate == "picket_white" then
tiles = {
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"blank.png",
"blank.png",
"blank.png",
"blank.png",
"homedecor_gate_"..gate.."_back.png",
"homedecor_gate_"..gate.."_front.png"
}
@ -247,6 +258,7 @@ for i, g in ipairs(gate_list) do
paramtype = "light",
use_texture_alpha = "clip",
groups = {snappy=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir",
@ -409,8 +421,8 @@ minetest.register_craft( {
type = "shapeless",
output = "homedecor:gate_half_door_closed 4",
recipe = {
"doors:homedecor_wood_plain_a",
"doors:homedecor_wood_plain_a"
"doors:homedecor_wood_plain",
"doors:homedecor_wood_plain"
},
})
@ -418,8 +430,8 @@ minetest.register_craft( {
type = "shapeless",
output = "homedecor:gate_half_door_white_closed 4",
recipe = {
"doors:homedecor_bedroom_a",
"doors:homedecor_bedroom_a"
"doors:homedecor_basic_panel",
"doors:homedecor_basic_panel"
},
})
@ -709,4 +721,4 @@ minetest.register_lbm({
end
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"})
end
})
})

View File

@ -43,7 +43,7 @@ homedecor.register("barbecue", {
minetest.register_alias("homedecor:barbecue_meat", "air")
local wood_tex = homedecor.textures.default_wood
local wood_tex = homedecor.textures.wood.apple.planks
homedecor.register("doghouse", {
mesh = "homedecor_doghouse.obj",
@ -288,8 +288,7 @@ homedecor.register("swing_rope", {
selection_box = homedecor.nodebox.null
})
local water_tex = "default_water.png"
if not minetest.get_modpath("default") then water_tex = "[combine:16x16^[noalpha^[colorize:#00008b" end
local water_tex = homedecor.textures.water.tile
local cobble_tex = minetest.registered_nodes["mapgen_stone"].tiles[1]
local stone_drop = minetest.registered_nodes["mapgen_stone"].drop
if stone_drop and type(stone_drop) == "string" then

View File

@ -49,8 +49,8 @@ end
homedecor.register("fence_picket", {
description = S("Unpainted Picket Fence"),
tiles = {
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"blank.png",
"blank.png",
"homedecor_fence_picket.png",
"homedecor_fence_picket.png",
"homedecor_fence_picket_backside.png",
@ -85,8 +85,8 @@ homedecor.register("fence_picket", {
homedecor.register("fence_picket_corner", {
description = S("Unpainted Picket Fence Corner"),
tiles = {
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"blank.png",
"blank.png",
"homedecor_fence_picket.png",
"homedecor_fence_picket_backside.png",
"homedecor_fence_picket_backside.png",
@ -113,8 +113,8 @@ homedecor.register("fence_picket_corner", {
homedecor.register("fence_picket_white", {
description = S("White Picket Fence"),
tiles = {
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"blank.png",
"blank.png",
"homedecor_fence_picket_white.png",
"homedecor_fence_picket_white.png",
"homedecor_fence_picket_white_backside.png",
@ -149,8 +149,8 @@ homedecor.register("fence_picket_white", {
homedecor.register("fence_picket_corner_white", {
description = S("White Picket Fence Corner"),
tiles = {
"homedecor_blanktile.png",
"homedecor_blanktile.png",
"blank.png",
"blank.png",
"homedecor_fence_picket_white.png",
"homedecor_fence_picket_white_backside.png",
"homedecor_fence_picket_white_backside.png",

View File

@ -5,7 +5,7 @@ local ob_cbox = {
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
}
local wood_tex = homedecor.textures.default_wood
local wood_tex = homedecor.textures.wood.apple.planks
homedecor.register("openframe_bookshelf", {
description = S("Bookshelf (open-frame)"),

View File

@ -145,7 +145,7 @@ homedecor.register("dishwasher_"..m, {
})
end
local wood_tex = homedecor.textures.default_wood
local wood_tex = homedecor.textures.wood.apple.planks
local cabinet_sides = "("..wood_tex.."^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_sides_colored = "(homedecor_generic_wood_plain.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"

View File

@ -4,7 +4,7 @@ Refrigerator=Kühlschrank
Oven=Backofen
Oven (stainless steel)=Backofen (Edelstahl)
Microwave Oven=Mikrowelle
Dishwasher=Spülmachine
Dishwasher=Spülmaschine
granite=Granit
marble=Marmor
steel=Stahl

View File

@ -80,8 +80,7 @@ local ib_cbox = {
fixed = { -6/16, -8/16, -4/16, 17/16, 4/16, 4/16 }
}
local wool_tex = "wool_grey.png"
if not minetest.get_modpath("wool") then wool_tex = "[combine:16x16^[noalpha^[colorize:#3A3B3C" end
local wool_tex = homedecor.textures.wool.grey
homedecor.register("ironing_board", {
description = S("Ironing board"),

View File

@ -276,6 +276,7 @@ for brightness_level = 0, 14 do
},
node_box = glowlight_nodebox.half,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici, dig_glass=1, axey=5 },
is_ground_content = false,
_mcl_hardness=1.6,
light_source = brightness_level,
_sound_def = {
@ -345,6 +346,7 @@ for brightness_level = 0, 14 do
},
node_box = glowlight_nodebox.quarter,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici, dig_glass=1, axey=5 },
is_ground_content = false,
_mcl_hardness=1.6,
light_source = brightness_level,
_sound_def = {
@ -415,6 +417,7 @@ for brightness_level = 0, 14 do
},
node_box = glowlight_nodebox.small_cube,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici, dig_glass=1, axey=5 },
is_ground_content = false,
_mcl_hardness=1.6,
light_source = brightness_level,
_sound_def = {
@ -449,7 +452,7 @@ for brightness_level = 0, 14 do
lighttex = "homedecor_plasma_lamp_off.png"
end
local gtex=minetest.get_modpath("default") and "default_gold_block.png" or "[combine:16x16^[noalpha^[colorize:#FFD700"
local gtex=homedecor.textures.metal.gold.block
homedecor.register("plasma_lamp_"..brightness_level, {
description = S("Plasma Lamp/Light"),
drawtype = "mesh",
@ -485,7 +488,6 @@ 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 = "blend",
inventory_image = "homedecor_ground_lantern_inv.png",
wield_image = "homedecor_ground_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici, dig_glass=1},
@ -512,7 +514,6 @@ 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 = "blend",
inventory_image = "homedecor_hanging_lantern_inv.png",
wield_image = "homedecor_hanging_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici, dig_glass=1},
@ -700,8 +701,7 @@ for brightness_level = 0, 14 do
fixed = { -0.25, -0.5, -0.25, 0.25, 1.5, 0.25 }
}
local wool_brightened=(minetest.get_modpath("wool") and "wool_grey.png" or "[combine:16x16^[noalpha6[colorize:#A9A9A9")
.. "^[colorize:#ffffff:"..(brightness_level * 15)
local wool_brightened=homedecor.textures.wool.grey .. "^[colorize:#ffffff:"..(brightness_level * 15)
homedecor.register("table_lamp_"..brightness_level, {
description = S("Table Lamp/Light"),
@ -793,7 +793,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
local gen_ls_tex_yellow = "homedecor_generic_light_source_off.png"
if onflag then gen_ls_tex_yellow = "homedecor_generic_light_source_yellow.png" end
local lighttex = "homedecor_blanktile.png"
local lighttex = "blank.png"
if onflag then
lighttex = {
name = "homedecor_plasma_ball_streamers.png",
@ -869,6 +869,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
"group:mesecon_conductor_craftable"
},
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici_m, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
@ -918,6 +919,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
"group:mesecon_conductor_craftable"
},
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici_m, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
@ -947,7 +949,6 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
gen_ls_tex_yellow,
"homedecor_generic_metal_wrought_iron.png"
},
use_texture_alpha = "blend",
inventory_image = "homedecor_wall_lamp_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici, dig_glass=1},
light_source = onflag and (minetest.LIGHT_MAX - 3) or nil,
@ -1133,6 +1134,7 @@ minetest.register_node(":homedecor:chain_steel_top", {
paramtype = "light",
inventory_image = "basic_materials_chain_steel_inv.png",
groups = {cracky=3, dig_glass=1, pickaxey=5},
is_ground_content = false,
_mcl_hardness=1.6,
selection_box = topchains_sbox,
})
@ -1148,6 +1150,7 @@ minetest.register_node(":homedecor:chain_brass_top", {
paramtype = "light",
inventory_image = "basic_materials_chain_brass_inv.png",
groups = {cracky=3, dig_glass=1, pickaxey=5},
is_ground_content = false,
_mcl_hardness=1.6,
selection_box = topchains_sbox,
})
@ -1176,6 +1179,7 @@ minetest.register_node(":homedecor:chandelier_steel", {
mesh = "homedecor_chandelier.obj",
use_texture_alpha = "clip",
groups = {cracky=3, dig_glass=1, pickaxey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
@ -1206,6 +1210,7 @@ minetest.register_node(":homedecor:chandelier_brass", {
mesh = "homedecor_chandelier.obj",
use_texture_alpha = "clip",
groups = {cracky=3, dig_glass=1, pickaxey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
@ -1413,7 +1418,71 @@ minetest.register_lbm({
end
})
-- aliases
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")
minetest.register_alias("chains:chain_top_brass", "homedecor:chain_brass_top")
minetest.register_alias("chains:chandelier", "homedecor:chandelier_steel")
minetest.register_alias("chains:chandelier_steel", "homedecor:chandelier_steel")
minetest.register_alias("chains:chandelier_brass", "homedecor:chandelier_brass")
minetest.register_alias("homedecor:glowlight_half", "homedecor:glowlight_half_14")
minetest.register_alias("homedecor:glowlight_quarter", "homedecor:glowlight_quarter_14")
minetest.register_alias("homedecor:glowlight_small_cube", "homedecor:glowlight_small_cube_14")
minetest.register_alias("homedecor:plasma_lamp", "homedecor:plasma_lamp_14")
minetest.register_alias("homedecor:ground_lantern", "homedecor:ground_lantern_14")
minetest.register_alias("homedecor:hanging_lantern", "homedecor:hanging_lantern_14")
minetest.register_alias("homedecor:ceiling_lantern", "homedecor:ceiling_lantern_14")
minetest.register_alias("homedecor:lattice_lantern_large", "homedecor:lattice_lantern_large_14")
minetest.register_alias("homedecor:lattice_lantern_small", "homedecor:lattice_lantern_small_14")
minetest.register_alias("homedecor:desk_lamp", "homedecor:desk_lamp_14")
minetest.register_alias("homedecor:ceiling_lamp", "homedecor:ceiling_lamp_14")
minetest.register_alias("homedecor:table_lamp", "homedecor:table_lamp_14")
minetest.register_alias("homedecor:standing_lamp", "homedecor:standing_lamp_14")
minetest.register_alias("3dforniture:table_lamp", "homedecor:table_lamp_14")
minetest.register_alias("3dforniture:torch_wall", "homedecor:torch_wall")
minetest.register_alias("torch_wall", "homedecor:torch_wall")
minetest.register_alias("homedecor:plasma_ball", "homedecor:plasma_ball_on")
minetest.register_alias("homedecor:wall_lamp", "homedecor:wall_lamp_on")
minetest.register_alias("homedecor:rope_light_on_floor_0", "homedecor:rope_light_on_floor_off")
minetest.register_alias("homedecor:rope_light_on_floor_14", "homedecor:rope_light_on_floor_on")
minetest.register_alias("homedecor:rope_light_on_ceiling_0", "homedecor:rope_light_on_ceiling_off")
minetest.register_alias("homedecor:rope_light_on_ceiling_14", "homedecor:rope_light_on_ceiling_on")
for name, level in pairs(word_to_bright) do
minetest.register_alias("homedecor:glowlight_half_"..name, "homedecor:glowlight_half_"..level)
minetest.register_alias("homedecor:glowlight_quarter_"..name, "homedecor:glowlight_quarter_"..level)
minetest.register_alias("homedecor:glowlight_small_cube_"..name, "homedecor:glowlight_small_cube_"..level)
minetest.register_alias("homedecor:rope_light_on_floor_"..name, "homedecor:rope_light_on_floor_"..level)
minetest.register_alias("homedecor:rope_light_on_ceiling_"..name, "homedecor:rope_light_on_ceiling_"..level)
minetest.register_alias("homedecor:plasma_lamp_"..name, "homedecor:plasma_lamp_"..level)
minetest.register_alias("homedecor:plasma_ball_"..name, "homedecor:plasma_ball_"..level)
minetest.register_alias("homedecor:ground_lantern_"..name, "homedecor:ground_lantern_"..level)
minetest.register_alias("homedecor:hanging_lantern_"..name, "homedecor:hanging_lantern_"..level)
minetest.register_alias("homedecor:ceiling_lantern_"..name, "homedecor:ceiling_lantern_"..level)
minetest.register_alias("homedecor:lattice_lantern_large_"..name, "homedecor:lattice_lantern_large_"..level)
minetest.register_alias("homedecor:lattice_lantern_small_"..name, "homedecor:lattice_lantern_small_"..level)
minetest.register_alias("homedecor:desk_lamp_"..name, "homedecor:desk_lamp_"..level)
minetest.register_alias("homedecor:ceiling_lamp_"..name, "homedecor:ceiling_lamp_"..level)
minetest.register_alias("homedecor:table_lamp_"..name, "homedecor:table_lamp_"..level)
minetest.register_alias("homedecor:standing_lamp_"..name, "homedecor:standing_lamp_"..level)
minetest.register_alias("3dforniture:table_lamp_"..name, "homedecor:table_lamp_"..level)
end
if minetest.get_modpath("darkage") then
minetest.register_alias("homedecor:lattice_lantern_large", "darkage:lamp")
for n = 0, 14 do
minetest.register_alias("homedecor:lattice_lantern_large_"..n, "darkage:lamp")
end
for name, level in pairs(word_to_bright) do
minetest.register_alias("homedecor:lattice_lantern_large_"..name, "darkage:lamp")
end
end
-- crafting
@ -1587,6 +1656,17 @@ end
-- glowlights
unifieddyes.register_color_craft({
output = "homedecor:glowlight_half",
palette = "wallmounted",
type = "shapeless",
neutral_node = "homedecor:glowlight_half",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:glowlight_half 6",
recipe = {
@ -1619,10 +1699,10 @@ minetest.register_craft({
})
unifieddyes.register_color_craft({
output = "homedecor:glowlight_half",
output = "homedecor:glowlight_quarter",
palette = "wallmounted",
type = "shapeless",
neutral_node = "homedecor:glowlight_half",
neutral_node = "homedecor:glowlight_quarter",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
@ -1637,10 +1717,10 @@ minetest.register_craft({
})
unifieddyes.register_color_craft({
output = "homedecor:glowlight_quarter",
output = "homedecor:glowlight_small_cube",
palette = "wallmounted",
type = "shapeless",
neutral_node = "homedecor:glowlight_quarter",
neutral_node = "homedecor:glowlight_small_cube",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
@ -1671,17 +1751,6 @@ minetest.register_craft({
}
})
unifieddyes.register_color_craft({
output = "homedecor:glowlight_small_cube",
palette = "wallmounted",
type = "shapeless",
neutral_node = "homedecor:glowlight_small_cube",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
----
minetest.register_craft({
@ -1702,16 +1771,6 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = "homedecor:desk_lamp 2",
recipe = {
{ "", "default:steel_ingot", "homedecor:glowlight_small_cube" },
{ "", "basic_materials:steel_strip", "" },
{ "basic_materials:plastic_sheet", "basic_materials:copper_wire", "basic_materials:plastic_sheet" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:desk_lamp",
palette = "wallmounted",
@ -1723,6 +1782,15 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft({
output = "homedecor:desk_lamp 2",
recipe = {
{ "", "default:steel_ingot", "homedecor:glowlight_small_cube" },
{ "", "basic_materials:steel_strip", "" },
{ "basic_materials:plastic_sheet", "basic_materials:copper_wire", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:hanging_lantern 2",
recipe = {
@ -1783,6 +1851,17 @@ minetest.register_craft({
},
})
unifieddyes.register_color_craft({
output = "homedecor:standing_lamp_hi",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:standing_lamp_hi",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:standing_lamp_hi",
recipe = {
@ -1793,10 +1872,10 @@ minetest.register_craft({
})
unifieddyes.register_color_craft({
output = "homedecor:standing_lamp_hi",
output = "homedecor:table_lamp_hi",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:standing_lamp_hi",
neutral_node = "homedecor:table_lamp_hi",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
@ -1845,18 +1924,6 @@ minetest.register_craft({
},
})
unifieddyes.register_color_craft({
output = "homedecor:table_lamp_hi",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:table_lamp_hi",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:torch_wall 10",
recipe = {
@ -1864,69 +1931,3 @@ minetest.register_craft({
{ "default:steel_ingot" },
},
})
-- aliases
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")
minetest.register_alias("chains:chain_top_brass", "homedecor:chain_brass_top")
minetest.register_alias("chains:chandelier", "homedecor:chandelier_steel")
minetest.register_alias("chains:chandelier_steel", "homedecor:chandelier_steel")
minetest.register_alias("chains:chandelier_brass", "homedecor:chandelier_brass")
minetest.register_alias("homedecor:glowlight_half", "homedecor:glowlight_half_14")
minetest.register_alias("homedecor:glowlight_quarter", "homedecor:glowlight_quarter_14")
minetest.register_alias("homedecor:glowlight_small_cube", "homedecor:glowlight_small_cube_14")
minetest.register_alias("homedecor:plasma_lamp", "homedecor:plasma_lamp_14")
minetest.register_alias("homedecor:ground_lantern", "homedecor:ground_lantern_14")
minetest.register_alias("homedecor:hanging_lantern", "homedecor:hanging_lantern_14")
minetest.register_alias("homedecor:ceiling_lantern", "homedecor:ceiling_lantern_14")
minetest.register_alias("homedecor:lattice_lantern_large", "homedecor:lattice_lantern_large_14")
minetest.register_alias("homedecor:lattice_lantern_small", "homedecor:lattice_lantern_small_14")
minetest.register_alias("homedecor:desk_lamp", "homedecor:desk_lamp_14")
minetest.register_alias("homedecor:ceiling_lamp", "homedecor:ceiling_lamp_14")
minetest.register_alias("homedecor:table_lamp", "homedecor:table_lamp_14")
minetest.register_alias("homedecor:standing_lamp", "homedecor:standing_lamp_14")
minetest.register_alias("3dforniture:table_lamp", "homedecor:table_lamp_14")
minetest.register_alias("3dforniture:torch_wall", "homedecor:torch_wall")
minetest.register_alias("torch_wall", "homedecor:torch_wall")
minetest.register_alias("homedecor:plasma_ball", "homedecor:plasma_ball_on")
minetest.register_alias("homedecor:wall_lamp", "homedecor:wall_lamp_on")
minetest.register_alias("homedecor:rope_light_on_floor_0", "homedecor:rope_light_on_floor_off")
minetest.register_alias("homedecor:rope_light_on_floor_14", "homedecor:rope_light_on_floor_on")
minetest.register_alias("homedecor:rope_light_on_ceiling_0", "homedecor:rope_light_on_ceiling_off")
minetest.register_alias("homedecor:rope_light_on_ceiling_14", "homedecor:rope_light_on_ceiling_on")
for name, level in pairs(word_to_bright) do
minetest.register_alias("homedecor:glowlight_half_"..name, "homedecor:glowlight_half_"..level)
minetest.register_alias("homedecor:glowlight_quarter_"..name, "homedecor:glowlight_quarter_"..level)
minetest.register_alias("homedecor:glowlight_small_cube_"..name, "homedecor:glowlight_small_cube_"..level)
minetest.register_alias("homedecor:rope_light_on_floor_"..name, "homedecor:rope_light_on_floor_"..level)
minetest.register_alias("homedecor:rope_light_on_ceiling_"..name, "homedecor:rope_light_on_ceiling_"..level)
minetest.register_alias("homedecor:plasma_lamp_"..name, "homedecor:plasma_lamp_"..level)
minetest.register_alias("homedecor:plasma_ball_"..name, "homedecor:plasma_ball_"..level)
minetest.register_alias("homedecor:ground_lantern_"..name, "homedecor:ground_lantern_"..level)
minetest.register_alias("homedecor:hanging_lantern_"..name, "homedecor:hanging_lantern_"..level)
minetest.register_alias("homedecor:ceiling_lantern_"..name, "homedecor:ceiling_lantern_"..level)
minetest.register_alias("homedecor:lattice_lantern_large_"..name, "homedecor:lattice_lantern_large_"..level)
minetest.register_alias("homedecor:lattice_lantern_small_"..name, "homedecor:lattice_lantern_small_"..level)
minetest.register_alias("homedecor:desk_lamp_"..name, "homedecor:desk_lamp_"..level)
minetest.register_alias("homedecor:ceiling_lamp_"..name, "homedecor:ceiling_lamp_"..level)
minetest.register_alias("homedecor:table_lamp_"..name, "homedecor:table_lamp_"..level)
minetest.register_alias("homedecor:standing_lamp_"..name, "homedecor:standing_lamp_"..level)
minetest.register_alias("3dforniture:table_lamp_"..name, "homedecor:table_lamp_"..level)
end
if minetest.get_modpath("darkage") then
minetest.register_alias("homedecor:lattice_lantern_large", "darkage:lamp")
for n = 0, 14 do
minetest.register_alias("homedecor:lattice_lantern_large_"..n, "darkage:lamp")
end
for name, level in pairs(word_to_bright) do
minetest.register_alias("homedecor:lattice_lantern_large_"..name, "darkage:lamp")
end
end

View File

@ -11,8 +11,8 @@ local S = minetest.get_translator("homedecor_misc")
homedecor_misc = {}
local wool_black, wool_grey = homedecor.textures.wool_black, homedecor.textures.wool_grey
local wood_tex = homedecor.textures.default_wood
local wool_black, wool_grey = homedecor.textures.wool.black, homedecor.textures.wool.grey
local wood_tex = homedecor.textures.wood.apple.planks
homedecor.register("ceiling_paint", {
description = S("Textured Ceiling Paint"),
@ -637,6 +637,7 @@ minetest.register_node(":homedecor:tatami_mat", {
drawtype = "nodebox",
paramtype = "light",
groups = {snappy=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
node_box = {
type = "fixed",
@ -1037,6 +1038,7 @@ minetest.register_node(":homedecor:japanese_wall_top", {
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
selection_box = jp_cbox,
collision_box = jp_cbox,
@ -1056,6 +1058,7 @@ minetest.register_node(":homedecor:japanese_wall_middle", {
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
selection_box = jp_cbox,
collision_box = jp_cbox,
@ -1075,6 +1078,7 @@ minetest.register_node(":homedecor:japanese_wall_bottom", {
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
selection_box = jp_cbox,
collision_box = jp_cbox,

View File

@ -1,6 +1,6 @@
local S = minetest.get_translator("homedecor_pictures_and_paintings")
local wood_tex = homedecor.textures.default_wood
local wood_tex = homedecor.textures.wood.apple.planks
local pframe_cbox = {
type = "fixed",

View File

@ -5,10 +5,11 @@ homedecor_roofing = {}
minetest.register_node(":homedecor:skylight", {
description = S("Glass Skylight"),
drawtype = "raillike",
tiles = { homedecor.textures.glass },
wield_image = homedecor.textures.glass,
tiles = { homedecor.textures.glass.pane },
wield_image = homedecor.textures.glass.pane,
inventory_image = "homedecor_skylight_inv.png",
groups = { snappy = 3, dig_tree = 2 , axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
paramtype = "light",
_sound_def = {
@ -26,6 +27,7 @@ minetest.register_node(":homedecor:skylight_frosted", {
inventory_image = "homedecor_skylight_frosted_inv.png",
use_texture_alpha = "blend",
groups = { snappy = 3, dig_tree = 2, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
paramtype = "light",
_sound_def = {
@ -45,6 +47,7 @@ for s, s_loc in pairs({ ["asphalt"] = S("asphalt"), ["terracotta"] = S("terracot
paramtype = "light",
walkable = false,
groups = { snappy = 3, dig_tree = 2, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_wood_defaults",
@ -104,6 +107,7 @@ homedecor_roofing.register_outer_corner = function(modname, subname, groups, slo
selection_box = ocorner_cbox,
collision_box = ocorner_cbox,
groups = groups,
is_ground_content = false,
_mcl_hardness=1.6,
on_place = minetest.rotate_node,
_sound_def = {
@ -129,6 +133,7 @@ homedecor_roofing.register_inner_corner = function(modname, subname, groups, slo
paramtype2 = "facedir",
collision_box = icorner_cbox,
groups = groups,
is_ground_content = false,
_mcl_hardness=1.6,
on_place = minetest.rotate_node,
_sound_def = {
@ -154,8 +159,9 @@ homedecor_roofing.register_slope = function(modname, subname, recipeitem, groups
paramtype2 = "facedir",
selection_box = slope_cbox,
collision_box = slope_cbox,
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = groups,
is_ground_content = false,
_mcl_hardness=1.6,
on_place = minetest.rotate_node,
_sound_def = {
@ -330,8 +336,7 @@ homedecor_roofing.register_slope("homedecor", "glass",
S("Glass Shingles")
)
local brick_tex = "default_brick.png"
if not minetest.get_modpath("default") then brick_tex = "[combine:16x16^[noalpha^[colorize:#AA4A44" end
local brick_tex = homedecor.textures.brick
homedecor.register("chimney", {
description = S("Chimney"),

View File

@ -20,6 +20,7 @@ minetest.register_node(":lrfurn:armchair", {
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "lrfurn_armchair_inv.png",
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_wood_defaults",
@ -32,16 +33,18 @@ minetest.register_node(":lrfurn:armchair", {
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
homedecor.register("armchair", {
description = S("Armchair"),
mesh = "forniture_armchair.obj",
tiles = {
homedecor.textures.wool_white,
{ name = homedecor.textures.wool_dark_grey, color = 0xffffffff },
{ name = homedecor.textures.default_wood, color = 0xffffffff }
homedecor.textures.wool.white,
{ name = homedecor.textures.wool.dark_grey, color = 0xffffffff },
{ name = homedecor.textures.wood.apple.planks, color = 0xffffffff }
},
inventory_image = "homedecor_armchair_inv.png",
paramtype2 = "colorwallmounted",
@ -58,7 +61,9 @@ homedecor.register("armchair", {
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
-- crafts

View File

@ -78,10 +78,67 @@ function lrfurn.fix_sofa_rotation_nsew(pos, placer, itemstack, pointed_thing)
minetest.swap_node(pos, { name = node.name, param2 = fdir+colorbits })
end
local seated_cache = {}
local offset_cache = {}
minetest.register_entity("homedecor_seating:seat", {
initial_properties = {
visual = "cube",
--comment out the following when testing so you can see it
textures = {"blank.png", "blank.png", "blank.png", "blank.png", "blank.png", "blank.png"},
collisionbox = { -0.01, -0.01, -0.01, 0.01, 0.01, 0.01 },
selectionbox = { -0.01, -0.01, -0.01, 0.01, 0.01, 0.01, rotate = false },
static_save = false,
},
on_punch = function(self)
self.object:remove()
end,
})
--we only care about 4 rotations, but just in case someone worldedits, etc - do something other than crash
--radians are stupid, using degrees and then converting
local p2r = {
0*math.pi/180,
0*math.pi/180, --correct
180*math.pi/180, --correct
90*math.pi/180, --correct
270*math.pi/180, --correct
0*math.pi/180,
0*math.pi/180,
0*math.pi/180,
}
p2r[0] = p2r[1]
local p2r_sofa = {
0*math.pi/180,
90*math.pi/180, --correct
270*math.pi/180, --correct
180*math.pi/180, --correct
0*math.pi/180, --correct
0*math.pi/180,
0*math.pi/180,
0*math.pi/180,
}
p2r_sofa[0] = p2r_sofa[1]
local p2r_facedir = {
[0] = 180*math.pi/180,
[1] = 90*math.pi/180,
[2] = 0*math.pi/180,
[3] = 270*math.pi/180,
}
function lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, seats)
if not clicker:is_player() then
return itemstack
end
local name = clicker:get_player_name()
if seated_cache[name] then --already sitting
lrfurn.stand(clicker)
return itemstack
end
--conversion table for param2 to dir
local p2d = {
vector.new(0, 0, 0),
@ -105,26 +162,109 @@ function lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, seats)
--see if we can find a non occupied seat
local sit_pos
local sit_hash
for hash, spos in pairs(valid_seats) do
local pstatus = false
for _, ref in pairs(minetest.get_objects_inside_radius(spos, 0.5)) do
if ref:is_player() then
if ref:is_player() and seated_cache[ref:get_player_name()] then
pstatus = true
end
end
if not pstatus then sit_pos = spos end
if not pstatus then
sit_pos = spos
sit_hash = hash
break;
end
end
if not sit_pos then
minetest.chat_send_player(clicker:get_player_name(), "sorry, this seat is currently occupied")
minetest.chat_send_player(name, "sorry, this seat is currently occupied")
return itemstack
end
--seat the player
sit_pos.y = sit_pos.y-0.5
clicker:set_pos(sit_pos)
local entity = minetest.add_entity(sit_pos, "homedecor_seating:seat")
if not entity then return itemstack end --catch for when the entity fails to spawn just in case
clicker:set_attach(entity, "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}, true)
local nodedef = minetest.registered_nodes[node.name]
if nodedef.paramtype2 == "facedir" then
entity:set_rotation({x = 0, y = p2r_facedir[node.param2 % 4], z = 0})
elseif string.find(node.name, "sofa") then
entity:set_rotation({x = 0, y = p2r_sofa[node.param2 % 8], z = 0})
else
entity:set_rotation({x = 0, y = p2r[node.param2 % 8], z = 0})
end
xcompat.player.player_attached[name] = true
xcompat.player.set_animation(clicker, "sit", 0)
seated_cache[name] = minetest.hash_node_position(pos)
if seated_cache[name] ~= sit_hash then
offset_cache[name] = core.hash_node_position(vector.subtract(pos, sit_pos))
end
return itemstack
end
function lrfurn.stand(clicker)
local name = clicker:get_player_name()
xcompat.player.player_attached[name] = false
if seated_cache[name] then
local attached_to = clicker:get_attach()
-- Check, clearobjects might have been called, etc
if attached_to then
-- Removing also detaches
attached_to:remove()
end
seated_cache[name] = nil
offset_cache[name] = nil
end
end
-- Called when a seat is destroyed
function lrfurn.on_seat_destruct(pos)
for name, seatpos in pairs(seated_cache) do
if seatpos == minetest.hash_node_position(pos) then
local player = minetest.get_player_by_name(name)
if player then
lrfurn.stand(player)
end
end
end
end
function lrfurn.on_seat_movenode(from_pos, to_pos)
local hashed_from_pos = core.hash_node_position(from_pos)
local hashed_to_pos = core.hash_node_position(to_pos)
for name, seatpos in pairs(seated_cache) do
if seatpos == hashed_from_pos then
local player = core.get_player_by_name(name)
if player then
local attached_to = player:get_attach()
-- Check, clearobjects might have been called, etc
if attached_to then
if offset_cache[name] then
-- multi-seat node aka sofas
attached_to:set_pos(vector.subtract(to_pos,
core.get_position_from_hash(offset_cache[name])))
else
attached_to:set_pos(to_pos)
end
seated_cache[name] = hashed_to_pos
end
end
end
end
end
--if the player gets killed in the seat, handle it
minetest.register_on_dieplayer(function(player)
if seated_cache[player:get_player_name()] then
lrfurn.stand(player)
end
end)
dofile(modpath.."/longsofas.lua")
dofile(modpath.."/sofas.lua")
dofile(modpath.."/armchairs.lua")

View File

@ -19,6 +19,7 @@ minetest.register_node(":lrfurn:longsofa", {
inventory_image = "lrfurn_longsofa_inv.png",
wield_scale = { x = 0.6, y = 0.6, z = 0.6 },
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_wood_defaults",
@ -46,7 +47,9 @@ minetest.register_node(":lrfurn:longsofa", {
on_dig = unifieddyes.on_dig,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 3)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
minetest.register_craft({

View File

@ -22,7 +22,9 @@ homedecor.register("deckchair", {
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
minetest.register_alias("homedecor:deckchair_foot", "homedecor:deckchair")
@ -42,7 +44,9 @@ homedecor.register("deckchair_striped_blue", {
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
homedecor.register("simple_bench", {
@ -62,7 +66,9 @@ homedecor.register("simple_bench", {
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
local bl1_sbox = {
@ -154,7 +160,9 @@ homedecor.register("kitchen_chair_wood", {
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
homedecor.register("kitchen_chair_padded", {
@ -162,7 +170,7 @@ homedecor.register("kitchen_chair_padded", {
mesh = "homedecor_kitchen_chair.obj",
tiles = {
homedecor.plain_wood,
homedecor.textures.wool_white,
homedecor.textures.wool.white,
},
inventory_image = "homedecor_chair_padded_inv.png",
paramtype2 = "colorwallmounted",
@ -180,7 +188,9 @@ homedecor.register("kitchen_chair_padded", {
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
local ofchairs_sbox = {
@ -219,7 +229,9 @@ for _, c in pairs(chairs) do
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 1)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
end

View File

@ -19,6 +19,7 @@ minetest.register_node(":lrfurn:sofa", {
inventory_image = "lrfurn_sofa_inv.png",
wield_scale = { x = 0.6, y = 0.6, z = 0.6 },
groups = {snappy=3, ud_param2_colorable = 1, dig_tree=2, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_wood_defaults",
@ -46,7 +47,9 @@ minetest.register_node(":lrfurn:sofa", {
on_dig = unifieddyes.on_dig,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
return lrfurn.sit(pos, node, clicker, itemstack, pointed_thing, 2)
end
end,
on_destruct = lrfurn.on_seat_destruct,
on_movenode = lrfurn.on_seat_movenode,
})
minetest.register_craft({

View File

@ -57,8 +57,9 @@ minetest.register_node(":lrfurn:coffeetable", {
},
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_wood_defaults",

View File

@ -15,8 +15,9 @@ minetest.register_node(":lrfurn:endtable", {
},
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_wood_defaults",

View File

@ -34,7 +34,7 @@ for _, t in ipairs(leg_materials) do
inventory_image = "homedecor_table_legs_"..name..".png",
wield_image = "homedecor_table_legs_"..name..".png",
walkable = false,
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
@ -74,12 +74,12 @@ for i, mat in ipairs(tabletop_materials) do
tiles = {
'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_edges.png',
'homedecor_blanktile.png',
'homedecor_blanktile.png',
'homedecor_blanktile.png',
'blank.png',
'blank.png',
'blank.png',
},
wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = { snappy = 3, dig_tree=2 },
_sound_def = {
key = s,
@ -111,13 +111,13 @@ for i, mat in ipairs(tabletop_materials) do
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',
'blank.png',
'blank.png',
'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_edges.png',
"homedecor_table_legs_"..leg_mat..".png",
},
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = { snappy = 3, dig_tree=2 },
_sound_def = {
key = s

View File

@ -71,9 +71,9 @@ local function set_player_skin(player, skin, save)
if save and not skinsdb_mod_path then
if skin == default_skin then
player:set_attribute("homedecor:player_skin", "")
player:get_meta():set_string("homedecor:player_skin", "")
else
player:set_attribute("homedecor:player_skin", skin)
player:get_meta():set_string("homedecor:player_skin", skin)
end
end
end
@ -94,6 +94,7 @@ local def = {
paramtype2 = "facedir",
groups = {snappy = 3, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
selection_box = wd_cbox,
collision_box = wd_cbox,

View File

@ -12,7 +12,7 @@ homedecor.register("window_quartered", {
"homedecor_window_quartered.png",
"homedecor_window_quartered.png"
},
use_texture_alpha = "blend",
use_texture_alpha = "clip",
groups = {snappy=3, dig_glass=2},
_sound_def = {
key = "node_sound_glass_defaults",
@ -161,7 +161,7 @@ homedecor.register("curtain_open", {
local mats = {
{ "brass", S("brass"), "homedecor_generic_metal_brass.png" },
{ "wrought_iron", S("wrought iron"), "homedecor_generic_metal_wrought_iron.png" },
{ "wood", S("wood"), homedecor.textures.default_wood }
{ "wood", S("wood"), homedecor.textures.wood.apple.planks }
}
for _, m in ipairs(mats) do

View File

@ -4,12 +4,14 @@ local tmp = {}
local sd_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
minetest.register_entity("itemframes:item",{
hp_max = 1,
visual="wielditem",
visual_size={x = 0.33, y = 0.33},
collisionbox = {0, 0, 0, 0, 0, 0},
physical = false,
textures = {"air"},
initial_properties = {
hp_max = 1,
visual = "wielditem",
visual_size = {x = 0.33, y = 0.33},
collisionbox = {0, 0, 0, 0, 0, 0},
physical = false,
textures = {"air"},
},
on_activate = function(self, staticdata)
if tmp.nodename ~= nil and tmp.texture ~= nil then
self.nodename = tmp.nodename
@ -136,6 +138,7 @@ minetest.register_node("itemframes:frame",{
paramtype2 = "facedir",
sunlight_propagates = true,
groups = {choppy = 2, dig_immediate = 2, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
legacy_wallmounted = true,
_sound_def = {
@ -217,6 +220,7 @@ minetest.register_node("itemframes:pedestal",{
tiles = {"itemframes_pedestal.png"},
paramtype = "light",
groups = {cracky = 3, dig_stone = 2, pickaxey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",

View File

@ -22,7 +22,6 @@ minetest.register_node("lavalamp:lavalamp", {
},
},
},
use_texture_alpha = "blend",
inventory_image = "lavalamp_lamp_inv.png",
paramtype = "light",
paramtype2 = "color",
@ -35,6 +34,7 @@ minetest.register_node("lavalamp:lavalamp", {
fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 },
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, ud_param2_colorable = 1, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_glass_defaults",
@ -66,6 +66,7 @@ minetest.register_node("lavalamp:lavalamp_off", {
fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 },
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1, axey=5},
is_ground_content = false,
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_glass_defaults",