167 lines
4.9 KiB
Lua
Executable File
167 lines
4.9 KiB
Lua
Executable File
local modname = minetest.get_current_modname()
|
|
local modpath = minetest.get_modpath(modname)
|
|
local strategie = nil
|
|
|
|
-- Strategies
|
|
-- strategie = "fast.lua"
|
|
-- strategie = "slow.lua"
|
|
-- strategie = "super_fast.lua"
|
|
|
|
if(strategie ~= nil) then
|
|
print("[".. modname .. "] starts now " .. moddir .. "/" .. strategie)
|
|
-- Now start the Remover
|
|
dofile(modpath .. "/" .. strategie)
|
|
|
|
end -- if(strategie
|
|
|
|
local S
|
|
|
|
if(minetest.get_modpath("intllib")) then
|
|
S = dofile(modpath .."/intllib.lua")
|
|
print("[MOD] " .. modname .. ": translating in intllib-mode.")
|
|
|
|
else
|
|
S = minetest.get_translator(modname)
|
|
print("[MOD] " .. modname .. ": translating in minetest-mode.")
|
|
|
|
end -- if(minetest.get_modpath(
|
|
|
|
|
|
local remover = {}
|
|
|
|
remover.green = '#00FF00'
|
|
remover.red = '#FF0000'
|
|
remover.orange = '#FF6700'
|
|
remover.blue = '#0000FF'
|
|
remover.yellow = '#FFFF00'
|
|
remover.purple = '#FF00FF'
|
|
remover.pink = '#FFAAFF'
|
|
remover.white = '#FFFFFF'
|
|
remover.black = '#000000'
|
|
remover.grey = '#888888'
|
|
remover.light_blue = '#8888FF'
|
|
remover.light_green = '#88FF88'
|
|
remover.light_red = '#FF8888'
|
|
remover.none = 99
|
|
|
|
-- magnifier
|
|
|
|
minetest.register_craftitem(modname .. ":magnifier", {
|
|
description = S("Magnifying Glass"),
|
|
inventory_image = "remover_magnifier.png",
|
|
stack_max = 1,
|
|
liquids_pointable = true,
|
|
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
|
|
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
|
local name = user:get_player_name()
|
|
|
|
remover.show_node(name, pos)
|
|
|
|
end,
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = modname .. ":magnifier",
|
|
recipe = {
|
|
{"default:glass", "default:mese_crystal_fragment"},
|
|
{"default:stick", ""}
|
|
}
|
|
})
|
|
|
|
-- Moving from Chathelp to Remover
|
|
minetest.register_alias("chathelp:magnifier", modname .. ":magnifier")
|
|
|
|
-- Shows Information about an Item you point on it
|
|
function remover.show_node(name, pos)
|
|
|
|
if pos then
|
|
|
|
local node = minetest.get_node(pos)
|
|
local light = minetest.get_node_light(pos)
|
|
local dlight = minetest.get_node_light({x=pos.x, y=pos.y -1, z=pos.z})
|
|
local ulight = minetest.get_node_light({x=pos.x, y=pos.y +1, z=pos.z})
|
|
local nodepos = minetest.pos_to_string(pos)
|
|
local protected = minetest.is_protected(pos, name)
|
|
|
|
remover.print(name, S("Name of the Node: "), remover.purple)
|
|
remover.print(name, node.name, remover.green)
|
|
remover.print(name, S("Located at: ") .. nodepos, remover.green)
|
|
remover.print(name, S("Light on the Node: ") .. light .. ".", remover.yellow)
|
|
remover.print(name, S("Light above: ") .. ulight .. ".", remover.yellow)
|
|
remover.print(name, S("Light under: ") .. dlight .. ".", remover.yellow)
|
|
|
|
if(protected) then
|
|
remover.print(name, S("Is protected? Yes."), remover.white)
|
|
else
|
|
remover.print(name, S("Is protected: No."), remover.white)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name] ~= nil) then
|
|
if(minetest.registered_nodes[node.name].diggable) then
|
|
remover.print(name, S("Is diggable."), remover.orange)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].walkable) then
|
|
remover.print(name, S("Is walkable."), remover.orange)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].climbable) then
|
|
remover.print(name, S("Is climbable."), remover.orange)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].buildable_to) then
|
|
remover.print(name, S("Is replaceable."), remover.orange)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].liquid_renewable) then
|
|
remover.print(name, S("Is regenerateable."), remover.orange)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].use_texture_alpha) then
|
|
remover.print(name, S("Has an alpha-channel."), remover.orange)
|
|
--remover.print(name, S("With a transparency of ") .. 255 - minetest.registered_nodes[node.name].alpha .. " / 255.", remover.light_blue)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].sunlight_propagates) then
|
|
remover.print(name, S("Light shines trough."), remover.orange)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].light_source > 0) then
|
|
remover.print(name, S("Shines with Lightlevel ") .. minetest.registered_nodes[node.name].light_source .. " / 15.", remover.light_blue)
|
|
end
|
|
|
|
if(minetest.registered_nodes[node.name].damage_per_second > 0) then
|
|
remover.print(name, S("Deals with ") .. minetest.registered_nodes[node.name].damage_per_second .. S(" Points Damage per Second."), remover.light_green)
|
|
end
|
|
|
|
remover.print(name, S("Stacks with ") .. minetest.registered_nodes[node.name].stack_max .. S(" Items / Stack."), remover.light_red)
|
|
else
|
|
remover.print(name, S("Node unknown!"), remover.red)
|
|
end
|
|
|
|
else
|
|
|
|
remover.print(name, S("Pointed on no Node."), remover.red)
|
|
|
|
end
|
|
|
|
end -- remover.show_me()
|
|
|
|
-- Writes a Message in a specific color or Logs it
|
|
function remover.print(name, message, color)
|
|
|
|
if(color ~= remover.none) then
|
|
minetest.chat_send_player(name, core.colorize(color, message))
|
|
return
|
|
|
|
else
|
|
minetest.chat_send_player(name, message)
|
|
return
|
|
end
|
|
|
|
end -- print_message()
|
|
|
|
print("["..modname .. "] loaded.")
|