local _, addon = ...
local API = addon.API;

local GetPlayerFacing = GetPlayerFacing;    --noinstance North = 0, counterclockwise
local PI2 = 2*math.pi;
local RAD5 = 5*180*math.pi;
local deg = math.deg;
local floor = math.floor;


local MainFrame = CreateFrame("Frame", nil, UIParent);
MainFrame:SetSize(32, 32);
MainFrame:SetPoint("CENTER", UIParent, "CENTER", 0, 0);
MainFrame.t = 0;

local ArrowTexture = MainFrame:CreateTexture(nil, "OVERLAY");
ArrowTexture:SetAllPoints(true);
ArrowTexture:SetTexture("Interface/AddOns/Plumber/Art/MapPin/DirectionArrow_Angle.png", nil, nil, "LINEAR");

local Title = MainFrame:CreateFontString(nil, "OVERLAY");

local function SetArrowRadian(radian)
	local n = floor( (deg(radian) + 2.5) * 0.2 ) + 1;    -- /5
	if n > 72 then
		n = 1;
	end
	local row = floor(n / 8);
	local col = floor(n % 8);
	if col == 0 then
		col = 8;
		row = row - 1;
	end
	col = col - 1;
	ArrowTexture:SetTexCoord(0.125*col, 0.125*col + 0.125, 0.0625*row, 0.0625*row + 0.0625);
end
SetArrowRadian(0);

MainFrame:SetScript("OnUpdate", function(self, elapsed)
	self.t = self.t + elapsed;
	if self.t > 0.016 then
		self.t = 0;
		self.facing = GetPlayerFacing();
		if self.facing then
			SetArrowRadian(self.facing);
		else

		end
	end
end);


--MainFrame:RegisterEvent("DISPLAY_SIZE_CHANGED");
--MainFrame:RegisterEvent("UI_SCALE_CHANGED");

MainFrame:SetScript("OnEvent", function(self, event, ...)
	local px = API.GetPixelForWidget(self);
	self:SetSize(64*px, 64*px);
end);
