mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-15 05:31:20 +00:00
TENTATIVA DE OTIMIZAÇÃO DE MEMÓRIA
Agora é possível apagar inventário desatarraxado quando o jogador fecha o formulário. isso provavelmente otimizará o uso da memória RAM. Mais tarde precisarei fazer o mesmo nos mods "tradelands" e "checkinventoryplayer".
This commit is contained in:
parent
8fe7da0293
commit
2284201672
3 changed files with 28 additions and 19 deletions
28
api.lua
28
api.lua
|
@ -47,7 +47,8 @@ modMinerTrade.doLoad = function()
|
|||
end
|
||||
|
||||
modMinerTrade.setSafeInventory = function(playername, tblListInventory)
|
||||
local newInv = minetest.create_detached_inventory_raw("safe_"..playername)
|
||||
--local newInv = minetest.create_detached_inventory_raw("safe_"..playername)
|
||||
local newInv = core.create_detached_inventory_raw("safe_"..playername, playername)
|
||||
newInv:set_list("safe", tblListInventory)
|
||||
local tamanho = newInv:get_size("safe")
|
||||
modMinerTrade.safe[playername] = { }
|
||||
|
@ -58,7 +59,8 @@ end
|
|||
|
||||
|
||||
modMinerTrade.getSafeInventory = function(playername)
|
||||
local newInv = minetest.create_detached_inventory_raw("safe_"..playername)
|
||||
--local newInv = minetest.create_detached_inventory_raw("safe_"..playername)
|
||||
local newInv = core.create_detached_inventory_raw("safe_"..playername, playername)
|
||||
newInv:set_size("safe", modMinerTrade.size.width*modMinerTrade.size.height)
|
||||
--local listInventory = { }
|
||||
for i=1,(modMinerTrade.size.width*modMinerTrade.size.height) do
|
||||
|
@ -170,6 +172,24 @@ modMinerTrade.showInventory = function(player, ownername, title)
|
|||
)
|
||||
end
|
||||
|
||||
modMinerTrade.delSafeInventory = function(ownername)
|
||||
--core.detached_inventories["safe_"..ownername] = nil
|
||||
return core.remove_detached_inventory_raw("safe_"..ownername)
|
||||
--return minetest.remove_detached_inventory_raw("safe_"..ownername)
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
||||
local sendername = sender:get_player_name()
|
||||
--minetest.chat_send_player(sendername, "formname="..formname.." fields="..dump(fields))
|
||||
if formname == "safe_"..sendername then -- This is your form name
|
||||
if fields.quit then
|
||||
modMinerTrade.doSave()
|
||||
modMinerTrade.delSafeInventory(sendername)
|
||||
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving strongbox from all players in the file '%s'!"):format(modMinerTrade.urlTabela))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--##############################################################################
|
||||
modMinerTrade.floor_pos = function(pos)
|
||||
return {
|
||||
|
@ -275,7 +295,7 @@ modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
|
|||
end --if minetest.get_modpath("correio") then
|
||||
end
|
||||
|
||||
minetest.errorDispensing = function(erroMessage, player, pos, ownername)
|
||||
modMinerTrade.errorDispensing = function(erroMessage, player, pos, ownername)
|
||||
if type(erroMessage)=="string" and erroMessage:trim()~="" then
|
||||
if player:is_player() then
|
||||
local playername = player:get_player_name()
|
||||
|
@ -287,7 +307,7 @@ minetest.errorDispensing = function(erroMessage, player, pos, ownername)
|
|||
end
|
||||
else
|
||||
minetest.log(
|
||||
"error",("[minetest.errorDispensing(erroMessage='%s', player, pos, ownername)] "):format(dump(erroMessage))
|
||||
"error",("[modMinerTrade.errorDispensing(erroMessage='%s', player, pos, ownername)] "):format(dump(erroMessage))
|
||||
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("erroMessage")
|
||||
)
|
||||
end
|
||||
|
|
|
@ -300,7 +300,7 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
|||
modMinerTrade.setMachineFlagsAlert(pos, 0)--0 = Can send new emails
|
||||
else
|
||||
if error_name == "owners_fault" then
|
||||
minetest.errorDispensing(
|
||||
modMinerTrade.errorDispensing(
|
||||
modMinerTrade.translate(
|
||||
--"The stock of '%s' is gone."
|
||||
"The Dispensing Machine with offer '%s' cannot deliver more items to '%s' because stock of '%s' is empty!"
|
||||
|
@ -308,19 +308,19 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
|||
,sender ,pos ,ownername
|
||||
)
|
||||
elseif error_name == "without_space_to_profit" then
|
||||
minetest.errorDispensing(
|
||||
modMinerTrade.errorDispensing(
|
||||
modMinerTrade.translate(
|
||||
"The Dispensing Machine with offer '%s' is out of space to receive customer item '%s'."
|
||||
):format(offer, sendername)
|
||||
,sender ,pos ,ownername
|
||||
)
|
||||
elseif error_name == "without_space_to_offer" then
|
||||
minetest.errorDispensing(
|
||||
modMinerTrade.errorDispensing(
|
||||
modMinerTrade.translate("Without enough space in Dispensing Machine to receive the seller's item. (Please, empty the receiving box!)")
|
||||
,sender
|
||||
)
|
||||
else
|
||||
minetest.errorDispensing(
|
||||
modMinerTrade.errorDispensing(
|
||||
modMinerTrade.translate("The dispending can not be done. Make sure you offer what the machine asks for!")
|
||||
,sender
|
||||
)
|
||||
|
|
|
@ -64,17 +64,6 @@ minetest.register_node("minertrade:strongbox", {
|
|||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
||||
local sendername = sender:get_player_name()
|
||||
--minetest.chat_send_player(sendername, "formname="..formname.." fields="..dump(fields))
|
||||
if formname == "safe_"..sendername then -- This is your form name
|
||||
if fields.quit then
|
||||
modMinerTrade.doSave()
|
||||
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving strongbox from all players in the file '%s'!"):format(modMinerTrade.urlTabela))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'minertrade:strongbox',
|
||||
recipe = {
|
||||
|
|
Loading…
Add table
Reference in a new issue