mirror of
https://github.com/Beanzilla/OreTracker.git
synced 2024-10-22 17:43:10 +02:00
09d3792df0
Fixed the detection of MCL5 or MCL2. Improved xray to include Deepslate and Darkstone and included into orehud Deepslate ores. (All of this is MCL5)
142 lines
6.8 KiB
Lua
142 lines
6.8 KiB
Lua
|
|
-- Adds a node to track, only if that node actually is a valid node
|
|
xray.add_node = function(nodename)
|
|
if minetest.registered_nodes[nodename] then
|
|
table.insert(xray.nodes, nodename)
|
|
else
|
|
minetest.log("action", "[oretracker-xray] Failed to add '"..nodename.."' as it is a unregistered node.")
|
|
end
|
|
end
|
|
|
|
-- Swaps with one of the registered nodes that has the invisiblity factor
|
|
xray.add_pos = function(pname, pos)
|
|
local current = minetest.get_node_or_nil(pos)
|
|
if current == nil then
|
|
minetest.log("action", "[oretracker-xray] Failed to obtain node at "..minetest.pos_to_string(pos).." for swap.")
|
|
end
|
|
current = current.name
|
|
--minetest.log("action", "[oretracker-xray] Swapping "..current)
|
|
local nps = xray.store[pname] or {}
|
|
table.insert(nps, pos)
|
|
-- Place a switch here to identify which kind of node would be best used here
|
|
if current == "default:stone" then
|
|
minetest.swap_node(pos, {name="xray:mtg_stone"})
|
|
elseif current == "default:desert_stone" then
|
|
minetest.swap_node(pos, {name="xray:mtg_dstone"})
|
|
elseif current == "default:sandstone" then
|
|
minetest.swap_node(pos, {name="xray:mtg_sstone"})
|
|
elseif current == "default:desert_sandstone" then
|
|
minetest.swap_node(pos, {name="xray:mtg_dsstone"})
|
|
elseif current == "default:silver_sandstone" then
|
|
minetest.swap_node(pos, {name="xray:mtg_ssstone"})
|
|
elseif current == "mcl_core:stone" then
|
|
minetest.swap_node(pos, {name="xray:mcl_stone"})
|
|
elseif current == "mcl_core:granite" then
|
|
minetest.swap_node(pos, {name="xray:mcl_granite"})
|
|
elseif current == "mcl_core:andesite" then
|
|
minetest.swap_node(pos, {name="xray:mcl_andesite"})
|
|
elseif current == "mcl_core:diorite" then
|
|
minetest.swap_node(pos, {name="xray:mcl_diorite"})
|
|
elseif current == "mcl_core:sandstone" then
|
|
minetest.swap_node(pos, {name="xray:mcl_sstone"})
|
|
elseif current == "mcl_core:redsandstone" then
|
|
minetest.swap_node(pos, {name="xray:mcl_rsstone"})
|
|
elseif current == "mcl_blackstone:blackstone" then
|
|
minetest.swap_node(pos, {name="xray:mcl_bstone"})
|
|
elseif current == "mcl_blackstone:basalt" then
|
|
minetest.swap_node(pos, {name="xray:mcl_basalt"})
|
|
elseif current == "mcl_nether:netherrack" then
|
|
minetest.swap_node(pos, {name="xray:mcl_netherrack"})
|
|
elseif current == "mcl_deepslate:deepslate" then
|
|
minetest.swap_node(pos, {name="xray:mcl_deepslate"})
|
|
end
|
|
-- Stone, Diorite, Anasite, Granite, etc.
|
|
xray.store[pname] = nps
|
|
end
|
|
|
|
-- Clears all invisible nodes back to their originals (per player)
|
|
xray.clear_pos = function(pname)
|
|
--local player = minetest.get_player_by_name(pname)
|
|
local wps = xray.store[pname] or {}
|
|
for i, v in ipairs(wps) do
|
|
local node = minetest.get_node_or_nil(v)
|
|
if node == nil then
|
|
minetest.log("action", "[oretracker-xray] Failed to obtain node at "..minetest.pos_to_string(v).." for revert ("..i..")")
|
|
end
|
|
node = node.name
|
|
--minetest.log("action", "[oretracker-xray] Reverting "..current)
|
|
-- Place a switch here to identify what node should be put back here
|
|
if node == "xray:mtg_stone" then
|
|
minetest.swap_node(v, {name="default:stone"})
|
|
elseif node == "xray:mtg_dstone" then
|
|
minetest.swap_node(v, {name="default:desert_stone"})
|
|
elseif node == "xray:mtg_sstone" then
|
|
minetest.swap_node(v, {name="default:sandstone"})
|
|
elseif node == "xray:mtg_dsstone" then
|
|
minetest.swap_node(v, {name="default:desert_sandstone"})
|
|
elseif node == "xray:mtg_ssstone" then
|
|
minetest.swap_node(v, {name="default:silver_sandstone"})
|
|
elseif node == "xray:mcl_stone" then
|
|
minetest.swap_node(v, {name="mcl_core:stone"})
|
|
elseif node == "xray:mcl_granite" then
|
|
minetest.swap_node(v, {name="mcl_core:granite"})
|
|
elseif node == "xray:mcl_andesite" then
|
|
minetest.swap_node(v, {name="mcl_core:andesite"})
|
|
elseif node == "xray:mcl_diorite" then
|
|
minetest.swap_node(v, {name="mcl_core:diorite"})
|
|
elseif node == "xray:mcl_sstone" then
|
|
minetest.swap_node(v, {name="mcl_core:sandstone"})
|
|
elseif node == "xray:mcl_rsstone" then
|
|
minetest.swap_node(v, {name="mcl_core:redsandstone"})
|
|
elseif node == "xray:mcl_bstone" then
|
|
minetest.swap_node(v, {name="mcl_blackstone:blackstone"})
|
|
elseif node == "xray:mcl_basalt" then
|
|
minetest.swap_node(v, {name="mcl_blackstone:basalt"})
|
|
elseif node == "xray:mcl_netherrack" then
|
|
minetest.swap_node(v, {name="mcl_nether:netherrack"})
|
|
elseif node == "xray:mcl_deepslate" then
|
|
minetest.swap_node(v, {name="mcl_deepslate:deepslate"})
|
|
end
|
|
end
|
|
xray.store[pname] = {}
|
|
end
|
|
|
|
-- Attempt to repair the damage to this node (In the process of development I found my system made a ball of unrepairable goo, invisible blocks)
|
|
xray.fix_pos = function (pos)
|
|
local node = minetest.get_node_or_nil(pos)
|
|
if node == nil then
|
|
minetest.log("action", "[oretracker-xray] Failed to obtain node at "..minetest.pos_to_string(pos).." for revert (fix_pos)")
|
|
end
|
|
node = node.name
|
|
if node == "xray:mtg_stone" then
|
|
minetest.swap_node(pos, {name="default:stone"})
|
|
elseif node == "xray:mtg_dstone" then
|
|
minetest.swap_node(pos, {name="default:desert_stone"})
|
|
elseif node == "xray:mtg_sstone" then
|
|
minetest.swap_node(pos, {name="default:sandstone"})
|
|
elseif node == "xray:mtg_dsstone" then
|
|
minetest.swap_node(pos, {name="default:desert_sandstone"})
|
|
elseif node == "xray:mtg_ssstone" then
|
|
minetest.swap_node(pos, {name="default:silver_sandstone"})
|
|
elseif node == "xray:mcl_stone" then
|
|
minetest.swap_node(pos, {name="mcl_core:stone"})
|
|
elseif node == "xray:mcl_granite" then
|
|
minetest.swap_node(pos, {name="mcl_core:granite"})
|
|
elseif node == "xray:mcl_andesite" then
|
|
minetest.swap_node(pos, {name="mcl_core:andesite"})
|
|
elseif node == "xray:mcl_diorite" then
|
|
minetest.swap_node(pos, {name="mcl_core:diorite"})
|
|
elseif node == "xray:mcl_sstone" then
|
|
minetest.swap_node(pos, {name="mcl_core:sandstone"})
|
|
elseif node == "xray:mcl_rsstone" then
|
|
minetest.swap_node(pos, {name="mcl_core:redsandstone"})
|
|
elseif node == "xray:mcl_bstone" then
|
|
minetest.swap_node(pos, {name="mcl_blackstone:blackstone"})
|
|
elseif node == "xray:mcl_basalt" then
|
|
minetest.swap_node(pos, {name="mcl_blackstone:basalt"})
|
|
elseif node == "xray:mcl_netherrack" then
|
|
minetest.swap_node(pos, {name="mcl_nether:netherrack"})
|
|
elseif node == "xray:mcl_deepslate" then
|
|
minetest.swap_node(pos, {name="mcl_deepslate:deepslate"})
|
|
end
|
|
end |