Code reworked and added settingtypes.

master
A.C.M 2020-03-06 18:06:13 +01:00
parent 4eda50552a
commit 6760b622a0
11 changed files with 205 additions and 163 deletions

3
changelog.txt Normal file
View File

@ -0,0 +1,3 @@
Splitted code into the tools.
Added settingtypes to configure.
Updated locale.

View File

@ -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

View File

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

View File

@ -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=

View File

@ -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

117
magnifier_glass.lua Normal file
View File

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

View File

@ -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", ""}
}
})

View File

@ -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
})

View File

@ -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)

View File

@ -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

64
vacuum_cleaner.lua Normal file
View File

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