This commit is contained in:
Robert Jelic
2025-04-16 05:08:22 +02:00
3 changed files with 3503 additions and 3503 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,66 +1,62 @@
return { return {
["metadata"] = {
["version"] = "2.0",
["generated"] = "Mon Apr 14 00:40:38 2025",
},
["categories"] = { ["categories"] = {
["core"] = { ["core"] = {
["files"] = { ["files"] = {
["init"] = { ["log"] = {
["requires"] = { ["size"] = 3142,
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "init.lua", ["requires"] = {
["size"] = 583, },
["path"] = "log.lua",
}, },
["main"] = { ["main"] = {
["requires"] = {
},
["default"] = true,
["description"] = "",
["path"] = "main.lua",
["size"] = 10456, ["size"] = 10456,
},
["errorManager"] = {
["requires"] = {
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "errorManager.lua",
["size"] = 3789,
},
["elementManager"] = {
["requires"] = { ["requires"] = {
}, },
["default"] = true, ["path"] = "main.lua",
["description"] = "",
["path"] = "elementManager.lua",
["size"] = 6297,
},
["render"] = {
["requires"] = {
},
["default"] = true,
["description"] = "",
["path"] = "render.lua",
["size"] = 12422,
},
["log"] = {
["requires"] = {
},
["default"] = true,
["description"] = "",
["path"] = "log.lua",
["size"] = 3142,
}, },
["propertySystem"] = { ["propertySystem"] = {
["requires"] = { ["size"] = 15523,
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["requires"] = {
},
["path"] = "propertySystem.lua", ["path"] = "propertySystem.lua",
["size"] = 15523, },
["init"] = {
["size"] = 583,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "init.lua",
},
["errorManager"] = {
["size"] = 3789,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "errorManager.lua",
},
["render"] = {
["size"] = 12422,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "render.lua",
},
["elementManager"] = {
["size"] = 6297,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "elementManager.lua",
}, },
}, },
["description"] = "Core Files", ["description"] = "Core Files",
@@ -68,346 +64,350 @@ return {
["plugins"] = { ["plugins"] = {
["files"] = { ["files"] = {
["animation"] = { ["animation"] = {
["requires"] = {
},
["default"] = true,
["description"] = "",
["path"] = "plugins/animation.lua",
["size"] = 14731, ["size"] = 14731,
},
["xml"] = {
["requires"] = {
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "plugins/xml.lua",
["size"] = 9901,
},
["canvas"] = {
["requires"] = { ["requires"] = {
}, },
["default"] = true, ["path"] = "plugins/animation.lua",
["description"] = "",
["path"] = "plugins/canvas.lua",
["size"] = 7873,
},
["debug"] = {
["requires"] = {
},
["default"] = true,
["description"] = "",
["path"] = "plugins/debug.lua",
["size"] = 6250,
}, },
["benchmark"] = { ["benchmark"] = {
["size"] = 12581,
["default"] = true,
["description"] = "",
["requires"] = { ["requires"] = {
[1] = "VisualElement", [1] = "VisualElement",
}, },
["default"] = true,
["description"] = "",
["path"] = "plugins/benchmark.lua", ["path"] = "plugins/benchmark.lua",
["size"] = 12581,
}, },
["theme"] = { ["canvas"] = {
["requires"] = { ["size"] = 7873,
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "plugins/theme.lua",
["size"] = 7166,
},
["reactive"] = {
["requires"] = { ["requires"] = {
}, },
["default"] = true, ["path"] = "plugins/canvas.lua",
["description"] = "",
["path"] = "plugins/reactive.lua",
["size"] = 7193,
}, },
["state"] = { ["state"] = {
["size"] = 6895,
["default"] = true,
["description"] = "",
["requires"] = { ["requires"] = {
[1] = "Container", [1] = "Container",
}, },
["path"] = "plugins/state.lua",
},
["theme"] = {
["size"] = 7166,
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "plugins/state.lua", ["requires"] = {
["size"] = 6930, },
["path"] = "plugins/theme.lua",
},
["xml"] = {
["size"] = 9901,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "plugins/xml.lua",
},
["debug"] = {
["size"] = 6250,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "plugins/debug.lua",
},
["reactive"] = {
["size"] = 7193,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "plugins/reactive.lua",
}, },
}, },
["description"] = "Plugins", ["description"] = "Plugins",
}, },
["elements"] = {
["files"] = {
["Graph"] = {
["requires"] = {
},
["default"] = false,
["description"] = "A point based graph element",
["path"] = "elements/Graph.lua",
["size"] = 6990,
},
["ProgressBar"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/ProgressBar.lua",
["size"] = 3397,
},
["BigFont"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = false,
["description"] = "",
["path"] = "elements/BigFont.lua",
["size"] = 20951,
},
["Switch"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Switch.lua",
["size"] = 1378,
},
["Menu"] = {
["requires"] = {
[1] = "List",
},
["default"] = true,
["description"] = "A horizontal menu bar with selectable items.",
["path"] = "elements/Menu.lua",
["size"] = 4679,
},
["Slider"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Slider.lua",
["size"] = 4700,
},
["LineChart"] = {
["requires"] = {
},
["default"] = false,
["description"] = "",
["path"] = "elements/LineChart.lua",
["size"] = 3227,
},
["Program"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Program.lua",
["size"] = 7733,
},
["BaseElement"] = {
["requires"] = {
},
["default"] = true,
["description"] = "The base class for all UI elements in Basalt.",
["path"] = "elements/BaseElement.lua",
["size"] = 9415,
},
["Dropdown"] = {
["requires"] = {
[1] = "List",
},
["default"] = false,
["description"] = "A dropdown menu that shows a list of selectable items",
["path"] = "elements/Dropdown.lua",
["size"] = 6359,
},
["BarChart"] = {
["requires"] = {
},
["default"] = false,
["description"] = "",
["path"] = "elements/BarChart.lua",
["size"] = 3190,
},
["Frame"] = {
["requires"] = {
[1] = "Container",
},
["default"] = true,
["description"] = "A frame element that serves as a grouping container for other elements.",
["path"] = "elements/Frame.lua",
["size"] = 4458,
},
["List"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "A scrollable list of selectable items",
["path"] = "elements/List.lua",
["size"] = 8702,
},
["Input"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "A text input field with various features",
["path"] = "elements/Input.lua",
["size"] = 8876,
},
["Table"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Table.lua",
["size"] = 8680,
},
["Checkbox"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Checkbox.lua",
["size"] = 2898,
},
["Container"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["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"] = 24818,
},
["BaseFrame"] = {
["requires"] = {
[1] = "Container",
},
["default"] = true,
["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"] = 8466,
},
["Label"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "A simple text display element that automatically resizes its width based on the text content.",
["path"] = "elements/Label.lua",
["size"] = 3092,
},
["TextBox"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = false,
["description"] = "A multi-line text editor component with cursor support and text manipulation features",
["path"] = "elements/TextBox.lua",
["size"] = 10929,
},
["Scrollbar"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Scrollbar.lua",
["size"] = 9191,
},
["Button"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Button.lua",
["size"] = 1656,
},
["Display"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = false,
["description"] = "The Display is a special element which uses the cc window API which you can use.",
["path"] = "elements/Display.lua",
["size"] = 4243,
},
["VisualElement"] = {
["requires"] = {
[1] = "BaseElement",
},
["default"] = true,
["description"] = "The Visual Element class which is the base class for all visual UI elements",
["path"] = "elements/VisualElement.lua",
["size"] = 17775,
},
["Tree"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = true,
["description"] = "",
["path"] = "elements/Tree.lua",
["size"] = 7941,
},
["Flexbox"] = {
["requires"] = {
[1] = "Container",
},
["default"] = true,
["description"] = "A flexbox container that arranges its children in a flexible layout.",
["path"] = "elements/Flexbox.lua",
["size"] = 12215,
},
["Image"] = {
["requires"] = {
[1] = "VisualElement",
},
["default"] = false,
["description"] = "An element that displays an image in bimg format",
["path"] = "elements/Image.lua",
["size"] = 15125,
},
},
["description"] = "UI Elements",
},
["libraries"] = { ["libraries"] = {
["files"] = { ["files"] = {
["colorHex"] = { ["expect"] = {
["requires"] = { ["size"] = 846,
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "libraries/colorHex.lua", ["requires"] = {
},
["path"] = "libraries/expect.lua",
},
["colorHex"] = {
["size"] = 132, ["size"] = 132,
["default"] = true,
["description"] = "",
["requires"] = {
},
["path"] = "libraries/colorHex.lua",
}, },
["utils"] = { ["utils"] = {
["requires"] = {
},
["default"] = true,
["description"] = "",
["path"] = "libraries/utils.lua",
["size"] = 2661, ["size"] = 2661,
},
["expect"] = {
["requires"] = {
},
["default"] = true, ["default"] = true,
["description"] = "", ["description"] = "",
["path"] = "libraries/expect.lua", ["requires"] = {
["size"] = 846, },
["path"] = "libraries/utils.lua",
}, },
}, },
["description"] = "Libraries", ["description"] = "Libraries",
}, },
["elements"] = {
["files"] = {
["BarChart"] = {
["size"] = 3190,
["default"] = false,
["description"] = "",
["requires"] = {
},
["path"] = "elements/BarChart.lua",
},
["LineChart"] = {
["size"] = 3227,
["default"] = false,
["description"] = "",
["requires"] = {
},
["path"] = "elements/LineChart.lua",
},
["Frame"] = {
["size"] = 4458,
["default"] = true,
["description"] = "A frame element that serves as a grouping container for other elements.",
["requires"] = {
[1] = "Container",
},
["path"] = "elements/Frame.lua",
},
["ProgressBar"] = {
["size"] = 3397,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/ProgressBar.lua",
},
["List"] = {
["size"] = 8702,
["default"] = true,
["description"] = "A scrollable list of selectable items",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/List.lua",
},
["TextBox"] = {
["size"] = 10929,
["default"] = false,
["description"] = "A multi-line text editor component with cursor support and text manipulation features",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/TextBox.lua",
},
["Flexbox"] = {
["size"] = 12215,
["default"] = true,
["description"] = "A flexbox container that arranges its children in a flexible layout.",
["requires"] = {
[1] = "Container",
},
["path"] = "elements/Flexbox.lua",
},
["Button"] = {
["size"] = 1656,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Button.lua",
},
["VisualElement"] = {
["size"] = 17775,
["default"] = true,
["description"] = "The Visual Element class which is the base class for all visual UI elements",
["requires"] = {
[1] = "BaseElement",
},
["path"] = "elements/VisualElement.lua",
},
["Menu"] = {
["size"] = 4679,
["default"] = true,
["description"] = "A horizontal menu bar with selectable items.",
["requires"] = {
[1] = "List",
},
["path"] = "elements/Menu.lua",
},
["Image"] = {
["size"] = 15125,
["default"] = false,
["description"] = "An element that displays an image in bimg format",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Image.lua",
},
["Input"] = {
["size"] = 8876,
["default"] = true,
["description"] = "A text input field with various features",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Input.lua",
},
["BaseElement"] = {
["size"] = 9415,
["default"] = true,
["description"] = "The base class for all UI elements in Basalt.",
["requires"] = {
},
["path"] = "elements/BaseElement.lua",
},
["Graph"] = {
["size"] = 6990,
["default"] = false,
["description"] = "A point based graph element",
["requires"] = {
},
["path"] = "elements/Graph.lua",
},
["Tree"] = {
["size"] = 7941,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Tree.lua",
},
["BigFont"] = {
["size"] = 20951,
["default"] = false,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/BigFont.lua",
},
["Display"] = {
["size"] = 4243,
["default"] = false,
["description"] = "The Display is a special element which uses the cc window API which you can use.",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Display.lua",
},
["Dropdown"] = {
["size"] = 6359,
["default"] = false,
["description"] = "A dropdown menu that shows a list of selectable items",
["requires"] = {
[1] = "List",
},
["path"] = "elements/Dropdown.lua",
},
["Scrollbar"] = {
["size"] = 9191,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Scrollbar.lua",
},
["Container"] = {
["size"] = 24818,
["default"] = true,
["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Container.lua",
},
["Slider"] = {
["size"] = 4700,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Slider.lua",
},
["Switch"] = {
["size"] = 1378,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Switch.lua",
},
["Table"] = {
["size"] = 8680,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Table.lua",
},
["Checkbox"] = {
["size"] = 2898,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Checkbox.lua",
},
["BaseFrame"] = {
["size"] = 8466,
["default"] = true,
["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.",
["requires"] = {
[1] = "Container",
},
["path"] = "elements/BaseFrame.lua",
},
["Label"] = {
["size"] = 3092,
["default"] = true,
["description"] = "A simple text display element that automatically resizes its width based on the text content.",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Label.lua",
},
["Program"] = {
["size"] = 7733,
["default"] = true,
["description"] = "",
["requires"] = {
[1] = "VisualElement",
},
["path"] = "elements/Program.lua",
},
},
["description"] = "UI Elements",
},
},
["metadata"] = {
["version"] = "2.0",
["generated"] = "Wed Apr 16 03:03:23 2025",
}, },
} }

View File

@@ -2003,12 +2003,12 @@ local db="states/"..ab.get("name")..".state"local _c={}
if fs.exists(db)then local cc=fs.open(db,"r")_c= if fs.exists(db)then local cc=fs.open(db,"r")_c=
textutils.unserialize(cc.readAll())or{}cc.close()end;_c[da]=_b;local ac=fs.getDir(db)if not fs.exists(ac)then textutils.unserialize(cc.readAll())or{}cc.close()end;_c[da]=_b;local ac=fs.getDir(db)if not fs.exists(ac)then
fs.makeDir(ac)end;local bc=fs.open(db,"w") fs.makeDir(ac)end;local bc=fs.open(db,"w")
bc.write(textutils.serialize(_c))bc.close()end;bb[da].value=_b;if cb[da]then for db,_c in ipairs(cb[da])do bc.write(textutils.serialize(_c))bc.close()end;bb[da].value=_b;if cb[da]then
_c(self,da,_b,bb[da].value)end end;for db,_c in for db,_c in ipairs(cb[da])do _c(self,da,_b)end end
pairs(bb)do for db,_c in pairs(bb)do
if _c.computed then _c.value=_c.computeFn(self)if cb[db]then for ac,bc in ipairs(cb[db])do if _c.computed then
bc(self,_c.value)end end end end;return _c.value=_c.computeFn(self)if cb[db]then
self end for ac,bc in ipairs(cb[db])do bc(self,db,_c.value)end end end end;return self end
function ca:getState(da)local _b=self:getBaseFrame()local ab=_b.get("states")if function ca:getState(da)local _b=self:getBaseFrame()local ab=_b.get("states")if
not ab[da]then not ab[da]then
aa.error("State '"..da.."' not initialized")end;if ab[da].computed then aa.error("State '"..da.."' not initialized")end;if ab[da].computed then
@@ -2029,9 +2029,9 @@ bb[da]={computeFn=_b,value=_b(self),computed=true}return self end
function ca:bind(da,_b)_b=_b or da;local ab=self:getBaseFrame()local bb=false function ca:bind(da,_b)_b=_b or da;local ab=self:getBaseFrame()local bb=false
if if
self.get(da)~=nil then self.set(da,ab:getState(_b))end self.get(da)~=nil then self.set(da,ab:getState(_b))end
self:onChange(da,function(cb,db)if bb then return end;bb=true;cb:setState(_b,db)bb=false end) self:onChange(da,function(cb,db,_c)if bb then return end;bb=true;self:setState(_b,_c)bb=false end)
self:onStateChange(_b,function(cb,db)if bb then return end;bb=true self:onStateChange(_b,function(cb,db,_c)if bb then return end;bb=true;if self.get(da)~=nil then
if cb.get(da)~=nil then cb.set(da,db)end;bb=false end)return self end;return{BaseElement=ca,BaseFrame=ba} end self.set(da,_c)end;bb=false end)return self end;return{BaseElement=ca,BaseFrame=ba} end
project["plugins/reactive.lua"] = function(...) local ab=require("errorManager") project["plugins/reactive.lua"] = function(...) local ab=require("errorManager")
local bb=require("propertySystem")local cb={colors=true,math=true,clamp=true,round=true} local bb=require("propertySystem")local cb={colors=true,math=true,clamp=true,round=true}
local db={clamp=function(ad,bd,cd)return local db={clamp=function(ad,bd,cd)return