minertrade/old_item_atm.lua
2022-05-12 11:32:28 -03:00

116 lines
4.2 KiB
Lua

minetest.register_node("minertrade:atm", {
description = modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."),
--inventory_image = minetest.inventorycube("text_atm_front_1.png"),
--inventory_image = "text_atm_front_1.png",
paramtype = "light",
sunlight_propagates = true,
light_source = default.LIGHT_MAX,
paramtype2 = "facedir",
--legacy_facedir_simple = true, --<=Nao sei para que serve!
is_ground_content = false,
groups = {cracky=1},
--groups = {cracky=3,oddly_breakable_by_hand=3},
--sounds = default.node_sound_glass_defaults(),
tiles = {
--[[
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"default_wood.png",
"text_atm_front_1.png",
--]]
"safe_side.png",
"safe_side.png",
"safe_side.png",
"safe_side.png",
"safe_side.png",
"safe_side.png^text_atm_front.png",
},
on_place = function(itemstack, placer, pointed_thing)
local playername = placer:get_player_name()
if not pointed_thing.type == "node" then
return itemstack
end
local posAbove = pointed_thing.above --acima
local posUnder = pointed_thing.under --abaixo
if not placer or not placer:is_player() or
not minetest.registered_nodes[minetest.get_node(posAbove).name].buildable_to
then --Verifica se pode construir sobre os objetos construiveis
return itemstack
end
local nodeUnder = minetest.get_node(posUnder)
if minetest.registered_nodes[nodeUnder.name].on_rightclick then --Verifica se o itema na mao do jogador tem funcao rightclick
return minetest.registered_nodes[nodeUnder.name].on_rightclick(posUnder, nodeUnder, placer, itemstack)
end
if
minetest.get_player_privs(playername).server
or modMinerTrade.getNodesInRange(posAbove, 2, "minertrade:dispensingmachine")>=1
then
local facedir = minetest.dir_to_facedir(placer:get_look_dir())
--minetest.chat_send_player(playername, "[ATM] aaaaaa")
minetest.set_node(posAbove, {
name = "minertrade:atm",
param2 = facedir,
})
local meta = minetest.get_meta(posAbove)
meta:set_string("infotext", modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."))
local now = os.time() --Em milisegundos
if not minetest.get_player_privs(playername).server then
meta:set_string("opentime", now+modMinerTrade.delayConstruct)
else
meta:set_string("opentime", now)
end
itemstack:take_item() -- itemstack:take_item() = Ok
else
minetest.chat_send_player(playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate("You can not install this 'ATM' too far from a 'Dispensing Machine'!")
)
--return itemstack -- = Cancel
end
return itemstack
end,
on_rightclick = function(pos, node, clicker)
local playername = clicker:get_player_name()
local meta = minetest.get_meta(pos)
meta:set_string("infotext", modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."))
local opentime = tonumber(meta:get_string("opentime")) or 0
local now = os.time() --Em milisegundos
if now >= opentime or minetest.get_player_privs(playername).server then
modMinerTrade.showInventory(
clicker,
playername,
modMinerTrade.translate("PUBLIC ATM - Account of '%s':"):format(playername)
)
else
minetest.sound_play("sfx_failure", {object=clicker, max_hear_distance=5.0,})
minetest.chat_send_player(playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate("The ATM will only run %02d seconds after it is installed!"):format(opentime-now)
)
end
end,
})
minetest.register_craft({
output = 'minertrade:atm',
recipe = {
{"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"},
{"default:steel_ingot" ,"default:obsidian_glass" ,"default:steel_ingot"},
{"default:steel_ingot" ,"default:mese" ,"default:steel_ingot"},
}
})
minetest.register_alias(
modMinerTrade.translate("atm"),
"minertrade:atm"
)