Compare commits
4 Commits
2019-05-25
...
fb0ca9a15c
Author | SHA1 | Date | |
---|---|---|---|
fb0ca9a15c | |||
1520d27a73 | |||
5d4c64d3b2 | |||
4eb9ffb088 |
@ -5,3 +5,6 @@ dofile(modpath.."/alias.lua")
|
||||
dofile(modpath.."/node_stairs.lua")
|
||||
dofile(modpath.."/others.lua")
|
||||
dofile(modpath.."/recipes.lua")
|
||||
|
||||
minetest.log("action", "[building_blocks] loaded.")
|
||||
|
||||
|
@ -97,3 +97,5 @@ dofile(MODPATH.."/computers.lua")
|
||||
dofile(MODPATH.."/miscitems.lua")
|
||||
dofile(MODPATH.."/recipes.lua")
|
||||
dofile(MODPATH.."/tetris.lua")
|
||||
|
||||
minetest.log("action", "[computer] loaded.")
|
||||
|
@ -214,3 +214,5 @@ minetest.register_alias("fake_fire:smokeless_ice_fire", "fake_fire:ice_fire")
|
||||
minetest.register_alias("fake_fire:smokeless_chimney_top_stone", "fake_fire:chimney_top_stone")
|
||||
minetest.register_alias("fake_fire:smokeless_chimney_top_sandstone", "fake_fire:chimney_top_sandstone")
|
||||
minetest.register_alias("fake_fire:flint", "fake_fire:flint_and_steel")
|
||||
|
||||
minetest.log("action", "[fake_fire] loaded.")
|
||||
|
@ -89,3 +89,5 @@ if minetest.get_modpath("moreblocks") then
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.log("action", "[homedecor_3d_extra] loaded.")
|
||||
|
@ -3,5 +3,3 @@ default
|
||||
basic_materials
|
||||
unifieddyes
|
||||
building_blocks
|
||||
bucket?
|
||||
homedecor_fences?
|
||||
|
@ -347,10 +347,7 @@ homedecor.register("shower_head", {
|
||||
on_rotate = screwdriver.disallow,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-2.0, z=pos.z})
|
||||
if below and (
|
||||
below.name == "homedecor:shower_tray" or
|
||||
below.name == "homedecor:bathtub_clawfoot_brass_taps" or
|
||||
below.name == "homedecor:bathtub_clawfoot_chrome_taps" ) then
|
||||
if below and below.name == "homedecor:shower_tray" then
|
||||
local particledef = {
|
||||
outlet = { x = 0, y = -0.42, z = 0.1 },
|
||||
velocity_x = { min = -0.15, max = 0.15 },
|
||||
@ -367,27 +364,6 @@ homedecor.register("shower_head", {
|
||||
end
|
||||
})
|
||||
|
||||
local tub_sbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 1.5, 0.3125, 0.5 },
|
||||
}
|
||||
|
||||
local tub_cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.0625, -0.5, 1.4375, 0.5, -0.4375}, -- NodeBox1
|
||||
{-0.4375, -0.0625, 0.4375, 1.4375, 0.5, 0.5}, -- NodeBox2
|
||||
{-0.5, 0.1875, -0.4375, -0.4375, 0.5, 0.4375}, -- NodeBox3
|
||||
{1.4375, -0.0625, -0.4375, 1.5, 0.5, 0.4375}, -- NodeBox4
|
||||
{-0.3125, -0.3125, -0.4375, -0.125, -0.0625, 0.4375}, -- NodeBox5
|
||||
{1.375, -0.3125, -0.4375, 1.4375, -0.0625, 0.4375}, -- NodeBox6
|
||||
{-0.125, -0.3125, 0.375, 1.375, -0.0625, 0.4375}, -- NodeBox7
|
||||
{-0.125, -0.3125, -0.4375, 1.375, -0.0625, -0.375}, -- NodeBox8
|
||||
{-0.125, -0.5, -0.375, 1.375, -0.3125, 0.375}, -- NodeBox9
|
||||
{-0.4375, -0.0625, -0.4375, -0.3125, 0.1875, 0.4375}, -- NodeBox10
|
||||
}
|
||||
}
|
||||
|
||||
homedecor.register("bathtub_clawfoot_brass_taps", {
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_bathtub_clawfoot.obj",
|
||||
@ -401,8 +377,10 @@ homedecor.register("bathtub_clawfoot_brass_taps", {
|
||||
},
|
||||
description = S("Bathtub, clawfoot, with brass taps"),
|
||||
groups = {cracky=3},
|
||||
selection_box = tub_sbox,
|
||||
node_box = tub_cbox,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 1.5, 0.3125, 0.5 },
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
@ -419,8 +397,10 @@ homedecor.register("bathtub_clawfoot_chrome_taps", {
|
||||
},
|
||||
description = S("Bathtub, clawfoot, with chrome taps"),
|
||||
groups = {cracky=3},
|
||||
selection_box = tub_sbox,
|
||||
node_box = tub_cbox,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 1.5, 0.3125, 0.5 },
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
@ -551,8 +531,8 @@ minetest.register_craft({
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:bathroom_tiles_light 4",
|
||||
recipe = {
|
||||
{ "group:marble", "group:marble" },
|
||||
{ "group:marble", "group:marble" }
|
||||
{ "group:marble", "group:marble", "" },
|
||||
{ "group:marble", "group:marble", "dye:white" }
|
||||
},
|
||||
})
|
||||
|
||||
@ -613,67 +593,3 @@ minetest.register_craft({
|
||||
{ "group:stick", "basic_materials:plastic_sheet", "group:stick" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:toilet",
|
||||
recipe = {
|
||||
{ "","","bucket:bucket_water"},
|
||||
{ "group:marble","group:marble", "group:marble" },
|
||||
{ "", "bucket:bucket_empty", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:sink",
|
||||
recipe = {
|
||||
{ "group:marble","bucket:bucket_empty", "group:marble" },
|
||||
{ "", "group:marble", "" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:taps",
|
||||
recipe = {
|
||||
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:taps_brass",
|
||||
recipe = {
|
||||
{ "basic_materials:brass_ingot","bucket:bucket_water", "basic_materials:brass_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:shower_tray",
|
||||
recipe = {
|
||||
{ "group:marble","bucket:bucket_empty", "group:marble" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:shower_head",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "bucket:bucket_water"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:bathtub_clawfoot_brass_taps",
|
||||
recipe = {
|
||||
{ "homedecor:taps_brass", "", "" },
|
||||
{ "group:marble", "", "group:marble" },
|
||||
{ "default:steel_ingot", "group:marble", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:bathtub_clawfoot_chrome_taps",
|
||||
recipe = {
|
||||
{ "homedecor:taps", "", "" },
|
||||
{ "group:marble", "", "group:marble" },
|
||||
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -143,19 +143,7 @@ homedecor.register("radiator", {
|
||||
})
|
||||
|
||||
-- crafting
|
||||
minetest.register_craftitem(":homedecor:fan_blades", {
|
||||
description = S("Fan blades"),
|
||||
inventory_image = "homedecor_fan_blades.png"
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:fan_blades 2",
|
||||
recipe = {
|
||||
{ "", "basic_materials:plastic_sheet", "" },
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:air_conditioner",
|
||||
|
Before Width: | Height: | Size: 372 B |
@ -77,6 +77,6 @@ dofile(modpath.."/mt_game_beds_functions.lua")
|
||||
dofile(modpath.."/sit.lua")
|
||||
dofile(modpath.."/crafts.lua")
|
||||
|
||||
if minetest.settings:get_bool("log_mod") then
|
||||
if minetest.settings:get_bool("log_mods") then
|
||||
minetest.log("action", "[HomeDecor API] " .. S("Loaded!"))
|
||||
end
|
||||
|
@ -1,5 +1,4 @@
|
||||
homedecor_common
|
||||
homedecor_misc?
|
||||
default
|
||||
basic_materials
|
||||
dye
|
||||
|
@ -2,139 +2,293 @@
|
||||
|
||||
local S = homedecor.gettext
|
||||
|
||||
-- new doors using minetest_game doors API
|
||||
local function N_(x) return x end
|
||||
|
||||
local door_list = {
|
||||
{ name = "wood_plain",
|
||||
description = "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",
|
||||
}
|
||||
},
|
||||
local m_rules
|
||||
if minetest.global_exists("mesecon") then
|
||||
m_rules = mesecon and mesecon.rules and mesecon.rules.pplate
|
||||
end
|
||||
|
||||
{ name = "exterior_fancy",
|
||||
description = "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
|
||||
},
|
||||
-- doors
|
||||
|
||||
{ name = "wood_glass_oak",
|
||||
description = "Glass and Wood, Oak-colored",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_glass_defaults(),
|
||||
},
|
||||
},
|
||||
local function isSolid(pos, adjust)
|
||||
local adj = {x = adjust[1], y = adjust[2], z = adjust[3]}
|
||||
local node = minetest.get_node(vector.add(pos,adj))
|
||||
if node then
|
||||
local idef = minetest.registered_nodes[minetest.get_node(vector.add(pos,adj)).name]
|
||||
if idef then
|
||||
return idef.walkable
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
{ name = "wood_glass_mahogany",
|
||||
description = "Glass and Wood, Mahogany-colored",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_glass_defaults(),
|
||||
},
|
||||
},
|
||||
local function countSolids(pos,node,level)
|
||||
local solids = 0
|
||||
for x = -1, 1 do
|
||||
for z = -1, 1 do
|
||||
local y = (node.param2 == 5) and -level or level
|
||||
-- special cases when x == z == 0
|
||||
if x == 0 and z == 0 then
|
||||
if level == 1 then
|
||||
-- when looking past the trap door, cannot be solid in center
|
||||
if isSolid(pos,{x,y,z}) then
|
||||
return false
|
||||
end
|
||||
-- no else. it doesn't matter if x == y == z is solid, that's us.
|
||||
end
|
||||
elseif isSolid(pos,{x,y,z}) then
|
||||
solids = solids + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
return solids
|
||||
end
|
||||
|
||||
{ name = "wood_glass_white",
|
||||
description = "Glass and Wood, White",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_glass_defaults(),
|
||||
},
|
||||
},
|
||||
local function calculateClosed(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
-- the door is considered closed if it is closing off something.
|
||||
|
||||
{ name = "bedroom",
|
||||
description = "White Bedroom 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",
|
||||
}
|
||||
},
|
||||
local direction = node.param2 % 6
|
||||
local isTrap = direction == 0 or direction == 5
|
||||
if isTrap then
|
||||
-- the trap door is considered closed when all nodes on its sides are solid
|
||||
-- or all nodes in the 3x3 above/below it are solid except the center
|
||||
for level = 0, 1 do
|
||||
local solids = countSolids(pos,node,level)
|
||||
if solids == 8 then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
else
|
||||
-- the door is considered closed when the nodes on its sides are solid
|
||||
-- or the 3 nodes in its facing direction are solid nonsolid solid
|
||||
-- if the door has two levels (i.e. not a gate) then this must
|
||||
-- be true for the top node as well.
|
||||
|
||||
{ name = "wrought_iron",
|
||||
description = "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,
|
||||
},
|
||||
-- sorry I dunno the math to figure whether to x or z
|
||||
if direction == 1 or direction == 2 then
|
||||
if isSolid(pos,{0,0,-1}) and isSolid(pos,{0,0,1}) then
|
||||
if string.find(node.name,'_bottom_') then
|
||||
return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z})
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
local x = (direction == 1) and 1 or -1
|
||||
if isSolid(pos,{x,0,-1}) and not isSolid(pos,{x,0,0}) and isSolid(pos,{x,0,1}) then
|
||||
if string.find(node.name,'_bottom_') then
|
||||
return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z})
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
else
|
||||
-- direction == 3 or 4
|
||||
if isSolid(pos,{-1,0,0}) and isSolid(pos,{1,0,0}) then
|
||||
if string.find(node.name,'_bottom_') then
|
||||
return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z})
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
local z = (direction == 3) and 1 or -1
|
||||
if isSolid(pos,{-1,0,z}) and not isSolid(pos,{0,0,z}) and isSolid(pos,{1,0,z}) then
|
||||
if string.find(node.name,'_bottom_') then
|
||||
return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z})
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
{ name = "woodglass",
|
||||
description = "Wooden door with glass insert",
|
||||
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
|
||||
},
|
||||
-- isClosed flag, is 0 or 1 0 = open, 1 = closed
|
||||
local function getClosed(pos)
|
||||
local isClosed = minetest.get_meta(pos):get_string('closed')
|
||||
if isClosed=='' then
|
||||
return calculateClosed(pos)
|
||||
else
|
||||
isClosed = tonumber(isClosed)
|
||||
-- may be closed or open (1 or 0)
|
||||
return isClosed == 1
|
||||
end
|
||||
end
|
||||
|
||||
{ name = "woodglass2",
|
||||
description = "Wooden door with glass insert, type 2",
|
||||
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
|
||||
},
|
||||
local function addDoorNode(pos,def,isClosed)
|
||||
minetest.set_node(pos, def)
|
||||
minetest.get_meta(pos):set_int('closed', isClosed and 1 or 0)
|
||||
end
|
||||
|
||||
local door_model_list = {
|
||||
{ name = "closet_mahogany",
|
||||
description = "Mahogany Closet Door",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
}
|
||||
description = N_("Mahogany Closet Door (@1 opening)"),
|
||||
mesh = "homedecor_door_closet.obj"
|
||||
},
|
||||
|
||||
{ name = "closet_oak",
|
||||
description = "Oak Closet Door",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
description = N_("Oak Closet Door (@1 opening)"),
|
||||
mesh = "homedecor_door_closet.obj"
|
||||
},
|
||||
|
||||
{ name = "exterior_fancy",
|
||||
description = N_("Fancy Wood/Glass Door (@1 opening)"),
|
||||
mesh = "homedecor_door_fancy.obj",
|
||||
tiles = {
|
||||
"homedecor_door_exterior_fancy.png",
|
||||
"homedecor_door_exterior_fancy_insert.png"
|
||||
},
|
||||
usealpha = true
|
||||
},
|
||||
|
||||
{ name = "wood_glass_oak",
|
||||
description = N_("Glass and Wood, Oak-colored (@1 opening)"),
|
||||
mesh = "homedecor_door_wood_glass.obj",
|
||||
tiles = {
|
||||
"homedecor_door_wood_glass_oak.png",
|
||||
"homedecor_door_wood_glass_insert.png",
|
||||
}
|
||||
},
|
||||
|
||||
{ name = "wood_glass_mahogany",
|
||||
description = N_("Glass and Wood, Mahogany-colored (@1 opening)"),
|
||||
mesh = "homedecor_door_wood_glass.obj",
|
||||
tiles = {
|
||||
"homedecor_door_wood_glass_mahogany.png",
|
||||
"homedecor_door_wood_glass_insert.png",
|
||||
}
|
||||
},
|
||||
|
||||
{ name = "wood_glass_white",
|
||||
description = N_("Glass and Wood, White (@1 opening)"),
|
||||
mesh = "homedecor_door_wood_glass.obj",
|
||||
tiles = {
|
||||
"homedecor_door_wood_glass_white.png",
|
||||
"homedecor_door_wood_glass_insert.png",
|
||||
}
|
||||
},
|
||||
|
||||
{ name = "wood_plain",
|
||||
description = N_("Plain Wooden Door (@1 opening)"),
|
||||
mesh = "homedecor_door_plain.obj"
|
||||
},
|
||||
|
||||
{ name = "bedroom",
|
||||
description = N_("White Bedroom Door (@1 opening)"),
|
||||
mesh = "homedecor_door_plain.obj"
|
||||
},
|
||||
|
||||
{ name = "wrought_iron",
|
||||
description = N_("Wrought Iron Gate/Door (@1 opening)"),
|
||||
mesh = "homedecor_door_wrought_iron.obj"
|
||||
},
|
||||
|
||||
{ name = "woodglass",
|
||||
description = N_("Wooden door with glass insert (@1 opening)"),
|
||||
mesh = "homedecor_door_woodglass_typea.obj",
|
||||
tiles = {
|
||||
"homedecor_door_woodglass_typea.png",
|
||||
"homedecor_door_woodglass_typea_insert.png",
|
||||
},
|
||||
usealpha = true
|
||||
},
|
||||
|
||||
{ name = "woodglass2",
|
||||
description = N_("Wooden door with glass insert, type 2 (@1 opening)"),
|
||||
mesh = "homedecor_door_plain.obj",
|
||||
usealpha = true
|
||||
},
|
||||
}
|
||||
|
||||
local old_doors = {}
|
||||
local def_selbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, 0.375, 0.5, 1.5, 0.5 }
|
||||
}
|
||||
|
||||
for _, door in ipairs(door_list) do
|
||||
doors.register(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
|
||||
})
|
||||
if door.alpha then
|
||||
minetest.override_item("doors:"..door.name.."_a", {
|
||||
use_texture_apha = true
|
||||
local sides = { N_("left"), N_("right") }
|
||||
|
||||
for i, side in ipairs(sides) do
|
||||
|
||||
for _, door_model in ipairs(door_model_list) do
|
||||
|
||||
local doorname = door_model.name
|
||||
|
||||
local selbox = door_model.selectbox or def_selbox
|
||||
local colbox = door_model.collisionbox or door_model.selectbox or def_selbox
|
||||
local mesh = door_model.mesh
|
||||
local groups = {snappy = 3}
|
||||
|
||||
if side == "right" then
|
||||
mesh = string.gsub(door_model.mesh, ".obj", "_right.obj")
|
||||
groups = {snappy = 3, not_in_creative_inventory = 1}
|
||||
end
|
||||
|
||||
minetest.register_node(":homedecor:door_"..doorname.."_"..side, {
|
||||
description = S(door_model.description, S(side)),
|
||||
drawtype = "mesh",
|
||||
mesh = mesh,
|
||||
tiles = door_model.tiles or { "homedecor_door_"..doorname..".png" },
|
||||
inventory_image = "homedecor_door_"..doorname.."_inv.png",
|
||||
wield_image = "homedecor_door_"..doorname.."_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = groups,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
use_texture_alpha = door_model.usealpha,
|
||||
selection_box = selbox,
|
||||
collision_box = colbox,
|
||||
on_rotate = screwdriver.rotate_simple,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
return homedecor.stack_wing(itemstack, placer, pointed_thing,
|
||||
"homedecor:door_"..doorname.."_left", "air",
|
||||
"homedecor:door_"..doorname.."_right", "air")
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
minetest.get_meta(pos):set_int("closed", 1)
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
homedecor.flip_door(pos, node, clicker, doorname, side)
|
||||
return itemstack
|
||||
end,
|
||||
-- both left and right doors may be used for open or closed doors
|
||||
-- so they have to have both action_on and action_off and just
|
||||
-- check when that action is invoked if to continue
|
||||
|
||||
on_punch = function(pos, node, puncher)
|
||||
minetest.get_meta(pos):set_string('closed',nil)
|
||||
end,
|
||||
drop = "homedecor:door_"..doorname.."_left",
|
||||
mesecons = {
|
||||
effector = {
|
||||
rules = m_rules,
|
||||
action_on = function(pos,node)
|
||||
local isClosed = getClosed(pos)
|
||||
if isClosed then
|
||||
homedecor.flip_door(pos,node,nil,doorname,side,isClosed)
|
||||
end
|
||||
end,
|
||||
action_off = function(pos,node)
|
||||
local isClosed = getClosed(pos)
|
||||
if not isClosed then
|
||||
homedecor.flip_door(pos,node,nil,doorname,side,isClosed)
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
})
|
||||
minetest.override_item("doors:"..door.name.."_b", {
|
||||
use_texture_apha = true
|
||||
})
|
||||
end
|
||||
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_left"
|
||||
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_right"
|
||||
|
||||
minetest.register_alias("homedecor:door_"..doorname.."_top_"..side, "air")
|
||||
minetest.register_alias("homedecor:door_"..doorname.."_bottom_"..side, "homedecor:door_"..doorname.."_"..side)
|
||||
|
||||
end
|
||||
|
||||
minetest.register_alias("homedecor:door_wood_glass_top_"..side, "air")
|
||||
minetest.register_alias("homedecor:door_wood_glass_bottom_"..side, "homedecor:door_wood_glass_oak_"..side)
|
||||
|
||||
end
|
||||
|
||||
-- Gates
|
||||
@ -297,11 +451,56 @@ minetest.register_alias("homedecor:fence_picket_gate_closed", "homedecor:g
|
||||
minetest.register_alias("homedecor:fence_picket_gate_white_open", "homedecor:gate_picket_white_open")
|
||||
minetest.register_alias("homedecor:fence_picket_gate_white_closed", "homedecor:gate_picket_white_closed")
|
||||
|
||||
function homedecor.flip_gate(pos, node, player, gate, oc)
|
||||
-- to open a door, you switch left for right and subtract from param2, or vice versa right for left
|
||||
-- that is to say open "right" doors become left door nodes, and open left doors right door nodes.
|
||||
-- also adjusting param2 so the node is at 90 degrees.
|
||||
|
||||
function homedecor.flip_door(pos, node, player, name, side, isClosed)
|
||||
if isClosed == nil then
|
||||
isClosed = getClosed(pos)
|
||||
end
|
||||
-- this is where we swap the isClosed status!
|
||||
-- i.e. if isClosed, we're adding an open door
|
||||
-- and if not isClosed, a closed door
|
||||
isClosed = not isClosed
|
||||
|
||||
local rside
|
||||
local nfdir
|
||||
local ofdir = node.param2 or 0
|
||||
if side == "left" then
|
||||
rside = "right"
|
||||
nfdir=ofdir - 1
|
||||
if nfdir < 0 then nfdir = 3 end
|
||||
else
|
||||
rside = "left"
|
||||
nfdir=ofdir + 1
|
||||
if nfdir > 3 then nfdir = 0 end
|
||||
end
|
||||
local sound = isClosed and 'close' or 'open'
|
||||
minetest.sound_play("homedecor_door_"..sound, {
|
||||
pos=pos,
|
||||
max_hear_distance = 5,
|
||||
gain = 2,
|
||||
})
|
||||
-- XXX: does the top half have to remember open/closed too?
|
||||
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, { name = "homedecor:door_"..name.."_top_"..rside, param2=nfdir})
|
||||
|
||||
addDoorNode(pos,{ name = "homedecor:door_"..name.."_bottom_"..rside, param2=nfdir },isClosed)
|
||||
end
|
||||
|
||||
function homedecor.flip_gate(pos, node, player, gate, oc)
|
||||
local isClosed = getClosed(pos);
|
||||
minetest.sound_play("homedecor_gate_open_close", {
|
||||
pos=pos,
|
||||
max_hear_distance = 5,
|
||||
gain = 2,
|
||||
})
|
||||
|
||||
local fdir = node.param2 or 0
|
||||
|
||||
-- since right facing gates use "open" nodes for closed, we need an
|
||||
-- isClosed flag to tell if it's "really" closed.
|
||||
|
||||
local gateresult
|
||||
if oc == "closed" then
|
||||
gateresult = "homedecor:gate_"..gate.."_open"
|
||||
@ -309,14 +508,12 @@ function homedecor.flip_gate(pos, node, player, gate, oc)
|
||||
gateresult = "homedecor:gate_"..gate.."_closed"
|
||||
end
|
||||
|
||||
minetest.set_node(pos, {name = gateresult, param2 = fdir})
|
||||
minetest.sound_play("homedecor_gate_open_close", {
|
||||
pos=pos,
|
||||
max_hear_distance = 5,
|
||||
gain = 2,
|
||||
})
|
||||
local def = {name=gateresult, param2=fdir}
|
||||
|
||||
addDoorNode(pos, def, isClosed)
|
||||
|
||||
-- the following opens and closes gates below and above in sync with this one
|
||||
-- (without three gate open/close sounds)
|
||||
|
||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||
local below = {x=pos.x, y=pos.y-1, z=pos.z}
|
||||
@ -324,15 +521,69 @@ function homedecor.flip_gate(pos, node, player, gate, oc)
|
||||
local nodebelow = minetest.get_node(below)
|
||||
|
||||
if string.find(nodeabove.name, "homedecor:gate_"..gate) then
|
||||
minetest.set_node(above, {name = gateresult, param2 = fdir})
|
||||
addDoorNode(above, def, isClosed)
|
||||
end
|
||||
|
||||
if string.find(nodebelow.name, "homedecor:gate_"..gate) then
|
||||
minetest.set_node(below, {name = gateresult, param2 = fdir})
|
||||
addDoorNode(below, def, isClosed)
|
||||
end
|
||||
end
|
||||
|
||||
-- Japanese-style wood/paper door
|
||||
-- Japanese-style wood/paper wall pieces and door
|
||||
|
||||
local jp_cbox = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, 0, 0.5, 0.5, 0.0625},
|
||||
}
|
||||
|
||||
minetest.register_node(":homedecor:japanese_wall_top", {
|
||||
description = S("Japanese wall (top)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_wall_japanese_top.obj",
|
||||
tiles = {
|
||||
homedecor.lux_wood,
|
||||
"homedecor_japanese_paper.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3},
|
||||
selection_box = jp_cbox,
|
||||
collision_box = jp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:japanese_wall_middle", {
|
||||
description = S("Japanese wall"),
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_wall_japanese_middle.obj",
|
||||
tiles = {
|
||||
homedecor.lux_wood,
|
||||
"homedecor_japanese_paper.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3},
|
||||
selection_box = jp_cbox,
|
||||
collision_box = jp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:japanese_wall_bottom", {
|
||||
description = S("Japanese wall (bottom)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_wall_japanese_bottom.obj",
|
||||
tiles = {
|
||||
homedecor.lux_wood,
|
||||
"homedecor_japanese_paper.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3},
|
||||
selection_box = jp_cbox,
|
||||
collision_box = jp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
homedecor.register("door_japanese_closed", {
|
||||
description = S("Japanese-style door"),
|
||||
inventory_image = "homedecor_door_japanese_inv.png",
|
||||
@ -385,44 +636,6 @@ homedecor.register("door_japanese_open", {
|
||||
|
||||
-- crafting
|
||||
|
||||
-- half-doors
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:gate_half_door_closed 4",
|
||||
recipe = {
|
||||
"homedecor:door_wood_plain_left",
|
||||
"homedecor:door_wood_plain_left"
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:gate_half_door_closed 4",
|
||||
recipe = {
|
||||
"homedecor:door_wood_plain_right",
|
||||
"homedecor:door_wood_plain_right"
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:gate_half_door_white_closed 4",
|
||||
recipe = {
|
||||
"homedecor:door_bedroom_left",
|
||||
"homedecor:door_bedroom_left"
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:gate_half_door_white_closed 4",
|
||||
recipe = {
|
||||
"homedecor:door_bedroom_right",
|
||||
"homedecor:door_bedroom_right"
|
||||
},
|
||||
})
|
||||
|
||||
-- Gates
|
||||
|
||||
minetest.register_craft( {
|
||||
@ -669,25 +882,3 @@ minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japane
|
||||
|
||||
minetest.register_alias("homedecor:door_glass_right", "doors:door_glass_b")
|
||||
minetest.register_alias("homedecor:door_glass_left", "doors:door_glass_a")
|
||||
|
||||
-- flip old homedecor doors around, since they use minetest_game doors API now
|
||||
|
||||
minetest.register_lbm({
|
||||
name = ":homedecor:convert_doors",
|
||||
label = "Convert Homedecor doors to mtg doors API",
|
||||
nodenames = old_doors,
|
||||
run_at_every_load = false,
|
||||
action = function(pos, node)
|
||||
-- old doors param2: N=0, E=1, S=2, W=3
|
||||
local newparam2 = (node.param2 + 2) % 4
|
||||
local e = string.find(node.name, "_", -7)
|
||||
local dir = string.sub(node.name, e+1)
|
||||
local newname = "doors:"..string.sub(node.name, 16, e-1)
|
||||
if dir == "right" then
|
||||
minetest.set_node(pos, {name = newname.."_a", param2 = newparam2 })
|
||||
else
|
||||
minetest.set_node(pos, {name = newname.."_b", param2 = newparam2 })
|
||||
end
|
||||
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"})
|
||||
end
|
||||
})
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 563 B |
After Width: | Height: | Size: 305 B |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 229 B |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 12 KiB |
@ -425,12 +425,13 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:dishwasher",
|
||||
recipe = {
|
||||
{ "basic_materials:ic", "building_blocks:slab_grate_1", "default:steel_ingot", },
|
||||
{ "default:steel_ingot", "homedecor:shower_head", "basic_materials:motor" },
|
||||
{ "default:steel_ingot", "basic_materials:heating_element", "bucket:bucket_water" }
|
||||
{ "basic_materials:ic", "homedecor:fence_chainlink", "default:steel_ingot", },
|
||||
{ "default:steel_ingot", "homedecor:shower_head", "basic_materials:motor" },
|
||||
{ "default:steel_ingot", "basic_materials:heating_element", "bucket:bucket_water" }
|
||||
},
|
||||
})
|
||||
|
||||
@ -516,15 +517,6 @@ minetest.register_craft( {
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:kitchen_faucet",
|
||||
recipe = {
|
||||
{ "default:steel_ingot","" },
|
||||
{ "", "default:steel_ingot" },
|
||||
{ "", "homedecor:taps" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:cutlery_set",
|
||||
recipe = {
|
||||
|
@ -491,6 +491,7 @@ local function reg_lamp(suffix, nxt, light, brightness)
|
||||
selection_box = slamp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_rotate = screwdriver.rotate_simple,
|
||||
drop = "homedecor:standing_lamp_off",
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
node.name = "homedecor:standing_lamp_"..repl[suffix]
|
||||
minetest.set_node(pos, node)
|
||||
@ -538,6 +539,7 @@ homedecor.register("desk_lamp", {
|
||||
node_box = dlamp_cbox,
|
||||
walkable = false,
|
||||
groups = {snappy=3, ud_param2_colorable = 1},
|
||||
drop = "homedecor:desk_lamp",
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
@ -836,64 +838,6 @@ minetest.register_node(":homedecor:chandelier_brass", {
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:rope_light_on_floor", {
|
||||
description = "Rope lighting (on floor)",
|
||||
inventory_image = "homedecor_rope_light_on_floor.png",
|
||||
paramtype = "light",
|
||||
light_source = default.LIGHT_MAX-3,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
tiles = { "homedecor_table_standing_lamp_lightbulb.png" },
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "connected",
|
||||
fixed = {},
|
||||
connect_front = { -1/16, -8/16, -8/16, 1/16, -6/16, 1/16 },
|
||||
connect_left = { -8/16, -8/16, -1/16, 1/16, -6/16, 1/16 },
|
||||
connect_back = { -1/16, -8/16, -1/16, 1/16, -6/16, 8/16 },
|
||||
connect_right = { -1/16, -8/16, -1/16, 8/16, -6/16, 1/16 },
|
||||
disconnected_sides = {
|
||||
{ -6/16, -8/16, -6/16, -4/16, -6/16, 6/16 },
|
||||
{ 4/16, -8/16, -6/16, 6/16, -6/16, 6/16 },
|
||||
{ -6/16, -8/16, -6/16, 6/16, -6/16, -4/16 },
|
||||
{ -6/16, -8/16, 4/16, 6/16, -6/16, 6/16 }
|
||||
},
|
||||
},
|
||||
connects_to = { "homedecor:rope_light_on_floor" },
|
||||
mesh = "homedecor_chandelier.obj",
|
||||
groups = {cracky=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:rope_light_on_ceiling", {
|
||||
description = "Rope lighting (on ceiling)",
|
||||
inventory_image = "homedecor_rope_light_on_ceiling.png",
|
||||
paramtype = "light",
|
||||
light_source = default.LIGHT_MAX-3,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
tiles = { "homedecor_table_standing_lamp_lightbulb.png" },
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "connected",
|
||||
fixed = {},
|
||||
connect_front = { -1/16, 8/16, -8/16, 1/16, 6/16, 1/16 },
|
||||
connect_left = { -8/16, 8/16, -1/16, 1/16, 6/16, 1/16 },
|
||||
connect_back = { -1/16, 8/16, -1/16, 1/16, 6/16, 8/16 },
|
||||
connect_right = { -1/16, 8/16, -1/16, 8/16, 6/16, 1/16 },
|
||||
disconnected_sides = {
|
||||
{ -6/16, 8/16, -6/16, -4/16, 6/16, 6/16 },
|
||||
{ 4/16, 8/16, -6/16, 6/16, 6/16, 6/16 },
|
||||
{ -6/16, 8/16, -6/16, 6/16, 6/16, -4/16 },
|
||||
{ -6/16, 8/16, 4/16, 6/16, 6/16, 6/16 }
|
||||
},
|
||||
},
|
||||
connects_to = { "homedecor:rope_light_on_ceiling" },
|
||||
mesh = "homedecor_chandelier.obj",
|
||||
groups = {cracky=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
-- crafting
|
||||
|
||||
minetest.register_craft({
|
||||
@ -1246,79 +1190,6 @@ minetest.register_craft({
|
||||
},
|
||||
})
|
||||
|
||||
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"
|
||||
}
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")
|
||||
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.4 KiB |
@ -999,58 +999,3 @@ unifieddyes.register_color_craft({
|
||||
"MAIN_DYE",
|
||||
}
|
||||
})
|
||||
|
||||
-- Japanese-style wood/paper wall pieces and door
|
||||
|
||||
local jp_cbox = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, 0, 0.5, 0.5, 0.0625},
|
||||
}
|
||||
|
||||
minetest.register_node(":homedecor:japanese_wall_top", {
|
||||
description = S("Japanese wall (top)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_wall_japanese_top.obj",
|
||||
tiles = {
|
||||
homedecor.lux_wood,
|
||||
"homedecor_japanese_paper.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3},
|
||||
selection_box = jp_cbox,
|
||||
collision_box = jp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:japanese_wall_middle", {
|
||||
description = S("Japanese wall"),
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_wall_japanese_middle.obj",
|
||||
tiles = {
|
||||
homedecor.lux_wood,
|
||||
"homedecor_japanese_paper.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3},
|
||||
selection_box = jp_cbox,
|
||||
collision_box = jp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:japanese_wall_bottom", {
|
||||
description = S("Japanese wall (bottom)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_wall_japanese_bottom.obj",
|
||||
tiles = {
|
||||
homedecor.lux_wood,
|
||||
"homedecor_japanese_paper.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3},
|
||||
selection_box = jp_cbox,
|
||||
collision_box = jp_cbox,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
@ -1,5 +1,4 @@
|
||||
homedecor_common
|
||||
default
|
||||
homedecor_kitchen?
|
||||
homedecor_misc?
|
||||
skinsdb?
|
||||
|
@ -1,4 +1,4 @@
|
||||
modpath = minetest.get_modpath("homedecor_wardrobe")
|
||||
modpath = minetest.get_modpath("homedecor")
|
||||
|
||||
screwdriver = screwdriver or {}
|
||||
|
||||
|
@ -126,3 +126,5 @@ function inbox.get_inbox_insert_formspec(pos)
|
||||
"listring[]"
|
||||
return formspec
|
||||
end
|
||||
|
||||
minetest.log("action", "[inbox] loaded.")
|
||||
|
@ -300,3 +300,5 @@ if minetest.get_modpath("mesecons_mvps") then
|
||||
mesecon.register_mvps_stopper("itemframes:frame")
|
||||
mesecon.register_mvps_stopper("itemframes:pedestal")
|
||||
end
|
||||
|
||||
minetest.log("action", "[itemframes] loaded.")
|
||||
|
@ -73,3 +73,5 @@ dofile(minetest.get_modpath("lrfurn").."/sofas.lua")
|
||||
dofile(minetest.get_modpath("lrfurn").."/armchairs.lua")
|
||||
dofile(minetest.get_modpath("lrfurn").."/coffeetable.lua")
|
||||
dofile(minetest.get_modpath("lrfurn").."/endtable.lua")
|
||||
|
||||
minetest.log("action", "[lrfurn] loaded.")
|
||||
|
@ -186,3 +186,5 @@ minetest.register_craft({
|
||||
{'group:stick', 'default:coal_lump', 'group:stick'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.log("action", "[plasmascreen] loaded.")
|
||||
|