aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2021-07-04 15:22:06 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2021-07-04 15:22:06 +0200
commit5b1a159c17df70b5275cdd92f0e515d46b073ee1 (patch)
treecef7f5e9b90b080626ed11d884cb5d544a3c6817
parent94b2039207d6e58b5c8e051bb99a0917f516d882 (diff)
downloadatm-5b1a159c17df70b5275cdd92f0e515d46b073ee1.tar.gz
atm-5b1a159c17df70b5275cdd92f0e515d46b073ee1.tar.bz2
atm-5b1a159c17df70b5275cdd92f0e515d46b073ee1.zip
add 50 mg noteHEADmaster
-rw-r--r--init.lua123
1 files changed, 84 insertions, 39 deletions
diff --git a/init.lua b/init.lua
index b8334d8..a8e39c2 100644
--- a/init.lua
+++ b/init.lua
@@ -17,6 +17,39 @@ function atm.ensure_init(name)
atm.balance[name] = atm.startbalance
end
end
+local function atmlog(message)
+ minetest.log("action", "[ATM] "..message)
+end
+
+function atm.pay(name, amount, source)
+ if amount < 0 then
+ return false -- This should be done using withdraw function
+ end
+ atm.ensure_init(name)
+ atm.balance[name] = math.floor(atm.balance[name]+amount)
+ atm.saveaccounts()
+ return true
+end
+
+function atm.withdraw(name, amount, source)
+ if amount > 0 then
+ return false -- This should be done using pay function
+ end
+ atm.ensure_init(name)
+ if amount > atm.balance[name] then
+ atmlog("Player "..name.." tried to withdraw "..amount.." - Not enough money! Reason: "..source)
+ return false
+ end
+ atm.balance[name] = math.floor(atm.balance[name]+amount)
+ atm.saveaccounts()
+ return true
+end
+
+function atm.get_balance(name)
+ atm.ensure_init(name)
+ return atm.balance[name]
+end
+
function atm.showform (player)
atm.ensure_init(player:get_player_name())
@@ -29,12 +62,14 @@ function atm.showform (player)
"label[5.25,0.5;Money output]" ..
"label[2.5,0.15;Your account balance: $".. atm.balance[player:get_player_name()].. "]" ..
"button_exit[2.5,1.5;1,2;Quit;Quit]" ..
- "item_image_button[0.5,1;1,1;".. "currency:minegeld" ..";i1;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[1.5,1;1,1;".. "currency:minegeld_5" ..";i5;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[2.5,1;1,1;".. "currency:minegeld_10" ..";i10;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[4.5,1;1,1;".. "currency:minegeld" ..";i-1;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[5.5,1;1,1;".. "currency:minegeld_5" ..";i-5;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[6.5,1;1,1;".. "currency:minegeld_10" ..";i-10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[0.0,1;1,1;".. "currency:minegeld" ..";i1;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[0.9,1;1,1;".. "currency:minegeld_5" ..";i5;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[1.8,1;1,1;".. "currency:minegeld_10" ..";i10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[2.7,1;1,1;".. "currency:minegeld_50" ..";i50;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[4.3,1;1,1;".. "currency:minegeld" ..";i-1;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[5.2,1;1,1;".. "currency:minegeld_5" ..";i-5;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[6.1,1;1,1;".. "currency:minegeld_10" ..";i-10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[7.0,1;1,1;".. "currency:minegeld_50" ..";i-50;\n\n\b\b\b\b\b" .. "1" .."]" ..
"list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]"..
"listring[]"..
@@ -56,18 +91,22 @@ function atm.showform2 (player)
"label[5.25,0.5;Money output]" ..
"label[2.5,0.15;Your account balance: $".. atm.balance[player:get_player_name()].. "]" ..
"button_exit[2.5,2.5;1,2;Quit;Quit]" ..
- "item_image_button[0.5,1;1,1;".. "currency:minegeld" ..";i1;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[1.5,1;1,1;".. "currency:minegeld_5" ..";i5;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[2.5,1;1,1;".. "currency:minegeld_10" ..";i10;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[4.5,1;1,1;".. "currency:minegeld" ..";i-1;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[5.5,1;1,1;".. "currency:minegeld_5" ..";i-5;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[6.5,1;1,1;".. "currency:minegeld_10" ..";i-10;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[0.5,2;1,1;".. "currency:minegeld" ..";t10;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[1.5,2;1,1;".. "currency:minegeld_5" ..";t50;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[2.5,2;1,1;".. "currency:minegeld_10" ..";t100;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[4.5,2;1,1;".. "currency:minegeld" ..";t-10;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[5.5,2;1,1;".. "currency:minegeld_5" ..";t-50;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[6.5,2;1,1;".. "currency:minegeld_10" ..";t-100;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[0.0,1;1,1;".. "currency:minegeld" ..";i1;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[0.9,1;1,1;".. "currency:minegeld_5" ..";i5;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[1.8,1;1,1;".. "currency:minegeld_10" ..";i10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[2.7,1;1,1;".. "currency:minegeld_50" ..";i50;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[4.3,1;1,1;".. "currency:minegeld" ..";i-1;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[5.2,1;1,1;".. "currency:minegeld_5" ..";i-5;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[6.1,1;1,1;".. "currency:minegeld_10" ..";i-10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[7.0,1;1,1;".. "currency:minegeld_50" ..";i-50;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[0.0,2;1,1;".. "currency:minegeld" ..";t10;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[0.9,2;1,1;".. "currency:minegeld_5" ..";t50;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[1.8,2;1,1;".. "currency:minegeld_10" ..";t100;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[2.7,2;1,1;".. "currency:minegeld_50" ..";t500;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[4.3,2;1,1;".. "currency:minegeld" ..";t-10;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[5.2,2;1,1;".. "currency:minegeld_5" ..";t-50;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[6.1,2;1,1;".. "currency:minegeld_10" ..";t-100;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[7.0,2;1,1;".. "currency:minegeld_50" ..";t-500;\n\n\b\b\b\b\b" .. "10" .."]" ..
"list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]"..
"listring[]"..
@@ -89,24 +128,30 @@ function atm.showform3 (player)
"label[5.25,0.5;Money output]" ..
"label[2.5,0.15;Your account balance: $".. atm.balance[player:get_player_name()].. "]" ..
"button_exit[3.5,2.75;1,2;Quit;Quit]" ..
- "item_image_button[0.5,1;1,1;".. "currency:minegeld" ..";i1;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[1.5,1;1,1;".. "currency:minegeld_5" ..";i5;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[2.5,1;1,1;".. "currency:minegeld_10" ..";i10;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[4.5,1;1,1;".. "currency:minegeld" ..";i-1;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[5.5,1;1,1;".. "currency:minegeld_5" ..";i-5;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[6.5,1;1,1;".. "currency:minegeld_10" ..";i-10;\n\n\b\b\b\b\b" .. "1" .."]" ..
- "item_image_button[0.5,2;1,1;".. "currency:minegeld" ..";t10;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[1.5,2;1,1;".. "currency:minegeld_5" ..";t50;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[2.5,2;1,1;".. "currency:minegeld_10" ..";t100;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[4.5,2;1,1;".. "currency:minegeld" ..";t-10;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[5.5,2;1,1;".. "currency:minegeld_5" ..";t-50;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[6.5,2;1,1;".. "currency:minegeld_10" ..";t-100;\n\n\b\b\b\b\b" .. "10" .."]" ..
- "item_image_button[0.5,3;1,1;".. "currency:minegeld" ..";c100;\n\n\b\b\b\b\b" .. "100" .."]" ..
- "item_image_button[1.5,3;1,1;".. "currency:minegeld_5" ..";c500;\n\n\b\b\b\b\b" .. "100" .."]" ..
- "item_image_button[2.5,3;1,1;".. "currency:minegeld_10" ..";c1000;\n\n\b\b\b\b\b" .. "100" .."]" ..
- "item_image_button[4.5,3;1,1;".. "currency:minegeld" ..";c-100;\n\n\b\b\b\b\b" .. "100" .."]" ..
- "item_image_button[5.5,3;1,1;".. "currency:minegeld_5" ..";c-500;\n\n\b\b\b\b\b" .. "100" .."]" ..
- "item_image_button[6.5,3;1,1;".. "currency:minegeld_10" ..";c-1000;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[0.0,1;1,1;".. "currency:minegeld" ..";i1;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[0.9,1;1,1;".. "currency:minegeld_5" ..";i5;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[1.8,1;1,1;".. "currency:minegeld_10" ..";i10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[2.7,1;1,1;".. "currency:minegeld_50" ..";i50;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[4.3,1;1,1;".. "currency:minegeld" ..";i-1;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[5.2,1;1,1;".. "currency:minegeld_5" ..";i-5;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[6.1,1;1,1;".. "currency:minegeld_10" ..";i-10;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[7.0,1;1,1;".. "currency:minegeld_50" ..";i-50;\n\n\b\b\b\b\b" .. "1" .."]" ..
+ "item_image_button[0.0,2;1,1;".. "currency:minegeld" ..";t10;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[0.9,2;1,1;".. "currency:minegeld_5" ..";t50;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[1.8,2;1,1;".. "currency:minegeld_10" ..";t100;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[2.7,2;1,1;".. "currency:minegeld_50" ..";t500;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[4.3,2;1,1;".. "currency:minegeld" ..";t-10;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[5.2,2;1,1;".. "currency:minegeld_5" ..";t-50;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[6.1,2;1,1;".. "currency:minegeld_10" ..";t-100;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[7.0,2;1,1;".. "currency:minegeld_50" ..";t-500;\n\n\b\b\b\b\b" .. "10" .."]" ..
+ "item_image_button[0.0,3;1,1;".. "currency:minegeld" ..";c100;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[0.9,3;1,1;".. "currency:minegeld_5" ..";c500;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[1.8,3;1,1;".. "currency:minegeld_10" ..";c1000;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[2.7,3;1,1;".. "currency:minegeld_50" ..";c5000;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[4.3,3;1,1;".. "currency:minegeld" ..";c-100;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[5.2,3;1,1;".. "currency:minegeld_5" ..";c-500;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[6.1,3;1,1;".. "currency:minegeld_10" ..";c-1000;\n\n\b\b\b\b\b" .. "100" .."]" ..
+ "item_image_button[7.0,3;1,1;".. "currency:minegeld_50" ..";c-5000;\n\n\b\b\b\b\b" .. "100" .."]" ..
"list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]"..
"listring[]"..
@@ -349,7 +394,7 @@ minetest.register_on_player_receive_fields(function(player, form, pressed)
local pinv=player:get_inventory()
-- single note transactions
- for _,i in pairs({1, 5, 10, -1, -5, -10}) do
+ for _,i in pairs({1, 5, 10, 50, -1, -5, -10, -50}) do
if pressed["i"..i] then
transaction.amount = i
transaction.denomination = '_' .. math.abs(i)
@@ -362,7 +407,7 @@ minetest.register_on_player_receive_fields(function(player, form, pressed)
end
-- 10x banknote transactions
- for _,t in pairs({10, 50, 100, -10, -50, -100}) do
+ for _,t in pairs({10, 50, 100, 500, -10, -50, -100, -500}) do
if pressed["t"..t] then
transaction.amount = t
transaction.denomination = '_' .. math.abs(t/10)
@@ -375,7 +420,7 @@ minetest.register_on_player_receive_fields(function(player, form, pressed)
end
-- 100x banknote transactions
- for _,c in pairs({100, 500, 1000, -100, -500, -1000}) do
+ for _,c in pairs({100, 500, 1000, 5000, -100, -500, -1000, -5000}) do
if pressed["c"..c] then
transaction.amount = c
transaction.denomination = '_' .. math.abs(c/100)