From 5b1a159c17df70b5275cdd92f0e515d46b073ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Sun, 4 Jul 2021 15:22:06 +0200 Subject: add 50 mg note --- init.lua | 123 +++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file 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) -- cgit v1.2.3