2013-04-20 04:48:42 +02:00
|
|
|
-- Node definitions for Homedecor doors
|
|
|
|
|
2022-05-03 21:21:14 +02:00
|
|
|
if not minetest.get_modpath("doors") or not minetest.get_modpath("default") then
|
|
|
|
minetest.log(
|
|
|
|
"action",
|
|
|
|
"[homedecor_doors_and_gates]: minetest game not detected, disabling as this mod is minetest game only at this time"
|
|
|
|
)
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
2020-08-04 21:41:13 +02:00
|
|
|
local S = minetest.get_translator("homedecor_doors_and_gates")
|
2019-05-27 11:09:42 +02:00
|
|
|
local mesecons_mp = minetest.get_modpath("mesecons")
|
2020-08-04 21:41:13 +02:00
|
|
|
homedecor_doors_and_gates = {}
|
2013-04-20 04:48:42 +02:00
|
|
|
|
2019-05-25 06:01:04 +02:00
|
|
|
local door_list = {
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "wood_plain",
|
|
|
|
description = S("Plain Wooden Door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
sound_open = "homedecor_door_open",
|
|
|
|
sound_close = "homedecor_door_close",
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "exterior_fancy",
|
|
|
|
description = S("Fancy Wood/Glass Door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
sound_open = "homedecor_door_open",
|
|
|
|
sound_close = "homedecor_door_close",
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_fancy"
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "french_oak",
|
|
|
|
description = S("French door, Oak-colored"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_glass_defaults(),
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_french"
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "french_mahogany",
|
|
|
|
description = S("French door, Mahogany-colored"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_glass_defaults(),
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_french"
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "french_white",
|
|
|
|
description = S("French door, White"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_glass_defaults(),
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_french"
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "basic_panel",
|
|
|
|
description = S("Basic white panel Door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
sound_open = "homedecor_door_open",
|
|
|
|
sound_close = "homedecor_door_close",
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "wrought_iron",
|
|
|
|
description = S("Wrought Iron Gate/Door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_metal_defaults(),
|
|
|
|
sound_open = "doors_steel_door_open",
|
|
|
|
sound_close = "doors_steel_door_close",
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_wrought_iron"
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "carolina",
|
|
|
|
description = S("Wooden Carolina door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
sound_open = "homedecor_door_open",
|
|
|
|
sound_close = "homedecor_door_close",
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "woodglass",
|
|
|
|
description = S("Wooden door with glass insert, type 3"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
sound_open = "homedecor_door_open",
|
|
|
|
sound_close = "homedecor_door_close",
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_wood_glass_3"
|
2015-04-25 05:50:51 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "closet_mahogany",
|
|
|
|
description = S("Mahogany Closet Door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = "homedecor_door_closet"
|
2019-05-25 06:01:04 +02:00
|
|
|
},
|
2020-08-04 21:41:13 +02:00
|
|
|
{
|
|
|
|
name = "closet_oak",
|
|
|
|
description = S("Oak Closet Door"),
|
2022-02-11 21:44:45 +01:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
mesh = "homedecor_door_closet"
|
2019-05-25 06:01:04 +02:00
|
|
|
},
|
|
|
|
}
|
2013-04-29 13:07:05 +02:00
|
|
|
|
2019-05-25 06:01:04 +02:00
|
|
|
local old_doors = {}
|
2019-05-28 13:57:23 +02:00
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
local door_types = {"_a", "_b", "_c", "_d"}
|
2022-10-21 03:59:11 +02:00
|
|
|
local door_conversion = {["_c"]="_a", ["_d"]="_b"}
|
2019-05-27 08:35:59 +02:00
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
local function generate_door(def)
|
|
|
|
local default_settings = {
|
|
|
|
tiles = {{ name = "homedecor_door_" .. def.name .. ".png", backface_culling = true }},
|
|
|
|
inventory_image = "homedecor_door_" .. def.name .. "_inv.png",
|
|
|
|
use_texture_alpha = "blend",
|
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
|
|
|
mesecons = {
|
|
|
|
effector = {
|
|
|
|
action_on = function(pos, node)
|
|
|
|
local door = doors.get(pos)
|
|
|
|
if door then door:open() end
|
|
|
|
end,
|
|
|
|
action_off = function(pos, node)
|
|
|
|
local door = doors.get(pos)
|
|
|
|
if door then door:close() end
|
|
|
|
end,
|
2022-03-29 07:44:05 +02:00
|
|
|
rules = minetest.global_exists("mesecon") and mesecon.rules.pplate or nil
|
2022-02-11 21:44:45 +01:00
|
|
|
}
|
|
|
|
},
|
|
|
|
}
|
2019-05-27 08:35:59 +02:00
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
for k, v in pairs(default_settings) do
|
|
|
|
if not def[k] then def[k] = v end
|
2019-05-27 08:35:59 +02:00
|
|
|
end
|
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
def.name = nil
|
|
|
|
|
|
|
|
return def
|
|
|
|
end
|
2019-05-27 08:35:59 +02:00
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
for _, door in ipairs(door_list) do
|
2022-10-21 03:59:11 +02:00
|
|
|
local name, mesh = door.name, door.mesh
|
2022-02-11 21:44:45 +01:00
|
|
|
doors.register("homedecor_" .. name, generate_door(door))
|
|
|
|
|
|
|
|
--hack to get around doors not allowing custom meshes
|
2022-10-21 03:59:11 +02:00
|
|
|
if mesh then
|
2022-02-11 21:44:45 +01:00
|
|
|
for _, v in pairs(door_types) do
|
2022-10-21 03:59:11 +02:00
|
|
|
if door_conversion[v] then v=door_conversion[v] end
|
2022-02-11 21:44:45 +01:00
|
|
|
minetest.override_item("doors:homedecor_" .. name .. v, {
|
2022-10-21 03:59:11 +02:00
|
|
|
mesh = mesh .. v .. ".obj"
|
2022-02-11 21:44:45 +01:00
|
|
|
})
|
|
|
|
end
|
2019-05-27 08:35:59 +02:00
|
|
|
end
|
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
--compatibility
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_"..name.."_left"
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_"..name.."_right"
|
give most doors more meaningful, distinct node names
to avoid confusion
doors:wood_glass_{oak,white,mahogany}_{a,b} --> doors:homedecor_french_{oak,white,mahogany}_{a,b}
doors:woodglass2_{a,b} --> doors:homedecor_carolina_{a,b}
doors:bedroom_{a,b} --> doors:homedecor_basic_panel_{a,b}
All others:
doors:$foo_{a,b} --> doors:homedecor_$foo_{a,b}
2019-06-03 09:42:06 +02:00
|
|
|
|
2022-02-11 21:44:45 +01:00
|
|
|
minetest.register_alias("doors:"..name.."_a", "doors:homedecor_"..name.."_a")
|
|
|
|
minetest.register_alias("doors:"..name.."_b", "doors:homedecor_"..name.."_b")
|
2013-04-20 04:48:42 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Gates
|
|
|
|
|
2017-01-24 21:43:20 +01:00
|
|
|
local gate_list = {
|
2017-02-23 00:51:07 +01:00
|
|
|
{ "picket", S("Unpainted Picket Fence Gate") },
|
|
|
|
{ "picket_white", S("White Picket Fence Gate") },
|
|
|
|
{ "barbed_wire", S("Barbed Wire Fence Gate") },
|
|
|
|
{ "chainlink", S("Chainlink Fence Gate") },
|
|
|
|
{ "half_door", S("\"Half\" Door") },
|
|
|
|
{ "half_door_white", S("\"Half\" Door (white)") }
|
2017-01-24 21:43:20 +01:00
|
|
|
}
|
2013-04-20 04:48:42 +02:00
|
|
|
|
|
|
|
local gate_models_closed = {
|
|
|
|
{{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }},
|
|
|
|
|
|
|
|
{{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }},
|
|
|
|
|
|
|
|
{{ -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post
|
2016-12-15 22:23:31 +01:00
|
|
|
{ 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
2013-04-20 04:48:42 +02:00
|
|
|
{ -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece
|
|
|
|
{ -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece
|
|
|
|
{ -6/16, -8/16, 7/16, 6/16, 8/16, 7/16 }}, -- the wire
|
|
|
|
|
|
|
|
{{ -8/16, -8/16, 6/16, -7/16, 8/16, 8/16 }, -- left post
|
2016-12-15 22:23:31 +01:00
|
|
|
{ 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
2013-04-20 04:48:42 +02:00
|
|
|
{ -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece
|
|
|
|
{ -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece
|
|
|
|
{ -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }, -- the chainlink itself
|
2017-02-23 00:51:07 +01:00
|
|
|
{ -8/16, -3/16, 6/16, -6/16, 3/16, 8/16 }}, -- the lump representing the lock
|
|
|
|
|
|
|
|
{{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
|
|
|
|
|
|
|
|
{{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
|
|
|
|
|
2013-04-20 04:48:42 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
local gate_models_open = {
|
|
|
|
{{ 0.498, -0.5, -0.5, 0.498, 0.5, 0.5 }},
|
|
|
|
|
|
|
|
{{ 0.498, -0.5, -0.5, 0.498, 0.5, 0.5 }},
|
2015-01-20 23:59:50 +01:00
|
|
|
|
2013-04-20 04:48:42 +02:00
|
|
|
{{ 6/16, -8/16, -8/16, 8/16, 8/16, -6/16 }, -- left post
|
2016-12-15 22:23:31 +01:00
|
|
|
{ 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
2013-04-20 04:48:42 +02:00
|
|
|
{ 13/32, 7/16, -8/16, 15/32, 8/16, 8/16 }, -- top piece
|
|
|
|
{ 13/32, -8/16, -8/16, 15/32, -7/16, 8/16 }, -- bottom piece
|
|
|
|
{ 7/16, -8/16, -6/16, 7/16, 8/16, 6/16 }}, -- the wire
|
|
|
|
|
|
|
|
{{ 6/16, -8/16, -8/16, 8/16, 8/16, -7/16 }, -- left post
|
2016-12-15 22:23:31 +01:00
|
|
|
{ 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post
|
2013-04-20 04:48:42 +02:00
|
|
|
{ 13/32, 7/16, -8/16, 15/32, 8/16, 8/16 }, -- top piece
|
|
|
|
{ 13/32, -8/16, -8/16, 15/32, -7/16, 8/16 }, -- bottom piece
|
|
|
|
{ 7/16, -8/16, -8/16, 7/16, 8/16, 8/16 }, -- the chainlink itself
|
2017-02-23 00:51:07 +01:00
|
|
|
{ 6/16, -3/16, -8/16, 8/16, 3/16, -6/16 }}, -- the lump representing the lock
|
|
|
|
|
|
|
|
{{ 6/16, -8/16, -8/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
|
|
|
|
|
|
|
|
{{ 6/16, -8/16, -8/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
|
2013-04-20 04:48:42 +02:00
|
|
|
}
|
|
|
|
|
2017-01-24 21:43:20 +01:00
|
|
|
for i, g in ipairs(gate_list) do
|
2013-04-20 04:48:42 +02:00
|
|
|
|
2017-01-24 21:43:20 +01:00
|
|
|
local gate, gatedesc = unpack(g)
|
2013-04-20 04:48:42 +02:00
|
|
|
|
2015-05-04 07:26:37 +02:00
|
|
|
local tiles = {
|
|
|
|
"homedecor_gate_"..gate.."_tb.png",
|
|
|
|
"homedecor_gate_"..gate.."_tb.png",
|
|
|
|
"homedecor_gate_"..gate.."_lr.png",
|
|
|
|
"homedecor_gate_"..gate.."_lr.png",
|
|
|
|
"homedecor_gate_"..gate.."_fb.png^[transformFX",
|
|
|
|
"homedecor_gate_"..gate.."_fb.png"
|
2015-05-04 06:19:55 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if gate == "barbed_wire" then
|
2015-05-04 07:26:37 +02:00
|
|
|
tiles = {
|
2015-05-04 06:19:55 +02:00
|
|
|
"homedecor_gate_barbed_wire_edges.png",
|
|
|
|
"homedecor_gate_barbed_wire_edges.png",
|
|
|
|
"homedecor_gate_barbed_wire_edges.png",
|
|
|
|
"homedecor_gate_barbed_wire_edges.png",
|
2015-05-04 07:26:37 +02:00
|
|
|
"homedecor_gate_barbed_wire_fb.png^[transformFX",
|
|
|
|
"homedecor_gate_barbed_wire_fb.png"
|
2015-05-04 06:19:55 +02:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2015-05-04 07:26:37 +02:00
|
|
|
if gate == "picket" or gate == "picket_white" then
|
|
|
|
tiles = {
|
|
|
|
"homedecor_blanktile.png",
|
|
|
|
"homedecor_blanktile.png",
|
|
|
|
"homedecor_blanktile.png",
|
|
|
|
"homedecor_blanktile.png",
|
|
|
|
"homedecor_gate_"..gate.."_back.png",
|
|
|
|
"homedecor_gate_"..gate.."_front.png"
|
|
|
|
}
|
2015-05-04 06:19:55 +02:00
|
|
|
end
|
|
|
|
|
2013-10-27 07:16:20 +01:00
|
|
|
local def = {
|
2013-04-20 04:48:42 +02:00
|
|
|
drawtype = "nodebox",
|
2017-01-24 21:43:20 +01:00
|
|
|
description = gatedesc,
|
2015-05-04 06:19:55 +02:00
|
|
|
tiles = tiles,
|
2013-04-20 04:48:42 +02:00
|
|
|
paramtype = "light",
|
2022-02-07 14:18:17 +01:00
|
|
|
use_texture_alpha = "clip",
|
2022-11-30 23:48:28 +01:00
|
|
|
groups = {snappy=3, axey=5},
|
|
|
|
_mcl_hardness=1.6,
|
2013-04-20 04:48:42 +02:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
paramtype2 = "facedir",
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 }
|
|
|
|
},
|
|
|
|
node_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = gate_models_closed[i]
|
|
|
|
},
|
2016-07-31 01:17:23 +02:00
|
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
2020-08-04 21:41:13 +02:00
|
|
|
homedecor_doors_and_gates.flip_gate(pos, node, clicker, gate, "closed")
|
2016-07-31 01:17:23 +02:00
|
|
|
return itemstack
|
2013-10-27 07:16:20 +01:00
|
|
|
end,
|
2019-05-27 11:09:42 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if mesecons_mp then
|
|
|
|
def.mesecons = {
|
2013-10-27 07:16:20 +01:00
|
|
|
effector = {
|
2019-05-27 04:13:15 +02:00
|
|
|
rules = mesecon.rules.pplate,
|
2020-08-04 21:41:13 +02:00
|
|
|
action_on = function(pos,node) homedecor_doors_and_gates.flip_gate(pos,node,nil,gate, "closed") end
|
2013-10-27 07:16:20 +01:00
|
|
|
}
|
|
|
|
}
|
2019-05-27 11:09:42 +02:00
|
|
|
end
|
2013-10-27 07:16:20 +01:00
|
|
|
|
|
|
|
-- gates when placed default to closed, closed.
|
|
|
|
|
2019-04-20 21:49:36 +02:00
|
|
|
minetest.register_node(":homedecor:gate_"..gate.."_closed", def)
|
2013-10-27 07:16:20 +01:00
|
|
|
|
|
|
|
-- this is either a terrible idea or a great one
|
2015-08-16 17:24:08 +02:00
|
|
|
def = table.copy(def)
|
2013-10-27 07:16:20 +01:00
|
|
|
def.groups.not_in_creative_inventory = 1
|
|
|
|
def.selection_box.fixed = { 0.4, -0.5, -0.5, 0.5, 0.5, 0.5 }
|
|
|
|
def.node_box.fixed = gate_models_open[i]
|
2015-05-04 06:19:55 +02:00
|
|
|
def.tiles = {
|
2017-02-23 00:53:52 +01:00
|
|
|
tiles[1].."^[transformR90",
|
|
|
|
tiles[2].."^[transformR270",
|
2015-05-04 06:19:55 +02:00
|
|
|
tiles[6],
|
|
|
|
tiles[5],
|
|
|
|
tiles[4],
|
|
|
|
tiles[3]
|
|
|
|
}
|
2013-10-27 07:16:20 +01:00
|
|
|
def.drop = "homedecor:gate_"..gate.."_closed"
|
2016-07-31 01:17:23 +02:00
|
|
|
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
2020-08-04 21:41:13 +02:00
|
|
|
homedecor_doors_and_gates.flip_gate(pos, node, clicker, gate, "open")
|
2016-07-31 01:17:23 +02:00
|
|
|
return itemstack
|
2013-10-27 07:16:20 +01:00
|
|
|
end
|
2019-05-27 11:09:42 +02:00
|
|
|
|
|
|
|
if mesecons_mp then
|
|
|
|
def.mesecons.effector = {
|
|
|
|
rules = mesecon.rules.pplate,
|
2020-08-04 21:41:13 +02:00
|
|
|
action_off = function(pos,node) homedecor_doors_and_gates.flip_gate(pos,node,nil,gate, "open") end
|
2019-05-27 11:09:42 +02:00
|
|
|
}
|
|
|
|
end
|
2013-04-20 04:48:42 +02:00
|
|
|
|
2019-04-20 21:49:36 +02:00
|
|
|
minetest.register_node(":homedecor:gate_"..gate.."_open", def)
|
2013-04-20 04:48:42 +02:00
|
|
|
end
|
|
|
|
|
2013-04-20 22:42:35 +02:00
|
|
|
minetest.register_alias("homedecor:fence_barbed_wire_gate_open", "homedecor:gate_barbed_wire_open")
|
|
|
|
minetest.register_alias("homedecor:fence_barbed_wire_gate_closed", "homedecor:gate_barbed_wire_closed")
|
|
|
|
minetest.register_alias("homedecor:fence_chainlink_gate_open", "homedecor:gate_chainlink_open")
|
|
|
|
minetest.register_alias("homedecor:fence_chainlink_gate_closed", "homedecor:gate_chainlink_closed")
|
2013-04-20 04:48:42 +02:00
|
|
|
minetest.register_alias("homedecor:fence_picket_gate_open", "homedecor:gate_picket_open")
|
|
|
|
minetest.register_alias("homedecor:fence_picket_gate_closed", "homedecor:gate_picket_closed")
|
|
|
|
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")
|
|
|
|
|
2020-08-04 21:41:13 +02:00
|
|
|
function homedecor_doors_and_gates.flip_gate(pos, node, player, gate, oc)
|
2013-06-05 22:46:59 +02:00
|
|
|
|
2013-04-20 04:48:42 +02:00
|
|
|
|
2019-05-25 06:01:04 +02:00
|
|
|
local fdir = node.param2 or 0
|
2013-10-27 07:16:20 +01:00
|
|
|
|
2016-12-15 23:24:11 +01:00
|
|
|
local gateresult
|
2013-04-20 04:48:42 +02:00
|
|
|
if oc == "closed" then
|
2013-06-05 22:46:59 +02:00
|
|
|
gateresult = "homedecor:gate_"..gate.."_open"
|
2013-04-20 04:48:42 +02:00
|
|
|
else
|
2013-06-05 22:46:59 +02:00
|
|
|
gateresult = "homedecor:gate_"..gate.."_closed"
|
2013-04-20 04:48:42 +02:00
|
|
|
end
|
2013-04-29 11:27:18 +02:00
|
|
|
|
2019-05-25 06:01:04 +02:00
|
|
|
minetest.set_node(pos, {name = gateresult, param2 = fdir})
|
|
|
|
minetest.sound_play("homedecor_gate_open_close", {
|
|
|
|
pos=pos,
|
|
|
|
max_hear_distance = 5,
|
|
|
|
gain = 2,
|
|
|
|
})
|
2013-10-27 07:16:20 +01:00
|
|
|
|
|
|
|
-- the following opens and closes gates below and above in sync with this one
|
|
|
|
|
|
|
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
|
|
|
local below = {x=pos.x, y=pos.y-1, z=pos.z}
|
|
|
|
local nodeabove = minetest.get_node(above)
|
|
|
|
local nodebelow = minetest.get_node(below)
|
2013-06-05 22:46:59 +02:00
|
|
|
|
|
|
|
if string.find(nodeabove.name, "homedecor:gate_"..gate) then
|
2019-05-25 06:01:04 +02:00
|
|
|
minetest.set_node(above, {name = gateresult, param2 = fdir})
|
2013-06-05 22:46:59 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
if string.find(nodebelow.name, "homedecor:gate_"..gate) then
|
2019-05-25 06:01:04 +02:00
|
|
|
minetest.set_node(below, {name = gateresult, param2 = fdir})
|
2013-06-05 22:46:59 +02:00
|
|
|
end
|
2013-04-20 04:48:42 +02:00
|
|
|
end
|
2013-06-05 22:46:59 +02:00
|
|
|
|
2019-05-25 01:08:13 +02:00
|
|
|
-- Japanese-style wood/paper door
|
2015-04-25 05:50:51 +02:00
|
|
|
homedecor.register("door_japanese_closed", {
|
2017-01-24 21:43:20 +01:00
|
|
|
description = S("Japanese-style door"),
|
2015-04-25 05:50:51 +02:00
|
|
|
inventory_image = "homedecor_door_japanese_inv.png",
|
2014-10-03 18:19:38 +02:00
|
|
|
tiles = {
|
2017-01-25 10:22:28 +01:00
|
|
|
homedecor.lux_wood,
|
2015-04-25 05:50:51 +02:00
|
|
|
"homedecor_japanese_paper.png"
|
2014-10-03 18:19:38 +02:00
|
|
|
},
|
2015-04-25 05:50:51 +02:00
|
|
|
mesh = "homedecor_door_japanese_closed.obj",
|
2014-10-03 18:19:38 +02:00
|
|
|
groups = { snappy = 3 },
|
2015-04-29 14:14:36 +02:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
2014-10-03 18:19:38 +02:00
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
2015-01-20 23:59:50 +01:00
|
|
|
fixed = {-0.5, -0.5, 0, 0.5, 1.5, 0.0625},
|
2014-10-03 18:19:38 +02:00
|
|
|
},
|
2015-04-25 05:50:51 +02:00
|
|
|
collision_box = {
|
2014-10-03 18:19:38 +02:00
|
|
|
type = "fixed",
|
2015-04-25 05:50:51 +02:00
|
|
|
fixed = {-0.5, -0.5, -0.0625, 0.5, 1.5, 0},
|
2014-10-03 18:19:38 +02:00
|
|
|
},
|
2015-09-08 10:16:31 +02:00
|
|
|
expand = { top = "placeholder" },
|
2016-07-31 01:17:23 +02:00
|
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
2015-04-25 05:50:51 +02:00
|
|
|
minetest.set_node(pos, {name = "homedecor:door_japanese_open", param2 = node.param2})
|
2016-07-31 01:17:23 +02:00
|
|
|
return itemstack
|
2015-04-25 05:50:51 +02:00
|
|
|
end
|
2014-10-03 18:19:38 +02:00
|
|
|
})
|
|
|
|
|
2015-09-08 10:16:31 +02:00
|
|
|
homedecor.register("door_japanese_open", {
|
2014-10-03 18:19:38 +02:00
|
|
|
tiles = {
|
2017-01-25 10:22:28 +01:00
|
|
|
homedecor.lux_wood,
|
2015-04-25 05:50:51 +02:00
|
|
|
"homedecor_japanese_paper.png"
|
2014-10-03 18:19:38 +02:00
|
|
|
},
|
2015-04-25 05:50:51 +02:00
|
|
|
mesh = "homedecor_door_japanese_open.obj",
|
2014-10-03 18:19:38 +02:00
|
|
|
groups = { snappy = 3, not_in_creative_inventory = 1 },
|
2015-04-29 14:14:36 +02:00
|
|
|
sounds = default.node_sound_wood_defaults(),
|
2020-08-04 21:41:13 +02:00
|
|
|
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
|
2014-10-03 18:19:38 +02:00
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-1.5, -0.5, -0.0625, 0.5, 1.5, 0},
|
|
|
|
},
|
2015-04-25 05:50:51 +02:00
|
|
|
collision_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-1.5, -0.5, -0.0625, -0.5, 1.5, 0},
|
|
|
|
},
|
2015-09-08 10:16:31 +02:00
|
|
|
expand = { top = "placeholder" },
|
2016-07-31 01:17:23 +02:00
|
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
2015-04-25 05:50:51 +02:00
|
|
|
minetest.set_node(pos, {name = "homedecor:door_japanese_closed", param2 = node.param2})
|
2016-07-31 01:17:23 +02:00
|
|
|
return itemstack
|
2014-10-03 18:19:38 +02:00
|
|
|
end,
|
2015-04-25 05:50:51 +02:00
|
|
|
drop = "homedecor:door_japanese_closed",
|
2014-10-03 18:19:38 +02:00
|
|
|
})
|
|
|
|
|
2019-04-20 21:49:36 +02:00
|
|
|
-- crafting
|
|
|
|
|
2019-05-25 01:08:13 +02:00
|
|
|
-- half-doors
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:gate_half_door_closed 4",
|
|
|
|
recipe = {
|
2019-06-20 23:15:38 +02:00
|
|
|
"doors:homedecor_wood_plain_a",
|
|
|
|
"doors:homedecor_wood_plain_a"
|
2019-05-25 01:08:13 +02:00
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:gate_half_door_white_closed 4",
|
|
|
|
recipe = {
|
2019-06-20 23:15:38 +02:00
|
|
|
"doors:homedecor_bedroom_a",
|
|
|
|
"doors:homedecor_bedroom_a"
|
2019-05-25 01:08:13 +02:00
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2019-04-20 21:49:36 +02:00
|
|
|
-- Gates
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:gate_picket_white_closed",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:fence_picket_white"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:fence_picket_white",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:gate_picket_white_closed"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:gate_picket_closed",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:fence_picket"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:fence_picket",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:gate_picket_closed"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:gate_barbed_wire_closed",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:fence_barbed_wire"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:fence_barbed_wire",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:gate_barbed_wire_closed"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:gate_chainlink_closed",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:fence_chainlink"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
|
|
|
output = "homedecor:fence_chainlink",
|
|
|
|
recipe = {
|
|
|
|
"homedecor:gate_chainlink_closed"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
------ Doors
|
|
|
|
|
|
|
|
-- plain wood, non-windowed
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_wood_plain 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "group:wood", "group:wood", "" },
|
|
|
|
{ "group:wood", "group:wood", "default:steel_ingot" },
|
|
|
|
{ "group:wood", "group:wood", "" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
-- fancy exterior
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_exterior_fancy 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "group:wood", "default:glass" },
|
|
|
|
{ "group:wood", "group:wood" },
|
|
|
|
{ "group:wood", "group:wood" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2019-06-20 23:15:38 +02:00
|
|
|
-- French style wood/glass
|
2019-04-20 21:49:36 +02:00
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_french_oak 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "default:glass", "group:wood" },
|
|
|
|
{ "group:wood", "default:glass" },
|
|
|
|
{ "default:glass", "group:wood" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_french_oak 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "group:wood", "default:glass" },
|
|
|
|
{ "default:glass", "group:wood" },
|
|
|
|
{ "group:wood", "default:glass" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_french_mahogany 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
"dye:brown",
|
2019-08-14 20:16:09 +02:00
|
|
|
"doors:homedecor_french_oak",
|
|
|
|
"doors:homedecor_french_oak"
|
2019-04-20 21:49:36 +02:00
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_french_white 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
"dye:white",
|
2019-08-14 20:16:09 +02:00
|
|
|
"doors:homedecor_french_oak",
|
|
|
|
"doors:homedecor_french_oak"
|
2019-04-20 21:49:36 +02:00
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
-- Closet doors
|
|
|
|
|
|
|
|
-- oak
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_closet_oak 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "", "group:stick", "group:stick" },
|
|
|
|
{ "default:steel_ingot", "group:stick", "group:stick" },
|
|
|
|
{ "", "group:stick", "group:stick" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
-- mahogany
|
|
|
|
|
|
|
|
minetest.register_craft( {
|
|
|
|
type = "shapeless",
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_closet_mahogany 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
2019-12-30 08:17:13 +01:00
|
|
|
"doors:homedecor_closet_oak",
|
|
|
|
"doors:homedecor_closet_oak",
|
2019-04-20 21:49:36 +02:00
|
|
|
"dye:brown"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2019-06-20 23:15:38 +02:00
|
|
|
-- wrought iron fence-like door
|
2019-04-20 21:49:36 +02:00
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_wrought_iron 2",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
|
|
|
|
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
|
|
|
|
{ "homedecor:pole_wrought_iron", "default:iron_lump" }
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2019-06-20 23:15:38 +02:00
|
|
|
-- bedroom/panel door
|
2019-04-20 21:49:36 +02:00
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_basic_panel",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "dye:white", "dye:white", "" },
|
2019-12-30 08:17:13 +01:00
|
|
|
{ "doors:homedecor_wood_plain", "basic_materials:brass_ingot", "" },
|
2019-04-20 21:49:36 +02:00
|
|
|
{ "", "", "" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2019-06-20 23:15:38 +02:00
|
|
|
-- basic wood/glass single-lite door
|
2019-04-20 21:49:36 +02:00
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_woodglass",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "group:wood", "default:glass", "" },
|
|
|
|
{ "group:wood", "default:glass", "basic_materials:brass_ingot" },
|
|
|
|
{ "group:wood", "group:wood", "" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2019-06-20 23:15:38 +02:00
|
|
|
-- "Carolina" door
|
2019-04-20 21:49:36 +02:00
|
|
|
|
|
|
|
minetest.register_craft( {
|
2019-06-20 23:15:38 +02:00
|
|
|
output = "doors:homedecor_carolina",
|
2019-04-20 21:49:36 +02:00
|
|
|
recipe = {
|
|
|
|
{ "default:glass", "default:glass", "" },
|
|
|
|
{ "group:wood", "group:wood", "default:iron_lump" },
|
|
|
|
{ "group:wood", "group:wood", "" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
output = "homedecor:door_japanese_closed",
|
|
|
|
recipe = {
|
|
|
|
{ "homedecor:japanese_wall_top" },
|
|
|
|
{ "homedecor:japanese_wall_bottom" }
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
-- aliases
|
|
|
|
|
give most doors more meaningful, distinct node names
to avoid confusion
doors:wood_glass_{oak,white,mahogany}_{a,b} --> doors:homedecor_french_{oak,white,mahogany}_{a,b}
doors:woodglass2_{a,b} --> doors:homedecor_carolina_{a,b}
doors:bedroom_{a,b} --> doors:homedecor_basic_panel_{a,b}
All others:
doors:$foo_{a,b} --> doors:homedecor_$foo_{a,b}
2019-06-03 09:42:06 +02:00
|
|
|
minetest.register_alias("homedecor:jpn_door_top", "air")
|
|
|
|
minetest.register_alias("homedecor:jpn_door_top_open", "air")
|
|
|
|
|
|
|
|
minetest.register_alias("homedecor:jpn_door_bottom", "homedecor:door_japanese_closed")
|
|
|
|
minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japanese_open")
|
|
|
|
|
|
|
|
minetest.register_alias("homedecor:door_glass_right", "doors:door_glass_b")
|
|
|
|
minetest.register_alias("homedecor:door_glass_left", "doors:door_glass_a")
|
|
|
|
|
|
|
|
minetest.register_alias("doors:wood_glass_oak_a", "doors:homedecor_french_oak_a")
|
|
|
|
minetest.register_alias("doors:wood_glass_oak_b", "doors:homedecor_french_oak_b")
|
|
|
|
|
|
|
|
minetest.register_alias("doors:wood_glass_white_a", "doors:homedecor_french_white_a")
|
|
|
|
minetest.register_alias("doors:wood_glass_white_b", "doors:homedecor_french_white_b")
|
|
|
|
|
|
|
|
minetest.register_alias("doors:wood_glass_mahogany_a", "doors:homedecor_french_mahogany_a")
|
|
|
|
minetest.register_alias("doors:wood_glass_mahogany_b", "doors:homedecor_french_mahogany_b")
|
|
|
|
|
2019-06-06 07:17:43 +02:00
|
|
|
minetest.register_alias("doors:homedecor_wood_glass_oak_a", "doors:homedecor_french_oak_a")
|
|
|
|
minetest.register_alias("doors:homedecor_wood_glass_oak_b", "doors:homedecor_french_oak_b")
|
|
|
|
|
|
|
|
minetest.register_alias("doors:homedecor_wood_glass_white_a", "doors:homedecor_french_white_a")
|
|
|
|
minetest.register_alias("doors:homedecor_wood_glass_white_b", "doors:homedecor_french_white_b")
|
|
|
|
|
|
|
|
minetest.register_alias("doors:homedecor_wood_glass_mahogany_a", "doors:homedecor_french_mahogany_a")
|
|
|
|
minetest.register_alias("doors:homedecor_wood_glass_mahogany_b", "doors:homedecor_french_mahogany_b")
|
|
|
|
|
give most doors more meaningful, distinct node names
to avoid confusion
doors:wood_glass_{oak,white,mahogany}_{a,b} --> doors:homedecor_french_{oak,white,mahogany}_{a,b}
doors:woodglass2_{a,b} --> doors:homedecor_carolina_{a,b}
doors:bedroom_{a,b} --> doors:homedecor_basic_panel_{a,b}
All others:
doors:$foo_{a,b} --> doors:homedecor_$foo_{a,b}
2019-06-03 09:42:06 +02:00
|
|
|
minetest.register_alias("doors:homedecor_woodglass2_a", "doors:homedecor_carolina_a")
|
|
|
|
minetest.register_alias("doors:homedecor_woodglass2_b", "doors:homedecor_carolina_b")
|
|
|
|
|
|
|
|
minetest.register_alias("doors:woodglass2_a", "doors:homedecor_carolina_a")
|
|
|
|
minetest.register_alias("doors:woodglass2_b", "doors:homedecor_carolina_b")
|
2014-10-03 18:19:38 +02:00
|
|
|
|
give most doors more meaningful, distinct node names
to avoid confusion
doors:wood_glass_{oak,white,mahogany}_{a,b} --> doors:homedecor_french_{oak,white,mahogany}_{a,b}
doors:woodglass2_{a,b} --> doors:homedecor_carolina_{a,b}
doors:bedroom_{a,b} --> doors:homedecor_basic_panel_{a,b}
All others:
doors:$foo_{a,b} --> doors:homedecor_$foo_{a,b}
2019-06-03 09:42:06 +02:00
|
|
|
minetest.register_alias("doors:homedecor_bedroom_a", "doors:homedecor_basic_panel_a")
|
|
|
|
minetest.register_alias("doors:homedecor_bedroom_b", "doors:homedecor_basic_panel_b")
|
2018-10-25 18:30:21 +02:00
|
|
|
|
give most doors more meaningful, distinct node names
to avoid confusion
doors:wood_glass_{oak,white,mahogany}_{a,b} --> doors:homedecor_french_{oak,white,mahogany}_{a,b}
doors:woodglass2_{a,b} --> doors:homedecor_carolina_{a,b}
doors:bedroom_{a,b} --> doors:homedecor_basic_panel_{a,b}
All others:
doors:$foo_{a,b} --> doors:homedecor_$foo_{a,b}
2019-06-03 09:42:06 +02:00
|
|
|
minetest.register_alias("doors:bedroom_a", "doors:homedecor_basic_panel_a")
|
|
|
|
minetest.register_alias("doors:bedroom_b", "doors:homedecor_basic_panel_b")
|
2019-05-25 06:01:04 +02:00
|
|
|
|
|
|
|
-- flip old homedecor doors around, since they use minetest_game doors API now
|
|
|
|
|
2019-06-06 07:17:43 +02:00
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_oak_left"
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_oak_right"
|
|
|
|
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_white_left"
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_white_right"
|
|
|
|
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_mahogany_left"
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_mahogany_right"
|
2019-06-05 10:26:22 +02:00
|
|
|
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_woodglass2_left"
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_woodglass2_right"
|
|
|
|
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_bedroom_left"
|
|
|
|
old_doors[#old_doors + 1] = "homedecor:door_bedroom_right"
|
|
|
|
|
2019-05-25 06:01:04 +02:00
|
|
|
minetest.register_lbm({
|
2019-06-06 07:17:43 +02:00
|
|
|
name = ":homedecor:convert_doors_3",
|
2019-05-25 06:01:04 +02:00
|
|
|
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)
|
2019-06-05 10:26:22 +02:00
|
|
|
local newname = "doors:homedecor_"..string.sub(node.name, 16, e-1)
|
2019-05-25 06:01:04 +02:00
|
|
|
if dir == "right" then
|
2019-06-06 07:17:43 +02:00
|
|
|
print("Want to replace "..node.name.." with "..newname.."_a")
|
2019-05-25 06:01:04 +02:00
|
|
|
minetest.set_node(pos, {name = newname.."_a", param2 = newparam2 })
|
|
|
|
else
|
2019-06-06 07:17:43 +02:00
|
|
|
print("Want to replace "..node.name.." with "..newname.."_b")
|
2019-05-25 06:01:04 +02:00
|
|
|
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
|
2022-02-11 21:44:45 +01:00
|
|
|
})
|