forked from minetest-mods/mesecons
Remove door
This commit is contained in:
parent
f2b11e4238
commit
69c6f1a440
@ -1,2 +0,0 @@
|
|||||||
default
|
|
||||||
mesecons
|
|
@ -1,154 +0,0 @@
|
|||||||
-- Mesecons Door
|
|
||||||
|
|
||||||
models = {
|
|
||||||
{
|
|
||||||
-- bottom part
|
|
||||||
{-0.5, -0.5, -0.5, -0.4, 0.5, 0.5},
|
|
||||||
-- A
|
|
||||||
{-0.5, 0.5, -0.5, -0.4, 1.5, -0.3},
|
|
||||||
-- B
|
|
||||||
{-0.5, 0.5, 0.3, -0.4, 1.5, 0.5},
|
|
||||||
-- C
|
|
||||||
{-0.5, 1.3, -0.3, -0.4, 1.5, 0.3},
|
|
||||||
-- D
|
|
||||||
{-0.5, 0.5, -0.3, -0.4, 0.6, 0.3},
|
|
||||||
-- E
|
|
||||||
{-0.5, 0.6, -0.05, -0.4, 1.3, 0.05},
|
|
||||||
-- F
|
|
||||||
{-0.5, 0.9, -0.3, -0.4, 1, -0.05},
|
|
||||||
-- G
|
|
||||||
{-0.5, 0.9, 0.05, -0.4, 1, 0.3}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{0.4, -0.5, -0.5, 0.5, 0.5, 0.5},
|
|
||||||
{0.4, 0.5, -0.5, 0.5, 1.5, -0.3},
|
|
||||||
{0.4, 0.5, 0.3, 0.5, 1.5, 0.5},
|
|
||||||
{0.4, 1.3, -0.3, 0.5, 1.5, 0.3},
|
|
||||||
{0.4, 0.5, -0.3, 0.5, 0.6, 0.3},
|
|
||||||
{0.4, 0.6, -0.05, 0.5, 1.3, 0.05},
|
|
||||||
{0.4, 0.9, -0.3, 0.5, 1, -0.05},
|
|
||||||
{0.4, 0.9, 0.05, 0.5, 1, 0.3}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, 0.5, -0.4},
|
|
||||||
{-0.5, 0.5, -0.5, -0.3, 1.5, -0.4},
|
|
||||||
{0.3, 0.5, -0.5, 0.5, 1.5, -0.4},
|
|
||||||
{-0.3, 1.3, -0.5, 0.3, 1.5, -0.4},
|
|
||||||
{-0.3, 0.5, -0.5, 0.3, 0.6, -0.4},
|
|
||||||
{-0.05, 0.6, -0.5, 0.05, 1.3, -0.4},
|
|
||||||
{-0.3, 0.9, -0.5, -0.05, 1, -0.4},
|
|
||||||
{0.05, 0.9, -0.5, 0.3, 1, -0.4}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{-0.5, -0.5, 0.4, 0.5, 0.5, 0.5},
|
|
||||||
{-0.5, 0.5, 0.4, -0.3, 1.5, 0.5},
|
|
||||||
{0.3, 0.5, 0.4, 0.5, 1.5, 0.5},
|
|
||||||
{-0.3, 1.3, 0.4, 0.3, 1.5, 0.5},
|
|
||||||
{-0.3, 0.5, 0.4, 0.3, 0.6, 0.5},
|
|
||||||
{-0.05, 0.6, 0.4, 0.05, 1.3, 0.5},
|
|
||||||
{-0.3, 0.9, 0.4, -0.05, 1, 0.5},
|
|
||||||
{0.05, 0.9, 0.4, 0.3, 1, 0.5}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
selections = {
|
|
||||||
{-0.5, -0.5, -0.5, -0.4, 1.5, 0.5},
|
|
||||||
{0.5, -0.5, -0.5, 0.4, 1.5, 0.5},
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, 1.5, -0.4},
|
|
||||||
{-0.5, -0.5, 0.4, 0.5, 1.5, 0.5}
|
|
||||||
}
|
|
||||||
|
|
||||||
transforms = {
|
|
||||||
door_1_1 = "door_4_2",
|
|
||||||
door_4_2 = "door_1_1",
|
|
||||||
door_2_1 = "door_3_2",
|
|
||||||
door_3_2 = "door_2_1",
|
|
||||||
door_3_1 = "door_1_2",
|
|
||||||
door_1_2 = "door_3_1",
|
|
||||||
door_4_1 = "door_2_2",
|
|
||||||
door_2_2 = "door_4_1"
|
|
||||||
}
|
|
||||||
|
|
||||||
mesecons_door_transform = function (pos, node)
|
|
||||||
local x, y = node.name:find(":")
|
|
||||||
local n = node.name:sub(x + 1)
|
|
||||||
if transforms[n] ~= nil then
|
|
||||||
minetest.env:add_node(pos, {name = "mesecons_door:"..transforms[n]})
|
|
||||||
else
|
|
||||||
print("not implemented")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for i = 1, 4 do
|
|
||||||
for j = 1, 2 do
|
|
||||||
minetest.register_node("mesecons_door:door_"..i.."_"..j, {
|
|
||||||
drawtype = "nodebox",
|
|
||||||
tiles = {"default_wood.png"},
|
|
||||||
paramtype = "light",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon = 2},
|
|
||||||
drop = "mesecons_door:door",
|
|
||||||
node_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = models[i]
|
|
||||||
},
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
selections[i]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
on_punch = mesecons_door_transform
|
|
||||||
})
|
|
||||||
mesecon:register_effector("mesecons_door:door_"..i.."_"..j, "mesecons_door:door_"..i.."_"..j)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_node("mesecons_door:door", {
|
|
||||||
description = "Wooden door",
|
|
||||||
node_placement_prediction = "",
|
|
||||||
inventory_image = 'door_wood.png',
|
|
||||||
wield_image = 'door_wood.png',
|
|
||||||
after_place_node = function(node_pos, placer)
|
|
||||||
local best_distance = 1e50
|
|
||||||
local best_number = 1
|
|
||||||
local pos = placer:getpos()
|
|
||||||
for i = 1, 4 do
|
|
||||||
local box = minetest.registered_nodes["mesecons_door:door_"..i.."_1"].selection_box.fixed[1]
|
|
||||||
box = {box[1] + node_pos.x, box[2] + node_pos.y, box[3] + node_pos.z, box[4] + node_pos.x, box[5] + node_pos.y, box[6] + node_pos.z}
|
|
||||||
local center = {x = (box[1] + box[4]) / 2, y = (box[2] + box[5]) / 2, z = (box[3] + box[6]) / 2}
|
|
||||||
local dist = math.pow(math.pow(center.x - pos.x, 2) + math.pow(center.y - pos.y, 2) + math.pow(center.z - pos.z, 2), 0.5)
|
|
||||||
if dist < best_distance then
|
|
||||||
best_distance = dist
|
|
||||||
best_number = i
|
|
||||||
end
|
|
||||||
end
|
|
||||||
minetest.env:add_node(node_pos, {name = "mesecons_door:door_"..best_number.."_1"})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
mesecon:register_effector("mesecons_door:door")
|
|
||||||
|
|
||||||
minetest.register_on_placenode(function(pos, newnode, placer)
|
|
||||||
local b_pos = {x = pos.x, y = pos.y - 1, z = pos.z}
|
|
||||||
local node = minetest.env:get_node(b_pos)
|
|
||||||
if node.name:find("mesecons_door:door") ~= nil then
|
|
||||||
minetest.env:remove_node(pos)
|
|
||||||
minetest.env:add_item(pos, newnode.name)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'mesecons_door:door',
|
|
||||||
recipe = {
|
|
||||||
{ 'default:wood', 'default:wood', '' },
|
|
||||||
{ 'default:wood', 'default:wood', '' },
|
|
||||||
{ 'default:wood', 'default:wood', '' },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
--MESECONS
|
|
||||||
mesecon:register_on_signal_change(function(pos, node)
|
|
||||||
if string.find(node.name, "mesecons_door:door_") then
|
|
||||||
mesecons_door_transform(pos, node)
|
|
||||||
end
|
|
||||||
end)
|
|
Binary file not shown.
Before Width: | Height: | Size: 166 B |
Loading…
Reference in New Issue
Block a user