minetest_remover/init.lua

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.")