itemcount: initial semiworking prototype

frenemies
cron 2020-10-05 19:32:34 +00:00
parent cc4736d025
commit 4a1b7bd37a
3 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,80 @@
local last_count
local last_item
local icon_widget
local count_widget
local epoch = 0
local function display_widgets()
if minetest.localplayer ~= nil then
if icon_widget == nil then
icon_widget = minetest.localplayer:hud_add({
hud_elem_type = "image",
name = "Item count icon",
scale = {x = 1, y = 1},
alignment = {x = 0.5, y = 1},
position = {x = 0.85, y = 0.5}
})
end
if count_widget == nil then
count_widget = minetest.localplayer:hud_add({
hud_elem_tyoe = "text",
name = "Item count",
scale = {x = 1, y = 1},
alignment = {x = 0.5, y = 0},
position = {x = 0.85, y = 0.5},
text = "0",
number = 0xFFFFFF
})
end
end
end
local function update_count()
if minetest.localplayer ~= nil then
display_widgets()
local wielded = minetest.localplayer:get_wielded_item()
local texture = "" --wielded:get_definition().inventory_image
local wear = wielded:get_wear()
local count = 0
local num = ""
if wear == 0 then
for k, v in ipairs(minetest.get_inventory("current_player").main) do
if v:get_name() == wielded:get_name() then
count = count + v:get_count()
end
end
num = tostring(count)
else
num = tostring(((65535 - wear) / 65535) * 100) .. "%"
end
last_count = count
last_item = wielded.name
minetest.localplayer:hud_change(icon_widget, "text", texture)
minetest.localplayer:hud_change(count_widget, "text", num)
end
end
minetest.register_on_placenode(function(item, pointed_thing)
update_count()
end)
minetest.register_on_item_use(function(item, pointed_thing)
update_count()
end)
minetest.register_globalstep(function()
if os.time() > epoch then
update_count()
epoch = os.time()
end
end)

View File

@ -0,0 +1,2 @@
name = itemcount
description = Display currently held item's total count.

View File

@ -19,3 +19,4 @@ load_mod_dte = true
load_mod_flightaura = false
load_mod_hpchange = true
load_mod_autominer = true
load_mod_itemcount = false