Melhorando a estética do Saldo e do Extrato

This commit is contained in:
Lunovox 2022-05-14 21:41:54 -03:00
parent f7b32dcdad
commit 831e35eaef
3 changed files with 76 additions and 17 deletions

View file

@ -61,6 +61,7 @@ modMinerTrade.createAcount = function(playername)
modMinerTrade.bank.player[playername] = { modMinerTrade.bank.player[playername] = {
account_created = os.date("%Y-%B-%d %Hh:%Mm:%Ss"), account_created = os.date("%Y-%B-%d %Hh:%Mm:%Ss"),
balance = 0, balance = 0,
total_transactions = 0,
statement = { } statement = { }
} }
--modMinerTrade.bank.player[playername].account_created --modMinerTrade.bank.player[playername].account_created
@ -89,17 +90,53 @@ modMinerTrade.addBalance = function(playername, value)
return false return false
end end
modMinerTrade.getMaxStatements = function() --MÁXIMO DE EXTRATOS ARMAZENADOS.
local maxStatements = minetest.settings:get("minertrade.bank.max_statements")
if maxStatements == nil
or type(tonumber(maxStatements)) ~= "number"
or tonumber(maxStatements) < 1
or tonumber(maxStatements) > 300
then
maxStatements = 30
minetest.settings:set("minertrade.bank.max_statements", tostring(maxStatements))
end
return tonumber(maxStatements)
end
modMinerTrade.getTotalTransactions = function(playername) --TOTAL DE MOVIMENTAÇOES FINANCEIRAS DESDE ACRIACAO DA CONTA.
if modMinerTrade.isExistAcount(playername) then
return modMinerTrade.bank.player[playername].total_transactions or 0
end
return 0
end
modMinerTrade.addStatement = function(playername, value, description) modMinerTrade.addStatement = function(playername, value, description)
if value ~= nil and type(value) == "number" and value ~= 0 then if value ~= nil and type(value) == "number" and value ~= 0 then
if modMinerTrade.isExistAcount(playername) then if modMinerTrade.isExistAcount(playername) then
local myStatement = modMinerTrade.getStatement(playername)
local totalTransactions = modMinerTrade.getTotalTransactions(playername)
if myStatement ~= nil
and type(myStatement)
and #myStatement >= 1
then
local maxStatements = modMinerTrade.getMaxStatements()
if #myStatement >= maxStatements then
local toDelete = (#myStatement - maxStatements) + 1
for i = toDelete, 1, -1 do
table.remove (myStatement, i)
end
end
end
table.insert( table.insert(
modMinerTrade.bank.player[playername].statement, myStatement,
{ {
when = os.date("%Y-%B-%d %Hh:%Mm:%Ss"), when = os.date("%Y-%B-%d %Hh:%Mm:%Ss"),
value = value, value = value,
description = description, description = description,
} }
) )
modMinerTrade.bank.player[playername].total_transactions = totalTransactions + 1
modMinerTrade.bank.player[playername].statement = myStatement
return true return true
end end
end end
@ -149,8 +186,9 @@ modMinerTrade.showAtm = {
msgBalance = modMinerTrade.translate("Player '%s' is not an account holder of this bank."):format(playername) msgBalance = modMinerTrade.translate("Player '%s' is not an account holder of this bank."):format(playername)
end end
local tblStatements = modMinerTrade.getStatement(playername) --local tblStatements = modMinerTrade.getStatement(playername)
local totalTransactions = modMinerTrade.getTotalTransactions(playername)
local formspec = "size[16,10]" local formspec = "size[16,10]"
.."bgcolor[#636D7688;false]" .."bgcolor[#636D7688;false]"
--.."bgcolor[#636D76FF;false]" --.."bgcolor[#636D76FF;false]"
@ -165,11 +203,13 @@ modMinerTrade.showAtm = {
.. "box[6.0,0.25;9.5,9.5;#00000088]" .. "box[6.0,0.25;9.5,9.5;#00000088]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]" .."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "textarea[6.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("ACCOUNT CREATED")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.bank.player[playername].account_created)).."]" .. "textarea[6.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("NAME OF BANKING ACCOUNT HOLDER")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", playername:upper())).."]"
.. "textarea[6.75,3.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("FINANCIAL TRANSACTIONS")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", ("%02d"):format(#tblStatements).." transactions.")).."]" .. "textarea[6.75,2.50;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("ACCOUNT CREATED")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.bank.player[playername].account_created)).."]"
.. "textarea[6.75,5.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]" .. "textarea[6.75,4.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("FINANCIAL TRANSACTIONS")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", ("%02d"):format(totalTransactions).." transactions.")).."]"
.. "textarea[6.75,5.50;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5) modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec( minetest.show_formspec(
@ -207,7 +247,7 @@ modMinerTrade.showAtm = {
--"textarea[5.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]" --"textarea[5.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]"
local listStatement = modMinerTrade.getStatement(playername) local listStatement = modMinerTrade.getStatement(playername)
local plusStatement = "#888,"..modMinerTrade.translate("WHEN")..","..modMinerTrade.translate("VALUE") local plusStatement = "#888,"..modMinerTrade.translate("")..","..modMinerTrade.translate("WHEN")..","..modMinerTrade.translate("VALUE")
for i, oneStatement in ipairs(listStatement) do for i, oneStatement in ipairs(listStatement) do
local sign = "" local sign = ""
@ -216,9 +256,10 @@ modMinerTrade.showAtm = {
end end
--local line = oneStatement.when.." | "..sign..oneStatement.value.." minercash." --local line = oneStatement.when.." | "..sign..oneStatement.value.." minercash."
local line = "#FFF," local line = "#FFF,"
..(("%03d"):format(i))..","
..minetest.formspec_escape(oneStatement.when) ..minetest.formspec_escape(oneStatement.when)
.."," ..","
..minetest.formspec_escape(sign..("%02d"):format(oneStatement.value).." minercash.") ..minetest.formspec_escape(sign..("%02d"):format(oneStatement.value).." MT$.")
if plusStatement == "" then if plusStatement == "" then
plusStatement = line plusStatement = line
else else
@ -232,11 +273,11 @@ modMinerTrade.showAtm = {
if value >= 1 then if value >= 1 then
sign = "+" sign = "+"
end end
plusStatement = plusStatement..",#FFFF00," plusStatement = plusStatement..",#FFFF00,,"
--..minetest.formspec_escape(os.date("%Y-%B-%d %Hh:%Mm:%Ss")) --..minetest.formspec_escape(os.date("%Y-%B-%d %Hh:%Mm:%Ss"))
..minetest.formspec_escape(modMinerTrade.translate("TOTAL")..":") ..minetest.formspec_escape(modMinerTrade.translate("TOTAL")..": ")
..","
..minetest.formspec_escape(sign..("%02d"):format(value).." minercash.") ..minetest.formspec_escape(sign..("%02d"):format(value).." minercash.")
..","
end end
--]] --]]
@ -247,7 +288,7 @@ modMinerTrade.showAtm = {
end end
formspec = formspec formspec = formspec
.." style[fldStatement;bgcolor=red;textcolor=yellow;border=true]" .." style[fldStatement;bgcolor=red;textcolor=yellow;border=true]"
.." tablecolumns[color;text;text]" .." tablecolumns[color;text;text;text]"
.. "table[6.25,1.00;9.0,6.75;fldStatement;"..plusStatement..";"..mySel.."]" .. "table[6.25,1.00;9.0,6.75;fldStatement;"..plusStatement..";"..mySel.."]"
--.. "textlist[5.25,1.00;9.0,6.0;fldStatement;"..plusStatement..";"..mySel.."]" --.. "textlist[5.25,1.00;9.0,6.0;fldStatement;"..plusStatement..";"..mySel.."]"
--.."tablecolumns[cell1,opt1_a,opt2_a;cell2,opt1_b,opt2_b;type_c,opt1_c,opt2_c]" --.."tablecolumns[cell1,opt1_a,opt2_a;cell2,opt1_b,opt2_b;type_c,opt1_c,opt2_c]"

View file

@ -202,7 +202,7 @@ minetest.register_craftitem("minertrade:minermoney_black", {
description = core.colorize("#00FF00", description = core.colorize("#00FF00",
modMinerTrade.translate("BLACK MINERMONEY") modMinerTrade.translate("BLACK MINERMONEY")
).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(9^6), ).."\n* "..modMinerTrade.translate("Equals %02d minercash."):format(9^6),
inventory_image = "obj_minermoney_satured.png^[multiply:#444444", inventory_image = "obj_minermoney_satured.png^[multiply:#666666",
stack_max=9, --Acumula 9 por slot stack_max=9, --Acumula 9 por slot
groups = {cash=531441, trade=1, money=1}, groups = {cash=531441, trade=1, money=1},
}) })
@ -276,8 +276,20 @@ minetest.register_craftitem("minertrade:creditcard", {
inventory_image = "obj_credit_card.png", inventory_image = "obj_credit_card.png",
--stack_max=9, --Acumula 9 por slot --stack_max=9, --Acumula 9 por slot
groups = {cash=0, trade=1}, groups = {cash=0, trade=1},
--[[
on_use = function(itemstack, player) on_use = function(itemstack, player)
--[[
modMinerTrade.showInventory(
clicker,
clickername,
modMinerTrade.translate("PUBLIC ATM - Account of '%s':"):format(clickername)
)
--]]
local playername = player:get_player_name()
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
modMinerTrade.showAtm.frmMain(playername)
--[[
local playername = player:get_player_name() local playername = player:get_player_name()
local meta = itemstack:get_meta() local meta = itemstack:get_meta()
local old_data = minetest.deserialize(itemstack:get_metadata()) local old_data = minetest.deserialize(itemstack:get_metadata())
@ -313,8 +325,8 @@ minetest.register_craftitem("minertrade:creditcard", {
modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername) modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername)
) )
return itemstack return itemstack
end,
--]] --]]
end,
}) })
minetest.register_craft({ minetest.register_craft({

View file

@ -15,13 +15,19 @@ minertrade.salary.enabled (Daily Salary Enabled) bool true
# Value of the prize minercash that each player will receive at the end of the virtual day. # Value of the prize minercash that each player will receive at the end of the virtual day.
# Default: 1 | Min: 1 # Default: 1 | Min: 1
minertrade.salary.value (Daily Salary Value) int 1 1 minertrade.salary.value (Daily Salary Value) int 1 1
# MINERTRADE: # MINERTRADE:
# Time interval in seconds to check for rewardable players. # Time interval in seconds to check for rewardable players.
# WARNING: Decreasing this value too much can cause server lag. # WARNING: Decreasing this value too much can cause server lag.
# Deafault: 60 | Min: 1 # Default: 60 | Min: 1
minertrade.salay.intervalcheck (Interval Check Salary) int 60 1 minertrade.salay.intervalcheck (Interval Check Salary) int 60 1
# MINERTRADE:
# Maximum record number of bank statements.
# Default: 30 | Min: 1 | Max: 300
minertrade.bank.max_statements (Maximum Record Statements) int 30 1 300
# MINERTRADE: # MINERTRADE:
# Allows you to print the debug information of this mod on the screen. # Allows you to print the debug information of this mod on the screen.
# Default: false # Default: false