diff --git a/mods/smartshop/init.lua b/mods/smartshop/init.lua index 6e1d85f4..7f3537eb 100644 --- a/mods/smartshop/init.lua +++ b/mods/smartshop/init.lua @@ -82,6 +82,22 @@ minetest.register_entity("smartshop:item",{ }) +local format_price_quantity = function(inv, name) + local count = inv:get_stack(name,1):get_count() + if count < 10 then + return "\b\b\b\b\b" .. count + elseif count < 100 then + return "\b\b\b\b" .. count + elseif count < 1000 then + return "\b\b\b" .. count + elseif count < 10000 then + return "\b" .. count + else + return count + end +end + + smartshop.showform=function(pos,player,re) local meta=minetest.get_meta(pos) local creative=meta:get_int("creative") @@ -121,13 +137,13 @@ smartshop.showform=function(pos,player,re) .."label[0,0.2;Item:]" .."label[0,1.2;Price:]" .."list[nodemeta:" .. spos .. ";give1;2,0;1,1;]" - .."item_image_button[2,1;1,1;".. inv:get_stack("pay1",1):get_name() ..";buy1;\n\n\b\b\b\b\b" .. inv:get_stack("pay1",1):get_count() .."]" + .."item_image_button[2,1;1,1;".. inv:get_stack("pay1",1):get_name() ..";buy1;\n\n" .. format_price_quantity(inv,"pay1") .."]" .."list[nodemeta:" .. spos .. ";give2;3,0;1,1;]" - .."item_image_button[3,1;1,1;".. inv:get_stack("pay2",1):get_name() ..";buy2;\n\n\b\b\b\b\b" .. inv:get_stack("pay2",1):get_count() .."]" + .."item_image_button[3,1;1,1;".. inv:get_stack("pay2",1):get_name() ..";buy2;\n\n" .. format_price_quantity(inv,"pay2") .."]" .."list[nodemeta:" .. spos .. ";give3;4,0;1,1;]" - .."item_image_button[4,1;1,1;".. inv:get_stack("pay3",1):get_name() ..";buy3;\n\n\b\b\b\b\b" .. inv:get_stack("pay3",1):get_count() .."]" + .."item_image_button[4,1;1,1;".. inv:get_stack("pay3",1):get_name() ..";buy3;\n\n" .. format_price_quantity(inv,"pay3") .."]" .."list[nodemeta:" .. spos .. ";give4;5,0;1,1;]" - .."item_image_button[5,1;1,1;".. inv:get_stack("pay4",1):get_name() ..";buy4;\n\n\b\b\b\b\b" .. inv:get_stack("pay4",1):get_count() .."]" + .."item_image_button[5,1;1,1;".. inv:get_stack("pay4",1):get_name() ..";buy4;\n\n" .. format_price_quantity(inv,"pay4") .."]" end minetest.after((0.1), function(gui) return minetest.show_formspec(player:get_player_name(), "smartshop.showform",gui)