You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.7 KiB

--[[
Stewmat is a format dedicated to Stewarta
]]
-- imports
local WIM = WIM;
local _G = _G;
local string = string;
local CreateFrame = CreateFrame;
local table = table;
-- set namespace
setfenv(1, WIM);
function createCanvas()
local canvas = CreateFrame("Frame");
canvas:SetWidth(64); canvas:SetHeight(64);
canvas.pixels = {};
for i = 1, 64*64 do
local pixel = canvas:CreateTexture(nil, "OVERLAY");
pixel:SetWidth(1); pixel:SetHeight(1);
pixel:SetTexture(i%2, i%2, i%2); -- test
if(#canvas.pixels == 0) then
pixel:SetPoint("TOPLEFT");
else
if(i%64 == 1) then
pixel:SetPoint("TOPLEFT", canvas.pixels[#canvas.pixels-63], "BOTTOMLEFT");
else
pixel:SetPoint("TOPLEFT", canvas.pixels[#canvas.pixels], "TOPRIGHT");
end
end
table.insert(canvas.pixels, pixel);
end
canvas.Clear = function(self)
for i=1, #self.pixels do
self.pixels[i]:SetTexture(nil);
end
end
canvas.LoadImage = function(self, img)
img = string.trim(img);
self:Clear();
local count = 0;
for color in string.gmatch(img, "[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]") do
count = count + 1;
if(count > #self.pixels) then
dPrint("Received more then alotted pixels.");
break;
end
self.pixels[count]:SetTexture(RGBHexToPercent(color));
end
dPrint(count.." points laoded.");
end
canvas:SetPoint("CENTER");
return canvas;
end