-- LUALOCALS < ---------------------------------------------------------
local minetest, nodecore
    = minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------

local modname = minetest.get_current_modname()

local hotbar_slots = 8

local bar_scale = 32
local bar_margin = 1
nodecore.register_playerstep({
		label = "hotbar images",
		action = function(player, data)
			local bar = "[combine:" .. (hotbar_slots * bar_scale + bar_margin * 2)
			.. "x" .. (bar_scale + bar_margin * 2) .. ":0,0=" .. modname
			.. "_hotbar_bg.png"
			local inv = player:get_inventory()
			for i = 1, hotbar_slots do
				local stack = inv:get_stack("main", i)
				local def = stack and (not stack:is_empty()) and stack:get_definition()
				local hbtype = def and def.hotbar_type
				and ("_" .. def.hotbar_type) or ""
				bar = bar .. ":" .. (i * bar_scale - bar_scale + bar_margin)
				.. "," .. bar_margin .. "=" .. modname .. "_hotbar_slot" .. hbtype
				.. ".png\\^[resize\\:" .. bar_scale .. "x" .. bar_scale
				.. "\\^[opacity\\:192"
			end

			if data.slots ~= hotbar_slots then
				data.slots = hotbar_slots
				player:hud_set_hotbar_itemcount(hotbar_slots)
			end

			if data.hotbar ~= bar then
				data.hotbar = bar
				player:hud_set_hotbar_image(bar)
			end
		end
	})

nodecore.register_on_joinplayer("setup hotbar", function(player)
		player:hud_set_hotbar_selected_image(modname .. "_hotbar_sel.png")
	end)
