[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 = {
customer = function(pos)
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
local formspec = "size[8,11]"
local formspec = "size[8,10.25]"
--.."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[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]"
@ -20,6 +20,7 @@ modMinerTrade.dispensing.formspec = {
.."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,3.0;2,1;btnRefill;"..minetest.formspec_escape(modMinerTrade.translate("REFILL")).."]"
.."label[0,6.0;"..minetest.formspec_escape(modMinerTrade.translate("Current customer inventory"))..":]"
.."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"))..":]"
.."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;#00000033]"
@ -38,9 +39,9 @@ modMinerTrade.dispensing.formspec = {
end,
owner = function(pos)
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
local formspec = "size[8,11]"
local formspec = "size[8,10.50]"
--.."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[#004400EE;#008800;#00FF00;#CCCC00;#FFFFFF]"
.."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)
if
meta:get_string("owner")==playername
or minetest.get_player_privs(playername).protection_bypass
or (
minetest.get_modpath("tradelands")
and modTradeLands.getOwnerName(pos)~=""
@ -168,11 +170,14 @@ minetest.register_node("minertrade:dispensingmachine", {
modMinerTrade.dispensing.loja_atual[clicker:get_player_name()] = pos
local meta = minetest.get_meta(pos)
local clickername = clicker:get_player_name()
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
--[[
if modMinerTrade.dispensing.canOpen(pos, clickername) and not clicker:get_player_control().aux1 then
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
--]]
--return itemstack
end,
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.."')")
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
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!")
)
minetest.sound_play("sfx_alert", {object=sender, max_hear_distance=5.0,})
return
else
--minetest.chat_send_player(sendername,"fields="..dump(fields))
if fields.txtOffer ~= nil then
if fields.txtOffer ~= "" then