mirror of
https://github.com/mt-mods/signs_lib.git
synced 2024-11-05 09:30:19 +01:00
dcdee22265
to the pole and horiz pole check routines, in case they need their own, custom checking routines, if the usual, simple checks aren't good enough. got rid of the allowed-poles table, as it's now obsolete moved all existing special code into compat.lua, altered to use this feature.
177 lines
3.7 KiB
Lua
177 lines
3.7 KiB
Lua
|
|
local default_fences = {
|
|
"default:fence_wood",
|
|
"default:fence_acacia_wood",
|
|
"default:fence_aspen_wood",
|
|
"default:fence_junglewood",
|
|
"default:fence_pine_wood"
|
|
}
|
|
|
|
for _, n in ipairs(default_fences) do
|
|
minetest.override_item(n, {
|
|
check_for_pole = true
|
|
})
|
|
end
|
|
|
|
if minetest.get_modpath("streetspoles") then
|
|
|
|
local htj_north = {
|
|
[1] = true,
|
|
[3] = true,
|
|
[9] = true,
|
|
[11] = true,
|
|
[21] = true,
|
|
[23] = true
|
|
}
|
|
|
|
local htj_east = {
|
|
[0] = true,
|
|
[2] = true,
|
|
[16] = true,
|
|
[18] = true,
|
|
[20] = true,
|
|
[22] = true
|
|
}
|
|
|
|
local htj_south = {
|
|
[1] = true,
|
|
[3] = true,
|
|
[5] = true,
|
|
[7] = true,
|
|
[21] = true,
|
|
[23] = true
|
|
}
|
|
|
|
local htj_west = {
|
|
[0] = true,
|
|
[2] = true,
|
|
[12] = true,
|
|
[14] = true,
|
|
[20] = true,
|
|
[22] = true
|
|
}
|
|
|
|
local vtj_north = {
|
|
[8] = true,
|
|
[10] = true,
|
|
[13] = true,
|
|
[15] = true,
|
|
[17] = true,
|
|
[19] = true
|
|
}
|
|
|
|
local vtj_east = {
|
|
[4] = true,
|
|
[6] = true,
|
|
[8] = true,
|
|
[10] = true,
|
|
[17] = true,
|
|
[19] = true
|
|
}
|
|
|
|
local vtj_south = {
|
|
[4] = true,
|
|
[6] = true,
|
|
[13] = true,
|
|
[15] = true,
|
|
[17] = true,
|
|
[10] = true
|
|
}
|
|
|
|
local vtj_west = {
|
|
[4] = true,
|
|
[6] = true,
|
|
[8] = true,
|
|
[10] = true,
|
|
[13] = true,
|
|
[15] = true
|
|
}
|
|
|
|
minetest.override_item("streets:bigpole", {
|
|
check_for_pole = function(pos, node, def, ppos, pnode, pdef)
|
|
if pnode.param2 < 4
|
|
or (pnode.param2 > 19 and pnode.param2 < 24)
|
|
and (pos.x ~= ppos.x or pos.z ~= ppos.z) then
|
|
return true
|
|
end
|
|
end,
|
|
|
|
check_for_horiz_pole = function(pos, node, def, ppos, pnode, pdef)
|
|
if pnode.param2 > 3 and pnode.param2 < 12 then
|
|
if def.paramtype2 == "wallmounted" then
|
|
if node.param2 == 2 or node.param2 == 3 -- E/W
|
|
then return true
|
|
end
|
|
else
|
|
if node.param2 == 1 or node.param2 == 3 -- E/W
|
|
then return true
|
|
end
|
|
end
|
|
elseif pnode.param2 > 11 and pnode.param2 < 20 then
|
|
if def.paramtype2 == "wallmounted" then
|
|
if node.param2 == 4 or node.param2 == 5 then
|
|
return true
|
|
end
|
|
else
|
|
if node.param2 == 0 or node.param2 == 2 then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
})
|
|
|
|
minetest.override_item("streets:bigpole_tjunction", {
|
|
check_for_pole = function(pos, node, def, ppos, pnode, pdef)
|
|
if def.paramtype2 == "wallmounted" then
|
|
if (node.param2 == 4 and vtj_north[pnode.param2])
|
|
or (node.param2 == 2 and vtj_east[pnode.param2])
|
|
or (node.param2 == 5 and vtj_south[pnode.param2])
|
|
or (node.param2 == 3 and vtj_west[pnode.param2]) then
|
|
return true
|
|
end
|
|
else
|
|
if (node.param2 == 0 and vtj_north[pnode.param2])
|
|
or (node.param2 == 1 and vtj_east[pnode.param2])
|
|
or (node.param2 == 2 and vtj_south[pnode.param2])
|
|
or (node.param2 == 3 and vtj_west[pnode.param2]) then
|
|
return true
|
|
end
|
|
end
|
|
end,
|
|
|
|
check_for_horiz_pole = function(pos, node, def, ppos, pnode, pdef)
|
|
if def.paramtype2 == "wallmounted" then
|
|
if (node.param2 == 4 and htj_north[pnode.param2])
|
|
or (node.param2 == 2 and htj_east[pnode.param2])
|
|
or (node.param2 == 5 and htj_south[pnode.param2])
|
|
or (node.param2 == 3 and htj_west[pnode.param2]) then
|
|
return true
|
|
end
|
|
else
|
|
if (node.param2 == 0 and htj_north[pnode.param2])
|
|
or (node.param2 == 1 and htj_east[pnode.param2])
|
|
or (node.param2 == 2 and htj_south[pnode.param2])
|
|
or (node.param2 == 3 and htj_west[pnode.param2]) then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
})
|
|
|
|
end
|
|
|
|
if minetest.get_modpath("streetlamps") then
|
|
minetest.override_item("streets:streetlamp_basic_top_on", {
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.3,-0.4,-0.3,0.3,0.5,0.3},
|
|
{-0.15,-0.4,-0.15,0.15,-1.55,0.15},
|
|
{-0.18,-1.55,-0.18,0.18,-2.5,0.18},
|
|
}
|
|
},
|
|
check_for_pole = true
|
|
})
|
|
end
|