From 21f16996e7802e8b2c25f697845afb91dfc8ed95 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 21:04:22 +0000 Subject: [PATCH] Update config, LuaLS definitions, bundle and changelog --- config.lua | 590 ++++++++++++++++++++++----------------------- release/basalt.lua | 139 ++++++----- src/LuaLS.lua | 19 -- 3 files changed, 377 insertions(+), 371 deletions(-) diff --git a/config.lua b/config.lua index 78348c8..ccc3387 100644 --- a/config.lua +++ b/config.lua @@ -2,360 +2,360 @@ return { ["categories"] = { ["core"] = { ["files"] = { - ["propertySystem"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "propertySystem.lua", - ["size"] = 15225, - ["default"] = true, - }, - ["render"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "render.lua", - ["size"] = 10935, - ["default"] = true, - }, - ["init"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "init.lua", - ["size"] = 519, - ["default"] = true, - }, - ["main"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "main.lua", - ["size"] = 7905, - ["default"] = true, - }, - ["log"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "log.lua", - ["size"] = 3142, - ["default"] = true, - }, - ["elementManager"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "elementManager.lua", - ["size"] = 6297, - ["default"] = true, - }, ["errorManager"] = { - ["requires"] = { - }, - ["description"] = "", ["path"] = "errorManager.lua", ["size"] = 3789, ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["main"] = { + ["path"] = "main.lua", + ["size"] = 7905, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["log"] = { + ["path"] = "log.lua", + ["size"] = 3142, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["init"] = { + ["path"] = "init.lua", + ["size"] = 519, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["propertySystem"] = { + ["path"] = "propertySystem.lua", + ["size"] = 15225, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["elementManager"] = { + ["path"] = "elementManager.lua", + ["size"] = 6297, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["render"] = { + ["path"] = "render.lua", + ["size"] = 10935, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", }, }, ["description"] = "Core Files", }, ["libraries"] = { ["files"] = { - ["colorHex"] = { + ["expect"] = { + ["path"] = "libraries/expect.lua", + ["size"] = 846, + ["default"] = true, ["requires"] = { }, ["description"] = "", + }, + ["colorHex"] = { ["path"] = "libraries/colorHex.lua", ["size"] = 132, ["default"] = true, - }, - ["utils"] = { ["requires"] = { }, ["description"] = "", + }, + ["utils"] = { ["path"] = "libraries/utils.lua", ["size"] = 2661, ["default"] = true, - }, - ["expect"] = { ["requires"] = { }, ["description"] = "", - ["path"] = "libraries/expect.lua", - ["size"] = 880, - ["default"] = true, }, }, ["description"] = "Libraries", }, ["elements"] = { ["files"] = { - ["Container"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers", - ["path"] = "elements/Container.lua", - ["size"] = 23026, - ["default"] = true, - }, - ["Dropdown"] = { - ["requires"] = { - [1] = "List", - }, - ["description"] = "A dropdown menu that shows a list of selectable items", - ["path"] = "elements/Dropdown.lua", - ["size"] = 5896, - ["default"] = false, - }, - ["BaseElement"] = { - ["requires"] = { - }, - ["description"] = "The base class for all UI elements in Basalt.", - ["path"] = "elements/BaseElement.lua", - ["size"] = 8911, - ["default"] = true, - }, - ["Menu"] = { - ["requires"] = { - [1] = "List", - }, - ["description"] = "A horizontal menu bar with selectable items.", - ["path"] = "elements/Menu.lua", - ["size"] = 4658, - ["default"] = true, - }, - ["Label"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "A simple text display element that automatically resizes its width based on the text content.", - ["path"] = "elements/Label.lua", - ["size"] = 2948, - ["default"] = true, - }, - ["Flexbox"] = { - ["requires"] = { - [1] = "Container", - }, - ["description"] = "A flexbox container that arranges its children in a flexible layout.", - ["path"] = "elements/Flexbox.lua", - ["size"] = 11530, - ["default"] = true, - }, - ["Checkbox"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Checkbox.lua", - ["size"] = 2872, - ["default"] = true, - }, - ["Frame"] = { - ["requires"] = { - [1] = "Container", - }, - ["description"] = "A frame element that serves as a grouping container for other elements.", - ["path"] = "elements/Frame.lua", - ["size"] = 4435, - ["default"] = true, - }, - ["ProgressBar"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/ProgressBar.lua", - ["size"] = 2273, - ["default"] = true, - }, - ["Tree"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Tree.lua", - ["size"] = 7887, - ["default"] = true, - }, - ["Table"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Table.lua", - ["size"] = 7589, - ["default"] = true, - }, - ["Slider"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Slider.lua", - ["size"] = 4678, - ["default"] = true, - }, - ["TextBox"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "A multi-line text editor component with cursor support and text manipulation features", - ["path"] = "elements/TextBox.lua", - ["size"] = 10905, - ["default"] = false, - }, - ["Image"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "An element that displays an image in bimg format", - ["path"] = "elements/Image.lua", - ["size"] = 11766, - ["default"] = false, - }, - ["BaseFrame"] = { - ["requires"] = { - [1] = "Container", - }, - ["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.", - ["path"] = "elements/BaseFrame.lua", - ["size"] = 5868, - ["default"] = true, - }, ["Input"] = { + ["path"] = "elements/Input.lua", + ["size"] = 7848, + ["default"] = true, ["requires"] = { [1] = "VisualElement", }, ["description"] = "A text input field with various features", - ["path"] = "elements/Input.lua", - ["size"] = 7851, - ["default"] = true, - }, - ["Program"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Program.lua", - ["size"] = 6295, - ["default"] = true, - }, - ["Scrollbar"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Scrollbar.lua", - ["size"] = 9166, - ["default"] = true, - }, - ["BigFont"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/BigFont.lua", - ["size"] = 20332, - ["default"] = false, - }, - ["Button"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "", - ["path"] = "elements/Button.lua", - ["size"] = 1632, - ["default"] = true, - }, - ["List"] = { - ["requires"] = { - [1] = "VisualElement", - }, - ["description"] = "A scrollable list of selectable items", - ["path"] = "elements/List.lua", - ["size"] = 8302, - ["default"] = true, }, ["VisualElement"] = { + ["path"] = "elements/VisualElement.lua", + ["size"] = 16876, + ["default"] = true, ["requires"] = { [1] = "BaseElement", }, ["description"] = "The Visual Element class which is the base class for all visual UI elements", - ["path"] = "elements/VisualElement.lua", - ["size"] = 16878, + }, + ["ProgressBar"] = { + ["path"] = "elements/ProgressBar.lua", + ["size"] = 2272, ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Frame"] = { + ["path"] = "elements/Frame.lua", + ["size"] = 4435, + ["default"] = true, + ["requires"] = { + [1] = "Container", + }, + ["description"] = "A frame element that serves as a grouping container for other elements.", + }, + ["BaseElement"] = { + ["path"] = "elements/BaseElement.lua", + ["size"] = 8911, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "The base class for all UI elements in Basalt.", + }, + ["BaseFrame"] = { + ["path"] = "elements/BaseFrame.lua", + ["size"] = 5868, + ["default"] = true, + ["requires"] = { + [1] = "Container", + }, + ["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.", + }, + ["Checkbox"] = { + ["path"] = "elements/Checkbox.lua", + ["size"] = 2872, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["TextBox"] = { + ["path"] = "elements/TextBox.lua", + ["size"] = 10904, + ["default"] = false, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "A multi-line text editor component with cursor support and text manipulation features", + }, + ["List"] = { + ["path"] = "elements/List.lua", + ["size"] = 8300, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "A scrollable list of selectable items", + }, + ["Button"] = { + ["path"] = "elements/Button.lua", + ["size"] = 1632, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Table"] = { + ["path"] = "elements/Table.lua", + ["size"] = 7586, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Container"] = { + ["path"] = "elements/Container.lua", + ["size"] = 23180, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers", + }, + ["Image"] = { + ["path"] = "elements/Image.lua", + ["size"] = 13262, + ["default"] = false, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "An element that displays an image in bimg format", + }, + ["BigFont"] = { + ["path"] = "elements/BigFont.lua", + ["size"] = 20332, + ["default"] = false, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Scrollbar"] = { + ["path"] = "elements/Scrollbar.lua", + ["size"] = 9164, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Tree"] = { + ["path"] = "elements/Tree.lua", + ["size"] = 7885, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Menu"] = { + ["path"] = "elements/Menu.lua", + ["size"] = 4657, + ["default"] = true, + ["requires"] = { + [1] = "List", + }, + ["description"] = "A horizontal menu bar with selectable items.", + }, + ["Dropdown"] = { + ["path"] = "elements/Dropdown.lua", + ["size"] = 5896, + ["default"] = false, + ["requires"] = { + [1] = "List", + }, + ["description"] = "A dropdown menu that shows a list of selectable items", + }, + ["Program"] = { + ["path"] = "elements/Program.lua", + ["size"] = 6295, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Label"] = { + ["path"] = "elements/Label.lua", + ["size"] = 3069, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "A simple text display element that automatically resizes its width based on the text content.", + }, + ["Slider"] = { + ["path"] = "elements/Slider.lua", + ["size"] = 4676, + ["default"] = true, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Flexbox"] = { + ["path"] = "elements/Flexbox.lua", + ["size"] = 11530, + ["default"] = true, + ["requires"] = { + [1] = "Container", + }, + ["description"] = "A flexbox container that arranges its children in a flexible layout.", }, }, ["description"] = "UI Elements", }, ["plugins"] = { ["files"] = { - ["benchmark"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "plugins/benchmark.lua", - ["size"] = 12515, - ["default"] = true, - }, - ["debug"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "plugins/debug.lua", - ["size"] = 6175, - ["default"] = true, - }, - ["reactive"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "plugins/reactive.lua", - ["size"] = 6962, - ["default"] = true, - }, - ["animation"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "plugins/animation.lua", - ["size"] = 14116, - ["default"] = true, - }, - ["state"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "plugins/state.lua", - ["size"] = 5867, - ["default"] = true, - }, - ["theme"] = { - ["requires"] = { - }, - ["description"] = "", - ["path"] = "plugins/theme.lua", - ["size"] = 5885, - ["default"] = true, - }, ["xml"] = { - ["requires"] = { - }, - ["description"] = "", ["path"] = "plugins/xml.lua", ["size"] = 6389, ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["benchmark"] = { + ["path"] = "plugins/benchmark.lua", + ["size"] = 12515, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["reactive"] = { + ["path"] = "plugins/reactive.lua", + ["size"] = 6962, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["animation"] = { + ["path"] = "plugins/animation.lua", + ["size"] = 14116, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["theme"] = { + ["path"] = "plugins/theme.lua", + ["size"] = 5885, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["debug"] = { + ["path"] = "plugins/debug.lua", + ["size"] = 6175, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", + }, + ["state"] = { + ["path"] = "plugins/state.lua", + ["size"] = 5867, + ["default"] = true, + ["requires"] = { + }, + ["description"] = "", }, }, ["description"] = "Plugins", }, }, ["metadata"] = { - ["generated"] = "Fri Feb 28 09:18:43 2025", + ["generated"] = "Sun Mar 2 21:04:18 2025", ["version"] = "2.0", }, } \ No newline at end of file diff --git a/release/basalt.lua b/release/basalt.lua index fa05dc7..cde07cf 100644 --- a/release/basalt.lua +++ b/release/basalt.lua @@ -362,7 +362,7 @@ _b.defineProperty(_b,"scrollX",{default=0,type="number",canTriggerRender=true}) _b.defineProperty(_b,"scrollY",{default=0,type="number",canTriggerRender=true}) _b.defineProperty(_b,"editable",{default=true,type="boolean"}) _b.defineProperty(_b,"syntaxPatterns",{default={},type="table"}) -_b.defineProperty(_b,"cursorColor",{default=nil,type="number"})_b.defineEvent(_b,"mouse_click") +_b.defineProperty(_b,"cursorColor",{default=nil,type="color"})_b.defineEvent(_b,"mouse_click") _b.defineEvent(_b,"key")_b.defineEvent(_b,"char") _b.defineEvent(_b,"mouse_scroll") function _b.new()local _c=setmetatable({},_b):__init() @@ -518,10 +518,12 @@ self._values.eventListenerCount[ac]-1 if self._values.eventListenerCount[ac]<=0 then self._values.childrenEvents[ac]=nil;self._values.eventListenerCount[ac]=nil;if self.parent then -self.parent:unregisterChildEvent(self,ac)end end;break end end end;return self end +self.parent:unregisterChildEvent(self,ac)end end;self.set("childrenEventsSorted",false) +self:updateRender()break end end end;return self end function bb:removeChild(_c) for ac,bc in ipairs(self._values.children)do if bc==_c then -table.remove(self._values.children,ac)_c.parent=nil;break end end;self:removeChildrenEvents(_c)return self end +table.remove(self._values.children,ac)_c.parent=nil;break end end;self:removeChildrenEvents(_c)self:updateRender() +self.set("childrenSorted",false)return self end function bb:getChild(_c) if type(_c)=="string"then local ac=ab(_c,"/") for bc,cc in @@ -609,7 +611,6 @@ local ca=ba.getElement("VisualElement")local da=require("libraries/colorHex") local _b=setmetatable({},ca)_b.__index=_b _b.defineProperty(_b,"bimg",{default={{}},type="table",canTriggerRender=true}) _b.defineProperty(_b,"currentFrame",{default=1,type="number",canTriggerRender=true}) -_b.defineProperty(_b,"metadata",{default={},type="table"}) _b.defineProperty(_b,"autoResize",{default=false,type="boolean"}) _b.defineProperty(_b,"offsetX",{default=0,type="number",canTriggerRender=true}) _b.defineProperty(_b,"offsetY",{default=0,type="number",canTriggerRender=true}) @@ -618,21 +619,16 @@ function _b.new()local cb=setmetatable({},_b):__init() cb.set("width",12)cb.set("height",6) cb.set("background",colors.black)cb.set("z",5)return cb end;function _b:init(cb,db)ca.init(self,cb,db)self.set("type","Image") return self end -function _b:loadBimg(cb) -if type(cb)~="table"then return self end;local db={}local _c={}for ac,bc in pairs(cb)do -if type(ac)=="number"then db[ac]=bc else _c[ac]=bc end end;self.set("bimg",db) -self.set("metadata",_c) -if db[1]and db[1][1]then -self.set("width",#db[1][1][2])self.set("height",#db[1])end;return self end -function _b:resizeImage(cb,db)local _c=self.get("bimg") +function _b:resizeImage(cb,db) +local _c=self.get("bimg") for ac,bc in ipairs(_c)do local cc={} -for y=1,db do -local dc=string.rep(" ",cb)local _d=string.rep("f",cb)local ad=string.rep("0",cb) -if bc[y]and -bc[y][1]then local bd=bc[y][1]local cd=bc[y][2]local dd=bc[y][3]dc=(bd.. -string.rep(" ",cb)):sub(1,cb)_d=(cd.. -string.rep("f",cb)):sub(1,cb)ad=(dd.. -string.rep("0",cb)):sub(1,cb)end;cc[y]={dc,_d,ad}end;_c[ac]=cc end;self:updateRender()return self end +for y=1,db do local dc=string.rep(" ",cb) +local _d=string.rep("f",cb)local ad=string.rep("0",cb) +if bc[y]and bc[y][1]then local bd=bc[y][1] +local cd=bc[y][2]local dd=bc[y][3] +dc=(bd..string.rep(" ",cb)):sub(1,cb) +_d=(cd..string.rep("f",cb)):sub(1,cb) +ad=(dd..string.rep("0",cb)):sub(1,cb)end;cc[y]={dc,_d,ad}end;_c[ac]=cc end;self:updateRender()return self end function _b:getImageSize()local cb=self.get("bimg")if not cb[1]or not cb[1][1]then return 0,0 end;return#cb[1][1][1],#cb[1]end function _b:getPixelData(cb,db) @@ -653,32 +649,59 @@ for y=1,cc do if not _d[y]then _d[y]={"","",""}end;local ad=_d[y]while#ad[1]< bc do ad[1]=ad[1].." "end;while#ad[2]cc then return self end;_c=_c:sub(1,cc-cb+1)end;local bc=ac[db][1] +not self.get("autoResize")then local cc,dc=self:getImageSize()if db>dc then return self end end;local ac=ab(self,db)if self.get("autoResize")then +bb(self,cb+#_c-1,db)else local cc=#ac[db][1]if cb>cc then return self end +_c=_c:sub(1,cc-cb+1)end +local bc=ac[db][1] ac[db][1]=bc:sub(1,cb-1).._c..bc:sub(cb+#_c)self:updateRender()return self end +function _b:getText(cb,db,_c)if not cb or not db then return end +local ac=self.get("bimg")[self.get("currentFrame")]if not ac or not ac[db]then return end;local bc=ac[db][1] +if not bc then return end +if _c then return bc:sub(cb,cb+_c-1)else return bc:sub(cb,cb)end end function _b:setFg(cb,db,_c)if -type(_c)~="string"or#_c<1 or cb<1 or db<1 then return self end;local ac=ab(self,db) +type(_c)~="string"or#_c<1 or cb<1 or db<1 then return self end if -self.get("autoResize")then bb(self,cb+#_c-1,db)else local cc=#ac[db][2] -if cb>cc then return self end;_c=_c:sub(1,cc-cb+1)end;local bc=ac[db][2] +not self.get("autoResize")then local cc,dc=self:getImageSize()if db>dc then return self end end;local ac=ab(self,db)if self.get("autoResize")then +bb(self,cb+#_c-1,db)else local cc=#ac[db][2]if cb>cc then return self end +_c=_c:sub(1,cc-cb+1)end +local bc=ac[db][2] ac[db][2]=bc:sub(1,cb-1).._c..bc:sub(cb+#_c)self:updateRender()return self end +function _b:getFg(cb,db,_c)if not cb or not db then return end +local ac=self.get("bimg")[self.get("currentFrame")]if not ac or not ac[db]then return end;local bc=ac[db][2] +if not bc then return end +if _c then return bc:sub(cb,cb+_c-1)else return bc:sub(cb)end end function _b:setBg(cb,db,_c)if -type(_c)~="string"or#_c<1 or cb<1 or db<1 then return self end;local ac=ab(self,db) +type(_c)~="string"or#_c<1 or cb<1 or db<1 then return self end if -self.get("autoResize")then bb(self,cb+#_c-1,db)else local cc=#ac[db][3] -if cb>cc then return self end;_c=_c:sub(1,cc-cb+1)end;local bc=ac[db][3] +not self.get("autoResize")then local cc,dc=self:getImageSize()if db>dc then return self end end;local ac=ab(self,db)if self.get("autoResize")then +bb(self,cb+#_c-1,db)else local cc=#ac[db][3]if cb>cc then return self end +_c=_c:sub(1,cc-cb+1)end +local bc=ac[db][3] ac[db][3]=bc:sub(1,cb-1).._c..bc:sub(cb+#_c)self:updateRender()return self end +function _b:getBg(cb,db,_c)if not cb or not db then return end +local ac=self.get("bimg")[self.get("currentFrame")]if not ac or not ac[db]then return end;local bc=ac[db][3] +if not bc then return end +if _c then return bc:sub(cb,cb+_c-1)else return bc:sub(cb)end end function _b:setPixel(cb,db,_c,ac,bc)if _c then self:setText(cb,db,_c)end;if ac then self:setFg(cb,db,ac)end;if bc then self:setBg(cb,db,bc)end;return self end function _b:nextFrame() -if not self.get("metadata").animation then return self end;local cb=self.get("bimg")local db=self.get("currentFrame") +if not self.get("bimg").animation then return self end;local cb=self.get("bimg")local db=self.get("currentFrame") local _c=db+1;if _c>#cb then _c=1 end;self.set("currentFrame",_c)return self end function _b:addFrame()local cb=self.get("bimg")local db={} local _c=string.rep(" ",self.get("width"))local ac=string.rep("f",self.get("width")) local bc=string.rep("0",self.get("width"))for y=1,self.get("height")do db[y]={_c,ac,bc}end -table.insert(cb,db)return self end +table.insert(cb,db)return self end;function _b:updateFrame(cb,db)local _c=self.get("bimg")_c[cb]=db +self:updateRender()return self end;function _b:getFrame(cb) +local db=self.get("bimg") +return db[cb or self.get("currentFrame")]end +function _b:getMetadata()local cb={} +local db=self.get("bimg") +for _c,ac in pairs(db)do if(type(ac)=="string")then cb[_c]=ac end end;return cb end +function _b:setMetadata(cb,db)if(type(cb)=="table")then +for ac,bc in pairs(cb)do self:setMetadata(ac,bc)end;return self end +local _c=self.get("bimg")if(type(db)=="string")then _c[cb]=db end;return self end function _b:render()ca.render(self) local cb=self.get("bimg")[self.get("currentFrame")]if not cb then return end;local db=self.get("offsetX") local _c=self.get("offsetY")local ac=self.get("width")local bc=self.get("height") @@ -785,8 +808,8 @@ _b.defineProperty(_b,"z",{default=1,type="number",canTriggerRender=true,setter=f if cb.parent then cb.parent:sortChildren()end;return db end}) _b.defineProperty(_b,"width",{default=1,type="number",canTriggerRender=true}) _b.defineProperty(_b,"height",{default=1,type="number",canTriggerRender=true}) -_b.defineProperty(_b,"background",{default=colors.black,type="number",canTriggerRender=true}) -_b.defineProperty(_b,"foreground",{default=colors.white,type="number",canTriggerRender=true}) +_b.defineProperty(_b,"background",{default=colors.black,type="color",canTriggerRender=true}) +_b.defineProperty(_b,"foreground",{default=colors.white,type="color",canTriggerRender=true}) _b.defineProperty(_b,"clicked",{default=false,type="boolean"}) _b.defineProperty(_b,"hover",{default=false,type="boolean"}) _b.defineProperty(_b,"backgroundEnabled",{default=true,type="boolean",canTriggerRender=true}) @@ -879,8 +902,8 @@ ca.defineProperty(ca,"max",{default=100,type="number",canTriggerRender=true}) ca.defineProperty(ca,"step",{default=10,type="number"}) ca.defineProperty(ca,"dragMultiplier",{default=1,type="number"}) ca.defineProperty(ca,"symbol",{default=" ",type="string",canTriggerRender=true}) -ca.defineProperty(ca,"symbolColor",{default=colors.gray,type="number",canTriggerRender=true}) -ca.defineProperty(ca,"symbolBackgroundColor",{default=colors.black,type="number",canTriggerRender=true}) +ca.defineProperty(ca,"symbolColor",{default=colors.gray,type="color",canTriggerRender=true}) +ca.defineProperty(ca,"symbolBackgroundColor",{default=colors.black,type="color",canTriggerRender=true}) ca.defineProperty(ca,"backgroundSymbol",{default="\127",type="string",canTriggerRender=true}) ca.defineProperty(ca,"attachedElement",{default=nil,type="table"}) ca.defineProperty(ca,"attachedProperty",{default=nil,type="string"}) @@ -944,8 +967,8 @@ ba.defineProperty(ba,"selectedNode",{default=nil,type="table",canTriggerRender=t ba.defineProperty(ba,"expandedNodes",{default={},type="table",canTriggerRender=true}) ba.defineProperty(ba,"scrollOffset",{default=0,type="number",canTriggerRender=true}) ba.defineProperty(ba,"horizontalOffset",{default=0,type="number",canTriggerRender=true}) -ba.defineProperty(ba,"nodeColor",{default=colors.white,type="number"}) -ba.defineProperty(ba,"selectedColor",{default=colors.lightBlue,type="number"})ba.defineEvent(ba,"mouse_click") +ba.defineProperty(ba,"nodeColor",{default=colors.white,type="color"}) +ba.defineProperty(ba,"selectedColor",{default=colors.lightBlue,type="color"})ba.defineEvent(ba,"mouse_click") ba.defineEvent(ba,"mouse_scroll") function ba.new()local da=setmetatable({},ba):__init() da.set("width",30)da.set("height",10)da.set("z",5)return da end @@ -1002,14 +1025,16 @@ da.set("width",#da.get("text"))else da.set("height",#ba(da.get("text"),da.get("width")))end;return _b end}) function ca.new()local da=setmetatable({},ca):__init() da.set("z",3)da.set("foreground",colors.black) -da.set("backgroundEnabled",false)return da end;function ca:init(da,_b)aa.init(self,da,_b)self.set("type","Label") -return self end -function ca:getWrappedText() -local da=self.get("text")local _b=ba(da,self.get("width"))return _b end -function ca:render()aa.render(self)local da=self.get("text") -if -(self.get("autoSize"))then self:textFg(1,1,da,self.get("foreground"))else -local _b=ba(da,self.get("width"))for ab,bb in ipairs(_b)do +da.set("backgroundEnabled",false)return da end +function ca:init(da,_b)aa.init(self,da,_b)if(self.parent)then +self.set("background",self.parent.get("background")) +self.set("foreground",self.parent.get("foreground"))end +self.set("type","Label")return self end;function ca:getWrappedText()local da=self.get("text") +local _b=ba(da,self.get("width"))return _b end +function ca:render() +aa.render(self)local da=self.get("text") +if(self.get("autoSize"))then +self:textFg(1,1,da,self.get("foreground"))else local _b=ba(da,self.get("width"))for ab,bb in ipairs(_b)do self:textFg(1,ab,bb,self.get("foreground"))end end end;return ca end project["elements/Button.lua"] = function(...) local _a=require("elementManager") local aa=_a.getElement("VisualElement") @@ -1030,9 +1055,9 @@ aa.defineProperty(aa,"cursorPos",{default=1,type="number"}) aa.defineProperty(aa,"viewOffset",{default=0,type="number",canTriggerRender=true}) aa.defineProperty(aa,"maxLength",{default=nil,type="number"}) aa.defineProperty(aa,"placeholder",{default="...",type="string"}) -aa.defineProperty(aa,"placeholderColor",{default=colors.gray,type="number"}) -aa.defineProperty(aa,"focusedBackground",{default=colors.blue,type="number"}) -aa.defineProperty(aa,"focusedForeground",{default=colors.white,type="number"}) +aa.defineProperty(aa,"placeholderColor",{default=colors.gray,type="color"}) +aa.defineProperty(aa,"focusedBackground",{default=colors.blue,type="color"}) +aa.defineProperty(aa,"focusedForeground",{default=colors.white,type="color"}) aa.defineProperty(aa,"pattern",{default=nil,type="string"}) aa.defineProperty(aa,"cursorColor",{default=nil,type="number"})aa.defineEvent(aa,"mouse_click") aa.defineEvent(aa,"key")aa.defineEvent(aa,"char") @@ -1289,9 +1314,9 @@ local _a=require("libraries/colorHex")local aa=setmetatable({},d)aa.__index=aa aa.defineProperty(aa,"columns",{default={},type="table"}) aa.defineProperty(aa,"data",{default={},type="table",canTriggerRender=true}) aa.defineProperty(aa,"selectedRow",{default=nil,type="number",canTriggerRender=true}) -aa.defineProperty(aa,"headerColor",{default=colors.blue,type="number"}) -aa.defineProperty(aa,"selectedColor",{default=colors.lightBlue,type="number"}) -aa.defineProperty(aa,"gridColor",{default=colors.gray,type="number"}) +aa.defineProperty(aa,"headerColor",{default=colors.blue,type="color"}) +aa.defineProperty(aa,"selectedColor",{default=colors.lightBlue,type="color"}) +aa.defineProperty(aa,"gridColor",{default=colors.gray,type="color"}) aa.defineProperty(aa,"sortColumn",{default=nil,type="number"}) aa.defineProperty(aa,"sortDirection",{default="asc",type="string"}) aa.defineProperty(aa,"scrollOffset",{default=0,type="number",canTriggerRender=true})aa.defineEvent(aa,"mouse_click") @@ -1346,8 +1371,8 @@ local d=setmetatable({},c)d.__index=d d.defineProperty(d,"step",{default=1,type="number",canTriggerRender=true}) d.defineProperty(d,"max",{default=100,type="number"}) d.defineProperty(d,"horizontal",{default=true,type="boolean",canTriggerRender=true}) -d.defineProperty(d,"barColor",{default=colors.gray,type="number",canTriggerRender=true}) -d.defineProperty(d,"sliderColor",{default=colors.blue,type="number",canTriggerRender=true})d.defineEvent(d,"mouse_click") +d.defineProperty(d,"barColor",{default=colors.gray,type="color",canTriggerRender=true}) +d.defineProperty(d,"sliderColor",{default=colors.blue,type="color",canTriggerRender=true})d.defineEvent(d,"mouse_click") d.defineEvent(d,"mouse_drag")d.defineEvent(d,"mouse_up")function d.new() local _a=setmetatable({},d):__init()_a.set("width",8)_a.set("height",1) _a.set("backgroundEnabled",false)return _a end;function d:init(_a,aa) @@ -1380,7 +1405,7 @@ project["elements/ProgressBar.lua"] = function(...) local c=require("elements/Vi local d=setmetatable({},c)d.__index=d d.defineProperty(d,"progress",{default=0,type="number",canTriggerRender=true}) d.defineProperty(d,"showPercentage",{default=false,type="boolean"}) -d.defineProperty(d,"progressColor",{default=colors.black,type="number"}) +d.defineProperty(d,"progressColor",{default=colors.black,type="color"}) function d.new()local _a=setmetatable({},d):__init() _a.set("width",10)_a.set("height",1)return _a end function d:init(_a,aa)c.init(self,_a,aa)self.set("type","ProgressBar")end @@ -1396,8 +1421,8 @@ d.defineProperty(d,"items",{default={},type="table",canTriggerRender=true}) d.defineProperty(d,"selectable",{default=true,type="boolean"}) d.defineProperty(d,"multiSelection",{default=false,type="boolean"}) d.defineProperty(d,"offset",{default=0,type="number",canTriggerRender=true}) -d.defineProperty(d,"selectedBackground",{default=colors.blue,type="number"}) -d.defineProperty(d,"selectedForeground",{default=colors.white,type="number"})d.defineEvent(d,"mouse_click") +d.defineProperty(d,"selectedBackground",{default=colors.blue,type="color"}) +d.defineProperty(d,"selectedForeground",{default=colors.white,type="color"})d.defineEvent(d,"mouse_click") d.defineEvent(d,"mouse_scroll") function d.new()local _a=setmetatable({},d):__init() _a.set("width",16)_a.set("height",8)_a.set("z",5) @@ -1497,7 +1522,7 @@ i+1,ac,dc)end end end end end;return ca end project["elements/Menu.lua"] = function(...) local _a=require("elements/VisualElement") local aa=require("elements/List")local ba=require("libraries/colorHex") local ca=setmetatable({},aa)ca.__index=ca -ca.defineProperty(ca,"separatorColor",{default=colors.gray,type="number"})function ca.new()local da=setmetatable({},ca):__init() +ca.defineProperty(ca,"separatorColor",{default=colors.gray,type="color"})function ca.new()local da=setmetatable({},ca):__init() da.set("width",30)da.set("height",1) da.set("background",colors.gray)return da end function ca:init(da,_b) @@ -1605,8 +1630,8 @@ project["libraries/expect.lua"] = function(...) local c=require("errorManager") local function d(_a,aa,ba)local ca=type(aa) if ba=="element"then if ca=="table"and aa.get("type")~=nil then return true end end -if ba=="color"then -if ca=="number"and aa>=1 and aa<=32768 then return true end;if ca=="string"and colors[aa]then return true end end;if ca~=ba then c.header="Basalt Type Error" +if ba=="color"then if ca=="number"then return true end;if +ca=="string"and colors[aa]then return true end end;if ca~=ba then c.header="Basalt Type Error" c.error(string.format("Bad argument #%d: expected %s, got %s",_a,ba,ca))end;return true end;return d end project["plugins/xml.lua"] = function(...) local da=require("errorManager") local function _b(bc)local cc={attributes={}} diff --git a/src/LuaLS.lua b/src/LuaLS.lua index c081234..34d99da 100644 --- a/src/LuaLS.lua +++ b/src/LuaLS.lua @@ -744,7 +744,6 @@ end ---@class Image ---@field bimg table ---@field currentFrame number ----@field metadata table ---@field autoResize boolean ---@field offsetX number ---@field offsetY number @@ -786,24 +785,6 @@ function Image:setCurrentFrame(currentFrame) return self end ---- Gets the Image metadata (version, palette, etc) ----@generic Element: Image ----@param self Element ----@return table -function Image:getMetadata() - return self.metadata -end - ---- Sets the Image metadata (version, palette, etc) ----@generic Element: Image ----@param self Element ----@param metadata table ----@return Element -function Image:setMetadata(metadata) - self.metadata = metadata - return self -end - --- Gets the Whether to automatically resize the image when content exceeds bounds ---@generic Element: Image ---@param self Element