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] = {
account_created = os.date("%Y-%B-%d %Hh:%Mm:%Ss"),
balance = 0,
total_transactions = 0,
statement = { }
}
--modMinerTrade.bank.player[playername].account_created
@ -89,17 +90,53 @@ modMinerTrade.addBalance = function(playername, value)
return false
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)
if value ~= nil and type(value) == "number" and value ~= 0 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(
modMinerTrade.bank.player[playername].statement,
myStatement,
{
when = os.date("%Y-%B-%d %Hh:%Mm:%Ss"),
value = value,
description = description,
}
)
modMinerTrade.bank.player[playername].total_transactions = totalTransactions + 1
modMinerTrade.bank.player[playername].statement = myStatement
return true
end
end
@ -149,8 +186,9 @@ modMinerTrade.showAtm = {
msgBalance = modMinerTrade.translate("Player '%s' is not an account holder of this bank."):format(playername)
end
local tblStatements = modMinerTrade.getStatement(playername)
--local tblStatements = modMinerTrade.getStatement(playername)
local totalTransactions = modMinerTrade.getTotalTransactions(playername)
local formspec = "size[16,10]"
.."bgcolor[#636D7688;false]"
--.."bgcolor[#636D76FF;false]"
@ -165,11 +203,13 @@ modMinerTrade.showAtm = {
.. "box[6.0,0.25;9.5,9.5;#00000088]"
.."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)
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)).."]"
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
local sign = ""
@ -216,9 +256,10 @@ modMinerTrade.showAtm = {
end
--local line = oneStatement.when.." | "..sign..oneStatement.value.." minercash."
local line = "#FFF,"
..(("%03d"):format(i))..","
..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
plusStatement = line
else
@ -232,11 +273,11 @@ modMinerTrade.showAtm = {
if value >= 1 then
sign = "+"
end
plusStatement = plusStatement..",#FFFF00,"
plusStatement = plusStatement..",#FFFF00,,"
--..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.")
..","
end
--]]
@ -247,7 +288,7 @@ modMinerTrade.showAtm = {
end
formspec = formspec
.." 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.."]"
--.. "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]"

View file

@ -202,7 +202,7 @@ minetest.register_craftitem("minertrade:minermoney_black", {
description = core.colorize("#00FF00",
modMinerTrade.translate("BLACK MINERMONEY")
).."\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
groups = {cash=531441, trade=1, money=1},
})
@ -276,8 +276,20 @@ minetest.register_craftitem("minertrade:creditcard", {
inventory_image = "obj_credit_card.png",
--stack_max=9, --Acumula 9 por slot
groups = {cash=0, trade=1},
--[[
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 meta = itemstack:get_meta()
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)
)
return itemstack
end,
--]]
end,
})
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.
# Default: 1 | Min: 1
minertrade.salary.value (Daily Salary Value) int 1 1
# MINERTRADE:
# Time interval in seconds to check for rewardable players.
# 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:
# Maximum record number of bank statements.
# Default: 30 | Min: 1 | Max: 300
minertrade.bank.max_statements (Maximum Record Statements) int 30 1 300
# MINERTRADE:
# Allows you to print the debug information of this mod on the screen.
# Default: false