2017-03-13 18:26:38 -03:00
minetest.register_node ( " minertrade:atm " , {
2017-03-15 17:34:41 -03:00
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. " ) ,
2017-03-13 18:26:38 -03:00
--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 " ,
2017-03-13 18:47:26 -03:00
2017-03-13 18:26:38 -03:00
--legacy_facedir_simple = true, --<=Nao sei para que serve!
2017-03-13 18:47:26 -03:00
is_ground_content = false ,
groups = { cracky = 1 } ,
--groups = {cracky=3,oddly_breakable_by_hand=3},
--sounds = default.node_sound_glass_defaults(),
2017-03-13 18:26:38 -03:00
tiles = {
2017-03-13 18:47:26 -03:00
--[[
2017-03-13 18:26:38 -03:00
" default_wood.png " ,
" default_wood.png " ,
" default_wood.png " ,
" default_wood.png " ,
" default_wood.png " ,
" text_atm_front_1.png " ,
2017-03-13 18:47:26 -03:00
--]]
" safe_side.png " ,
" safe_side.png " ,
" safe_side.png " ,
" safe_side.png " ,
" safe_side.png " ,
2018-05-07 13:25:27 -03:00
" safe_side.png^text_atm_front.png " ,
2017-03-13 18:26:38 -03:00
} ,
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 )
2017-03-15 17:34:41 -03:00
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. " ) )
2017-03-13 18:26:38 -03:00
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
2017-03-23 13:35:54 -03:00
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'! " )
)
2017-03-13 18:26:38 -03:00
--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 )
2017-03-15 17:34:41 -03:00
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. " ) )
2017-03-13 18:26:38 -03:00
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
local inv = modMinerTrade.getDetachedInventory ( playername )
minetest.show_formspec (
playername ,
" safe_ " .. playername ,
2018-05-07 06:22:58 -03:00
modMinerTrade.getFormspec (
playername ,
modMinerTrade.translate ( " PUBLIC ATM - Account of '%s': " ) : format ( playername )
)
2017-03-13 18:26:38 -03:00
)
else
2017-03-23 13:35:54 -03:00
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 )
)
2017-03-13 18:26:38 -03:00
end
end ,
} )
minetest.register_craft ( {
output = ' minertrade:atm ' ,
recipe = {
2017-03-13 18:47:26 -03:00
{ " 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 " } ,
2017-03-13 18:26:38 -03:00
}
} )
2017-03-15 17:34:41 -03:00
minetest.register_alias (
modMinerTrade.translate ( " atm " ) ,
" minertrade:atm "
)