[fix] Fixed the new method to config then dispensing machine to trade.

ALERTER: https://qoto.org/@reinaldo/112832090438550688
This commit is contained in:
Lunovox 2024-07-23 11:11:09 -03:00
parent 83dac770b0
commit 79d3eb0682

View file

@ -4,9 +4,9 @@ modMinerTrade.dispensing = {
modMinerTrade.dispensing.formspec = { modMinerTrade.dispensing.formspec = {
customer = function(pos) customer = function(pos)
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
local formspec = "size[8,11]" local formspec = "size[8,10.25]"
--.."bgcolor[#00880033;false]" --.."bgcolor[#00880033;false]"
.."background[-0.25,-0.25;8.50,11.50;dispensador_traz.png]" .."background[-0.25,-0.25;8.50,11.00;dispensador_traz.png]"
--listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor] --listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor]
.."listcolors[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]" .."listcolors[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]"
@ -20,6 +20,7 @@ modMinerTrade.dispensing.formspec = {
.."list[current_player;customer_gets;0,4.0;3,2;]" .."list[current_player;customer_gets;0,4.0;3,2;]"
.."button[3,2.0;2,1;exchange;"..minetest.formspec_escape(modMinerTrade.translate("ACCEPT")).."]" .."button[3,2.0;2,1;exchange;"..minetest.formspec_escape(modMinerTrade.translate("ACCEPT")).."]"
.."button[3,3.0;2,1;btnRefill;"..minetest.formspec_escape(modMinerTrade.translate("REFILL")).."]"
.."label[0,6.0;"..minetest.formspec_escape(modMinerTrade.translate("Current customer inventory"))..":]" .."label[0,6.0;"..minetest.formspec_escape(modMinerTrade.translate("Current customer inventory"))..":]"
.."list[current_player;main;0,6.5;8,4;]" .."list[current_player;main;0,6.5;8,4;]"
@ -29,7 +30,7 @@ modMinerTrade.dispensing.formspec = {
.."label[5,3.5;"..minetest.formspec_escape(modMinerTrade.translate("The Machine Offer"))..":]" .."label[5,3.5;"..minetest.formspec_escape(modMinerTrade.translate("The Machine Offer"))..":]"
.."list["..list_name..";owner_gives;5,4.0;3,2;]" .."list["..list_name..";owner_gives;5,4.0;3,2;]"
.."label[0,10.75;("..minetest.formspec_escape(modMinerTrade.translate("Ctrl + RMB → Owner Interface"))..")]" --.."label[0,10.75;("..minetest.formspec_escape(modMinerTrade.translate("Ctrl + RMB → Owner Interface"))..")]"
--.."listcolors[#00000000;#00000022;#00000000;#00000033;#FFFFFFFF]" --.."listcolors[#00000000;#00000022;#00000000;#00000033;#FFFFFFFF]"
--.."listcolors[#00000000;#00000033]" --.."listcolors[#00000000;#00000033]"
@ -38,9 +39,9 @@ modMinerTrade.dispensing.formspec = {
end, end,
owner = function(pos) owner = function(pos)
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
local formspec = "size[8,11]" local formspec = "size[8,10.50]"
--.."bgcolor[#00880033;false]" --.."bgcolor[#00880033;false]"
.."background[-0.25,-0.25;8.50,11.50;dispensador_traz.png]" .."background[-0.25,-0.25;8.50,11.25;dispensador_traz.png]"
--listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor] --listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor]
.."listcolors[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]" .."listcolors[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]"
.."label[0,0;"..minetest.formspec_escape(modMinerTrade.translate("Received (Your Profit)"))..":]" .."label[0,0;"..minetest.formspec_escape(modMinerTrade.translate("Received (Your Profit)"))..":]"
@ -106,6 +107,7 @@ modMinerTrade.dispensing.canOpen = function(pos, playername)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if if
meta:get_string("owner")==playername meta:get_string("owner")==playername
or minetest.get_player_privs(playername).protection_bypass
or ( or (
minetest.get_modpath("tradelands") minetest.get_modpath("tradelands")
and modTradeLands.getOwnerName(pos)~="" and modTradeLands.getOwnerName(pos)~=""
@ -168,11 +170,14 @@ minetest.register_node("minertrade:dispensingmachine", {
modMinerTrade.dispensing.loja_atual[clicker:get_player_name()] = pos modMinerTrade.dispensing.loja_atual[clicker:get_player_name()] = pos
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local clickername = clicker:get_player_name() local clickername = clicker:get_player_name()
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.customer(pos))
--[[
if modMinerTrade.dispensing.canOpen(pos, clickername) and not clicker:get_player_control().aux1 then if modMinerTrade.dispensing.canOpen(pos, clickername) and not clicker:get_player_control().aux1 then
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.customer(pos))
else
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.owner(pos)) minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.owner(pos))
else
minetest.show_formspec(clickername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.customer(pos))
end end
--]]
--return itemstack --return itemstack
end, end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
@ -218,14 +223,28 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
--minetest.chat_send_player(sendername,"ownername('"..ownername.."') == sendername('"..sendername.."')") --minetest.chat_send_player(sendername,"ownername('"..ownername.."') == sendername('"..sendername.."')")
if fields.btnRefill then
if modMinerTrade.dispensing.canOpen(pos, sendername) then
minetest.show_formspec(sendername,"modMinerTrade.balcaodeloja_formspec",modMinerTrade.dispensing.formspec.owner(pos))
else
minetest.chat_send_player(sendername,
core.colorize("#ff0000", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("You cannot fill the dispensing machine if you are not the owner!")
)
minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,})
end
return
end
if modMinerTrade.dispensing.canOpen(pos, sendername) and sender:get_player_control().aux1 then if modMinerTrade.dispensing.canOpen(pos, sendername) and sender:get_player_control().aux1 then
minetest.chat_send_player(sendername, minetest.chat_send_player(sendername,
core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ") core.colorize("#ff0000", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")
..modMinerTrade.translate("You can not change your own machine!") ..modMinerTrade.translate("You can not change your own machine!")
) )
minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,}) minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,})
return return
else else
--minetest.chat_send_player(sendername,"fields="..dump(fields)) --minetest.chat_send_player(sendername,"fields="..dump(fields))
if fields.txtOffer ~= nil then if fields.txtOffer ~= nil then
if fields.txtOffer ~= "" then if fields.txtOffer ~= "" then