Ryan cf22651949 Added intergration loveManager
Adds multi.intergrations.loveManager,lua
Created an example file for you to look at
2017-06-24 22:46:44 -04:00

4028 lines
129 KiB
Lua

utf8 = require("utf8")
_defaultfont = love.graphics.getFont()
gui = {}
gui.__index = gui
gui.TB={}
gui.Version="8.0.0" -- Is it really ready for release?
_GuiPro={GBoost=true,hasDrag=false,DragItem={},Children={},Visible=true,count=0,x=0,y=0,height=0,width=0,update=function(self) local things=GetAllChildren2(self) UpdateThings(things) end,draw=function(self) local things=GetAllChildren(self) DrawThings(things) end,getChildren=function(self) return self.Children end}
_GuiPro.Clips={}
_GuiPro.rotate=0
setmetatable(_GuiPro, gui)
function gui:LoadInterface(file)
local add=".int"
if string.find(file,".",1,true) then add="" end
if love.filesystem.exists(file..add) then
a,b=pcall(love.filesystem.load(file..add))
if a then
print("Loaded: "..file)
else
print("Error loading file: "..file)
print(a,b)
end
else
print("File does not exist!")
return false
end
end
function gui.LoadAll(dir)
files=love.filesystem.getDirectoryItems(dir)
for i=1,#files do
if string.sub(files[i],-4)==".int" then
gui:LoadInterface(dir.."/"..files[i])
end
end
end
function gui:Clickable()
local x,y,w,h=love.graphics.getScissor()
local mx=love.mouse.getX()
local my=love.mouse.getY()
if _GuiPro.HasStencel then
local obj=_GuiPro.StencelHolder
if self:isDescendant(obj) then
return math.sqrt((mx-obj.x)^2+(my-obj.y)^2)<=(obj.offset.size.x or 0)
end
end
if not(x) then
return true
end
return not(mx>x+w or mx<x or my>y+h or my<y)
end
Color={
new=function(r,g,b)
mt = {
__add = function (c1,c2)
return Color.new(c1[1]+c2[1],c1[2]+c2[2],c1[2]+c2[2])
end,
__sub = function (c1,c2)
return Color.new(c1[1]-c2[1],c1[2]-c2[2],c1[2]-c2[2])
end,
__mul = function (c1,c2)
return Color.new(c1[1]*c2[1],c1[2]*c2[2],c1[2]*c2[2])
end,
__div = function (c1,c2)
return Color.new(c1[1]/c2[1],c1[2]/c2[2],c1[2]/c2[2])
end,
__mod = function (c1,c2)
return Color.new(c1[1]%c2[1],c1[2]%c2[2],c1[2]%c2[2])
end,
__pow = function (c1,c2)
return Color.new(c1[1]^c2[1],c1[2]^c2[2],c1[2]^c2[2])
end,
__unm = function (c1)
return Color.new(-c1[1],-c1[2],-c1[2])
end,
__tostring = function(c)
return "("..c[1]..","..c[2]..","..c[3]..")"
end,
__eq = Color.EQ,
__lt = Color.LT,
__le = Color.LE,
}
local temp = {r,g,b,255}
setmetatable(temp, mt)
return temp
end,
Random=function()
return Color.new(math.random(0,255),math.random(0,255),math.random(0,255))
end,
EQ = function (c1,c2)
return (c1[1]==c2[1] and c1[2]==c2[2] and c1[2]==c2[2])
end,
LT = function (c1,c2)
return (c1[1]<c2[1] and c1[2]<c2[2] and c1[2]<c2[2])
end,
LE = function (c1,c2)
return (c1[1]<=c2[1] and c1[2]<=c2[2] and c1[2]<=c2[2])
end,
IndexColor=function(name,r,b,g)
if type(r)=="string" then
r,b,g=tonumber(string.sub(r,1,2),16),tonumber(string.sub(r,3,4),16),tonumber(string.sub(r,5,6),16)
end
Color[string.lower(name)]=Color.new(r,b,g)
Color[string.upper(name)]=Color.new(r,b,g)
Color[string.upper(string.sub(name,1,1))..string.lower(string.sub(name,2))]=Color.new(r,b,g)
end,
Darken=function(color,v)
currentR=color[1]
currentG=color[2]
currentB=color[3]
return Color.new(currentR * (1 - v),currentG * (1 - v),currentB * (1 - v))
end,
Lighten=function(color,v)
currentR=color[1]
currentG=color[2]
currentB=color[3]
return Color.new(currentR + (255 - currentR) * v,currentG + (255 - currentG) * v,currentB + (255 - currentB) * v)
end
}
Color.IndexColor("Black",20,20,20)
Color.IndexColor("WHITE",255,255,255)
Color.IndexColor("MAROON",128,20,20)
Color.IndexColor("DARK_RED",139,20,20)
Color.IndexColor("BROWN",165,42,42)
Color.IndexColor("FIREBRICK",178,34,34)
Color.IndexColor("CRIMSON",220,20,60)
Color.IndexColor("RED",255,20,20)
Color.IndexColor("TOMATO",255,99,71)
Color.IndexColor("CORAL",255,127,80)
Color.IndexColor("INDIAN_RED",205,92,92)
Color.IndexColor("LIGHT_CORAL",240,128,128)
Color.IndexColor("DARK_SALMON",233,150,122)
Color.IndexColor("SALMON",250,128,114)
Color.IndexColor("LIGHT_SALMON",255,160,122)
Color.IndexColor("ORANGE_RED",255,69,20)
Color.IndexColor("DARK_ORANGE",255,140,20)
Color.IndexColor("ORANGE",255,165,20)
Color.IndexColor("GOLD",255,215,20)
Color.IndexColor("DARK_GOLDEN_ROD",184,134,11)
Color.IndexColor("GOLDEN_ROD",218,165,32)
Color.IndexColor("PALE_GOLDEN_ROD",238,232,170)
Color.IndexColor("DARK_KHAKI",189,183,107)
Color.IndexColor("KHAKI",240,230,140)
Color.IndexColor("OLIVE",128,128,20)
Color.IndexColor("YELLOW",255,255,20)
Color.IndexColor("YELLOW_GREEN",154,205,50)
Color.IndexColor("DARK_OLIVE_GREEN",85,107,47)
Color.IndexColor("OLIVE_DRAB",107,142,35)
Color.IndexColor("LAWN_GREEN",124,252,20)
Color.IndexColor("CHART_REUSE",127,255,20)
Color.IndexColor("GREEN_YELLOW",173,255,47)
Color.IndexColor("DARK_GREEN",20,100,20)
Color.IndexColor("GREEN",20,128,20)
Color.IndexColor("FOREST_GREEN",34,139,34)
Color.IndexColor("LIME",20,255,20)
Color.IndexColor("LIME_GREEN",50,205,50)
Color.IndexColor("LIGHT_GREEN",144,238,144)
Color.IndexColor("PALE_GREEN",152,251,152)
Color.IndexColor("DARK_SEA_GREEN",143,188,143)
Color.IndexColor("MEDIUM_SPRING_GREEN",20,250,154)
Color.IndexColor("SPRING_GREEN",20,255,127)
Color.IndexColor("SEA_GREEN",46,139,87)
Color.IndexColor("MEDIUM_AQUA_MARINE",102,205,170)
Color.IndexColor("MEDIUM_SEA_GREEN",60,179,113)
Color.IndexColor("LIGHT_SEA_GREEN",32,178,170)
Color.IndexColor("DARK_SLATE_GRAY",47,79,79)
Color.IndexColor("TEAL",20,128,128)
Color.IndexColor("DARK_CYAN",20,139,139)
Color.IndexColor("LIGHT_CYAN",224,255,255)
Color.IndexColor("DARK_TURQUOISE",20,206,209)
Color.IndexColor("TURQUOISE",64,224,208)
Color.IndexColor("MEDIUM_TURQUOISE",72,209,204)
Color.IndexColor("PALE_TURQUOISE",175,238,238)
Color.IndexColor("AQUA_MARINE",127,255,212)
Color.IndexColor("POWDER_BLUE",176,224,230)
Color.IndexColor("CADET_BLUE",95,158,160)
Color.IndexColor("STEEL_BLUE",70,130,180)
Color.IndexColor("CORN_FLOWER_BLUE",100,149,237)
Color.IndexColor("DEEP_SKY_BLUE",20,191,255)
Color.IndexColor("DODGER_BLUE",30,144,255)
Color.IndexColor("LIGHT_BLUE",173,216,230)
Color.IndexColor("SKY_BLUE",135,206,235)
Color.IndexColor("LIGHT_SKY_BLUE",135,206,250)
Color.IndexColor("MIDNIGHT_BLUE",25,25,112)
Color.IndexColor("NAVY",20,20,128)
Color.IndexColor("DARK_BLUE",20,20,139)
Color.IndexColor("MEDIUM_BLUE",20,20,205)
Color.IndexColor("BLUE",20,20,255)
Color.IndexColor("ROYAL_BLUE",65,105,225)
Color.IndexColor("BLUE_VIOLET",138,43,226)
Color.IndexColor("INDIGO",75,20,130)
Color.IndexColor("DARK_SLATE_BLUE",72,61,139)
Color.IndexColor("SLATE_BLUE",106,90,205)
Color.IndexColor("MEDIUM_SLATE_BLUE",123,104,238)
Color.IndexColor("MEDIUM_PURPLE",147,112,219)
Color.IndexColor("DARK_MAGENTA",139,20,139)
Color.IndexColor("DARK_VIOLET",148,20,211)
Color.IndexColor("DARK_ORCHID",153,50,204)
Color.IndexColor("MEDIUM_ORCHID",186,85,211)
Color.IndexColor("PURPLE",128,20,128)
Color.IndexColor("THISTLE",216,191,216)
Color.IndexColor("PLUM",221,160,221)
Color.IndexColor("VIOLET",238,130,238)
Color.IndexColor("MAGENTA",255,20,255)
Color.IndexColor("ORCHID",218,112,214)
Color.IndexColor("MEDIUM_VIOLET_RED",199,21,133)
Color.IndexColor("PALE_VIOLET_RED",219,112,147)
Color.IndexColor("DEEP_PINK",255,20,147)
Color.IndexColor("HOT_PINK",255,105,180)
Color.IndexColor("LIGHT_PINK",255,182,193)
Color.IndexColor("PINK",255,192,203)
Color.IndexColor("ANTIQUE_WHITE",250,235,215)
Color.IndexColor("BEIGE",245,245,220)
Color.IndexColor("BISQUE",255,228,196)
Color.IndexColor("BLANCHED_ALMOND",255,235,205)
Color.IndexColor("WHEAT",245,222,179)
Color.IndexColor("CORN_SILK",255,248,220)
Color.IndexColor("LEMON_CHIFFON",255,250,205)
Color.IndexColor("LIGHT_GOLDEN_ROD_YELLOW",250,250,210)
Color.IndexColor("LIGHT_YELLOW",255,255,224)
Color.IndexColor("SADDLE_BROWN",139,69,19)
Color.IndexColor("SEXY_PURPLE",85,85,127)
Color.IndexColor("SIENNA",160,82,45)
Color.IndexColor("CHOCOLATE",210,105,30)
Color.IndexColor("PERU",205,133,63)
Color.IndexColor("SANDY_BROWN",244,164,96)
Color.IndexColor("BURLY_WOOD",222,184,135)
Color.IndexColor("TAN",210,180,140)
Color.IndexColor("ROSY_BROWN",188,143,143)
Color.IndexColor("MOCCASIN",255,228,181)
Color.IndexColor("NAVAJO_WHITE",255,222,173)
Color.IndexColor("PEACH_PUFF",255,218,185)
Color.IndexColor("MISTY_ROSE",255,228,225)
Color.IndexColor("LAVENDER_BLUSH",255,240,245)
Color.IndexColor("LINEN",250,240,230)
Color.IndexColor("OLD_LACE",253,245,230)
Color.IndexColor("PAPAYA_WHIP",255,239,213)
Color.IndexColor("SEA_SHELL",255,245,238)
Color.IndexColor("MINT_CREAM",245,255,250)
Color.IndexColor("SLATE_GRAY",112,128,144)
Color.IndexColor("LIGHT_SLATE_GRAY",119,136,153)
Color.IndexColor("LIGHT_STEEL_BLUE",176,196,222)
Color.IndexColor("LAVENDEr(",230,230,250)
Color.IndexColor("FLORAL_WHITE",255,250,240)
Color.IndexColor("ALICE_BLUE",240,248,255)
Color.IndexColor("GHOST_WHITE",248,248,255)
Color.IndexColor("HONEYDEW",240,255,240)
Color.IndexColor("IVORY",255,255,240)
Color.IndexColor("AZURE",240,255,255)
Color.IndexColor("SNOW",255,250,250)
Color.IndexColor("DIM_GRAY",105,105,105)
Color.IndexColor("GRAY",128,128,128)
Color.IndexColor("DARK_GRAY",169,169,169)
Color.IndexColor("SILVEr(",192,192,192)
Color.IndexColor("LIGHT_GRAY",211,211,211)
Color.IndexColor("GAINSBORO",220,220,220)
Color.IndexColor("WHITE_SMOKE",245,245,245)
Color.IndexColor("AliceBlue","f0f8ff")
Color.IndexColor("AntiqueWhite","faebd7")
Color.IndexColor("AntiqueWhite1","ffefdb")
Color.IndexColor("AntiqueWhite2","eedfcc")
Color.IndexColor("AntiqueWhite3","cdc0b0")
Color.IndexColor("AntiqueWhite4","8b8378")
Color.IndexColor("aquamarine1","7fffd4")
Color.IndexColor("aquamarine2","76eec6")
Color.IndexColor("aquamarine4","458b74")
Color.IndexColor("azure1","f0ffff")
Color.IndexColor("azure2","e0eeee")
Color.IndexColor("azure3","c1cdcd")
Color.IndexColor("azure4","838b8b")
Color.IndexColor("beige","f5f5dc")
Color.IndexColor("bisque1","ffe4c4")
Color.IndexColor("bisque2","eed5b7")
Color.IndexColor("bisque3","cdb79e")
Color.IndexColor("bisque4","8b7d6b")
Color.IndexColor("BlanchedAlmond","ffebcd")
Color.IndexColor("blue1","0000ff")
Color.IndexColor("blue2","0000ee")
Color.IndexColor("blue4","00008b")
Color.IndexColor("BlueViolet","8a2be2")
Color.IndexColor("brown","a52a2a")
Color.IndexColor("brown1","ff4040")
Color.IndexColor("brown2","ee3b3b")
Color.IndexColor("brown3","cd3333")
Color.IndexColor("brown4","8b2323")
Color.IndexColor("burlywood","deb887")
Color.IndexColor("burlywood1","ffd39b")
Color.IndexColor("burlywood2","eec591")
Color.IndexColor("burlywood3","cdaa7d")
Color.IndexColor("burlywood4","8b7355")
Color.IndexColor("CadetBlue","5f9ea0")
Color.IndexColor("CadetBlue1","98f5ff")
Color.IndexColor("CadetBlue2","8ee5ee")
Color.IndexColor("CadetBlue3","7ac5cd")
Color.IndexColor("CadetBlue4","53868b")
Color.IndexColor("chartreuse1","7fff00")
Color.IndexColor("chartreuse2","76ee00")
Color.IndexColor("chartreuse3","66cd00")
Color.IndexColor("chartreuse4","458b00")
Color.IndexColor("chocolate","d2691e")
Color.IndexColor("chocolate1","ff7f24")
Color.IndexColor("chocolate2","ee7621")
Color.IndexColor("chocolate3","cd661d")
Color.IndexColor("coral","ff7f50")
Color.IndexColor("coral1","ff7256")
Color.IndexColor("coral2","ee6a50")
Color.IndexColor("coral3","cd5b45")
Color.IndexColor("coral4","8b3e2f")
Color.IndexColor("CornflowerBlue","6495ed")
Color.IndexColor("cornsilk1","fff8dc")
Color.IndexColor("cornsilk2","eee8cd")
Color.IndexColor("cornsilk3","cdc8b1")
Color.IndexColor("cornsilk4","8b8878")
Color.IndexColor("cyan1","00ffff")
Color.IndexColor("cyan2","00eeee")
Color.IndexColor("cyan3","00cdcd")
Color.IndexColor("cyan4","008b8b")
Color.IndexColor("DarkGoldenrod","b8860b")
Color.IndexColor("DarkGoldenrod1","ffb90f")
Color.IndexColor("DarkGoldenrod2","eead0e")
Color.IndexColor("DarkGoldenrod3","cd950c")
Color.IndexColor("DarkGoldenrod4","8b6508")
Color.IndexColor("DarkGreen","006400")
Color.IndexColor("DarkKhaki","bdb76b")
Color.IndexColor("DarkOliveGreen","556b2f")
Color.IndexColor("DarkOliveGreen1","caff70")
Color.IndexColor("DarkOliveGreen2","bcee68")
Color.IndexColor("DarkOliveGreen3","a2cd5a")
Color.IndexColor("DarkOliveGreen4","6e8b3d")
Color.IndexColor("DarkOrange","ff8c00")
Color.IndexColor("DarkOrange1","ff7f00")
Color.IndexColor("DarkOrange2","ee7600")
Color.IndexColor("DarkOrange3","cd6600")
Color.IndexColor("DarkOrange4","8b4500")
Color.IndexColor("DarkOrchid","9932cc")
Color.IndexColor("DarkOrchid1","bf3eff")
Color.IndexColor("DarkOrchid2","b23aee")
Color.IndexColor("DarkOrchid3","9a32cd")
Color.IndexColor("DarkOrchid4","68228b")
Color.IndexColor("DarkSalmon","e9967a")
Color.IndexColor("DarkSeaGreen","8fbc8f")
Color.IndexColor("DarkSeaGreen1","c1ffc1")
Color.IndexColor("DarkSeaGreen2","b4eeb4")
Color.IndexColor("DarkSeaGreen3","9bcd9b")
Color.IndexColor("DarkSeaGreen4","698b69")
Color.IndexColor("DarkSlateBlue","483d8b")
Color.IndexColor("DarkSlateGray","2f4f4f")
Color.IndexColor("DarkSlateGray1","97ffff")
Color.IndexColor("DarkSlateGray2","8deeee")
Color.IndexColor("DarkSlateGray3","79cdcd")
Color.IndexColor("DarkSlateGray4","528b8b")
Color.IndexColor("DarkTurquoise","00ced1")
Color.IndexColor("DarkViolet","9400d3")
Color.IndexColor("DeepPink1","ff1493")
Color.IndexColor("DeepPink2","ee1289")
Color.IndexColor("DeepPink3","cd1076")
Color.IndexColor("DeepPink4","8b0a50")
Color.IndexColor("DeepSkyBlue1","00bfff")
Color.IndexColor("DeepSkyBlue2","00b2ee")
Color.IndexColor("DeepSkyBlue3","009acd")
Color.IndexColor("DeepSkyBlue4","00688b")
Color.IndexColor("DimGray","696969")
Color.IndexColor("DodgerBlue1","1e90ff")
Color.IndexColor("DodgerBlue2","1c86ee")
Color.IndexColor("DodgerBlue3","1874cd")
Color.IndexColor("DodgerBlue4","104e8b")
Color.IndexColor("firebrick","b22222")
Color.IndexColor("firebrick1","ff3030")
Color.IndexColor("firebrick2","ee2c2c")
Color.IndexColor("firebrick3","cd2626")
Color.IndexColor("firebrick4","8b1a1a")
Color.IndexColor("FloralWhite","fffaf0")
Color.IndexColor("ForestGreen","228b22")
Color.IndexColor("gainsboro","dcdcdc")
Color.IndexColor("GhostWhite","f8f8ff")
Color.IndexColor("gold1","ffd700")
Color.IndexColor("gold2","eec900")
Color.IndexColor("gold3","cdad00")
Color.IndexColor("gold4","8b7500")
Color.IndexColor("goldenrod","daa520")
Color.IndexColor("goldenrod1","ffc125")
Color.IndexColor("goldenrod2","eeb422")
Color.IndexColor("goldenrod3","cd9b1d")
Color.IndexColor("goldenrod4","8b6914")
Color.IndexColor("gray","bebebe")
Color.IndexColor("gray1","030303")
Color.IndexColor("gray10","1a1a1a")
Color.IndexColor("gray11","1c1c1c")
Color.IndexColor("gray12","1f1f1f")
Color.IndexColor("gray13","212121")
Color.IndexColor("gray14","242424")
Color.IndexColor("gray15","262626")
Color.IndexColor("gray16","292929")
Color.IndexColor("gray17","2b2b2b")
Color.IndexColor("gray18","2e2e2e")
Color.IndexColor("gray19","303030")
Color.IndexColor("gray2","050505")
Color.IndexColor("gray20","333333")
Color.IndexColor("gray21","363636")
Color.IndexColor("gray22","383838")
Color.IndexColor("gray23","3b3b3b")
Color.IndexColor("gray24","3d3d3d")
Color.IndexColor("gray25","404040")
Color.IndexColor("gray26","424242")
Color.IndexColor("gray27","454545")
Color.IndexColor("gray28","474747")
Color.IndexColor("gray29","4a4a4a")
Color.IndexColor("gray3","080808")
Color.IndexColor("gray30","4d4d4d")
Color.IndexColor("gray31","4f4f4f")
Color.IndexColor("gray32","525252")
Color.IndexColor("gray33","545454")
Color.IndexColor("gray34","575757")
Color.IndexColor("gray35","595959")
Color.IndexColor("gray36","5c5c5c")
Color.IndexColor("gray37","5e5e5e")
Color.IndexColor("gray38","616161")
Color.IndexColor("gray39","636363")
Color.IndexColor("gray4","0a0a0a")
Color.IndexColor("gray40","666666")
Color.IndexColor("gray41","696969")
Color.IndexColor("gray42","6b6b6b")
Color.IndexColor("gray43","6e6e6e")
Color.IndexColor("gray44","707070")
Color.IndexColor("gray45","737373")
Color.IndexColor("gray46","757575")
Color.IndexColor("gray47","787878")
Color.IndexColor("gray48","7a7a7a")
Color.IndexColor("gray49","7d7d7d")
Color.IndexColor("gray5","0d0d0d")
Color.IndexColor("gray50","7f7f7f")
Color.IndexColor("gray51","828282")
Color.IndexColor("gray52","858585")
Color.IndexColor("gray53","878787")
Color.IndexColor("gray54","8a8a8a")
Color.IndexColor("gray55","8c8c8c")
Color.IndexColor("gray56","8f8f8f")
Color.IndexColor("gray57","919191")
Color.IndexColor("gray58","949494")
Color.IndexColor("gray59","969696")
Color.IndexColor("gray6","0f0f0f")
Color.IndexColor("gray60","999999")
Color.IndexColor("gray61","9c9c9c")
Color.IndexColor("gray62","9e9e9e")
Color.IndexColor("gray63","a1a1a1")
Color.IndexColor("gray64","a3a3a3")
Color.IndexColor("gray65","a6a6a6")
Color.IndexColor("gray66","a8a8a8")
Color.IndexColor("gray67","ababab")
Color.IndexColor("gray68","adadad")
Color.IndexColor("gray69","b0b0b0")
Color.IndexColor("gray7","121212")
Color.IndexColor("gray70","b3b3b3")
Color.IndexColor("gray71","b5b5b5")
Color.IndexColor("gray72","b8b8b8")
Color.IndexColor("gray73","bababa")
Color.IndexColor("gray74","bdbdbd")
Color.IndexColor("gray75","bfbfbf")
Color.IndexColor("gray76","c2c2c2")
Color.IndexColor("gray77","c4c4c4")
Color.IndexColor("gray78","c7c7c7")
Color.IndexColor("gray79","c9c9c9")
Color.IndexColor("gray8","141414")
Color.IndexColor("gray80","cccccc")
Color.IndexColor("gray81","cfcfcf")
Color.IndexColor("gray82","d1d1d1")
Color.IndexColor("gray83","d4d4d4")
Color.IndexColor("gray84","d6d6d6")
Color.IndexColor("gray85","d9d9d9")
Color.IndexColor("gray86","dbdbdb")
Color.IndexColor("gray87","dedede")
Color.IndexColor("gray88","e0e0e0")
Color.IndexColor("gray89","e3e3e3")
Color.IndexColor("gray9","171717")
Color.IndexColor("gray90","e5e5e5")
Color.IndexColor("gray91","e8e8e8")
Color.IndexColor("gray92","ebebeb")
Color.IndexColor("gray93","ededed")
Color.IndexColor("gray94","f0f0f0")
Color.IndexColor("gray95","f2f2f2")
Color.IndexColor("gray97","f7f7f7")
Color.IndexColor("gray98","fafafa")
Color.IndexColor("gray99","fcfcfc")
Color.IndexColor("green1","00ff00")
Color.IndexColor("green2","00ee00")
Color.IndexColor("green3","00cd00")
Color.IndexColor("green4","008b00")
Color.IndexColor("GreenYellow","adff2f")
Color.IndexColor("honeydew1","f0fff0")
Color.IndexColor("honeydew2","e0eee0")
Color.IndexColor("honeydew3","c1cdc1")
Color.IndexColor("honeydew4","838b83")
Color.IndexColor("HotPink","ff69b4")
Color.IndexColor("HotPink1","ff6eb4")
Color.IndexColor("HotPink2","ee6aa7")
Color.IndexColor("HotPink3","cd6090")
Color.IndexColor("HotPink4","8b3a62")
Color.IndexColor("IndianRed","cd5c5c")
Color.IndexColor("IndianRed1","ff6a6a")
Color.IndexColor("IndianRed2","ee6363")
Color.IndexColor("IndianRed3","cd5555")
Color.IndexColor("IndianRed4","8b3a3a")
Color.IndexColor("ivory1","fffff0")
Color.IndexColor("ivory2","eeeee0")
Color.IndexColor("ivory3","cdcdc1")
Color.IndexColor("ivory4","8b8b83")
Color.IndexColor("khaki","f0e68c")
Color.IndexColor("khaki1","fff68f")
Color.IndexColor("khaki2","eee685")
Color.IndexColor("khaki3","cdc673")
Color.IndexColor("khaki4","8b864e")
Color.IndexColor("lavender","e6e6fa")
Color.IndexColor("LavenderBlush1","fff0f5")
Color.IndexColor("LavenderBlush2","eee0e5")
Color.IndexColor("LavenderBlush3","cdc1c5")
Color.IndexColor("LavenderBlush4","8b8386")
Color.IndexColor("LawnGreen","7cfc00")
Color.IndexColor("LemonChiffon1","fffacd")
Color.IndexColor("LemonChiffon2","eee9bf")
Color.IndexColor("LemonChiffon3","cdc9a5")
Color.IndexColor("LemonChiffon4","8b8970")
Color.IndexColor("light","eedd82")
Color.IndexColor("LightBlue","add8e6")
Color.IndexColor("LightBlue1","bfefff")
Color.IndexColor("LightBlue2","b2dfee")
Color.IndexColor("LightBlue3","9ac0cd")
Color.IndexColor("LightBlue4","68838b")
Color.IndexColor("LightCoral","f08080")
Color.IndexColor("LightCyan1","e0ffff")
Color.IndexColor("LightCyan2","d1eeee")
Color.IndexColor("LightCyan3","b4cdcd")
Color.IndexColor("LightCyan4","7a8b8b")
Color.IndexColor("LightGoldenrod1","ffec8b")
Color.IndexColor("LightGoldenrod2","eedc82")
Color.IndexColor("LightGoldenrod3","cdbe70")
Color.IndexColor("LightGoldenrod4","8b814c")
Color.IndexColor("LightGoldenrodYellow","fafad2")
Color.IndexColor("LightGray","d3d3d3")
Color.IndexColor("LightPink","ffb6c1")
Color.IndexColor("LightPink1","ffaeb9")
Color.IndexColor("LightPink2","eea2ad")
Color.IndexColor("LightPink3","cd8c95")
Color.IndexColor("LightPink4","8b5f65")
Color.IndexColor("LightSalmon1","ffa07a")
Color.IndexColor("LightSalmon2","ee9572")
Color.IndexColor("LightSalmon3","cd8162")
Color.IndexColor("LightSalmon4","8b5742")
Color.IndexColor("LightSeaGreen","20b2aa")
Color.IndexColor("LightSkyBlue","87cefa")
Color.IndexColor("LightSkyBlue1","b0e2ff")
Color.IndexColor("LightSkyBlue2","a4d3ee")
Color.IndexColor("LightSkyBlue3","8db6cd")
Color.IndexColor("LightSkyBlue4","607b8b")
Color.IndexColor("LightSlateBlue","8470ff")
Color.IndexColor("LightSlateGray","778899")
Color.IndexColor("LightSteelBlue","b0c4de")
Color.IndexColor("LightSteelBlue1","cae1ff")
Color.IndexColor("LightSteelBlue2","bcd2ee")
Color.IndexColor("LightSteelBlue3","a2b5cd")
Color.IndexColor("LightSteelBlue4","6e7b8b")
Color.IndexColor("LightYellow1","ffffe0")
Color.IndexColor("LightYellow2","eeeed1")
Color.IndexColor("LightYellow3","cdcdb4")
Color.IndexColor("LightYellow4","8b8b7a")
Color.IndexColor("LimeGreen","32cd32")
Color.IndexColor("linen","faf0e6")
Color.IndexColor("magenta","ff00ff")
Color.IndexColor("magenta2","ee00ee")
Color.IndexColor("magenta3","cd00cd")
Color.IndexColor("magenta4","8b008b")
Color.IndexColor("maroon","b03060")
Color.IndexColor("maroon1","ff34b3")
Color.IndexColor("maroon2","ee30a7")
Color.IndexColor("maroon3","cd2990")
Color.IndexColor("maroon4","8b1c62")
Color.IndexColor("medium","66cdaa")
Color.IndexColor("MediumAquamarine","66cdaa")
Color.IndexColor("MediumBlue","0000cd")
Color.IndexColor("MediumOrchid","ba55d3")
Color.IndexColor("MediumOrchid1","e066ff")
Color.IndexColor("MediumOrchid2","d15fee")
Color.IndexColor("MediumOrchid3","b452cd")
Color.IndexColor("MediumOrchid4","7a378b")
Color.IndexColor("MediumPurple","9370db")
Color.IndexColor("MediumPurple1","ab82ff")
Color.IndexColor("MediumPurple2","9f79ee")
Color.IndexColor("MediumPurple3","8968cd")
Color.IndexColor("MediumPurple4","5d478b")
Color.IndexColor("MediumSeaGreen","3cb371")
Color.IndexColor("MediumSlateBlue","7b68ee")
Color.IndexColor("MediumSpringGreen","00fa9a")
Color.IndexColor("MediumTurquoise","48d1cc")
Color.IndexColor("MediumVioletRed","c71585")
Color.IndexColor("MidnightBlue","191970")
Color.IndexColor("MintCream","f5fffa")
Color.IndexColor("MistyRose1","ffe4e1")
Color.IndexColor("MistyRose2","eed5d2")
Color.IndexColor("MistyRose3","cdb7b5")
Color.IndexColor("MistyRose4","8b7d7b")
Color.IndexColor("moccasin","ffe4b5")
Color.IndexColor("NavajoWhite1","ffdead")
Color.IndexColor("NavajoWhite2","eecfa1")
Color.IndexColor("NavajoWhite3","cdb38b")
Color.IndexColor("NavajoWhite4","8b795e")
Color.IndexColor("NavyBlue","000080")
Color.IndexColor("OldLace","fdf5e6")
Color.IndexColor("OliveDrab","6b8e23")
Color.IndexColor("OliveDrab1","c0ff3e")
Color.IndexColor("OliveDrab2","b3ee3a")
Color.IndexColor("OliveDrab4","698b22")
Color.IndexColor("orange1","ffa500")
Color.IndexColor("orange2","ee9a00")
Color.IndexColor("orange3","cd8500")
Color.IndexColor("orange4","8b5a00")
Color.IndexColor("OrangeRed1","ff4500")
Color.IndexColor("OrangeRed2","ee4000")
Color.IndexColor("OrangeRed3","cd3700")
Color.IndexColor("OrangeRed4","8b2500")
Color.IndexColor("orchid","da70d6")
Color.IndexColor("orchid1","ff83fa")
Color.IndexColor("orchid2","ee7ae9")
Color.IndexColor("orchid3","cd69c9")
Color.IndexColor("orchid4","8b4789")
Color.IndexColor("pale","db7093")
Color.IndexColor("PaleGoldenrod","eee8aa")
Color.IndexColor("PaleGreen","98fb98")
Color.IndexColor("PaleGreen1","9aff9a")
Color.IndexColor("PaleGreen2","90ee90")
Color.IndexColor("PaleGreen3","7ccd7c")
Color.IndexColor("PaleGreen4","548b54")
Color.IndexColor("PaleTurquoise","afeeee")
Color.IndexColor("PaleTurquoise1","bbffff")
Color.IndexColor("PaleTurquoise2","aeeeee")
Color.IndexColor("PaleTurquoise3","96cdcd")
Color.IndexColor("PaleTurquoise4","668b8b")
Color.IndexColor("PaleVioletRed","db7093")
Color.IndexColor("PaleVioletRed1","ff82ab")
Color.IndexColor("PaleVioletRed2","ee799f")
Color.IndexColor("PaleVioletRed3","cd6889")
Color.IndexColor("PaleVioletRed4","8b475d")
Color.IndexColor("PapayaWhip","ffefd5")
Color.IndexColor("PeachPuff1","ffdab9")
Color.IndexColor("PeachPuff2","eecbad")
Color.IndexColor("PeachPuff3","cdaf95")
Color.IndexColor("PeachPuff4","8b7765")
Color.IndexColor("pink","ffc0cb")
Color.IndexColor("pink1","ffb5c5")
Color.IndexColor("pink2","eea9b8")
Color.IndexColor("pink3","cd919e")
Color.IndexColor("pink4","8b636c")
Color.IndexColor("plum","dda0dd")
Color.IndexColor("plum1","ffbbff")
Color.IndexColor("plum2","eeaeee")
Color.IndexColor("plum3","cd96cd")
Color.IndexColor("plum4","8b668b")
Color.IndexColor("PowderBlue","b0e0e6")
Color.IndexColor("purple","a020f0")
Color.IndexColor("purple1","9b30ff")
Color.IndexColor("purple2","912cee")
Color.IndexColor("purple3","7d26cd")
Color.IndexColor("purple4","551a8b")
Color.IndexColor("red1","ff0000")
Color.IndexColor("red2","ee0000")
Color.IndexColor("red3","cd0000")
Color.IndexColor("red4","8b0000")
Color.IndexColor("RosyBrown","bc8f8f")
Color.IndexColor("RosyBrown1","ffc1c1")
Color.IndexColor("RosyBrown2","eeb4b4")
Color.IndexColor("RosyBrown3","cd9b9b")
Color.IndexColor("RosyBrown4","8b6969")
Color.IndexColor("RoyalBlue","4169e1")
Color.IndexColor("RoyalBlue1","4876ff")
Color.IndexColor("RoyalBlue2","436eee")
Color.IndexColor("RoyalBlue3","3a5fcd")
Color.IndexColor("RoyalBlue4","27408b")
Color.IndexColor("SaddleBrown","8b4513")
Color.IndexColor("salmon","fa8072")
Color.IndexColor("salmon1","ff8c69")
Color.IndexColor("salmon2","ee8262")
Color.IndexColor("salmon3","cd7054")
Color.IndexColor("salmon4","8b4c39")
Color.IndexColor("SandyBrown","f4a460")
Color.IndexColor("SeaGreen1","54ff9f")
Color.IndexColor("SeaGreen2","4eee94")
Color.IndexColor("SeaGreen3","43cd80")
Color.IndexColor("SeaGreen4","2e8b57")
Color.IndexColor("seashell1","fff5ee")
Color.IndexColor("seashell2","eee5de")
Color.IndexColor("seashell3","cdc5bf")
Color.IndexColor("seashell4","8b8682")
Color.IndexColor("sienna","a0522d")
Color.IndexColor("sienna1","ff8247")
Color.IndexColor("sienna2","ee7942")
Color.IndexColor("sienna3","cd6839")
Color.IndexColor("sienna4","8b4726")
Color.IndexColor("SkyBlue","87ceeb")
Color.IndexColor("SkyBlue1","87ceff")
Color.IndexColor("SkyBlue2","7ec0ee")
Color.IndexColor("SkyBlue3","6ca6cd")
Color.IndexColor("SkyBlue4","4a708b")
Color.IndexColor("SlateBlue","6a5acd")
Color.IndexColor("SlateBlue1","836fff")
Color.IndexColor("SlateBlue2","7a67ee")
Color.IndexColor("SlateBlue3","6959cd")
Color.IndexColor("SlateBlue4","473c8b")
Color.IndexColor("SlateGray","708090")
Color.IndexColor("SlateGray1","c6e2ff")
Color.IndexColor("SlateGray2","b9d3ee")
Color.IndexColor("SlateGray3","9fb6cd")
Color.IndexColor("SlateGray4","6c7b8b")
Color.IndexColor("snow1","fffafa")
Color.IndexColor("snow2","eee9e9")
Color.IndexColor("snow3","cdc9c9")
Color.IndexColor("snow4","8b8989")
Color.IndexColor("SpringGreen1","00ff7f")
Color.IndexColor("SpringGreen2","00ee76")
Color.IndexColor("SpringGreen3","00cd66")
Color.IndexColor("SpringGreen4","008b45")
Color.IndexColor("SteelBlue","4682b4")
Color.IndexColor("SteelBlue1","63b8ff")
Color.IndexColor("SteelBlue2","5cacee")
Color.IndexColor("SteelBlue3","4f94cd")
Color.IndexColor("SteelBlue4","36648b")
Color.IndexColor("tan","d2b48c")
Color.IndexColor("tan1","ffa54f")
Color.IndexColor("tan2","ee9a49")
Color.IndexColor("tan3","cd853f")
Color.IndexColor("tan4","8b5a2b")
Color.IndexColor("thistle","d8bfd8")
Color.IndexColor("thistle1","ffe1ff")
Color.IndexColor("thistle2","eed2ee")
Color.IndexColor("thistle3","cdb5cd")
Color.IndexColor("thistle4","8b7b8b")
Color.IndexColor("tomato1","ff6347")
Color.IndexColor("tomato2","ee5c42")
Color.IndexColor("tomato3","cd4f39")
Color.IndexColor("tomato4","8b3626")
Color.IndexColor("turquoise","40e0d0")
Color.IndexColor("turquoise1","00f5ff")
Color.IndexColor("turquoise2","00e5ee")
Color.IndexColor("turquoise3","00c5cd")
Color.IndexColor("turquoise4","00868b")
Color.IndexColor("violet","ee82ee")
Color.IndexColor("VioletRed","d02090")
Color.IndexColor("VioletRed1","ff3e96")
Color.IndexColor("VioletRed2","ee3a8c")
Color.IndexColor("VioletRed3","cd3278")
Color.IndexColor("VioletRed4","8b2252")
Color.IndexColor("wheat","f5deb3")
Color.IndexColor("wheat1","ffe7ba")
Color.IndexColor("wheat2","eed8ae")
Color.IndexColor("wheat3","cdba96")
Color.IndexColor("wheat4","8b7e66")
Color.IndexColor("WhiteSmoke","f5f5f5")
Color.IndexColor("yellow1","ffff00")
Color.IndexColor("yellow2","eeee00")
Color.IndexColor("yellow3","cdcd00")
Color.IndexColor("yellow4","8b8b00")
Color.IndexColor("YellowGreen","9acd32")
Color.IndexColor("purple","7e1e9c")
Color.IndexColor("green","15b01a")
Color.IndexColor("blue","0343df")
Color.IndexColor("pink","ff81c0")
Color.IndexColor("brown","653700")
Color.IndexColor("red","e50000")
Color.IndexColor("light_blue","95d0fc")
Color.IndexColor("teal","029386")
Color.IndexColor("orange","f97306")
Color.IndexColor("light_green","96f97b")
Color.IndexColor("magenta","c20078")
Color.IndexColor("yellow","ffff14")
Color.IndexColor("sky_blue","75bbfd")
Color.IndexColor("grey","929591")
Color.IndexColor("lime_green","89fe05")
Color.IndexColor("light_purple","bf77f6")
Color.IndexColor("violet","9a0eea")
Color.IndexColor("dark_green","033500")
Color.IndexColor("turquoise","06c2ac")
Color.IndexColor("lavender","c79fef")
Color.IndexColor("dark_blue","00035b")
Color.IndexColor("tan","d1b26f")
Color.IndexColor("cyan","00ffff")
Color.IndexColor("aqua","13eac9")
Color.IndexColor("forest_green","06470c")
Color.IndexColor("mauve","ae7181")
Color.IndexColor("dark_purple","35063e")
Color.IndexColor("bright_green","01ff07")
Color.IndexColor("maroon","650021")
Color.IndexColor("olive","6e750e")
Color.IndexColor("salmon","ff796c")
Color.IndexColor("beige","e6daa6")
Color.IndexColor("royal_blue","0504aa")
Color.IndexColor("navy_blue","001146")
Color.IndexColor("lilac","cea2fd")
Color.IndexColor("black","000000")
Color.IndexColor("hot_pink","ff028d")
Color.IndexColor("light_brown","ad8150")
Color.IndexColor("pale_green","c7fdb5")
Color.IndexColor("peach","ffb07c")
Color.IndexColor("olive_green","677a04")
Color.IndexColor("dark_pink","cb416b")
Color.IndexColor("periwinkle","8e82fe")
Color.IndexColor("sea_green","53fca1")
Color.IndexColor("lime","aaff32")
Color.IndexColor("indigo","380282")
Color.IndexColor("mustard","ceb301")
Color.IndexColor("light_pink","ffd1df")
Color.IndexColor("rose","cf6275")
Color.IndexColor("bright_blue","0165fc")
Color.IndexColor("neon_green","0cff0c")
Color.IndexColor("burnt_orange","c04e01")
Color.IndexColor("aquamarine","04d8b2")
Color.IndexColor("navy","01153e")
Color.IndexColor("grass_green","3f9b0b")
Color.IndexColor("pale_blue","d0fefe")
Color.IndexColor("dark_red","840000")
Color.IndexColor("bright_purple","be03fd")
Color.IndexColor("yellow_green","c0fb2d")
Color.IndexColor("baby_blue","a2cffe")
Color.IndexColor("gold","dbb40c")
Color.IndexColor("mint_green","8fff9f")
Color.IndexColor("plum","580f41")
Color.IndexColor("royal_purple","4b006e")
Color.IndexColor("brick_red","8f1402")
Color.IndexColor("dark_teal","014d4e")
Color.IndexColor("burgundy","610023")
Color.IndexColor("khaki","aaa662")
Color.IndexColor("blue_green","137e6d")
Color.IndexColor("seafoam_green","7af9ab")
Color.IndexColor("kelly_green","02ab2e")
Color.IndexColor("puke_green","9aae07")
Color.IndexColor("pea_green","8eab12")
Color.IndexColor("taupe","b9a281")
Color.IndexColor("dark_brown","341c02")
Color.IndexColor("deep_purple","36013f")
Color.IndexColor("chartreuse","c1f80a")
Color.IndexColor("bright_pink","fe01b1")
Color.IndexColor("light_orange","fdaa48")
Color.IndexColor("mint","9ffeb0")
Color.IndexColor("pastel_green","b0ff9d")
Color.IndexColor("sand","e2ca76")
Color.IndexColor("dark_orange","c65102")
Color.IndexColor("spring_green","a9f971")
Color.IndexColor("puce","a57e52")
Color.IndexColor("seafoam","80f9ad")
Color.IndexColor("grey_blue","6b8ba4")
Color.IndexColor("army_green","4b5d16")
Color.IndexColor("dark_grey","363737")
Color.IndexColor("dark_yellow","d5b60a")
Color.IndexColor("goldenrod","fac205")
Color.IndexColor("slate","516572")
Color.IndexColor("light_teal","90e4c1")
Color.IndexColor("rust","a83c09")
Color.IndexColor("deep_blue","040273")
Color.IndexColor("pale_pink","ffcfdc")
Color.IndexColor("cerulean","0485d1")
Color.IndexColor("light_red","ff474c")
Color.IndexColor("mustard_yellow","d2bd0a")
Color.IndexColor("ochre","bf9005")
Color.IndexColor("pale_yellow","ffff84")
Color.IndexColor("crimson","8c000f")
Color.IndexColor("fuchsia","ed0dd9")
Color.IndexColor("hunter_green","0b4008")
Color.IndexColor("blue_grey","607c8e")
Color.IndexColor("slate_blue","5b7c99")
Color.IndexColor("pale_purple","b790d4")
Color.IndexColor("sea_blue","047495")
Color.IndexColor("pinkish_purple","d648d7")
Color.IndexColor("puke","a5a502")
Color.IndexColor("light_grey","d8dcd6")
Color.IndexColor("leaf_green","5ca904")
Color.IndexColor("light_yellow","fffe7a")
Color.IndexColor("eggplant","380835")
Color.IndexColor("steel_blue","5a7d9a")
Color.IndexColor("moss_green","658b38")
Color.IndexColor("robin's_egg_blue","98eff9")
Color.IndexColor("white","ffffff")
Color.IndexColor("grey_green","789b73")
Color.IndexColor("sage","87ae73")
Color.IndexColor("brick","a03623")
Color.IndexColor("burnt_sienna","b04e0f")
Color.IndexColor("reddish_brown","7f2b0a")
Color.IndexColor("cream","ffffc2")
Color.IndexColor("coral","fc5a50")
Color.IndexColor("ocean_blue","03719c")
Color.IndexColor("greenish","40a368")
Color.IndexColor("dark_magenta","960056")
Color.IndexColor("red_orange","fd3c06")
Color.IndexColor("bluish_purple","703be7")
Color.IndexColor("midnight_blue","020035")
Color.IndexColor("light_violet","d6b4fc")
Color.IndexColor("dusty_rose","c0737a")
Color.IndexColor("medium_blue","2c6fbb")
Color.IndexColor("greenish_yellow","cdfd02")
Color.IndexColor("yellowish_green","b0dd16")
Color.IndexColor("purplish_blue","601ef9")
Color.IndexColor("greyish_blue","5e819d")
Color.IndexColor("grape","6c3461")
Color.IndexColor("light_olive","acbf69")
Color.IndexColor("cornflower_blue","5170d7")
Color.IndexColor("pinkish_red","f10c45")
Color.IndexColor("bright_red","ff000d")
Color.IndexColor("azure","069af3")
Color.IndexColor("blue_purple","5729ce")
Color.IndexColor("dark_turquoise","045c5a")
Color.IndexColor("electric_blue","0652ff")
Color.IndexColor("off_white","ffffe4")
Color.IndexColor("powder_blue","b1d1fc")
Color.IndexColor("wine","80013f")
Color.IndexColor("dull_green","74a662")
Color.IndexColor("apple_green","76cd26")
Color.IndexColor("light_turquoise","7ef4cc")
Color.IndexColor("neon_purple","bc13fe")
Color.IndexColor("cobalt","1e488f")
Color.IndexColor("pinkish","d46a7e")
Color.IndexColor("olive_drab","6f7632")
Color.IndexColor("dark_cyan","0a888a")
Color.IndexColor("purple_blue","632de9")
Color.IndexColor("dark_violet","34013f")
Color.IndexColor("dark_lavender","856798")
Color.IndexColor("forrest_green","154406")
Color.IndexColor("vomit","a2a415")
Color.IndexColor("pale_orange","ffa756")
Color.IndexColor("greenish_blue","0b8b87")
Color.IndexColor("dark_tan","af884a")
Color.IndexColor("green_blue","06b48b")
Color.IndexColor("bluish_green","10a674")
Color.IndexColor("pastel_blue","a2bffe")
Color.IndexColor("moss","769958")
Color.IndexColor("grass","5cac2d")
Color.IndexColor("deep_pink","cb0162")
Color.IndexColor("blood_red","980002")
Color.IndexColor("sage_green","88b378")
Color.IndexColor("aqua_blue","02d8e9")
Color.IndexColor("terracotta","ca6641")
Color.IndexColor("pastel_purple","caa0ff")
Color.IndexColor("sienna","a9561e")
Color.IndexColor("dark_olive","373e02")
Color.IndexColor("green_yellow","c9ff27")
Color.IndexColor("scarlet","be0119")
Color.IndexColor("greyish_green","82a67d")
Color.IndexColor("chocolate","3d1c02")
Color.IndexColor("blue_violet","5d06e9")
Color.IndexColor("cornflower","6a79f7")
Color.IndexColor("baby_pink","ffb7ce")
Color.IndexColor("charcoal","343837")
Color.IndexColor("pine_green","0a481e")
Color.IndexColor("pumpkin","e17701")
Color.IndexColor("greenish_brown","696112")
Color.IndexColor("red_brown","8b2e16")
Color.IndexColor("brownish_green","6a6e09")
Color.IndexColor("tangerine","ff9408")
Color.IndexColor("salmon_pink","fe7b7c")
Color.IndexColor("aqua_green","12e193")
Color.IndexColor("raspberry","b00149")
Color.IndexColor("greyish_purple","887191")
Color.IndexColor("rose_pink","f7879a")
Color.IndexColor("neon_pink","fe019a")
Color.IndexColor("cobalt_blue","030aa7")
Color.IndexColor("orange_brown","be6400")
Color.IndexColor("deep_red","9a0200")
Color.IndexColor("orange_red","fd411e")
Color.IndexColor("dirty_yellow","cdc50a")
Color.IndexColor("orchid","c875c4")
Color.IndexColor("reddish_pink","fe2c54")
Color.IndexColor("reddish_purple","910951")
Color.IndexColor("yellow_orange","fcb001")
Color.IndexColor("light_cyan","acfffc")
Color.IndexColor("sky","82cafc")
Color.IndexColor("light_magenta","fa5ff7")
Color.IndexColor("pale_red","d9544d")
Color.IndexColor("emerald","01a049")
Color.IndexColor("dark_beige","ac9362")
Color.IndexColor("ugly_green","7a9703")
Color.IndexColor("jade","1fa774")
Color.IndexColor("greenish_grey","96ae8d")
Color.IndexColor("dark_salmon","c85a53")
Color.IndexColor("purplish_pink","ce5dae")
Color.IndexColor("dark_aqua","05696b")
Color.IndexColor("brownish_orange","cb7723")
Color.IndexColor("light_olive_green","a4be5c")
Color.IndexColor("light_aqua","8cffdb")
Color.IndexColor("clay","b66a50")
Color.IndexColor("medium_green","39ad48")
Color.IndexColor("burnt_umber","a0450e")
Color.IndexColor("dull_blue","49759c")
Color.IndexColor("pale_brown","b1916e")
Color.IndexColor("emerald_green","028f1e")
Color.IndexColor("brownish","9c6d57")
Color.IndexColor("mud","735c12")
Color.IndexColor("dark_rose","b5485d")
Color.IndexColor("brownish_red","9e3623")
Color.IndexColor("pink_purple","db4bda")
Color.IndexColor("pinky_purple","c94cbe")
Color.IndexColor("camo_green","526525")
Color.IndexColor("faded_green","7bb274")
Color.IndexColor("dusty_pink","d58a94")
Color.IndexColor("purple_pink","e03fd8")
Color.IndexColor("vomit_green","89a203")
Color.IndexColor("deep_green","02590f")
Color.IndexColor("reddish_orange","f8481c")
Color.IndexColor("mahogany","4a0100")
Color.IndexColor("aubergine","3d0734")
Color.IndexColor("dull_pink","d5869d")
Color.IndexColor("evergreen","05472a")
Color.IndexColor("dark_sky_blue","448ee4")
Color.IndexColor("very_light_green","d1ffbd")
Color.IndexColor("pastel_pink","ffbacd")
Color.IndexColor("grey_purple","826d8c")
Color.IndexColor("very_light_blue","d5ffff")
Color.IndexColor("dark_mauve","874c62")
Color.IndexColor("cadet_blue","4e7496")
Color.IndexColor("ice_blue","d7fffe")
Color.IndexColor("light_tan","fbeeac")
Color.IndexColor("dirty_green","667e2c")
Color.IndexColor("neon_blue","04d9ff")
Color.IndexColor("wine_red","7b0323")
Color.IndexColor("chocolate_brown","411900")
Color.IndexColor("dull_purple","84597e")
Color.IndexColor("yellow_brown","b79400")
Color.IndexColor("denim","3b638c")
Color.IndexColor("eggshell","ffffd4")
Color.IndexColor("jungle_green","048243")
Color.IndexColor("dark_peach","de7e5d")
Color.IndexColor("poop","7f5e00")
Color.IndexColor("umber","b26400")
Color.IndexColor("light_lavender","dfc5fe")
Color.IndexColor("bright_yellow","fffd01")
Color.IndexColor("golden_yellow","fec615")
Color.IndexColor("dusty_blue","5a86ad")
Color.IndexColor("electric_green","21fc0d")
Color.IndexColor("lighter_green","75fd63")
Color.IndexColor("slate_grey","59656d")
Color.IndexColor("teal_green","25a36f")
Color.IndexColor("marine_blue","01386a")
Color.IndexColor("avocado","90b134")
Color.IndexColor("terra_cotta","c9643b")
Color.IndexColor("dusty_purple","825f87")
Color.IndexColor("light_maroon","a24857")
Color.IndexColor("reddish","c44240")
Color.IndexColor("dark_lilac","9c6da5")
Color.IndexColor("dark_periwinkle","665fd1")
Color.IndexColor("bluish_grey","748b97")
Color.IndexColor("puke_yellow","c2be0e")
Color.IndexColor("purplish","94568c")
Color.IndexColor("ultramarine","2000b1")
Color.IndexColor("barney_purple","a00498")
Color.IndexColor("forest","0b5509")
Color.IndexColor("pea_soup","929901")
Color.IndexColor("brownish_yellow","c9b003")
Color.IndexColor("bright_teal","01f9c6")
Color.IndexColor("bluegreen","017a79")
Color.IndexColor("green_brown","544e03")
Color.IndexColor("blurple","5539cc")
Color.IndexColor("light_sky_blue","c6fcff")
Color.IndexColor("periwinkle_blue","8f99fb")
Color.IndexColor("pale_violet","ceaefa")
Color.IndexColor("darker_green","087804")
Color.IndexColor("true_blue","010fcc")
Color.IndexColor("green_grey","77926f")
Color.IndexColor("grey_brown","7f7053")
Color.IndexColor("dark_olive_green","3c4d03")
Color.IndexColor("apricot","ffb16d")
Color.IndexColor("faded_purple","916e99")
Color.IndexColor("darker_blue","011288")
Color.IndexColor("cerise","de0c62")
Color.IndexColor("khaki_green","728639")
Color.IndexColor("burnt_red","9f2305")
Color.IndexColor("light_forest_green","4f9153")
Color.IndexColor("violet_blue","510ac9")
Color.IndexColor("pale_lavender","eecffe")
Color.IndexColor("acid_green","8ffe09")
Color.IndexColor("purple_grey","866f85")
Color.IndexColor("lemon","fdff52")
Color.IndexColor("bright_orange","ff5b00")
Color.IndexColor("soft_green","6fc276")
Color.IndexColor("blush","f29e8e")
Color.IndexColor("yellowish_brown","9b7a01")
Color.IndexColor("fluorescent_green","08ff08")
Color.IndexColor("electric_purple","aa23ff")
Color.IndexColor("steel","738595")
Color.IndexColor("dull_orange","d8863b")
Color.IndexColor("muddy_green","657432")
Color.IndexColor("marigold","fcc006")
Color.IndexColor("ocean","017b92")
Color.IndexColor("light_mauve","c292a1")
Color.IndexColor("bordeaux","7b002c")
Color.IndexColor("light_blue_green","7efbb3")
Color.IndexColor("yellowish","faee66")
Color.IndexColor("snot_green","9dc100")
Color.IndexColor("light_lime_green","b9ff66")
Color.IndexColor("drab_green","749551")
Color.IndexColor("faded_blue","658cbb")
Color.IndexColor("dark_forest_green","002d04")
Color.IndexColor("hot_purple","cb00f5")
Color.IndexColor("dark_maroon","3c0008")
Color.IndexColor("brown_green","706c11")
Color.IndexColor("swamp_green","748500")
Color.IndexColor("light_indigo","6d5acf")
Color.IndexColor("purpley_blue","5f34e7")
Color.IndexColor("lightish_blue","3d7afd")
Color.IndexColor("teal_blue","01889f")
Color.IndexColor("denim_blue","3b5b92")
Color.IndexColor("dark_lime_green","7ebd01")
Color.IndexColor("dull_yellow","eedc5b")
Color.IndexColor("pistachio","c0fa8b")
Color.IndexColor("lemon_yellow","fdff38")
Color.IndexColor("red_violet","9e0168")
Color.IndexColor("dusky_pink","cc7a8b")
Color.IndexColor("dirt","8a6e45")
Color.IndexColor("very_dark_green","062e03")
Color.IndexColor("medium_purple","9e43a2")
Color.IndexColor("shit","7f5f00")
Color.IndexColor("dark_mustard","a88905")
Color.IndexColor("pea_soup_green","94a617")
Color.IndexColor("bubblegum_pink","fe83cc")
Color.IndexColor("barbie_pink","fe46a5")
Color.IndexColor("military_green","667c3e")
Color.IndexColor("pale_teal","82cbb2")
Color.IndexColor("bronze","a87900")
Color.IndexColor("pinky_red","fc2647")
Color.IndexColor("dull_red","bb3f3f")
Color.IndexColor("darkish_blue","014182")
Color.IndexColor("bluish","2976bb")
Color.IndexColor("dark_gold","b59410")
Color.IndexColor("yellowy_green","bff128")
Color.IndexColor("pine","2b5d34")
Color.IndexColor("dark_blue_green","005249")
Color.IndexColor("dirty_pink","ca7b80")
Color.IndexColor("slate_green","658d6d")
Color.IndexColor("prussian_blue","004577")
Color.IndexColor("bright_violet","ad0afd")
Color.IndexColor("lighter_purple","a55af4")
Color.IndexColor("steel_grey","6f828a")
Color.IndexColor("russet","a13905")
Color.IndexColor("vermillion","f4320c")
Color.IndexColor("greyish_brown","7a6a4f")
Color.IndexColor("red_purple","820747")
Color.IndexColor("red_pink","fa2a55")
Color.IndexColor("bright_turquoise","0ffef9")
Color.IndexColor("golden_brown","b27a01")
Color.IndexColor("cerulean_blue","056eee")
Color.IndexColor("soft_blue","6488ea")
Color.IndexColor("easter_green","8cfd7e")
Color.IndexColor("amber","feb308")
Color.IndexColor("mid_blue","276ab3")
Color.IndexColor("shit_brown","7b5804")
Color.IndexColor("hospital_green","9be5aa")
Color.IndexColor("purpleish_blue","6140ef")
Color.IndexColor("purply_blue","661aee")
Color.IndexColor("silver","c5c9c7")
Color.IndexColor("sickly_green","94b21c")
Color.IndexColor("melon","ff7855")
Color.IndexColor("dusky_rose","ba6873")
Color.IndexColor("brown_orange","b96902")
Color.IndexColor("darkish_green","287c37")
Color.IndexColor("cranberry","9e003a")
Color.IndexColor("purpleish","98568d")
Color.IndexColor("ecru","feffca")
Color.IndexColor("darker_purple","5f1b6b")
Color.IndexColor("mocha","9d7651")
Color.IndexColor("bright_magenta","ff08e8")
Color.IndexColor("coffee","a6814c")
Color.IndexColor("sepia","985e2b")
Color.IndexColor("faded_red","d3494e")
Color.IndexColor("canary_yellow","fffe40")
Color.IndexColor("bluey_purple","6241c7")
Color.IndexColor("pastel_yellow","fffe71")
Color.IndexColor("pale_turquoise","a5fbd5")
Color.IndexColor("greyish_pink","c88d94")
Color.IndexColor("marine","042e60")
Color.IndexColor("purplish_grey","7a687f")
Color.IndexColor("camel","c69f59")
Color.IndexColor("brownish_grey","86775f")
Color.IndexColor("burnt_yellow","d5ab09")
Color.IndexColor("cherry_red","f7022a")
Color.IndexColor("orangey_brown","b16002")
Color.IndexColor("soft_pink","fdb0c0")
Color.IndexColor("dark_sea_green","11875d")
Color.IndexColor("aqua_marine","2ee8bb")
Color.IndexColor("robin_egg_blue","8af1fe")
Color.IndexColor("light_sea_green","98f6b0")
Color.IndexColor("mud_brown","60460f")
Color.IndexColor("sandstone","c9ae74")
Color.IndexColor("british_racing_green","05480d")
Color.IndexColor("faded_pink","de9dac")
Color.IndexColor("maize","f4d054")
Color.IndexColor("ocre","c69c04")
Color.IndexColor("orange_yellow","ffad01")
Color.IndexColor("dark_khaki","9b8f55")
Color.IndexColor("light_lime","aefd6c")
Color.IndexColor("bright_light_blue","26f7fd")
Color.IndexColor("jade_green","2baf6a")
Color.IndexColor("barney","ac1db8")
Color.IndexColor("adobe","bd6c48")
Color.IndexColor("minty_green","0bf77d")
Color.IndexColor("light_navy_blue","2e5a88")
Color.IndexColor("dusty_green","76a973")
Color.IndexColor("very_dark_blue","000133")
Color.IndexColor("ocean_green","3d9973")
Color.IndexColor("mustard_green","a8b504")
Color.IndexColor("poop_brown","7a5901")
Color.IndexColor("olive_brown","645403")
Color.IndexColor("pink_red","f5054f")
Color.IndexColor("light_navy","155084")
Color.IndexColor("very_light_purple","f6cefc")
Color.IndexColor("ivory","ffffcb")
Color.IndexColor("bright_lavender","c760ff")
Color.IndexColor("bright_aqua","0bf9ea")
Color.IndexColor("robin's_egg","6dedfd")
Color.IndexColor("muted_green","5fa052")
Color.IndexColor("medium_brown","7f5112")
Color.IndexColor("copper","b66325")
Color.IndexColor("dark_lime","84b701")
Color.IndexColor("strawberry","fb2943")
Color.IndexColor("dirt_brown","836539")
Color.IndexColor("celery","c1fd95")
Color.IndexColor("bright_sky_blue","02ccfe")
Color.IndexColor("poo_brown","885f01")
Color.IndexColor("pinkish_brown","b17261")
Color.IndexColor("celadon","befdb7")
Color.IndexColor("bright_lime_green","65fe08")
Color.IndexColor("auburn","9a3001")
Color.IndexColor("shocking_pink","fe02a2")
Color.IndexColor("mulberry","920a4e")
Color.IndexColor("carolina_blue","8ab8fe")
Color.IndexColor("lightish_green","61e160")
Color.IndexColor("light_lilac","edc8ff")
Color.IndexColor("pale_olive","b9cc81")
Color.IndexColor("pumpkin_orange","fb7d07")
Color.IndexColor("yellow_ochre","cb9d06")
Color.IndexColor("fire_engine_red","fe0002")
Color.IndexColor("deep_sky_blue","0d75f8")
Color.IndexColor("watermelon","fd4659")
Color.IndexColor("bottle_green","044a05")
Color.IndexColor("very_dark_purple","2a0134")
Color.IndexColor("wheat","fbdd7e")
Color.IndexColor("murky_green","6c7a0e")
Color.IndexColor("brownish_purple","76424e")
Color.IndexColor("kermit_green","5cb200")
Color.IndexColor("primary_blue","0804f9")
Color.IndexColor("orangey_red","fa4224")
Color.IndexColor("pale_lilac","e4cbff")
Color.IndexColor("rust_red","aa2704")
Color.IndexColor("dirty_orange","c87606")
Color.IndexColor("pinkish_grey","c8aca9")
Color.IndexColor("light_plum","9d5783")
Color.IndexColor("greeny_blue","42b395")
Color.IndexColor("dark_navy","000435")
Color.IndexColor("pink/purple","ef1de7")
Color.IndexColor("irish_green","019529")
Color.IndexColor("baby_poop","937c00")
Color.IndexColor("slime_green","99cc04")
Color.IndexColor("purplish_red","b0054b")
Color.IndexColor("rouge","ab1239")
Color.IndexColor("light_rose","ffc5cb")
Color.IndexColor("drab","828344")
Color.IndexColor("dark_navy_blue","00022e")
Color.IndexColor("light_yellow_green","ccfd7f")
Color.IndexColor("easter_purple","c071fe")
Color.IndexColor("snot","acbb0d")
Color.IndexColor("light_salmon","fea993")
Color.IndexColor("purpley_pink","c83cb9")
Color.IndexColor("poo","8f7303")
Color.IndexColor("berry","990f4b")
Color.IndexColor("medium_grey","7d7f7c")
Color.IndexColor("brown_red","922b05")
Color.IndexColor("blood","770001")
Color.IndexColor("soft_purple","a66fb5")
Color.IndexColor("grey_pink","c3909b")
Color.IndexColor("bluey_green","2bb179")
Color.IndexColor("midnight","03012d")
Color.IndexColor("dark_indigo","1f0954")
Color.IndexColor("warm_grey","978a84")
Color.IndexColor("sandy_brown","c4a661")
Color.IndexColor("cherry","cf0234")
Color.IndexColor("blue/purple","5a06ef")
Color.IndexColor("gunmetal","536267")
Color.IndexColor("deep_violet","490648")
Color.IndexColor("tree_green","2a7e19")
Color.IndexColor("orangish_brown","b25f03")
Color.IndexColor("shamrock_green","02c14d")
Color.IndexColor("orangish_red","f43605")
Color.IndexColor("greeny_yellow","c6f808")
Color.IndexColor("ugly_yellow","d0c101")
Color.IndexColor("french_blue","436bad")
Color.IndexColor("dusky_purple","895b7b")
Color.IndexColor("butter_yellow","fffd74")
Color.IndexColor("light_beige","fffeb6")
Color.IndexColor("golden","f5bf03")
Color.IndexColor("dusky_blue","475f94")
Color.IndexColor("lightblue","7bc8f6")
Color.IndexColor("purply_pink","f075e6")
Color.IndexColor("off_green","6ba353")
Color.IndexColor("ocher","bf9b0c")
Color.IndexColor("milk_chocolate","7f4e1e")
Color.IndexColor("light_peach","ffd8b1")
Color.IndexColor("deep_magenta","a0025c")
Color.IndexColor("caramel","af6f09")
Color.IndexColor("greenish_teal","32bf84")
Color.IndexColor("pale_lime","befd73")
Color.IndexColor("purple_red","990147")
Color.IndexColor("blueberry","464196")
Color.IndexColor("asparagus","77ab56")
Color.IndexColor("pale_grey","fdfdfe")
Color.IndexColor("light_grey_blue","9dbcd4")
Color.IndexColor("pale_lime_green","b1ff65")
Color.IndexColor("grassy_green","419c03")
Color.IndexColor("mossy_green","638b27")
Color.IndexColor("earth","a2653e")
Color.IndexColor("deep_orange","dc4d01")
Color.IndexColor("pale_aqua","b8ffeb")
Color.IndexColor("rose_red","be013c")
Color.IndexColor("stone","ada587")
Color.IndexColor("rusty_orange","cd5909")
Color.IndexColor("pea","a4bf20")
Color.IndexColor("sick_green","9db92c")
Color.IndexColor("darker_pink","c4387f")
Color.IndexColor("chestnut","742802")
Color.IndexColor("blue/green","0f9b8e")
Color.IndexColor("amethyst","9b5fc0")
Color.IndexColor("dark_mint_green","20c073")
Color.IndexColor("pale_rose","fdc1c5")
Color.IndexColor("muted_blue","3b719f")
Color.IndexColor("fawn","cfaf7b")
Color.IndexColor("buff","fef69e")
Color.IndexColor("turquoise_green","04f489")
Color.IndexColor("muddy_brown","886806")
Color.IndexColor("sea","3c9992")
Color.IndexColor("tomato","ef4026")
Color.IndexColor("carnation_pink","ff7fa7")
Color.IndexColor("banana","ffff7e")
Color.IndexColor("neon_yellow","cfff04")
Color.IndexColor("greyish","a8a495")
Color.IndexColor("mid_green","50a747")
Color.IndexColor("muted_purple","805b87")
Color.IndexColor("electric_pink","ff0490")
Color.IndexColor("sandy","f1da7a")
Color.IndexColor("ugly_pink","cd7584")
Color.IndexColor("turquoise_blue","06b1c4")
Color.IndexColor("light_burgundy","a8415b")
Color.IndexColor("greenish_tan","bccb7a")
Color.IndexColor("dark_mint","48c072")
Color.IndexColor("light_urple","b36ff6")
Color.IndexColor("midnight_purple","280137")
Color.IndexColor("pinkish_orange","ff724c")
Color.IndexColor("pear","cbf85f")
Color.IndexColor("dark_plum","3f012c")
Color.IndexColor("tealish","24bca8")
Color.IndexColor("perrywinkle","8f8ce7")
Color.IndexColor("yellowish_orange","ffab0f")
Color.IndexColor("pastel_orange","ff964f")
Color.IndexColor("iris","6258c4")
Color.IndexColor("ultramarine_blue","1805db")
Color.IndexColor("navy_green","35530a")
Color.IndexColor("seaweed","18d17b")
Color.IndexColor("kiwi","9cef43")
Color.IndexColor("fluro_green","0aff02")
Color.IndexColor("bright_light_green","2dfe54")
Color.IndexColor("vivid_green","2fef10")
Color.IndexColor("frog_green","58bc08")
Color.IndexColor("dull_brown","876e4b")
Color.IndexColor("dusk","4e5481")
Color.IndexColor("mustard_brown","ac7e04")
Color.IndexColor("leafy_green","51b73b")
Color.IndexColor("cool_blue","4984b8")
Color.IndexColor("almost_black","070d0d")
Color.IndexColor("yellow/green","c8fd3d")
Color.IndexColor("heliotrope","d94ff5")
Color.IndexColor("green_apple","5edc1f")
Color.IndexColor("baby_poop_green","8f9805")
Color.IndexColor("apple","6ecb3c")
Color.IndexColor("purpleish_pink","df4ec8")
Color.IndexColor("night_blue","040348")
Color.IndexColor("merlot","730039")
Color.IndexColor("lightgreen","76ff7b")
Color.IndexColor("tomato_red","ec2d01")
Color.IndexColor("key_lime","aeff6e")
Color.IndexColor("pale_cyan","b7fffa")
Color.IndexColor("vomit_yellow","c7c10c")
Color.IndexColor("purplish_brown","6b4247")
Color.IndexColor("bubblegum","ff6cb5")
Color.IndexColor("shamrock","01b44c")
Color.IndexColor("mango","ffa62b")
Color.IndexColor("lime_yellow","d0fe1d")
Color.IndexColor("hot_green","25ff29")
Color.IndexColor("grape_purple","5d1451")
Color.IndexColor("faded_orange","f0944d")
Color.IndexColor("avocado_green","87a922")
Color.IndexColor("peacock_blue","016795")
Color.IndexColor("weird_green","3ae57f")
Color.IndexColor("bright_lilac","c95efb")
Color.IndexColor("fern_green","548d44")
Color.IndexColor("dirty_blue","3f829d")
Color.IndexColor("rust_orange","c45508")
Color.IndexColor("heather","a484ac")
Color.IndexColor("deep_teal","00555a")
Color.IndexColor("dark_seafoam","1fb57a")
Color.IndexColor("baby_poo","ab9004")
Color.IndexColor("yellowgreen","bbf90f")
Color.IndexColor("light_sage","bcecac")
Color.IndexColor("light_aquamarine","7bfdc7")
Color.IndexColor("spearmint","1ef876")
Color.IndexColor("bright_lime","87fd05")
Color.IndexColor("vibrant_green","0add08")
Color.IndexColor("very_pale_green","cffdbc")
Color.IndexColor("faded_yellow","feff7f")
Color.IndexColor("bile","b5c306")
Color.IndexColor("viridian","1e9167")
Color.IndexColor("very_light_pink","fff4f2")
Color.IndexColor("puke_brown","947706")
Color.IndexColor("medium_pink","f36196")
Color.IndexColor("ugly_purple","a442a0")
Color.IndexColor("sunshine_yellow","fffd37")
Color.IndexColor("seaweed_green","35ad6b")
Color.IndexColor("light_periwinkle","c1c6fc")
Color.IndexColor("lemon_green","adf802")
Color.IndexColor("greeny_brown","696006")
Color.IndexColor("dark_grey_blue","29465b")
Color.IndexColor("bright_olive","9cbb04")
Color.IndexColor("turtle_green","75b84f")
Color.IndexColor("pale_sky_blue","bdf6fe")
Color.IndexColor("light_mustard","f7d560")
Color.IndexColor("diarrhea","9f8303")
Color.IndexColor("dark_aquamarine","017371")
Color.IndexColor("brownish_pink","c27e79")
Color.IndexColor("baby_shit_green","889717")
Color.IndexColor("purpley","8756e4")
Color.IndexColor("greyblue","77a1b5")
Color.IndexColor("hot_magenta","f504c9")
Color.IndexColor("blue/grey","758da3")
Color.IndexColor("pale","fff9d0")
Color.IndexColor("cool_green","33b864")
Color.IndexColor("sandy_yellow","fdee73")
Color.IndexColor("eggshell_blue","c4fff7")
Color.IndexColor("barf_green","94ac02")
Color.IndexColor("baby_green","8cff9e")
Color.IndexColor("vibrant_purple","ad03de")
Color.IndexColor("brown_grey","8d8468")
Color.IndexColor("water_blue","0e87cc")
Color.IndexColor("lipstick_red","c0022f")
Color.IndexColor("banana_yellow","fafe4b")
Color.IndexColor("wisteria","a87dc2")
Color.IndexColor("purple_brown","673a3f")
Color.IndexColor("brown_yellow","b29705")
Color.IndexColor("purple/pink","d725de")
Color.IndexColor("lemon_lime","bffe28")
Color.IndexColor("grey/blue","647d8e")
Color.IndexColor("dusty_red","b9484e")
Color.IndexColor("deep_rose","c74767")
Color.IndexColor("dark_seafoam_green","3eaf76")
Color.IndexColor("muddy_yellow","bfac05")
Color.IndexColor("carnation","fd798f")
Color.IndexColor("yellowy_brown","ae8b0c")
Color.IndexColor("violet_red","a50055")
Color.IndexColor("twilight_blue","0a437a")
Color.IndexColor("pure_blue","0203e2")
Color.IndexColor("lightish_red","fe2f4a")
Color.IndexColor("brick_orange","c14a09")
Color.IndexColor("velvet","750851")
Color.IndexColor("sunflower","ffc512")
Color.IndexColor("light_mint_green","a6fbb2")
Color.IndexColor("light_grass_green","9af764")
Color.IndexColor("lavender_blue","8b88f8")
Color.IndexColor("rusty_red","af2f0d")
Color.IndexColor("lightish_purple","a552e6")
Color.IndexColor("dried_blood","4b0101")
Color.IndexColor("light_blue_grey","b7c9e2")
Color.IndexColor("leaf","71aa34")
Color.IndexColor("orangish","fc824a")
Color.IndexColor("pale_olive_green","b1d27b")
Color.IndexColor("off_yellow","f1f33f")
Color.IndexColor("dusty_orange","f0833a")
Color.IndexColor("butter","ffff81")
Color.IndexColor("royal","0c1793")
Color.IndexColor("petrol","005f6a")
Color.IndexColor("greenish_cyan","2afeb7")
Color.IndexColor("duck_egg_blue","c3fbf4")
Color.IndexColor("bubble_gum_pink","ff69af")
Color.IndexColor("bluegrey","85a3b2")
Color.IndexColor("warm_brown","964e02")
Color.IndexColor("twilight","4e518b")
Color.IndexColor("saffron","feb209")
Color.IndexColor("purple/blue","5d21d0")
Color.IndexColor("dark_sand","a88f59")
Color.IndexColor("vibrant_blue","0339f8")
Color.IndexColor("putty","beae8a")
Color.IndexColor("lawn_green","4da409")
Color.IndexColor("camouflage_green","4b6113")
Color.IndexColor("blush_pink","fe828c")
Color.IndexColor("reddy_brown","6e1005")
Color.IndexColor("darkish_red","a90308")
Color.IndexColor("algae_green","21c36f")
Color.IndexColor("dark_coral","cf524e")
Color.IndexColor("bright_cyan","41fdfe")
Color.IndexColor("piss_yellow","ddd618")
Color.IndexColor("pastel_red","db5856")
Color.IndexColor("greenish_turquoise","00fbb0")
Color.IndexColor("dark","1b2431")
Color.IndexColor("ruby","ca0147")
Color.IndexColor("poop_green","6f7c00")
Color.IndexColor("orangered","fe420f")
Color.IndexColor("dandelion","fedf08")
Color.IndexColor("claret","680018")
Color.IndexColor("pale_mauve","fed0fc")
Color.IndexColor("lipstick","d5174e")
Color.IndexColor("rosa","fe86a4")
Color.IndexColor("darkblue","030764")
Color.IndexColor("tan_brown","ab7e4c")
Color.IndexColor("shit_green","758000")
Color.IndexColor("red_wine","8c0034")
Color.IndexColor("pinky","fc86aa")
Color.IndexColor("mud_green","606602")
Color.IndexColor("light_greenish_blue","63f7b4")
Color.IndexColor("dull_teal","5f9e8f")
Color.IndexColor("deep_lavender","8d5eb7")
Color.IndexColor("vivid_blue","152eff")
Color.IndexColor("raw_umber","a75e09")
Color.IndexColor("light_mint","b6ffbb")
Color.IndexColor("light_light_blue","cafffb")
Color.IndexColor("highlighter_green","1bfc06")
Color.IndexColor("greeny_grey","7ea07a")
Color.IndexColor("bluey_grey","89a0b0")
Color.IndexColor("algae","54ac68")
Color.IndexColor("sap_green","5c8b15")
Color.IndexColor("pale_salmon","ffb19a")
Color.IndexColor("metallic_blue","4f738e")
Color.IndexColor("ice","d6fffa")
Color.IndexColor("gross_green","a0bf16")
Color.IndexColor("dodger_blue","3e82fc")
Color.IndexColor("warm_pink","fb5581")
Color.IndexColor("light_green_blue","56fca2")
Color.IndexColor("flat_green","699d4c")
Color.IndexColor("dark_blue_grey","1f3b4d")
Color.IndexColor("clay_brown","b2713d")
Color.IndexColor("sand_yellow","fce166")
Color.IndexColor("grapefruit","fd5956")
Color.IndexColor("blood_orange","fe4b03")
Color.IndexColor("very_pale_blue","d6fffe")
Color.IndexColor("old_pink","c77986")
Color.IndexColor("neon_red","ff073a")
Color.IndexColor("golden_rod","f9bc08")
Color.IndexColor("plum_purple","4e0550")
Color.IndexColor("pale_peach","ffe5ad")
Color.IndexColor("green_again","16d43f")
Color.IndexColor("dark_yellow_green","728f02")
Color.IndexColor("carmine","9d0216")
Color.IndexColor("deep_sea_blue","015482")
Color.IndexColor("dark_hot_pink","d90166")
Color.IndexColor("warm_blue","4b57db")
Color.IndexColor("light_khaki","e6f2a2")
Color.IndexColor("icky_green","8fae22")
Color.IndexColor("greenblue","23c48b")
Color.IndexColor("dirty_purple","734a65")
Color.IndexColor("rich_blue","021bf9")
Color.IndexColor("mushroom","ba9e88")
Color.IndexColor("flat_blue","3c73a8")
Color.IndexColor("dark_slate_blue","214761")
Color.IndexColor("dark_sage","598556")
Color.IndexColor("coral_pink","ff6163")
Color.IndexColor("true_green","089404")
Color.IndexColor("darkish_purple","751973")
Color.IndexColor("dark_taupe","7f684e")
Color.IndexColor("cool_grey","95a3a6")
Color.IndexColor("canary","fdff63")
Color.IndexColor("booger_green","96b403")
Color.IndexColor("muted_pink","d1768f")
Color.IndexColor("hazel","8e7618")
Color.IndexColor("dark_royal_blue","02066f")
Color.IndexColor("vivid_purple","9900fa")
Color.IndexColor("racing_green","014600")
Color.IndexColor("leather","ac7434")
Color.IndexColor("green/blue","01c08d")
Color.IndexColor("sunflower_yellow","ffda03")
Color.IndexColor("rich_purple","720058")
Color.IndexColor("pale_magenta","d767ad")
Color.IndexColor("light_yellowish_green","c2ff89")
Color.IndexColor("indigo_blue","3a18b1")
Color.IndexColor("dark_fuchsia","9d0759")
Color.IndexColor("yellow_tan","ffe36e")
Color.IndexColor("wintergreen","20f986")
Color.IndexColor("violet_pink","fb5ffc")
Color.IndexColor("topaz","13bbaf")
Color.IndexColor("seafoam_blue","78d1b6")
Color.IndexColor("light_gold","fddc5c")
Color.IndexColor("grey/green","86a17d")
Color.IndexColor("foam_green","90fda9")
Color.IndexColor("creme","ffffb6")
Color.IndexColor("clear_blue","247afd")
Color.IndexColor("ugly_blue","31668a")
Color.IndexColor("terracota","cb6843")
Color.IndexColor("very_dark_brown","1d0200")
Color.IndexColor("straw","fcf679")
Color.IndexColor("parchment","fefcaf")
Color.IndexColor("orangey_yellow","fdb915")
Color.IndexColor("greyish_teal","719f91")
Color.IndexColor("sapphire","2138ab")
Color.IndexColor("nice_blue","107ab0")
Color.IndexColor("browny_orange","ca6b02")
Color.IndexColor("washed_out_green","bcf5a6")
Color.IndexColor("tiffany_blue","7bf2da")
Color.IndexColor("light_seafoam","a0febf")
Color.IndexColor("light_neon_green","4efd54")
Color.IndexColor("light_bright_green","53fe5c")
Color.IndexColor("light_bluish_green","76fda8")
Color.IndexColor("rosy_pink","f6688e")
Color.IndexColor("peachy_pink","ff9a8a")
Color.IndexColor("pale_light_green","b1fc99")
Color.IndexColor("old_rose","c87f89")
Color.IndexColor("fern","63a950")
Color.IndexColor("dusk_blue","26538d")
Color.IndexColor("camo","7f8f4e")
Color.IndexColor("burnt_siena","b75203")
Color.IndexColor("tealish_green","0cdc73")
Color.IndexColor("swamp","698339")
Color.IndexColor("sand_brown","cba560")
Color.IndexColor("rust_brown","8b3103")
Color.IndexColor("orangeish","fd8d49")
Color.IndexColor("light_royal_blue","3a2efe")
Color.IndexColor("cocoa","875f42")
Color.IndexColor("baby_purple","ca9bf7")
Color.IndexColor("raw_sienna","9a6200")
Color.IndexColor("radioactive_green","2cfa1f")
Color.IndexColor("light_pea_green","c4fe82")
Color.IndexColor("cinnamon","ac4f06")
Color.IndexColor("squash","f2ab15")
Color.IndexColor("charcoal_grey","3c4142")
Color.IndexColor("bright_yellow_green","9dff00")
Color.IndexColor("baby_puke_green","b6c406")
Color.IndexColor("poison_green","40fd14")
Color.IndexColor("light_lavendar","efc0fe")
Color.IndexColor("indian_red","850e04")
Color.IndexColor("dark_cream","fff39a")
Color.IndexColor("toupe","c7ac7d")
Color.IndexColor("butterscotch","fdb147")
Color.IndexColor("burple","6832e3")
Color.IndexColor("tan_green","a9be70")
Color.IndexColor("sun_yellow","ffdf22")
Color.IndexColor("pale_gold","fdde6c")
Color.IndexColor("light_light_green","c8ffb0")
Color.IndexColor("lichen","8fb67b")
Color.IndexColor("green/yellow","b5ce08")
Color.IndexColor("darkgreen","054907")
Color.IndexColor("azul","1d5dec")
Color.IndexColor("sunny_yellow","fff917")
Color.IndexColor("sickly_yellow","d0e429")
Color.IndexColor("kelley_green","009337")
Color.IndexColor("bruise","7e4071")
Color.IndexColor("browny_green","6f6c0a")
Color.IndexColor("battleship_grey","6b7c85")
Color.IndexColor("off_blue","5684ae")
Color.IndexColor("manilla","fffa86")
Color.IndexColor("greenish_beige","c9d179")
Color.IndexColor("deep_brown","410200")
Color.IndexColor("darkish_pink","da467d")
Color.IndexColor("custard","fffd78")
Color.IndexColor("ugly_brown","7d7103")
Color.IndexColor("stormy_blue","507b9c")
Color.IndexColor("liliac","c48efd")
Color.IndexColor("baby_shit_brown","ad900d")
Color.IndexColor("reddish_grey","997570")
Color.IndexColor("powder_pink","ffb2d0")
Color.IndexColor("eggplant_purple","430541")
Color.IndexColor("egg_shell","fffcc4")
Color.IndexColor("very_light_brown","d3b683")
Color.IndexColor("tea_green","bdf8a3")
Color.IndexColor("orange_pink","ff6f52")
Color.IndexColor("light_grey_green","b7e1a1")
Color.IndexColor("kiwi_green","8ee53f")
Color.IndexColor("boring_green","63b365")
Color.IndexColor("light_pastel_green","b2fba5")
Color.IndexColor("candy_pink","ff63e9")
Color.IndexColor("purply","983fb2")
Color.IndexColor("purpley_grey","947e94")
Color.IndexColor("dusty_lavender","ac86a8")
Color.IndexColor("desert","ccad60")
Color.IndexColor("deep_lilac","966ebd")
Color.IndexColor("pig_pink","e78ea5")
Color.IndexColor("olive_yellow","c2b709")
Color.IndexColor("light_seafoam_green","a7ffb5")
Color.IndexColor("light_moss_green","a6c875")
Color.IndexColor("lavender_pink","dd85d7")
Color.IndexColor("deep_aqua","08787f")
Color.IndexColor("bland","afa88b")
Color.IndexColor("strong_pink","ff0789")
Color.IndexColor("green_teal","0cb577")
Color.IndexColor("deep_turquoise","017374")
Color.IndexColor("dark_green_blue","1f6357")
Color.IndexColor("bright_sea_green","05ffa6")
Color.IndexColor("booger","9bb53c")
Color.IndexColor("blue_with_a_hint_of_purple","533cc6")
Color.IndexColor("blue_blue","2242c7")
Color.IndexColor("windows_blue","3778bf")
Color.IndexColor("toxic_green","61de2a")
Color.IndexColor("strong_blue","0c06f7")
Color.IndexColor("spruce","0a5f38")
Color.IndexColor("pinkish_tan","d99b82")
Color.IndexColor("macaroni_and_cheese","efb435")
Color.IndexColor("grey_teal","5e9b8a")
Color.IndexColor("dusty_teal","4c9085")
Color.IndexColor("dark_grass_green","388004")
Color.IndexColor("cement","a5a391")
Color.IndexColor("yellowish_tan","fcfc81")
Color.IndexColor("warm_purple","952e8f")
Color.IndexColor("tea","65ab7c")
Color.IndexColor("really_light_blue","d4ffff")
Color.IndexColor("nasty_green","70b23f")
Color.IndexColor("light_eggplant","894585")
Color.IndexColor("fresh_green","69d84f")
Color.IndexColor("electric_lime","a8ff04")
Color.IndexColor("dust","b2996e")
Color.IndexColor("dark_pastel_green","56ae57")
Color.IndexColor("cloudy_blue","acc2d9")
for i=0,255 do
Color.IndexColor("Gray"..i,i,i,i)
end
function DrawThings(items)
for i=1,#items do
items[i]:draw()
end
end
function gui:eventable()
if self.important then
return true
end
if _GuiPro.Hierarchy then
if _GuiPro.TopHovered~=nil then
return self:isDescendant(_GuiPro.TopHovered) or _GuiPro.TopHovered==self
else
return true
end
else
return true
end
end
function gui:OnClicked(func)
table.insert(self.funcs,func)
end
function gui:OnReleased(func)
table.insert(self.funcs2,func)
end
function gui:OnEnter(func)
table.insert(self.funcs3,func)
end
function gui:OnExit(func)
table.insert(self.funcs4,func)
end
function gui:OnUpdate(func)
table.insert(self.funcs5,func)
end
function gui:OnDragStart(func)
table.insert(self.func8,func)
end
function gui:OnDragging(func)
table.insert(self.func6,func)
end
function gui:OnDragEnd(func)
table.insert(self.func7,func)
end
function gui:WhileHovering(func)
table.insert(self.func9,func)
end
function gui:OnMouseMoved(func)
table.insert(self.func10,func)
end
function gui:getChildren()
return self.Children
end
function gui:LClicked()
return self.lclicked
end
function gui:RClicked()
return self.rclicked
end
function gui:MClicked()
return self.mclicked
end
function gui:Clicked()
return (self.lclicked or self.rclicked)
end
function gui:Hovering()
return self.hovering
end
function gui:FreeConnections()
self.funcs={function(b,self) if b=="l" then self.LRE=true end end,function(b,self) if b=="r" then self.RRE=true end end,function(b,self) if b=="m" then self.MRE=true end end}
self.funcs2={function(b,self) if b=="l" then self.LRE=false end end,function(b,self) if b=="r" then self.RRE=false end end,function(b,self) if b=="m" then self.MRE=false end end}
self.funcs3={function(self) self.HE=true end}
self.funcs4={function(self) self.HE=false end}
self.funcs5={function(self) self.x=(self.Parent.width*self.scale.pos.x)+self.offset.pos.x+self.Parent.x self.y=(self.Parent.height*self.scale.pos.y)+self.offset.pos.y+self.Parent.y self.width=(self.Parent.width*self.scale.size.x)+self.offset.size.x self.height=(self.Parent.height*self.scale.size.y)+self.offset.size.y end}
end
function gui:LClick()
for i=1,#self.funcs do
self.funcs[i]("l",self)
end
end
function gui:RClick()
for i=1,#self.funcs do
self.funcs[i]("r",self)
end
end
function gui:MClick()
for i=1,#self.funcs do
self.funcs[i]("m",self)
end
end
function gui:LRelease()
for i=1,#self.funcs2 do
self.funcs2[i]("l",self)
end
end
function gui:RRelease()
for i=1,#self.funcs2 do
self.funcs2[i]("r",self)
end
end
function gui:MRelease()
for i=1,#self.funcs2 do
self.funcs2[i]("m",self)
end
end
function gui:full()
self:SetDualDim(nil,nil,nil,nil,nil,nil,1,1)
end
function gui.enableAutoWindowScaling(b)
_GuiPro.DPI_ENABLED=b or true
_defaultfont=love.graphics.newFont(12*love.window.getPixelScale())
end
function filter(name, x, y, w, h, sx ,sy ,sw ,sh)
if type(name)~="string" then
sh=sw
sw=sy
sy=sx
sx=h
h=w
w=y
y=x
x=name
end
return x,y,w,h,sx,sy,sw,sh
end
function gui:newBase(tp,name, x, y, w, h, sx ,sy ,sw ,sh)
_GuiPro.count=_GuiPro.count+1
local c = {}
setmetatable(c, gui)
if self==gui then
c.Parent=_GuiPro
else
c.Parent=self
end
c.segments=nil
c.ry=nil
c.rx=nil
c.DPI=1
if _GuiPro.DPI_ENABLED then
c.DPI=love.window.getPixelScale()
x, y, w, h=c.DPI*x,c.DPI*y,c.DPI*w,c.DPI*h
end
c.centerFontY=true
c.FormFactor="rectangle"
c.Type=tp
c.Active=true
c.form="rectangle"
c.Draggable=false
c.Name=name or "Gui"..tp
c:SetName(name)
c.BorderSize=1
c.BorderColor={0,0,0}
c.VIS=true
c.Visible=true
c.oV=true
c.Children={}
c.hovering=false
c.rclicked=false
c.lclicked=false
c.mclicked=false
c.clicked=false
c.Visibility=1
c.ClipDescendants=false
c.TextWrap=true
c.scale={}
c.scale.size={}
c.scale.size.x=sw or 0
c.scale.size.y=sh or 0
c.offset={}
c.offset.size={}
c.offset.size.x=w or 0
c.offset.size.y=h or 0
c.scale.pos={}
c.scale.pos.x=sx or 0
c.scale.pos.y=sy or 0
c.offset.pos={}
c.offset.pos.x=x or 0
c.offset.pos.y=y or 0
c.width = 0
c.height = 0
c.LRE=false
c.RRE=false
c.MRE=false
c.Color = {255, 255, 255}
function c:setRoundness(rx,ry,segments)
self.segments=segments
self.ry=ry
self.rx=rx
end
function c.stfunc()
love.graphics.rectangle("fill", c.x, c.y, c.width, c.height,c.rx,c.ry,c.segments)
end
function c:hasRoundness()
return (self.ry or self.rx)
end
c.funcs={function(b,self)
if b=="l" then
self.LRE=true
end
end,
function(b,self)
if b=="r" then
self.RRE=true
end
end,
function(b,self)
if b=="m" then
self.MRE=true
end
end}
c.funcs2={function(b,self)
if b=="l" then
self.LRE=false
end
end,
function(b,self)
if b=="r" then
self.RRE=false
end
end,
function(b,self)
if b=="m" then
self.MRE=false
end
end}
c.HE=false
c.funcs3={function(self)
self.HE=true
end}
c.funcs4={function(self)
self.HE=false
end}
c.funcs5={}
c.tid={}
c.touchcount=0
c.x=(c.Parent.width*c.scale.pos.x)+c.offset.pos.x+c.Parent.x
c.y=(c.Parent.height*c.scale.pos.y)+c.offset.pos.y+c.Parent.y
c.width=(c.Parent.width*c.scale.size.x)+c.offset.size.x
c.height=(c.Parent.height*c.scale.size.y)+c.offset.size.y
c.func6={}
c.func7={function() _GuiPro.DragItem={} end}
c.func8={function(self) _GuiPro.DragItem=self end}
c.func9={}
c.func10={}
function c:ImageRule()
if self.Image then
local sx=self.width/self.ImageWidth
local sy=self.height/self.ImageHeigth
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.ImageVisibility*255)
if self.width~=self.ImageWidth and self.height~=self.ImageHeigth then
love.graphics.draw(self.Image,self.x,self.y,math.rad(self.rotation),sx,sy)
else
love.graphics.draw(self.Image,self.Quad,self.x,self.y,math.rad(self.rotation),sx,sy)
end
end
end
function c:VideoRule()
if self.Video then
local sx=self.width/self.VideoWidth
local sy=self.height/self.VideoHeigth
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.VideoVisibility*255)
if self.width~=self.VideoWidth and self.height~=self.VideoHeigth then
love.graphics.draw(self.Video,self.x,self.y,math.rad(self.rotation),sx,sy)
else
love.graphics.draw(self.Video,self.Quad,self.x,self.y,math.rad(self.rotation),sx,sy)
end
end
end
function c:repeatImage(b,b2)
if b then
self.Image:setWrap(b,b2 or "repeat")
function self:ImageRule()
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.ImageVisibility*255)
love.graphics.draw(self.Image,self.Quad,self.x,self.y,math.rad(self.rotation))
end
else
sx=self.width/self.ImageWidth
sy=self.height/self.ImageHeigth
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.ImageVisibility*255)
love.graphics.draw(self.Image,self.Quad,self.x,self.y,math.rad(self.rotation),sx,sy)
end
end
function c:Mutate(t)
for i,v in pairs(t) do
_GuiPro.self=self
if type(i)=="number" then
loadstring("_GuiPro.self:"..v)()
else
self[i]=v
end
end
return self
end
c:WhileHovering(function(self)
self.omx=self.nmx
self.omy=self.nmy
self.nmx=love.mouse.getX()
self.nmy=love.mouse.getY()
if self.omx~=self.nmx or self.omy~=self.nmy then
for i=1,#self.func10 do
if self and self.nmx and self.nmy and self.omx and self.omy then
self.func10[i](self,self.nmx,self.nmy,self.omx,self.omy)
end
end
end
if self.WasBeingDragged==true and love.mouse.isDown(self.dragbut or "m")==false and self.Type~="TextImageButtonFrameDrag" then
for i=1,#self.func7 do
self.func7[i](self,(love.mouse.getX())-self.width/2,(love.mouse.getY())-self.height/2)
end
end
if _GuiPro.hasDrag==false and love.mouse.isDown(self.dragbut or "m") then
for i=1,#self.func8 do
self.func8[i](self,(love.mouse.getX())-self.width/2,(love.mouse.getY())-self.height/2)
end
end
if self.IsBeingDragged==true then
_GuiPro.hasDrag=true
self.WasBeingDragged=true
elseif self.WasBeingDragged==true and self.IsBeingDragged==false then
self.WasBeingDragged=false
_GuiPro.hasDrag=false
end
if self.Draggable==true and love.mouse.isDown(self.dragbut or "m") and _GuiPro.hasDrag==false then
for i=1,#self.func6 do
self.func6[i](self,(love.mouse.getX())-self.width/2,(love.mouse.getY())-self.height/2)
end
_GuiPro.hasDrag=true
if self.FormFactor:lower()=="circle" or self.FormFactor:lower()=="c" or self.FormFactor:lower()=="cir" then
self.IsBeingDragged=true
x=(love.mouse.getX()-self.x)
y=(love.mouse.getY()-self.y)
self:Move(x,y)
elseif self.FormFactor:lower()=="rectangle" or self.FormFactor:lower()=="r" or self.FormFactor:lower()=="rect" then
self.IsBeingDragged=true
x=(love.mouse.getX()-self.x)-self.width/2
y=(love.mouse.getY()-self.y)-self.height/2
self:Move(x,y)
end
else
self.IsBeingDragged=false
end
end)
table.insert(c.Parent.Children,c)
return c
end
_GuiPro.mousedownfunc=love.mouse.isDown
function love.mouse.isDown(b)
if not(b) then
return false
end
return _GuiPro.mousedownfunc(({["l"]=1,["r"]=2,["m"]=3})[b] or b)
end
--[[WORKING ON
doubleTap - UnFinished!
touchRendering - Broken
]]
function gui:TClickable(mx,my)
local x,y,w,h=love.graphics.getScissor()
if _GuiPro.HasStencel then
local obj=_GuiPro.StencelHolder
if self:isDescendant(obj) then
return math.sqrt((mx-obj.x)^2+(my-obj.y)^2)<=(obj.offset.size.x or 0)
end
end
if not(x) then
return true
end
return not(mx>x+w or mx<x or my>y+h or my<y)
end
function gui:touchable(t)
local touches = love.touch.getTouches()
local x,y=0,0
for i, id in ipairs(touches) do
if self.id==id then
x, y = love.touch.getPosition(id)
return (x > self.x and x < self.x+self.width and y > self.y and y < self.y+self.height and self:TClickable(x,y) and self:eventable())
end
end
self.id=-1
end
multi:newTask(function() -- A bit of post-loading haha
gui.touchpressed=multi:newConnection()
gui.touchreleased=multi:newConnection()
gui.touchmoved=multi:newConnection()
love.touchpressed=Library.convert(love.touchpressed or function() end)
love.touchreleased=Library.convert(love.touchreleased or function() end)
love.touchmoved=Library.convert(love.touchmoved or function() end)
love.touchpressed:inject(function(id, x, y, dx, dy, pressure) gui.touchpressed:Fire(id, x, y, dx, dy, pressure) return {id, x, y, dx, dy, pressure} end,1)
love.touchreleased:inject(function(id, x, y, dx, dy, pressure) gui.touchreleased:Fire(id, x, y, dx, dy, pressure) return {id, x, y, dx, dy, pressure} end,1)
love.touchmoved:inject(function(id, x, y, dx, dy, pressure) gui.touchmoved:Fire(id, x, y, dx, dy, pressure) return {id, x, y, dx, dy, pressure} end,1)
_GuiPro.TouchReady=true
_GuiPro.TouchRegister={}
gui.touchpressed:connect(function(id, x, y, dx, dy, pressure)
for i,v in pairs(_GuiPro.TouchRegister) do
if #v.tid==0 then
if (x > v.x and x < v.x+v.width and y > v.y and y < v.y+v.height and v:TClickable(x,y) and v:eventable()) then
v:addTID(id)
v.touchcount=1
for i=1,#v.ToFuncP do
v.ToFuncP[i](v,id, x-v.x, y-v.y, dx, dy or 0, pressure or 1)
end
end
elseif not(v:hasTID(id)) then
if (x > v.x and x < v.x+v.width and y > v.y and y < v.y+v.height and v:TClickable(x,y) and v:eventable()) then
v:addTID(id)
v.touchcount=v.touchcount+1
for i=1,#v.ToFuncP do
v.ToFuncP[i](v,id, x-v.x, y-v.y, dx, dy or 0, pressure or 1)
end
end
end
end
end)
gui.touchreleased:connect(function(id, x, y, dx, dy, pressure)
for i,v in pairs(_GuiPro.TouchRegister) do
if v:hasTID(id) then
v:removeTID(id)
for i=1,#v.ToFuncR do
v.ToFuncR[i](v,id, x-v.x, y-v.y, dx, dy or 0, pressure or 1)
end
end
end
end)
gui.touchmoved:connect(function(id, x, y, dx, dy, pressure)
for i,v in pairs(_GuiPro.TouchRegister) do
if v:hasTID(id) and (x > v.x and x < v.x+v.width and y > v.y and y < v.y+v.height and v:TClickable(x,y) and v:eventable()) then
for i=1,#v.ToFuncM do
v.ToFuncM[i](v,id, x-v.x, y-v.y, dx, dy or 0, pressure or 1)
end
elseif v:hasTID(id) and not((x > v.x and x < v.x+v.width and y > v.y and y < v.y+v.height and v:TClickable(x,y) and v:eventable())) then
v:removeTID(id)
for i=1,#v.ToFuncR do
v.ToFuncR[i](v,id, x-v.x, y-v.y, dx, dy or 0, pressure or 1)
end
end
end
end)
end)
-- now that that is done lets set up some more post loading checks
_GuiPro.int=multi:newProcess()
_GuiPro.int:Start()
_GuiPro.int:setJobSpeed(.001)
_GuiPro.EXACT=0
_GuiPro.LAX=.01
_GuiPro.LAZY=.05
-- now lets define the reg function
function gui.Compare(a,b,v,tp)
if tp==">" then
if (a+v>b or a-v>b) then
return true
end
elseif tp=="<" then
if (a+v<b or a-v<b) then
return true
end
elseif tp=="<=" then
if (a+v<=b or a-v<=b) then
return true
end
elseif tp==">=" then
if (a+v>=b or a-v>=b) then
return true
end
elseif tp=="==" then -- this one is gonna be tricky
if (a>=b-v and a<=b+v) or (b>=a-v and b<=a+v) then
return true
end
end
return false
end
function gui:regesterTouch()
local obj=self
obj.ToFuncP={}
obj.ToFuncM={}
obj.ToFuncR={}
obj.To2Func={}
obj.ToDTFunc={}
obj.touchRendering =_GuiPro.EXACT -- exact(0), lax(), #
function obj:removeTID(id)
for i=1,#self.tid do
if self.tid[i]==id then
table.remove(self.tid,i)
self.touchcount=self.touchcount-1
return
end
end
end
function obj:hasTID(id)
for i=1,#self.tid do
if self.tid[i]==id then
return true
end
end
return false
end
obj.txl1=0
obj.tyl1=0
obj.txl2=0
obj.tyl2=0
obj.LS=0
obj:OnUpdate(function(self)
if self.touchcount==2 then
local x1,y1=love.touch.getPosition( self.tid[1] )
local x2,y2=love.touch.getPosition( self.tid[2] )
local CS=math.sqrt((x2-x1)^2+(y2-y1)^2)
if gui.Compare(CS,self.LS,self.touchRendering,">") then
for i=1,#self.To2Func do
self.To2Func[i](self,CS,x1-self.x,y1-self.y,x2-self.x,y2-self.y)
end
elseif gui.Compare(CS,self.LS,self.touchRendering,"<") then
for i=1,#self.To2Func do
self.To2Func[i](self,-CS,x1-self.x,y1-self.y,x2-self.x,y2-self.y)
end
elseif gui.Compare(CS,self.LS,self.touchRendering,"==") then
for i=1,#self.To2Func do
self.To2Func[i](self,0,x1-self.x,y1-self.y,x2-self.x,y2-self.y)
end
end
-- if self.txl1~=x1 or self.txl2~=x2 or self.tyl1~=y1 or self.tyl2~=y2 then
-- for i=1,#self.To2Func do
-- self.To2Func[i](self,0,x1-self.x,y1-self.y,x2-self.x,y2-self.y)
-- end
-- end
self.LS=CS
self.txl1=x1
self.txl2=x2
self.tyl1=y1
self.tyl2=y2
end
end)
function obj:OnDoubleTap(func)
table.insert(self.ToDTFunc,func)
end
function obj:On2TouchMoved(func)
table.insert(self.To2Func,func)
end
function obj:addTID(id)
table.insert(self.tid,id)
end
function obj:OnTouchPressed(func)
table.insert(self.ToFuncP,func) -- event for touches
end
function obj:OnTouchReleased(func) -- event for touches
table.insert(self.ToFuncR,func)
end
function obj:OnTouchMoved(func) -- event for touches
table.insert(self.ToFuncM,func)
end
if _GuiPro.TouchReady then -- my sneaky test
print("Registred: "..tostring(obj))
table.insert(_GuiPro.TouchRegister,obj)
else
print("Attempting to register: "..tostring(obj))
_GuiPro.int:newJob(function() table.insert(_GuiPro.TouchRegister,obj) end) -- a sneaky way to ensure that your object gets registered eventually, even if you call the method before the touch patch was activated.
end
end
function UpdateThings(items)
for i=#items,1,-1 do
if items[i]:LClicked() then
for g=1,#items[i].funcs do
items[i].funcs[g]("l",items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
elseif items[i]:RClicked() then
for g=1,#items[i].funcs do
items[i].funcs[g]("r",items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
elseif items[i]:MClicked() then
for g=1,#items[i].funcs do
items[i].funcs[g]("m",items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
end
if not(items[i]:LClicked()) and items[i].LRE then
for g=1,#items[i].funcs2 do
items[i].funcs2[g]("l",items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
elseif not(items[i]:RClicked()) and items[i].RRE then
for g=1,#items[i].funcs2 do
items[i].funcs2[g]("r",items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
elseif not(items[i]:MClicked()) and items[i].MRE then
for g=1,#items[i].funcs2 do
items[i].funcs2[g]("m",items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
end
if items[i]:Hovering() and items[i].HE==false then
for g=1,#items[i].funcs3 do
items[i].funcs3[g](items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
elseif not(items[i]:Hovering()) and items[i].HE==true then
for g=1,#items[i].funcs4 do
items[i].funcs4[g](items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
elseif items[i]:Hovering() then
for g=1,#items[i].func9 do
items[i].func9[g](items[i],love.mouse.getX()-items[i].x,love.mouse.getY()-items[i].y)
end
end
for g=1,#items[i].funcs5 do
items[i].funcs5[g](items[i])
end
end
end
function GetAllChildren(Object)
local Stuff = {}
function Seek(Items)
for i=1,#Items do
if Items[i].Visible==true then
table.insert(Stuff,Items[i])
local NItems = Items[i]:getChildren()
if NItems ~= nil then
Seek(NItems)
end
end
end
end
local Objs = Object:getChildren()
for i=1,#Objs do
if Objs[i].Visible==true then
table.insert(Stuff,Objs[i])
local Items = Objs[i]:getChildren()
if Items ~= nil then
Seek(Items)
end
end
end
return Stuff
end
function GetAllChildren2(Object)
local Stuff = {}
function Seek(Items)
for i=1,#Items do
table.insert(Stuff,Items[i])
local NItems = Items[i]:getChildren()
if NItems ~= nil then
Seek(NItems)
end
end
end
local Objs = Object:getChildren()
for i=1,#Objs do
table.insert(Stuff,Objs[i])
local Items = Objs[i]:getChildren()
if Items ~= nil then
Seek(Items)
end
end
return Stuff
end
function gui:getTile(i,x,y,w,h)-- returns imagedata
if type(i)=="string" then
i=love.graphics.newImage(i)
elseif type(i)=="userdata" then
-- do nothing
elseif string.find(self.Type,"Image",1,true) then
local i,x,y,w,h=self.Image,i,x,y,w
else
error("getTile invalid args!!! Usage: ImageElement:getTile(x,y,w,h) or gui:getTile(imagedata,x,y,w,h)")
end
local iw,ih=i:getDimensions()
local id,_id=i:getData(),love.image.newImageData(w,h)
for _x=x,w+x-1 do
for _y=y,h+y-1 do
--
_id:setPixel(_x-x,_y-y,id:getPixel(_x,_y))
end
end
return love.graphics.newImage(_id)
end
function gui:newAnim(file,delay, x, y, w, h, sx ,sy ,sw ,sh)
local x,y,w,h,sx,sy,sw,sh=filter(file, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("ImageAnimation",file, x, y, w, h, sx ,sy ,sw ,sh)
c.Visibility=0
c.ImageVisibility=1
c.delay=delay or .05
c.files={}
c.AnimStart={}
c.AnimEnd={}
local _files=alphanumsort(love.filesystem.getDirectoryItems(file))
for i=1,#_files do
if string.sub(_files[i],-1,-1)~="b" then
table.insert(c.files,love.graphics.newImage(file.."/".._files[i]))
end
end
c.step=multi:newTStep(1,#c.files,1,c.delay)
c.step.parent=c
c.rotation=0
c.step:OnStart(function(step)
for i=1,#step.parent.AnimStart do
step.parent.AnimStart[i](step.parent)
end
end)
c.step:OnStep(function(pos,step)
step.parent:SetImage(step.parent.files[pos])
end)
c.step:OnEnd(function(step)
for i=1,#step.parent.AnimEnd do
step.parent.AnimEnd[i](step.parent)
end
end)
function c:OnAnimStart(func)
table.insert(self.AnimStart,func)
end
function c:OnAnimEnd(func)
table.insert(self.AnimEnd,func)
end
function c:Pause()
self.step:Pause()
end
function c:Resume()
self.step:Resume()
end
function c:Reset()
self.step.pos=1
end
function c:getFrames()
return #self.files
end
function c:getFrame()
return self.step.pos
end
function c:setFrame(n)
return self:SetImage(self.files[n])
end
return c
end
function gui:newAnimFromData(data,delay, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("ImageAnimation","FromFile", x, y, w, h, sx ,sy ,sw ,sh)
c.Visibility=0
c.ImageVisibility=1
c.delay=delay or .05
c.files=data
c.AnimStart={}
c.AnimEnd={}
c:SetImage(c.files[1])
c.step=multi:newTStep(1,#c.files,1,c.delay)
c.step.parent=c
c.rotation=0
c.step:OnStart(function(step)
for i=1,#step.parent.AnimStart do
step.parent.AnimStart[i](step.parent)
end
end)
c.step:OnStep(function(pos,step)
step.parent:SetImage(step.parent.files[pos])
end)
c.step:OnEnd(function(step)
for i=1,#step.parent.AnimEnd do
step.parent.AnimEnd[i](step.parent)
end
end)
function c:OnAnimStart(func)
table.insert(self.AnimStart,func)
end
function c:OnAnimEnd(func)
table.insert(self.AnimEnd,func)
end
function c:Pause()
self.step:Pause()
end
function c:Resume()
self.step:Resume()
end
function c:Reset()
self.step.pos=1
end
function c:getFrames()
return #self.files
end
function c:getFrame()
return self.step.pos
end
function c:setFrame(n)
return self:SetImage(self.files[n])
end
return c
end
function gui:newAnimFromTiles(file,xd,yd,delay, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(file, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("ImageAnimation",file, x, y, w, h, sx ,sy ,sw ,sh)
local im=love.graphics.newImage(file)
local _x,_y=im:getDimensions()
c.Visibility=0
c.ImageVisibility=1
c.delay=delay or .05
c.files={}
c.AnimStart={}
c.AnimEnd={}
for i=0,_y/yd-1 do
for j=0,_x/xd-1 do
table.insert(c.files,gui:getTile(im,j*xd,i*yd,xd,yd))
end
end
c:SetImage(c.files[1])
c.step=multi:newTStep(1,#c.files,1,c.delay)
c.step.parent=c
c.rotation=0
c.step:OnStart(function(step)
for i=1,#step.parent.AnimStart do
step.parent.AnimStart[i](step.parent)
end
end)
c.step:OnStep(function(pos,step)
step.parent:SetImage(step.parent.files[pos])
end)
c.step:OnEnd(function(step)
for i=1,#step.parent.AnimEnd do
step.parent.AnimEnd[i](step.parent)
end
end)
function c:OnAnimStart(func)
table.insert(self.AnimStart,func)
end
function c:OnAnimEnd(func)
table.insert(self.AnimEnd,func)
end
function c:Pause()
self.step:Pause()
end
function c:Resume()
self.step:Resume()
end
function c:Reset()
self.step.pos=1
end
function c:getFrames()
return #self.files
end
function c:getFrame()
return self.step.pos
end
function c:setFrame(n)
return self:SetImage(self.files[n])
end
return c
end
function gui:newFullImageLabel(i,name)
return self:newImageLabel(i,name,0,0,0,0,0,0,1,1)
end
function gui:newImageButton(i,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("ImageButton",name, x, y, w, h, sx ,sy ,sw ,sh)
if type(i)=="string" then
c.Image=love.graphics.newImage(i)
else
c.Image=i
end
c.Visibility=0
c.ImageVisibility=1
c.rotation=0
if c.Image~=nil then
c.ImageHeigth=c.Image:getHeight()
c.ImageHeight=c.Image:getHeight()
c.ImageWidth=c.Image:getWidth()
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
end
c:OnEnter(function()
--love.mouse.setCursor(_GuiPro.CursorH)
end)
c:OnExit(function()
--love.mouse.setCursor(_GuiPro.CursorN)
end)
return c
end
function gui:newImageLabel(i,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("ImageLabel",name, x, y, w, h, sx ,sy ,sw ,sh)
if type(i)=="string" then
c.Image=love.graphics.newImage(i)
else
c.Image=i
end
c.Visibility=0
c.ImageVisibility=1
c.rotation=0
if c.Image~=nil then
c.ImageHeigth=c.Image:getHeight()
c.ImageWidth=c.Image:getWidth()
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
end
return c
end
function gui:newVideo(name,i,x,y,w,h,sx,sy,sw,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("Video",name, x, y, w, h, sx ,sy ,sw ,sh)
if type(i)=="string" then
c.Video=love.graphics.newVideo(i)
else
c.Video=i
end
c.Visibility=0
c.VideoVisibility=1
c.rotation=0
if c.Video~=nil then
c.VideoHeigth=c.Video:getHeight()
c.VideoWidth=c.Video:getWidth()
c.Quad=love.graphics.newQuad(0,0,w,h,c.VideoWidth,c.VideoHeigth)
end
c.funcV={}
function c:Play()
self.handStart=true
self.Video:play()
end
function c:Pause()
self.Video:pause()
end
c.Resume=c.Play
function c:Stop()
self.handStart=false
self:Pause()
self:Rewind()
for i=1,# self.funcV do
self.funcV[i](self)
end
end
function c:OnVideoStopped(func)
table.insert(self.funcV,func)
end
function c:Rewind()
self.Video:rewind()
end
function c:Restart()
self:Rewind()
self:Play()
end
function c:Seek(o)
self.Video:seek(o)
end
function c:Tell()
self.Video:tell()
end
function c:SetFilter(min, mag, anisotropy)
self.Video:setFilter(min, mag, anisotropy)
end
function c:IsPlaying()
return self.Video:isPlaying()
end
c:OnUpdate(function(self)
if self.Video:isPlaying()==false and self.handStart == true then
self:Stop()
end
end)
return c
end
function gui:SetImage(i)
if type(i)=="string" then
self.Image=love.graphics.newImage(i)
else
self.Image=i
end
if self.Image~=nil then
self.ImageHeigth=self.Image:getHeight()
self.ImageWidth=self.Image:getWidth()
self.Quad=love.graphics.newQuad(0,0,self.width,self.height,self.ImageWidth,self.ImageHeigth)
end
return self.ImageWidth,self.ImageHeigth
end
function gui:UpdateImage()
self.ImageHeigth=self.Image:getHeight()
self.ImageWidth=self.Image:getWidth()
self.Quad=love.graphics.newQuad(0,0,self.width,self.height,self.ImageWidth,self.ImageHeigth)
end
function gui:newDropFrame(name,x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("DropFrame",name, x, y, w, h, sx ,sy ,sw ,sh)
c.WasBeingDragged=false
c.IsBeingDragged=false
c.Draggable=false
c.funcD={}
function c:GetDroppedItems()
local t=self:getChildren()
local tab={}
for i=1,#t do
if t[i].Type=="TextImageButtonFrameDrag" then
table.insert(tab,t[i])
end
end
return tab
end
function c:OnDropped(func)
table.insert(self.funcD,func)
end
c:OnUpdate(function(self)
if _GuiPro.DragItem then
if _GuiPro.DragItem.Type=="TextImageButtonFrameDrag" and love.mouse.isDown(_GuiPro.DragItem.dragbut or "m")==false and self:IsHovering() then
local t=_GuiPro.DragItem
_GuiPro.DragItem={}
for i=1,#t.funcD do
t.funcD[i](self,t)
end
for i=1,#self.funcD do
self.funcD[i](self,t)
end
_GuiPro.hasDrag=false
end
end
end)
return c
end
function gui:newFrame(name,x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("Frame",name, x, y, w, h, sx ,sy ,sw ,sh)
c.WasBeingDragged=false
c.IsBeingDragged=false
c.Draggable=false
return c
end
function gui:newFullFrame(name)
name=name or ""
return self:newFrame(name,0,0,0,0,0,0,1,1)
end
function gui:newTabFrame(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=gui:newFrame(name, x, y, w, h, sx ,sy ,sw ,sh)
c.tabheight=20
c.Holder=c:newFrame("Holder",0,c.tabheight,0,0,0,0,1,1)
c.TabHolder=c:newFrame("TabHolder",0,0,0,c.tabheight,0,0,1)
function c:setTabHeight(n)
self.tabheight=n
self.Holder:SetDualDim(0,-self.tabheight,0,0,0,0,1,1)
end
function c:addTab(name,colorT,colorH)
if colorT and not(colorH) then
colorH=colorT
end
local tab=self.TabHolder:newTextButton(name,name,0,0,0,0,0,0,0,1)
tab.Tween=-3
if colorT then
tab.Color=colorT
end
local holder=self.Holder:newFrame(name,0,0,0,0,0,0,1,1)
if colorH then
holder.Color=colorH
end
tab.frame=holder
tab:OnReleased(function(b,self)
if b=="l" then
local tt=self.Parent:getChildren()
local th=self.Parent.Parent.Holder:getChildren()
for i=1,#th do
th[i].Visible=false
end
for i=1,#tt do
tt[i].frame.Visible=false
tt[i].BorderSize=1
end
self.BorderSize=0
self.frame.Visible=true
end
end)
local tt=self.TabHolder:getChildren()
for i=1,#tt do
tt[i].frame.Visible=false
tt[i].BorderSize=1
end
tab.frame.Visible=true
tab.BorderSize=0
return tab,holder
end
c:OnUpdate(function(self)
local th=self.TabHolder:getChildren()
local l=self.width/#th
for i=1,#th do
th[i]:SetDualDim(l*(i-1),0,l)
end
if #th==0 then
self:Destroy()
end
end)
return c
end
function gui:newDragItem(t,i,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("TextImageButtonFrameDrag",name, x, y, w, h, sx ,sy ,sw ,sh)
c.WasBeingDragged=false
c.IsBeingDragged=false
c.Draggable=true
c.funcD={}
if type(i)=="string" then
c.Image=love.graphics.newImage(i)
c.ImageVisibility=1
c.ImageHeigth=c.Image:getHeight()
c.ImageWidth=c.Image:getWidth()
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
elseif type(i)=="image" then
c.Image=i
c.ImageVisibility=1
c.ImageHeigth=c.Image:getHeight()
c.ImageWidth=c.Image:getWidth()
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
end
c:OnDragStart(function(self,x,y)
if _GuiPro.hasDrag==false then
self:setParent(_GuiPro)
self:SetDualDim(x,y)
self:TopStack()
end
end)
c.rotation=0
c.Tween=0
c.XTween=0
c.text = t
c.AutoScaleText=false
c.FontHeight=_defaultfont:getHeight()
c.Font=_defaultfont
c.FontSize=15
c.TextFormat="center"
c.TextVisibility=1
c.TextColor = {0, 0, 0}
function c:OnDropped(func)
table.insert(self.funcD,func)
end
c:OnUpdate(function(self)
if love.mouse.isDown("m" or self.dragbut)==false and self==_GuiPro.DragItem and self.hovering==false then
_GuiPro.DragItem={}
for i=1,#self.func7 do
self.func7[i](self,(love.mouse.getX())-self.width/2,(love.mouse.getY())-self.height/2)
end
end
end)
return c
end
function gui:newItem(t,i,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("TextImageButtonFrame",name, x, y, w, h, sx ,sy ,sw ,sh)
if type(i)=="string" then
c.Image=love.graphics.newImage(i)
else
c.Image=i
end
c.rotation=0
c.ImageVisibility=1
c.Draggable=false
if c.Image~=nil then
c.ImageHeigth=c.Image:getHeight()
c.ImageWidth=c.Image:getWidth()
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
end
c.Tween=0
c.XTween=0
c.text = t
c.AutoScaleText=false
c.FontHeight=_defaultfont:getHeight()
c.Font=_defaultfont
c.FontSize=15
c.TextFormat="center"
c.TextVisibility=1 -- 0=invisible,1=solid (self.TextVisibility*254+1)
c.TextColor = {0, 0, 0}
return c
end
function gui:addDominance()
_GuiPro.TopHovered=self
end
function gui:addHotKey(key)
local temp=self:newFrame(0,0,0,0)
temp.Visible=false
temp:setHotKey(key)
return temp
end
function gui:AdvTextBox(txt,x,y,w,h,sx,sy,sw,sh)
name="AdvTextBox"
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("AdvTextBoxFrame",name, x, y, w, 30, sx ,sy ,sw ,sh)
c.Draggable=true
c.dragbut="r"
c.BorderSize=0
c:ApplyGradient{Color.Blue,Color.sexy_purple}
c:newTextLabel(txt,"Holder",0,0,0,h-30,0,1,1,0).Color=Color.sexy_purple
c.funcO={}
c.funcX={}
c:OnDragStart(function(self)
self:TopStack()
end)
--local temp = c:newTextButton("X","Close",-25,5,20,20,1)
--temp.Tween=-5
--temp.XTween=-2
--temp:OnReleased(function(b,self) for i=1,#self.Parent.funcX do self.Parent.funcX[i](self.Parent) end end)
--temp.Color=Color.Red
c.tLink=c:newTextBox("puttext","TextBox",5,h-95,-40,30,0,1,1,1)
c.tLink.Color=Color.light_gray
c.tLink.ClearOnFocus=true
c.tLink:OnFocus(function(self) self.ClearOnFocus=false end)
local temp=c:newTextButton("OK","Ok",-35,h-65,30,30,1,1)
temp:OnReleased(function(b,self) for i=1,#self.Parent.funcO do self.Parent.funcO[i](self.Parent,self.Parent.tLink.text) end end)
temp.Color=Color.Green
temp.XTween=-2
local temp=c:newTextButton("X","Cancel",-35,h-95,30,30,1,1)
temp:OnReleased(function(b,self) for i=1,#self.Parent.funcX do self.Parent.funcX[i](self.Parent,self.Parent.tLink.text) end end)
temp.Color=Color.Red
temp.XTween=-2
function c:Close()
self.Visible=false
end
function c:Open()
self.Visible=true
end
function c:OnOk(func)
table.insert(self.funcO,func)
end
function c:OnX(func)
table.insert(self.funcX,func)
end
return c
end
function alphanumsort(o)
local function padnum(d) local dec, n = string.match(d, "(%.?)0*(.+)")
return #dec > 0 and ("%.12f"):format(d) or ("%s%03d%s"):format(dec, #n, n)
end
table.sort(o, function(a,b) return tostring(a):gsub("%.?%d+",padnum)..("%3d"):format(#b)< tostring(b):gsub("%.?%d+",padnum)..("%3d"):format(#a) end)
return o
end
function gui:anchorRight(n)
self:SetDualDim(-(self.width+n),nil,nil,nil,1)
end
function _GuiPro.gradient(colors)
local direction = colors.direction or "horizontal"
colors.direction=nil
trans = colors.trans or 255
trans=math.floor(trans)
if direction == "horizontal" then
direction = true
elseif direction == "vertical" then
direction = false
else
error("Invalid direction '" .. tostring(direction) "' for gradient. Horizontal or vertical expected.")
end
local result = love.image.newImageData(direction and 1 or #colors, direction and #colors or 1)
for __i, color in ipairs(colors) do
local x, y
if direction then
x, y = 0, __i - 1
else
x, y = __i - 1, 0
end
result:setPixel(x, y, color[1], color[2], color[3], trans)
end
result = love.graphics.newImage(result)
result:setFilter('linear', 'linear')
return result
end
function _GuiPro.drawinrect(img, x, y, w, h, r, ox, oy, kx, ky)
love.graphics.draw(img, x, y, r, w / img:getWidth(), h / img:getHeight(), ox, oy, kx, ky)
end
function gui:ApplyGradient(rules)
self.Image=nil
self.Type=self.Type.."w/GradImage"
self.rotation=0
self.ImageVisibility=rules.visibility or 1
self:SetImage(_GuiPro.gradient(rules))
end
function gui:BottomStack()
childs=self.Parent:getChildren()
for i=1,#childs do
if childs[i]==self then
table.remove(self.Parent.Children,i)
table.insert(self.Parent.Children,1,self)
break
end
end
end
function gui:Center()
local x,y=self:getFullSize()
self:SetDualDim(-math.floor(x/2),-math.floor(y/2),nil,nil,.5,.5)
end
function gui:centerX()
self:SetDualDim(-(self.width/2),nil,nil,nil,.5)
end
function gui:centerY()
self:SetDualDim(nil,-(self.height/2),nil,nil,nil,.5)
end
function gui:Destroy()
check=self.Parent:getChildren()
local cc=0
for cc=1,#check do
if check[cc]==self then
table.remove(self.Parent.Children,cc)
end
end
end
function gui:disrespectHierarchy()
_GuiPro.Hierarchy=false
end
function gui:GetAllChildren()
local Stuff = {}
function Seek(Items)
for i=1,#Items do
if Items[i].Visible==true then
table.insert(Stuff,Items[i])
local NItems = Items[i]:getChildren()
if NItems ~= nil then
Seek(NItems)
end
end
end
end
local Objs = self:getChildren()
for i=1,#Objs do
if Objs[i].Visible==true then
table.insert(Stuff,Objs[i])
local Items = Objs[i]:getChildren()
if Items ~= nil then
Seek(Items)
end
end
end
return Stuff
end
function gui:GetChild(name)
return self.Children[name] or self
end
function gui:getChildren()
return self.Children
end
function gui:getColor(cindex)
return Color[cindex]
end
function gui:getFullSize()
local maxx,maxy=-math.huge,-math.huge
local temp = self:GetAllChildren()
for i=1,#temp do
if temp[i].width>maxx then
maxx=temp[i].width+temp[i].offset.pos.x
elseif temp[i].height>maxy then
maxy=temp[i].height+temp[i].offset.pos.y
end
end
return maxx,maxy
end
function gui:getHighest()
if self.Children[#self.Children]~=nil then
return self.Children[#self.Children]
end
end
function gui:getLowest()
if self.Children[1]~=nil then
return self.Children[1]
end
end
function InGrid(i,x,y,s)
return math.floor((i-1)/x)*s,(i-1)*s-(math.floor((i-1)/y)*(s*x))
end
function InGridX(i,w,h,xs,ys)
local xc,yc=math.floor(w/xs),math.floor(h/ys)
local xi,yi=(i-1)%xc,math.floor((i-1)/xc)
return xi*xs,yi*ys
end
function InGridY(i,w,h,xs,ys)
local xc,yc=math.floor(w/xs),math.floor(h/ys)
local xi,yi=math.floor((i-1)/yc),(i-1)%yc
return xi*xs,yi*ys
end
function gui:isDescendant(obj)
local things=obj:GetAllChildren()
for i=1,#things do
if things[i]==self then
return true
end
end
return false
end
function gui:isHighest()
return (self==self.Parent:getHighest())
end
function gui:IsHovering()
return (love.mouse.getX() > self.x and love.mouse.getX() < self.x+self.width and love.mouse.getY() > self.y and love.mouse.getY() < self.y+self.height)
end
function gui:isLowest()
return (self==self.Parent:getLowest())
end
function gui.massMutate(t,...)
local mut={...}
for i=1,#mut do
mut[i]:Mutate(t)
end
end
function gui:Move(x,y)
self.offset.pos.x=self.offset.pos.x+x
self.offset.pos.y=self.offset.pos.y+y
end
if love.filesystem.exists("CheckBoxes.png") then
_GuiPro.UC=gui:getTile("CheckBoxes.png",0,0,16,16)
_GuiPro.C=gui:getTile("CheckBoxes.png",16,0,16,16)
_GuiPro.UCH=gui:getTile("CheckBoxes.png",0,16,16,16)
_GuiPro.CH=gui:getTile("CheckBoxes.png",16,16,16,16)
end
function gui:newCheckBox(name,x,y)
if not(_GuiPro.UC) then error("CheckBoxes.png not found! Cannot currently use checkbox without the data") end
if type(name)~="String" then
x,y,name=name,x,"CheckBox"
end
local c=self:newImageLabel(_GuiPro.UC,name, x, y, 16,16)
c.Visibility=0
c.check=false
c:OnEnter(function(self)
if self.check then
self:SetImage(_GuiPro.CH)
else
self:SetImage(_GuiPro.UCH)
end
end)
function c:isChecked()
return self.check
end
c:OnExit(function(self)
if self.check then
self:SetImage(_GuiPro.C)
else
self:SetImage(_GuiPro.UC)
end
end)
c:OnReleased(function(b,self)
self.check=not(self.check)
if self.check then
self:SetImage(_GuiPro.CH)
else
self:SetImage(_GuiPro.UCH)
end
end)
return c
end
function gui:newMessageBox(txt,x,y,w,h,sx,sy,sw,sh)
name="MessageBox"
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("MessageBoxFrame",name, x, y, w, 30, sx ,sy ,sw ,sh)
c.Draggable=true
c.dragbut="r"
c:ApplyGradient{Color.Blue,Color.sexy_purple}
c.BorderSize=0
c:newTextLabel(txt,"Holder",0,0,0,h-30,0,1,1,0).Color=Color.sexy_purple
c.funcO={}
c.funcX={}
c:OnDragStart(function(self)
self:TopStack()
end)
local temp = c:newTextButton("X","Close",-25,5,20,20,1)
temp.Tween=-5
temp.XTween=-2
temp:OnReleased(function(b,self) for i=1,#self.Parent.funcX do self.Parent.funcX[i](self.Parent) end end)
temp.Color=Color.Red
local temp=c:newTextButton("OK","Ok",0,h-65,0,30,.25,1,.5)
temp:OnReleased(function(b,self) for i=1,#self.Parent.funcO do self.Parent.funcO[i](self.Parent) end end)
temp.Color=Color.Green
function c:Close()
self.Visible=false
end
function c:Open()
self.Visible=true
end
function c:OnOk(func)
table.insert(self.funcO,func)
end
function c:OnX(func)
table.insert(self.funcX,func)
end
return c
end
function gui:newPart(x, y,w ,h , sx ,sy ,sw ,sh)
local c = {}
setmetatable(c, gui)
if self==gui then
c.Parent=_GuiPro
else
c.Parent=self
end
c.funcs={}
c.funcs2={}
c.funcs3={}
c.funcs4={}
c.funcs5={}
c.func6={}
c.func7={}
c.func8={}
c.func9={}
c.func10={}
c.form="rectangle"
c.Color = {255, 255, 255}
c.scale={}
c.scale.size={}
c.scale.size.x=sw or 0
c.scale.size.y=sh or 0
c.offset={}
c.offset.size={}
c.offset.size.x=w or 0
c.offset.size.y=h or 0
c.scale.pos={}
c.scale.pos.x=sx or 0
c.scale.pos.y=sy or 0
c.offset.pos={}
c.offset.pos.x=x or 0
c.offset.pos.y=y or 0
c.VIS=true
c.Visible=true
c.Visibility=1
c.BorderColor={0,0,0}
c.BorderSize=0
c.Type="Part"
c.Name="GuiPart"
_GuiPro.count=_GuiPro.count+1
c.x=(c.Parent.width*c.scale.pos.x)+c.offset.pos.x+c.Parent.x
c.y=(c.Parent.height*c.scale.pos.y)+c.offset.pos.y+c.Parent.y
c.width=(c.Parent.width*c.scale.size.x)+c.offset.size.x
c.height=(c.Parent.height*c.scale.size.y)+c.offset.size.y
table.insert(c.Parent.Children,c)
return c
end
function gui:newProgressBar(txt,x,y,w,h,sx,sy,sw,sh)
name="newProgressBar"
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("newProgressBarFrame",name, x, y, w, 30, sx ,sy ,sw ,sh)
c.Draggable=true
c.dragbut="r"
c.BorderSize=0
c:ApplyGradient{Color.Blue,Color.sexy_purple}
c:newTextLabel(txt,"Holder",0,0,0,h-30,0,1,1,0).Color=Color.sexy_purple
c.funcO={}
c.funcX={}
c:OnDragStart(function(self)
self:TopStack()
end)
local temp = c:newTextButton("X","Close",-25,5,20,20,1)
temp.Tween=-5
temp.XTween=-2
temp:OnReleased(function(b,self) for i=1,#self.Parent.funcX do self.Parent.funcX[i](self.Parent) end end)
temp.Color=Color.Red
c.BarBG=c:newTextButton("",5,h-65,-10,30,0,1,1)
c.BarBG:ApplyGradient{Color.Red,Color.light_red}
c.Bar=c.BarBG:newTextLabel("",0,0,0,0,0,0,0,1)
c.Bar:ApplyGradient{Color.Green,Color.light_green}
c.BarDisp=c.BarBG:newTextLabel("0%","0%",0,0,0,0,0,0,1,1)
c.BarDisp.Visibility=0
c.BarDisp.Link=c.Bar
c.BarDisp:OnUpdate(function(self)
self.text=self.Link.scale.size.x*100 .."%"
end)
c.Func1={}
function c:On100(func)
table.insert(self.Func1,func)
end
c:OnUpdate(function(self)
if self.Bar.scale.size.x*100>=100 then
for P=1,#self.Func1 do
self.Func1[P](self)
end
end
end)
function c:SetPercentage(n)
self.Bar:SetDualDim(0,0,0,0,0,0,n/100,1)
end
return c
end
function gui:newScrollBar(color1,color2)
local scrollbar=self:newFrame(-20,0,20,0,1,0,0,1)
scrollbar.funcS={}
scrollbar.Color=color1 or Color.saddle_brown
scrollbar:OnClicked(function(b,self,x,y)
love.mouse.setX(self.x+10)
if y>=10 and y<=self.height-10 then
self.mover:SetDualDim(0,y-10)
end
if y<10 then
love.mouse.setY(10+self.y)
end
if y>self.height-10 then
love.mouse.setY((self.height-10)+self.y)
end
for i=1,#self.funcS do
self.funcS[i](self,self:getPosition())
end
end)
scrollbar:OnEnter(function(self)
self:addDominance()
end)
scrollbar:OnExit(function(self)
self:removeDominance()
end)
scrollbar.mover=scrollbar:newTextButton("","",0,0,20,20)
scrollbar.mover.Color=color2 or Color.light_brown
function scrollbar:getPosition()
return ((self.mover.offset.pos.y)/(self.height-20))*100
end
function scrollbar:setPosition(n)
print((self.height-20),n)
self.mover.offset.pos.y=((self.height-20)/(100/n))
for i=1,#self.funcS do
self.funcS[i](self,self:getPosition())
end
end
function scrollbar:OnScroll(func)
table.insert(self.funcS,func)
end
return scrollbar
end
function gui:newScrollMenu(title,tabN,onloop,x, y, w, h, sx ,sy ,sw ,sh)
local Main = self:newFrame(x, y, w, h, sx ,sy ,sw ,sh)
local Title=Main:newTextButton(title,"Title",0,0,0,20,0,0,1)
Title.Tween=-4
Title.FontSize=12
Title:OnReleased(function(b,self)
self.Parent.Tick=not(self.Parent.Tick)
end)
local scroll=Main:newTextButton("","Scroll",-20,20,20,-20,1,0,0,1)
scroll:OnClicked(function(b,self,x,y)
self.Parent.Mover:SetDualDim(0,y-10,20,20)
if self.Parent.Mover.offset.pos.y<0 then
self.Parent.Mover:SetDualDim(0,0,20,20)
end
if self.Parent.Mover.offset.pos.y>self.Parent.height-40 then
self.Parent.Mover:SetDualDim(0,self.Parent.height-40,20,20)
end
local temp = #self.Parent.TList
self.Parent.pos=(math.floor((temp*self.Parent.Mover.offset.pos.y)/self.height))+1
end)
Main:OnUpdate(function(self)
if self.Tick==false then
self.Visibility=0
end
end)
scroll:OnUpdate(function(self)
self.Visible=self.Parent.Tick
end)
local Mover=scroll:newTextLabel("",0,0,20,20)
Main.Mover=Mover
Main.TList=tabN
Main.pos=1
Main.Tick=true
function Main:Update(title,tabN,onloop)
ch=self:getChildren()
for i=#ch,1,-1 do
ch[i]:Destroy()
end
Title=Main:newTextButton(title,"Title",0,0,0,20,0,0,1)
Title.Tween=-4
Title.FontSize=12
Title:OnReleased(function(b,self)
self.Parent.Tick=not(self.Parent.Tick)
end)
scroll=Main:newTextButton("","Scroll",-20,20,20,-20,1,0,0,1)
scroll:OnClicked(function(b,self,x,y)
self.Parent.Mover:SetDualDim(0,y-10,20,20)
if self.Parent.Mover.offset.pos.y<0 then
self.Parent.Mover:SetDualDim(0,0,20,20)
end
if self.Parent.Mover.offset.pos.y>self.Parent.height-40 then
self.Parent.Mover:SetDualDim(0,self.Parent.height-40,20,20)
end
local temp = #self.Parent.TList
self.Parent.pos=(math.floor((temp*self.Parent.Mover.offset.pos.y)/self.height))+1
end)
local Mover=scroll:newTextLabel("",0,0,20,20)
Main.Mover=Mover
Main.TList=tabN
Main.pos=1
Main.Tick=true
scroll:OnUpdate(function(self)
self.Visible=self.Parent.Tick
end)
for i=1,math.floor(Main.height/20)-1 do
local temp=Main:newTextButton("","Item"..i,0,i*20,-20,20,0,0,1)
temp.FontSize=10
temp.Tween=-4
temp.pos=i
temp:OnUpdate(function(self)
self.text=self.Parent.TList[(self.Parent.pos+self.pos)-1]
self.Visible=self.Parent.Tick
end)
if onloop then
onloop(temp,i)
end
end
end
io.write(tostring(Main.height).."\n")
for i=1,math.floor(Main.height/20)-1 do
local temp=Main:newTextButton("Item"..i,0,i*20,-20,20,0,0,1)
temp.FontSize=10
temp.Tween=-4
temp.pos=i
temp:OnUpdate(function(self)
if self.Parent.TList[(self.Parent.pos+self.pos)-1]~=nil then
self.text=self.Parent.TList[(self.Parent.pos+self.pos)-1]
else
self.text=""
end
self.Visible=self.Parent.Tick
end)
if onloop then
onloop(temp,i)
end
end
return Main
end
function gui:destroyAllChildren()
local c=self.Children
for i=1,#c do
c[i]:Destroy()
end
end
function gui:removeDominance()
_GuiPro.TopHovered=nil
end
function gui:respectHierarchy()
_GuiPro.Hierarchy=true
end
function gui.round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function gui.setBG(i)
gui.ff:SetImage(i)
end
function gui:setColor(a,b,c)
if type(a)=="string" then
self.Color=Color[a]
elseif type(a)=="number" then
self.Color=Color.new(a,b,c)
end
end
function gui:setTextColor(a,b,c)
if type(a)=="string" then
self.TextColor=Color[a]
elseif type(a)=="number" then
self.TextColor=Color.new(a,b,c)
end
end
function gui:setDefualtFont(font)
_defaultfont = font
end
function gui:SetDualDim(x, y, w, h, sx ,sy ,sw ,sh)
if _GuiPro.DPI_ENABLED then
if x then
x=self.DPI*x
end
if y then
y=self.DPI*y
end
if w then
w=self.DPI*w
end
if h then
h=self.DPI*h
end
end
if sx then
self.scale.pos.x=sx
end
if sy then
self.scale.pos.y=sy
end
if x then
self.offset.pos.x=x
end
if y then
self.offset.pos.y=y
end
if sw then
self.scale.size.x=sw
end
if sh then
self.scale.size.y=sh
end
if w then
self.offset.size.x=w
end
if h then
self.offset.size.y=h
end
if self.Image then
self:SetImage(self.Image)
end
end
function gui:setDualDim(...)
self:SetDualDim(...)
end
function gui:setText(txt)
self.text=txt
end
function gui:getText(txt)
return self.text
end
--_GuiPro.CursorN=love.mouse.getSystemCursor("arrow")
--_GuiPro.CursorH=love.mouse.getSystemCursor("hand")
function gui:SetHand(img,x,y)
--_GuiPro.CursorN=love.mouse.newCursor(img,x,y)
end
function gui:setHotKey(key)
local tab=key:split("+")
self.hotkeys=tab
self.cooldown=false
self.Alarm=multi:newAlarm(1)
self.Alarm.parent=self
self.args={}
self.funcHK=multi:newConnection()
self.Alarm:OnRing(function(alarm) alarm.parent.cooldown=false end)
function self:OnHotKey(func)
self.funcHK:connect(func)
end
self:OnUpdate(function(self)
if self.cooldown then return end
for i=1,#self.hotkeys do
if not(love.keyboard.isDown(self.hotkeys[i])) then
return
end
end
self.cooldown=true
self.funcHK:Fire(self)
self.Alarm:Reset()
end)
end
function gui:SetHover(img,x,y)
--_GuiPro.CursorH=love.mouse.newCursor(img,x,y)
end
function gui:SetName(name)
self.Parent.Children[name]=self
self.Name=name
end
function gui:setNewFont(FontSize)
self.Font=love.graphics.setNewFont(tonumber(FontSize))
end
function gui:setParent(parent,name)-- Needs fixing!!!
local temp=self.Parent:getChildren()
for i=1,#temp do
if temp[i]==self then
table.remove(self.Parent.Children,i)
break
end
end
table.insert(parent.Children,self)
self.Parent=parent
if name then
self:SetName(name)
end
end
function gui:setVisiblity(val)
self.Visible=val
self.oV=val
doto=self:GetAllChildren()
if val==false then
for i=1,#doto do
doto[i].Visible=val
end
else
for i=1,#doto do
doto[i].Visible=doto[i].oV
end
end
end
function gui:TopStack()
childs=self.Parent:getChildren()
for i=1,#childs do
if childs[i]==self then
table.remove(self.Parent.Children,i)
table.insert(self.Parent.Children,self)
break
end
end
end
function string:insert(p,s)
return ("%s%s%s"):format(self:sub(1,p), s, self:sub(p+1))
end
function string:remove(p,l)
l=l or 1
return ("%s%s"):format(self:sub(1,p-1), self:sub(p+l))
end
function gui:newTextBox(t,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("TextBox",name, x, y, w, h, sx ,sy ,sw ,sh)
c.ClearOnFocus=false
c.LoseFocusOnEnter=true
c.Tween=0
c.XTween=0
c.FontHeight=_defaultfont:getHeight()
c.Font=_defaultfont
c.FontSize=15
c.TextFormat="center"
c.text = t
c.ttext= t
c.AutoScaleText=false
c.TextVisibility=1
c.Color = {220, 220, 220}
c.TextColor = {0, 0, 0}
c.Active=false
c.hidden=false
c.cursor={0,1}
c.mark=nil
c.arrowkeys=false
c.funcF={function()
love.keyboard.setTextInput(true)
end}
c.cooldown=false
c.cooldown2=false
c.funcE={function()
love.keyboard.setTextInput(false)
end}
function c:triggerEnter()
for cc=1,#self.funcE do
self.funcE[cc](self,self.ttext)
end
self.text=""
self.ttext=""
end
c.Enter=true
c.Alarm=multi:newAlarm(.1)
c.Alarm.parent=c
c.Alarm:OnRing(function(alarm) alarm.parent.cooldown=false end)
c.Alarm2=multi:newAlarm(.5)
c.Alarm2.parent=c
c.Alarm2:OnRing(function(alarm) alarm.parent.cooldown2=false end)
c.ArrowAlarm=multi:newAlarm(.1)
c.ArrowAlarm.parent=c
c.ArrowAlarm:OnRing(function(alarm) alarm.parent.arrowkeys=false end)
function c:OnFocus(func)
table.insert(self.funcF,func)
end
function c:OnEnter(func)
table.insert(self.funcE,func)
end
c:OnClicked(function(b,self)
for cc=1,#self.funcF do
self.funcF[cc](self)
end
if self.Active==false then
if self.ClearOnFocus==true then
self.text=""
self.ttext=""
end
for tb=1,#gui.TB do
if gui.TB[tb]~=nil then
gui.TB[tb].Active=false
end
end
self.Active=true
end
end)
c:OnClicked(function(b,self,x,y)
local dwidth, wrappedtext = _defaultfont:getWrap(self.text:sub(1,self.cursor[1]), self.width)
local height = _defaultfont:getHeight()
if #wrappedtext>=1 then
width= _defaultfont:getWidth(wrappedtext[#wrappedtext])
self.cursor[2]=#wrappedtext
else
self.cursor[2]=1
width=0
end
yc=math.ceil(((y/self.DPI)-(self.FontHeight/2)+self.Tween-self.y)/height)
xc=math.floor(x)
end)
c:AddDrawRuleE(function(self)
if self.Active then
local dwidth, wrappedtext = _defaultfont:getWrap(self.text:sub(1,self.cursor[1]), self.width)
local height = _defaultfont:getHeight()
if #wrappedtext>=1 then
width= _defaultfont:getWidth(wrappedtext[#wrappedtext])
self.cursor[2]=#wrappedtext
else
self.cursor[2]=1
width=0
end
x1=width+2+self.x+self.XTween
y1=(self.y+(height*(self.cursor[2]-1))+(self.FontHeight/2)+self.Tween)*self.DPI
x2=width+2+self.x+self.XTween
y2=(self.y+(self.FontHeight/2)+self.Tween*self.DPI)+height*self.cursor[2]
love.graphics.line(x1,y1,x2,y2)
end
end)
c:OnUpdate(function(self)
if love.keyboard.isDown("backspace") and self.Active and self.cooldown==false then
if #self.text>0 then
self.text = self.text:remove(self.cursor[1])
self.ttext = self.ttext:remove(self.cursor[1])
self.cursor[1]=self.cursor[1]-1
end
self.cooldown=true
self.Alarm:Reset()
elseif love.keyboard.isDown("backspace")==false then
self.cooldown=false
end
if love.keyboard.isDown("left") and self.arrowkeys==false and self.Active then
self.arrowkeys=true
self.cursor[1]=self.cursor[1]-1
if self.cursor[1]<0 then
self.cursor[1]=0
end
self.ArrowAlarm:Reset()
elseif love.keyboard.isDown("right") and self.arrowkeys==false and self.Active then
self.arrowkeys=true
self.cursor[1]=self.cursor[1]+1
if self.cursor[1]>#self.text then
self.cursor[1]=#self.text
end
self.ArrowAlarm:Reset()
end
if love.keyboard.isDown("delete") and self.Active then
if #self.text>0 then
self.text = ""
self.ttext = ""
self.cursor[1]=1
end
elseif (love.keyboard.isDown("lshift") or love.keyboard.isDown("rshift")) and love.keyboard.isDown("return") and self.cooldown2==false then
self.text=self.text.."\n"
self.ttext=self.ttext.."\n"
self.cooldown2=true
c.Alarm2:Reset()
elseif (love.keyboard.isDown("return") or love.keyboard.isDown("enter") or love.keyboard.isDown("kpenter")) and self.Active and self.Enter and not(love.keyboard.isDown("lshift") or love.keyboard.isDown("rshift")) then
if self.LoseFocusOnEnter then
self.Active=false
else
self.Active=true
end
for cc=1,#self.funcE do
self.funcE[cc](self,self.ttext)
end
end
end)
table.insert(gui.TB,c)
return c
end
--TEXT BOX HELPER FUNCTION
function love.textinput(t)
for tb=1,#gui.TB do
if gui.TB[tb]~=nil then
if gui.TB[tb].Active then
if gui.TB[tb].hidden then
--gui.TB[tb].text=gui.TB[tb].text.."*"
gui.TB[tb].text=gui.TB[tb].text:insert(gui.TB[tb].cursor[1],"*")
else
--gui.TB[tb].text=gui.TB[tb].text..t
gui.TB[tb].text=gui.TB[tb].text:insert(gui.TB[tb].cursor[1],t)
end
gui.TB[tb].ttext=gui.TB[tb].ttext:insert(gui.TB[tb].cursor[1],t)
gui.TB[tb].cursor[1]=gui.TB[tb].cursor[1]+1
end
end
end
end
function gui:newTextButton(t,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("TextButton",name, x, y, w, h, sx ,sy ,sw ,sh)
c.Tween=0
c.XTween=0
c.FontHeight=_defaultfont:getHeight()
c.Font=_defaultfont
c.FontSize=15
c.TextFormat="center"
c.text = t
c.AutoScaleText=false
c.TextVisibility=1 -- 0=invisible,1=solid (self.TextVisibility*254+1)
c.Color = {220, 220, 220}
c.TextColor = {0, 0, 0}
c:OnEnter(function()
--love.mouse.setCursor(_GuiPro.CursorH)
end)
c:OnExit(function()
--love.mouse.setCursor(_GuiPro.CursorN)
end)
return c
end
function gui:newTextLabel(t,name, x, y, w, h, sx ,sy ,sw ,sh)
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
local c=self:newBase("TextLabel",name, x, y, w, h, sx ,sy ,sw ,sh)
c.Tween=0
c.XTween=0
c.FontHeight=_defaultfont:getHeight()
c.Font=_defaultfont
c.FontSize=15
c.TextFormat="center"
c.text = t
c.AutoScaleText=false
c.TextVisibility=1 -- 0=invisible,1=solid (self.TextVisibility*254+1)
c.Color = {220, 220, 220}
c.TextColor = {0, 0, 0}
return c
end
function gui:AddDrawRuleB(rule)
if not(self.DrawRulesB) then self.DrawRulesB={} end
table.insert(self.DrawRulesB,rule)
end
function gui:AddDrawRuleE(rule)
if not(self.DrawRulesE) then self.DrawRulesE={} end
table.insert(self.DrawRulesE,rule)
end
function gui:draw()
if _GuiPro.rotate~=0 then
love.graphics.rotate(math.rad(_GuiPro.rotate))
end
if self.FormFactor:lower()=="rectangle" then
self:drawR()
elseif self.FormFactor:lower()=="circle" then
self:drawC()
else
error("Unsupported FormFactor: "..self.FormFactor.."!")
end
end
function gui:drawC()
if love.mouse.isDown("l")==false and love.mouse.isDown("m")==false and love.mouse.isDown("r")==false then
_GuiPro.DragItem={}
_GuiPro.hasDrag=false
end
if self.Visible==true and self.VIS==true then
local b=true
for i,v in pairs(_GuiPro.Clips) do
if self:isDescendant(v)==true then
b=false
end
end
if b then
love.graphics.setStencilTest( )
_GuiPro.HasStencel=false
_GuiPro.StencelHolder=nil
end
local x,y,r,s=(self.offset.pos.x or 0)+self.Parent.x,(self.offset.pos.y or 0)+self.Parent.y,self.offset.size.x or 0,self.offset.size.y or 360
if self.CC then
x,y=x+r,y+r
end
self.x,self.y=x,y
_GuiPro.circleStencilFunction = function()
love.graphics.circle("fill",x,y,r,s)
end
if math.sqrt((love.mouse.getX()-x)^2+(love.mouse.getY()-y)^2)<=r and self:eventable() and self:Clickable() and self.Active==true then
self.hovering=true
if love.mouse.isDown("l") and _GuiPro.hasDrag==false then
if string.find(self.Type, "Button") then
love.graphics.setColor(self.Color[1]-10, self.Color[2]-10, self.Color[3]-10,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.lclicked=true
elseif love.mouse.isDown("r") and _GuiPro.hasDrag==false then
if string.find(self.Type, "Button") then
love.graphics.setColor(self.Color[1]-10, self.Color[2]-10, self.Color[3]-10,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.rclicked=true
elseif love.mouse.isDown("m") and _GuiPro.hasDrag==false then
if string.find(self.Type, "Button") then
love.graphics.setColor(self.Color[1]-10, self.Color[2]-10, self.Color[3]-10,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.mclicked=true
else
if string.find(self.Type, "Button") and _GuiPro.hasDrag==false then
love.graphics.setColor(self.Color[1]-5, self.Color[2]-5, self.Color[3]-5,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.rclicked=false
self.lclicked=false
self.mclicked=false
end
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
self.hovering=false
self.rclicked=false
self.lclicked=false
self.mclicked=false
end
if self.ClipDescendants==true then
_GuiPro.Clips[tostring(self)]=self
_GuiPro.HasStencel=true
_GuiPro.StencelHolder=self
love.graphics.stencil(_GuiPro.circleStencilFunction)
love.graphics.setStencilTest("notequal",0)
end
love.graphics.circle("fill",x,y,r,s)
love.graphics.setColor(self.BorderColor[1], self.BorderColor[2], self.BorderColor[3],self.Visibility*254)
for b=0,self.BorderSize-1 do
love.graphics.circle("line",x,y,r+b,s)
end
if string.find(self.Type, "Text") then
if self.text~=nil then
if self.AutoScaleText then
self.FontSize=math.floor(self.height/1.45833)
end
love.graphics.setColor(self.TextColor[1],self.TextColor[2],self.TextColor[3],self.TextVisibility*254)
love.graphics.setFont(self.Font)
love.graphics.printf(self.text, x-(r/2)+(self.XTween), y-(r/2)+self.Tween, r, self.TextFormat)
end
end
end
end
function gui:drawR()
if love.mouse.isDown("l")==false and love.mouse.isDown("m")==false and love.mouse.isDown("r")==false then
_GuiPro.DragItem={}
_GuiPro.hasDrag=false
end
if self.Visible==true and self.VIS==true then
local b=true
for i,v in pairs(_GuiPro.Clips) do
if self:isDescendant(v)==true then
b=false
end
end
if b==true then
love.graphics.setStencilTest()
love.graphics.setScissor()
end
self.x=(self.Parent.width*self.scale.pos.x)+self.offset.pos.x+self.Parent.x
self.y=(self.Parent.height*self.scale.pos.y)+self.offset.pos.y+self.Parent.y
self.width=(self.Parent.width*self.scale.size.x)+self.offset.size.x
self.height=(self.Parent.height*self.scale.size.y)+self.offset.size.y
if self.DrawRulesB then
for dr=1,#self.DrawRulesB do
self.DrawRulesB[dr](self)
end
end
if (love.mouse.getX() > self.x and love.mouse.getX() < self.x+self.width and love.mouse.getY() > self.y and love.mouse.getY() < self.y+self.height and self:Clickable() and self:eventable()) or self:touchable("r") and self.Active==true then
self.hovering=true
if love.mouse.isDown("l") or self:touchable("r") and _GuiPro.hasDrag==false then
if string.find(self.Type, "Button") then
love.graphics.setColor(self.Color[1]-10, self.Color[2]-10, self.Color[3]-10,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.lclicked=true
elseif love.mouse.isDown("r") or self:touchable("r") and _GuiPro.hasDrag==false then
if string.find(self.Type, "Button") then
love.graphics.setColor(self.Color[1]-10, self.Color[2]-10, self.Color[3]-10,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.rclicked=true
elseif love.mouse.isDown("m") or self:touchable("r") and _GuiPro.hasDrag==false then
if string.find(self.Type, "Button") then
love.graphics.setColor(self.Color[1]-10, self.Color[2]-10, self.Color[3]-10,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.mclicked=true
else
if string.find(self.Type, "Button") or self:touchable("r") and _GuiPro.hasDrag==false then
love.graphics.setColor(self.Color[1]-5, self.Color[2]-5, self.Color[3]-5,self.Visibility*254)
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
end
self.rclicked=false
self.lclicked=false
self.mclicked=false
end
else
love.graphics.setColor(self.Color[1],self.Color[2],self.Color[3],self.Visibility*254)
self.hovering=false
self.rclicked=false
self.lclicked=false
self.mclicked=false
end
if self.ClipDescendants==true then
_GuiPro.Clips[tostring(self)]=self
love.graphics.setScissor(self.x, self.y, self.width, self.height)
end
if self:hasRoundness() then
love.graphics.stencil(self.stfunc, "replace", 1)
love.graphics.setStencilTest("greater", 0)
end
love.graphics.rectangle("fill", self.x, self.y, self.width, self.height,(self.rx or 1)*self.DPI,(self.ry or 1)*self.DPI,(self.segments or 1)*self.DPI)
if string.find(self.Type, "Image") then
self:ImageRule()
end
if self.Type=="Video" then
self:VideoRule()
end
if self:hasRoundness() then
love.graphics.setStencilTest()
end
love.graphics.setColor(self.BorderColor[1], self.BorderColor[2], self.BorderColor[3],self.Visibility*254)
for b=0,self.BorderSize-1 do
love.graphics.rectangle("line", self.x-(b/2), self.y-(b/2), self.width+b, self.height+b,(self.rx or 1)*self.DPI,(self.ry or 1)*self.DPI,(self.segments or 1)*self.DPI)
end
if string.find(self.Type, "Text") then
if self.text~=nil then
if self.AutoScaleText then
self.FontSize=math.floor(self.height/1.45833)
end
love.graphics.setColor(self.TextColor[1],self.TextColor[2],self.TextColor[3],self.TextVisibility*254)
if self.Font==_defaultfont then
love.graphics.setFont(self.Font)
love.graphics.printf(self.text, self.x+2+(self.XTween*self.DPI)+((self.marginL or 0)*self.DPI or self.XTween*self.DPI), self.y+(self.FontHeight/2)+self.Tween*self.DPI, self.width+(0 or (self.marginR or 0)*self.DPI), self.TextFormat)
else
if type(self.Font)=="string" then
self.Font=love.graphics.newFont(self.Font,self.FontSize)
self.FontHeight=self.Font:getHeight()
else
love.graphics.setFont(self.Font)
end
if type(self.FontSize)=="string" then
self.FontSize=tonumber(self.FontSize)
love.graphics.setNewFont(self.FontSize)
end
love.graphics.printf(self.text, self.x+2+((self.marginL or 0)*self.DPI or self.XTween*self.DPI), self.y+math.floor((self.FontHeight-self.FontSize)/2)+self.Tween*self.DPI, self.width+(0 or (self.marginR or 0)*self.DPI), self.TextFormat)
end
end
end
if self.DrawRulesE then
for dr=1,#self.DrawRulesE do
self.DrawRulesE[dr](self)
end
end
end
end
gui:respectHierarchy()
_GuiPro.width,_GuiPro.height=love.graphics.getDimensions()
multi:newLoop():OnLoop(function() _GuiPro.width,_GuiPro.height=love.graphics.getDimensions() _GuiPro:update() end)
multi:onDraw(function() _GuiPro:draw() end)
gui.ff=gui:newFrame("",0,0,0,0,0,0,1,1)
gui.ff.Color={255,255,255}
gui.ff:OnUpdate(function(self)
self:BottomStack()
end)