From 6fd69600ed4cb9f280b46dcb1f9713555d2dc940 Mon Sep 17 00:00:00 2001 From: auouymous Date: Sat, 14 Nov 2020 00:14:44 -0700 Subject: [PATCH] Format price quantity to avoid cutting off values larger than 9. --- init.lua | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 031bd43..a4d312b 100644 --- a/init.lua +++ b/init.lua @@ -362,6 +362,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") @@ -444,13 +460,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)