Code reworked and added settingtypes.
parent
4eda50552a
commit
6760b622a0
|
@ -0,0 +1,3 @@
|
|||
Splitted code into the tools.
|
||||
Added settingtypes to configure.
|
||||
Updated locale.
|
104
functions.lua
104
functions.lua
|
@ -1,81 +1,5 @@
|
|||
local S = userfull_gadgets.S
|
||||
|
||||
-- Shows Information about an Item you point on it
|
||||
function userfull_gadgets.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)
|
||||
|
||||
userfull_gadgets.print(name, S("Name of the Node: "), userfull_gadgets.purple)
|
||||
userfull_gadgets.print(name, node.name, userfull_gadgets.green)
|
||||
userfull_gadgets.print(name, S("Located at: ") .. nodepos, userfull_gadgets.green)
|
||||
userfull_gadgets.print(name, S("Light on the Node: ") .. light .. ".", userfull_gadgets.yellow)
|
||||
userfull_gadgets.print(name, S("Light above: ") .. ulight .. ".", userfull_gadgets.yellow)
|
||||
userfull_gadgets.print(name, S("Light under: ") .. dlight .. ".", userfull_gadgets.yellow)
|
||||
|
||||
if(protected) then
|
||||
userfull_gadgets.print(name, S("Is protected? Yes."), userfull_gadgets.white)
|
||||
else
|
||||
userfull_gadgets.print(name, S("Is protected: No."), userfull_gadgets.white)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name] ~= nil) then
|
||||
if(minetest.registered_nodes[node.name].diggable) then
|
||||
userfull_gadgets.print(name, S("Is diggable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].walkable) then
|
||||
userfull_gadgets.print(name, S("Is walkable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].climbable) then
|
||||
userfull_gadgets.print(name, S("Is climbable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].buildable_to) then
|
||||
userfull_gadgets.print(name, S("Is replaceable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].liquid_renewable) then
|
||||
userfull_gadgets.print(name, S("Is regenerateable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].use_texture_alpha) then
|
||||
userfull_gadgets.print(name, S("Has an alpha-channel."), userfull_gadgets.orange)
|
||||
userfull_gadgets.print(name, S("With a transparency of ") .. 255 - minetest.registered_nodes[node.name].alpha .. " / 255.", userfull_gadgets.light_blue)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].sunlight_propagates) then
|
||||
userfull_gadgets.print(name, S("Light shines trough."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].light_source > 0) then
|
||||
userfull_gadgets.print(name, S("Shines with Lightlevel ") .. minetest.registered_nodes[node.name].light_source .. " / 15.", userfull_gadgets.light_blue)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].damage_per_second > 0) then
|
||||
userfull_gadgets.print(name, S("Deals with ") .. minetest.registered_nodes[node.name].damage_per_second .. S(" Points Damage per Second."), userfull_gadgets.light_green)
|
||||
end
|
||||
|
||||
userfull_gadgets.print(name, S("Stacks with ") .. minetest.registered_nodes[node.name].stack_max .. S(" Items / Stack."), userfull_gadgets.light_red)
|
||||
else
|
||||
userfull_gadgets.print(name, S("Node unknown!"), userfull_gadgets.red)
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
userfull_gadgets.print(name, S("Pointed on no Node."), userfull_gadgets.red)
|
||||
|
||||
end
|
||||
|
||||
end -- userfull_gadgets.show_me()
|
||||
|
||||
-- Writes a Message in a specific color or Logs it
|
||||
function userfull_gadgets.print(name, message, color)
|
||||
|
||||
|
@ -89,31 +13,3 @@ function userfull_gadgets.print(name, message, color)
|
|||
end
|
||||
|
||||
end -- userfull_gadgets.print_message()
|
||||
|
||||
-- Code taken form technic
|
||||
-- (c) 2012-2013 by RealBadAngel <mk@realbadangel.pl>
|
||||
function userfull_gadgets.vacuumize(itemstack, user, pointed_thing)
|
||||
local pos = user:getpos()
|
||||
local inv = user:get_inventory()
|
||||
local vacuum_range = userfull_gadgets.settings.vacuum_range
|
||||
|
||||
for _, object in ipairs(minetest.get_objects_inside_radius(pos, vacuum_range)) do
|
||||
local luaentity = object:get_luaentity()
|
||||
|
||||
if not object:is_player() and luaentity and luaentity.name == "__builtin:item" and luaentity.itemstring ~= "" then
|
||||
|
||||
if inv and inv:room_for_item("main", ItemStack(luaentity.itemstring)) then
|
||||
inv:add_item("main", ItemStack(luaentity.itemstring))
|
||||
minetest.sound_play("userfull_gadgets_vacuumcleaner", {
|
||||
to_player = user:get_player_name(),
|
||||
})
|
||||
luaentity.itemstring = ""
|
||||
object:remove()
|
||||
|
||||
end -- if inv and
|
||||
|
||||
end -- if not object:is_player
|
||||
|
||||
end -- for _, object
|
||||
|
||||
end -- function userfull_gadgets.vacuumize
|
||||
|
|
6
init.lua
6
init.lua
|
@ -31,8 +31,8 @@ userfull_gadgets.none = 99
|
|||
|
||||
dofile(userfull_gadgets.modpath .. "/settings.lua")
|
||||
dofile(userfull_gadgets.modpath .. "/functions.lua")
|
||||
dofile(userfull_gadgets.modpath .. "/register_nodes.lua")
|
||||
dofile(userfull_gadgets.modpath .. "/recipes.lua")
|
||||
dofile(userfull_gadgets.modpath .. "/vacuum_cleaner.lua")
|
||||
dofile(userfull_gadgets.modpath .. "/magnifier_glass.lua")
|
||||
|
||||
print("[MOD]" .. userfull_gadgets.modname .. " Version " .. userfull_gadgets.vers .. " successfully loaded.")
|
||||
--print("[MOD]" .. userfull_gadgets.modname .. " Version " .. userfull_gadgets.vers .. " successfully loaded.")
|
||||
minetest.log("[MOD]" .. userfull_gadgets.modname .. " Version " .. userfull_gadgets.vers .. " successfully loaded.")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# textdomain: userfull_gadgets
|
||||
|
||||
|
||||
### functions.lua ###
|
||||
### magnifier_glass.lua ###
|
||||
|
||||
Items / Stack.=
|
||||
Points Damage per Second.=
|
||||
|
@ -19,6 +19,7 @@ Light on the Node: =
|
|||
Light shines trough.=
|
||||
Light under: =
|
||||
Located at: =
|
||||
Magnifying Glass=
|
||||
Name of the Node: =
|
||||
Node unknown!=
|
||||
Pointed on no Node.=
|
||||
|
@ -26,7 +27,6 @@ Shines with Lightlevel =
|
|||
Stacks with =
|
||||
With a transparency of =
|
||||
|
||||
### register_nodes.lua ###
|
||||
### vacuum_cleaner.lua ###
|
||||
|
||||
Magnifying Glass=
|
||||
Vacuum Cleaner=
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# textdomain: userfull_gadgets
|
||||
|
||||
|
||||
### functions.lua ###
|
||||
### magnifier_glass.lua ###
|
||||
|
||||
Items / Stack.= Stück / Stapel.
|
||||
Points Damage per Second.= Punkte Schaden pro Sekunde.
|
||||
|
@ -19,6 +19,7 @@ Light on the Node: =Licht im Block:
|
|||
Light shines trough.=Licht scheint durch.
|
||||
Light under: =Lichtstärke darunter:
|
||||
Located at: =Gefunden bei:
|
||||
Magnifying Glass=Vergrößerungsglas
|
||||
Name of the Node: =Name des Blockes:
|
||||
Node unknown!=Block unbekannt!
|
||||
Pointed on no Node.=Zeigt auf keinen Block.
|
||||
|
@ -26,7 +27,6 @@ Shines with Lightlevel =Scheint mit einer Lichtstärke von
|
|||
Stacks with =Stapelbar bis zu
|
||||
With a transparency of =Mit einer Transparenz von
|
||||
|
||||
### register_nodes.lua ###
|
||||
### vacuum_cleaner.lua ###
|
||||
|
||||
Magnifying Glass=Vergrößerungsglas
|
||||
Vacuum Cleaner=Staubsauger
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
local S = userfull_gadgets.S
|
||||
|
||||
local report = ""
|
||||
|
||||
if userfull_gadgets.settings.magnifier then
|
||||
report = "on"
|
||||
|
||||
-- Shows Information about an Item you point on it
|
||||
function userfull_gadgets.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)
|
||||
|
||||
userfull_gadgets.print(name, S("Name of the Node: "), userfull_gadgets.purple)
|
||||
userfull_gadgets.print(name, node.name, userfull_gadgets.green)
|
||||
userfull_gadgets.print(name, S("Located at: ") .. nodepos, userfull_gadgets.green)
|
||||
userfull_gadgets.print(name, S("Light on the Node: ") .. light .. ".", userfull_gadgets.yellow)
|
||||
userfull_gadgets.print(name, S("Light above: ") .. ulight .. ".", userfull_gadgets.yellow)
|
||||
userfull_gadgets.print(name, S("Light under: ") .. dlight .. ".", userfull_gadgets.yellow)
|
||||
|
||||
if(protected) then
|
||||
userfull_gadgets.print(name, S("Is protected? Yes."), userfull_gadgets.white)
|
||||
else
|
||||
userfull_gadgets.print(name, S("Is protected: No."), userfull_gadgets.white)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name] ~= nil) then
|
||||
if(minetest.registered_nodes[node.name].diggable) then
|
||||
userfull_gadgets.print(name, S("Is diggable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].walkable) then
|
||||
userfull_gadgets.print(name, S("Is walkable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].climbable) then
|
||||
userfull_gadgets.print(name, S("Is climbable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].buildable_to) then
|
||||
userfull_gadgets.print(name, S("Is replaceable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].liquid_renewable) then
|
||||
userfull_gadgets.print(name, S("Is regenerateable."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].use_texture_alpha) then
|
||||
userfull_gadgets.print(name, S("Has an alpha-channel."), userfull_gadgets.orange)
|
||||
userfull_gadgets.print(name, S("With a transparency of ") .. 255 - minetest.registered_nodes[node.name].alpha .. " / 255.", userfull_gadgets.light_blue)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].sunlight_propagates) then
|
||||
userfull_gadgets.print(name, S("Light shines trough."), userfull_gadgets.orange)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].light_source > 0) then
|
||||
userfull_gadgets.print(name, S("Shines with Lightlevel ") .. minetest.registered_nodes[node.name].light_source .. " / 15.", userfull_gadgets.light_blue)
|
||||
end
|
||||
|
||||
if(minetest.registered_nodes[node.name].damage_per_second > 0) then
|
||||
userfull_gadgets.print(name, S("Deals with ") .. minetest.registered_nodes[node.name].damage_per_second .. S(" Points Damage per Second."), userfull_gadgets.light_green)
|
||||
end
|
||||
|
||||
userfull_gadgets.print(name, S("Stacks with ") .. minetest.registered_nodes[node.name].stack_max .. S(" Items / Stack."), userfull_gadgets.light_red)
|
||||
else
|
||||
userfull_gadgets.print(name, S("Node unknown!"), userfull_gadgets.red)
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
userfull_gadgets.print(name, S("Pointed on no Node."), userfull_gadgets.red)
|
||||
|
||||
end
|
||||
|
||||
end -- userfull_gadgets.show_me()
|
||||
|
||||
|
||||
-- Magnifier
|
||||
minetest.register_craftitem("userfull_gadgets:magnifier", {
|
||||
description = S("Magnifying Glass"),
|
||||
inventory_image = "userfull_gadgets_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()
|
||||
|
||||
userfull_gadgets.show_node(name, pos)
|
||||
|
||||
end,-- on_use
|
||||
})
|
||||
|
||||
-- Recipe for Magnifier
|
||||
minetest.register_craft({
|
||||
output = "userfull_gadgets:magnifier",
|
||||
recipe = {
|
||||
{"default:glass", "default:mese_crystal_fragment"},
|
||||
{"default:stick", ""}
|
||||
}
|
||||
})
|
||||
|
||||
else
|
||||
report = "off"
|
||||
|
||||
end
|
||||
|
||||
--print("[MOD] " .. userfull_gadgets.modname .. " Magnifier Glass turned " .. report .. ".")
|
||||
minetest.log("[MOD] " .. userfull_gadgets.modname .. " Magnifier Glass turned " .. report .. ".")
|
16
recipes.lua
16
recipes.lua
|
@ -1,16 +0,0 @@
|
|||
minetest.register_craft({
|
||||
output = "userfull_gadgets:vacuum",
|
||||
recipe = { {"default:steel_ingot", "default:papyrus", "group:wool"},
|
||||
{"", "default:papyrus", ""},
|
||||
{"default:mese", "default:chest", "default:mese"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "userfull_gadgets:magnifier",
|
||||
recipe = {
|
||||
{"default:glass", "default:mese_crystal_fragment"},
|
||||
{"default:stick", ""}
|
||||
}
|
||||
})
|
|
@ -1,31 +0,0 @@
|
|||
-- get Boilerplate
|
||||
local S = userfull_gadgets.S
|
||||
|
||||
-- Vacuum-cleaner
|
||||
minetest.register_tool("userfull_gadgets:vacuum", {
|
||||
description = S("Vacuum Cleaner"),
|
||||
inventory_image = "userfull_gadgets_vacuum.png",
|
||||
stack_max = 1,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
userfull_gadgets.vacuumize(itemstack, user, pointed_thing)
|
||||
|
||||
end, -- on_use
|
||||
})
|
||||
|
||||
|
||||
-- magnifier
|
||||
minetest.register_craftitem("userfull_gadgets:magnifier", {
|
||||
description = S("Magnifying Glass"),
|
||||
inventory_image = "userfull_gadgets_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()
|
||||
|
||||
userfull_gadgets.show_node(name, pos)
|
||||
|
||||
end,-- on_use
|
||||
})
|
|
@ -2,6 +2,5 @@ local ug = "userfull_gadgets.settings."
|
|||
|
||||
-- Set's the range of the Vacuum_Cleaner
|
||||
userfull_gadgets.settings.vacuum_range = tonumber(minetest.settings:get(ug .. "vacuum_range")) or 8
|
||||
|
||||
print("[MOD]" .. userfull_gadgets.modname .. ": Vacuum_range is set to " .. userfull_gadgets.settings.vacuum_range)
|
||||
minetest.log("[MOD]" .. userfull_gadgets.modname .. ": Vacuum_range is set to " .. userfull_gadgets.settings.vacuum_range)
|
||||
userfull_gadgets.settings.vacuum_cleaner = minetest.settings:get_bool(ug .. "vacuum_cleaner", true)
|
||||
userfull_gadgets.settings.magnifier = minetest.settings:get_bool(ug .. "magnifier", true)
|
||||
|
|
|
@ -2,3 +2,13 @@
|
|||
# default = 8
|
||||
# set's the Radius of the vacuum_cleaner
|
||||
userfull_gadgets.settings.vacuum_range (Radius) int 8
|
||||
|
||||
#vacuum_cleaner
|
||||
# default = true
|
||||
# Turns the Vaccuum Cleaner on or off
|
||||
userfull_gadgets.settings.vacuum_cleaner (Turn on or off) bool true
|
||||
|
||||
#magnifier
|
||||
# default = true
|
||||
# Turns the Magnifier on or off
|
||||
userfull_gadgets.settings.magnifier (Turn on or off) bool true
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
local S = userfull_gadgets.S
|
||||
local report = ""
|
||||
|
||||
if userfull_gadgets.settings.vacuum_cleaner then
|
||||
report = "on"
|
||||
|
||||
-- Code taken form technic
|
||||
-- (c) 2012-2013 by RealBadAngel <mk@realbadangel.pl>
|
||||
function userfull_gadgets.vacuumize(itemstack, user, pointed_thing)
|
||||
local pos = user:getpos()
|
||||
local inv = user:get_inventory()
|
||||
local vacuum_range = userfull_gadgets.settings.vacuum_range
|
||||
|
||||
for _, object in ipairs(minetest.get_objects_inside_radius(pos, vacuum_range)) do
|
||||
local luaentity = object:get_luaentity()
|
||||
|
||||
if not object:is_player() and luaentity and luaentity.name == "__builtin:item" and luaentity.itemstring ~= "" then
|
||||
|
||||
if inv and inv:room_for_item("main", ItemStack(luaentity.itemstring)) then
|
||||
inv:add_item("main", ItemStack(luaentity.itemstring))
|
||||
minetest.sound_play("userfull_gadgets_vacuumcleaner", {
|
||||
to_player = user:get_player_name(),
|
||||
})
|
||||
luaentity.itemstring = ""
|
||||
object:remove()
|
||||
|
||||
end -- if inv and
|
||||
|
||||
end -- if not object:is_player
|
||||
|
||||
end -- for _, object
|
||||
|
||||
end -- function userfull_gadgets.vacuumize
|
||||
|
||||
-- Register Vacuum Cleaner
|
||||
minetest.register_tool("userfull_gadgets:vacuum", {
|
||||
description = S("Vacuum Cleaner"),
|
||||
inventory_image = "userfull_gadgets_vacuum.png",
|
||||
stack_max = 1,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
userfull_gadgets.vacuumize(itemstack, user, pointed_thing)
|
||||
|
||||
end, -- on_use
|
||||
})
|
||||
|
||||
-- Recipe for Vacuum Cleaner
|
||||
minetest.register_craft({
|
||||
output = "userfull_gadgets:vacuum",
|
||||
recipe = { {"default:steel_ingot", "default:papyrus", "group:wool"},
|
||||
{"", "default:papyrus", ""},
|
||||
{"default:mese", "default:chest", "default:mese"}
|
||||
}
|
||||
})
|
||||
|
||||
--print("[MOD]" .. userfull_gadgets.modname .. ": Vacuum_range is set to " .. userfull_gadgets.settings.vacuum_range)
|
||||
minetest.log("[MOD]" .. userfull_gadgets.modname .. ": Vacuum_range is set to " .. userfull_gadgets.settings.vacuum_range)
|
||||
|
||||
else
|
||||
report = "off"
|
||||
|
||||
end
|
||||
|
||||
--print("[MOD] " .. userfull_gadgets.modname .. " Vacuum Cleaner turned " .. report .. ".")
|
||||
minetest.log("[MOD] " .. userfull_gadgets.modname .. " Vacuum Cleaner turned " .. report .. ".")
|
Loading…
Reference in New Issue