From bffc96934052bfcbdb4d24374a1f6acc140349f8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 9 Feb 2025 14:35:55 +0000 Subject: [PATCH] Minify all Lua files into project bundle --- release/project.min.lua | 184 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 183 insertions(+), 1 deletion(-) diff --git a/release/project.min.lua b/release/project.min.lua index a3e9a6d..c7b1c33 100644 --- a/release/project.min.lua +++ b/release/project.min.lua @@ -1,5 +1,7 @@ local minified = true local project = {} +local baseRequire = require +require = function(path) return project[path] or baseRequire(path) end project["render.lua"] = function(...) local d={}d.__index=d;local _a=require("libraries/colorHex") local aa=require("log") function d.new(ba)local ca=setmetatable({},d)ca.terminal=ba @@ -103,6 +105,172 @@ project["init.lua"] = function(...) local da={...}local _b=da[1]or"basalt"local local bb="path;/path/?.lua;/path/?/init.lua;"local cb=bb:gsub("path",_b)package.path=cb.."rom/?" local function db(bc) local cc=require("errorManager")cc.header="Basalt Loading Error"cc.error(bc)end;local _c,ac=pcall(require,"main")if not _c then db(ac)else return ac end end +project["elements/BaseFrame.lua"] = function(...) local d=require("elements/Container") +local _a=require("render")local aa=setmetatable({},d)aa.__index=aa +function aa.new(ba,ca) +local da=setmetatable({},aa):__init()da:init(ba,ca)da.terminal=term.current() +da._render=_a.new(da.terminal)da._renderUpdate=true;local _b,ab=da.terminal.getSize() +da.set("width",_b)da.set("height",ab) +da.set("background",colors.red)da.set("type","BaseFrame")return da end;function aa:multiBlit(ba,ca,da,_b,ab,bb,cb) +self._render:multiBlit(ba,ca,da,_b,ab,bb,cb)end;function aa:textFg(ba,ca,da,_b) +self._render:textFg(ba,ca,da,_b)end +function aa:render()if(self._renderUpdate)then d.render(self) +self._render:render()self._renderUpdate=false end end;return aa end +project["elements/Button.lua"] = function(...) local d=require("elements/VisualElement") +local _a=require("libraries/utils").getCenteredPosition;local aa=setmetatable({},d)aa.__index=aa +aa.defineProperty(aa,"text",{default="Button",type="string"})aa.listenTo(aa,"mouse_click") +function aa.new(ba,ca) +local da=setmetatable({},aa):__init()da:init(ba,ca)da.set("type","Button") +da.set("width",10)da.set("height",3)da.set("z",5)return da end +function aa:render()d.render(self)local ba=self.get("text") +local ca,da=_a(ba,self.get("width"),self.get("height")) +self:textFg(ca,da,ba,self.get("foreground"))end;return aa end +project["elements/VisualElement.lua"] = function(...) local d=require("elements/BaseElement") +local _a=setmetatable({},d)_a.__index=_a;local aa=require("libraries/colorHex") +d.defineProperty(_a,"x",{default=1,type="number",canTriggerRender=true}) +d.defineProperty(_a,"y",{default=1,type="number",canTriggerRender=true}) +d.defineProperty(_a,"z",{default=1,type="number",canTriggerRender=true,setter=function(ba,ca) +ba.basalt.LOGGER.debug("Setting z to "..ca)if ba.parent then ba.parent:sortChildren()end;return ca end}) +d.defineProperty(_a,"width",{default=1,type="number",canTriggerRender=true}) +d.defineProperty(_a,"height",{default=1,type="number",canTriggerRender=true}) +d.defineProperty(_a,"background",{default=colors.black,type="number",canTriggerRender=true}) +d.defineProperty(_a,"foreground",{default=colors.white,type="number",canTriggerRender=true}) +d.defineProperty(_a,"clicked",{default=false,type="boolean"}) +function _a.new(ba,ca)local da=setmetatable({},_a):__init() +da:init(ba,ca)da.set("type","VisualElement")return da end;function _a:multiBlit(ba,ca,da,_b,ab,bb,cb)ba=ba+self.get("x")-1;ca=ca+self.get("y")- +1 +self.parent:multiBlit(ba,ca,da,_b,ab,bb,cb)end;function _a:textFg(ba,ca,da,_b)ba=ba+ +self.get("x")-1;ca=ca+self.get("y")-1 +self.parent:textFg(ba,ca,da,_b)end +function _a:isInBounds(ba,ca) +local da,_b=self.get("x"),self.get("y")local ab,bb=self.get("width"),self.get("height")return +ba>=da and ba<= +da+ab-1 and ca>=_b and ca<=_b+bb-1 end +function _a:mouse_click(ba,ca,da)if self:isInBounds(ca,da)then self.set("clicked",true) +self:fireEvent("mouse_click",ba,ca,da)return true end end +function _a:mouse_up(ba,ca,da)if self:isInBounds(ca,da)then self.set("clicked",false) +self:fireEvent("mouse_up",ba,ca,da)return true end +self:fireEvent("mouse_release",ba,ca,da)end;function _a:mouse_release()self.set("clicked",false)end +function _a:handleEvent(ba,...)if +(self[ba])then return self[ba](self,...)end end +function _a:getAbsolutePosition(ba,ca)if(ba==nil)or(ca==nil)then +ba,ca=self.get("x"),self.get("y")end;local da=self.parent +while da do +local _b,ab=da.get("x"),da.get("y")ba=ba+_b-1;ca=ca+ab-1;da=da.parent end;return ba,ca end +function _a:getRelativePosition(ba,ca)if(ba==nil)or(ca==nil)then +ba,ca=self.get("x"),self.get("y")end;local da,_b=1,1;if self.parent then +da,_b=self.parent:getRelativePosition()end;local ab=self.get("x") +local bb=self.get("y")return ba- (ab-1)- (da-1),ca- (bb-1)- (_b-1)end +function _a:render()local ba,ca=self.get("width"),self.get("height") +self:multiBlit(1,1,ba,ca," ",aa[self.get("foreground")],aa[self.get("background")])end;return _a end +project["elements/BaseElement.lua"] = function(...) local c=require("propertySystem")local d=setmetatable({},c) +d.__index=d;d._events={} +d.defineProperty(d,"type",{default="BaseElement",type="string"}) +d.defineProperty(d,"eventCallbacks",{default={},type="table"}) +function d.new(_a,aa)local ba=setmetatable({},d):__init() +ba:init(_a,aa)ba.set("type","BaseElement")return ba end +function d:init(_a,aa)self.id=_a;self.basalt=aa;self._registeredEvents={} +if d._events then +for ba in +pairs(d._events)do self._registeredEvents[ba]=true +local ca="on".. +ba:gsub("_(%l)",function(da)return da:upper()end):gsub("^%l",string.upper) +self[ca]=function(da,...)da:registerCallback(ba,...)end end end;return self end;function d.listenTo(_a,aa)if not _a._events then _a._events={}end +_a._events[aa]=true end +function d:listenEvent(_a,aa)aa=aa~=false +if aa~= ( +self._registeredEvents[_a]or false)then +if aa then +self._registeredEvents[_a]=true +if self.parent then self.parent:registerChildEvent(self,_a)end else self._registeredEvents[_a]=nil;if self.parent then +self.parent:unregisterChildEvent(self,_a)end end end;return self end +function d:registerCallback(_a,aa)if not self._registeredEvents[_a]then +self:listenEvent(_a,true)end +if +not self._values.eventCallbacks[_a]then self._values.eventCallbacks[_a]={}end +table.insert(self._values.eventCallbacks[_a],aa)return self end +function d:fireEvent(_a,...) +if self._values.eventCallbacks[_a]then for aa,ba in +ipairs(self._values.eventCallbacks[_a])do local ca=ba(self,...)return ca end end;return self end +function d:updateRender()if(self.parent)then self.parent:updateRender()else +self._renderUpdate=true end end;return d end +project["elements/Container.lua"] = function(...) local aa=require("elements/VisualElement") +local ba=require("elementManager")local ca=require("libraries/expect")local da=math.max +local _b=setmetatable({},aa)_b.__index=_b +_b.defineProperty(_b,"children",{default={},type="table"}) +_b.defineProperty(_b,"childrenEvents",{default={},type="table"}) +_b.defineProperty(_b,"eventListenerCount",{default={},type="table"}) +for ab,bb in pairs(ba:getElementList())do +local cb=ab:sub(1,1):upper()..ab:sub(2) +_b["add"..cb]=function(db,...)ca(1,db,"table") +local _c=db.basalt.create(ab,...) +db.basalt.LOGGER.debug(cb.." created with ID: ".._c.id)db:addChild(_c)return _c end end +function _b.new(ab,bb)local cb=setmetatable({},_b):__init() +cb:init(ab,bb)cb.set("type","Container")return cb end +function _b:addChild(ab) +if ab==self then error("Cannot add container to itself")end;local bb=ab.get("z")local cb=1;for db,_c in ipairs(self._values.children)do if +_c.get("z")>bb then break end;cb=db+1 end +table.insert(self._values.children,cb,ab)ab.parent=self;self:registerChildrenEvents(ab)return self end;function _b:sortChildren() +table.sort(self._values.children,function(ab,bb) +return ab.get("z")cb.get("z")end)end end +function _b:registerChildrenEvents(ab)for bb in pairs(ab._registeredEvents)do +self:registerChildEvent(ab,bb)end end +function _b:registerChildEvent(ab,bb) +if not self._values.childrenEvents[bb]then +self._values.childrenEvents[bb]={}self._values.eventListenerCount[bb]=0;if self.parent then +self.parent:registerChildEvent(self,bb)end end;for _c,ac in ipairs(self._values.childrenEvents[bb])do +if ac==ab then return end end;local cb=ab.get("z")local db=1 +for _c,ac in +ipairs(self._values.childrenEvents[bb])do if ac.get("z")ac then return end;local bc=ab<1 and(2 -ab)or 1 +local cc=math.min(#cb-bc+1, +_c-math.max(1,ab)+1)if cc<=0 then return end +aa.textFg(self,math.max(1,ab),math.max(1,bb),cb:sub(bc,bc+cc-1),db)end +function _b:render()aa.render(self) +for ab,bb in ipairs(self._values.children)do if bb==self then +self.basalt.LOGGER.error("CIRCULAR REFERENCE DETECTED!")return end;bb:render()end end;return _b end +project["elements/Frame.lua"] = function(...) local c=require("elements/Container") +local d=setmetatable({},c)d.__index=d +function d.new(_a,aa)local ba=setmetatable({},d):__init() +ba:init(_a,aa)ba.set("width",12)ba.set("height",6) +ba.set("background",colors.blue)ba.set("type","Frame")ba.set("z",10)return ba end;return d end project["errorManager.lua"] = function(...) local d=require("log") local _a={tracebackEnabled=true,header="Basalt Error"}local function aa(ba,ca)term.setTextColor(ca)print(ba) term.setTextColor(colors.white)end @@ -133,6 +301,20 @@ repeat _c=db.readLine()if ac==tonumber(bb)then aa("\149Line "..bb,colors.cyan) aa(_c,colors.lightGray)break end;ac=ac+1 until not _c;db.close()end end;term.setBackgroundColor(colors.black) d.error(ba)error()end;return _a end +project["libraries/utils.lua"] = function(...) local d,_a=math.floor,string.len;local aa={} +function aa.getCenteredPosition(ba,ca,da)local _b=_a(ba)local ab=d( +(ca-_b+1)/2 +0.5)local bb=d(da/2 +0.5)return ab,bb end +function aa.deepCopy(ba)if type(ba)~="table"then return ba end;local ca={}for da,_b in pairs(ba)do +ca[aa.deepCopy(da)]=aa.deepCopy(_b)end;return ca end;return aa end +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" +c.error(string.format("Bad argument #%d: expected %s, got %s",_a,ba,ca))end;return true end;return d end +project["libraries/colorHex.lua"] = function(...) local b={}for i=0,15 do b[2 ^i]=("%x"):format(i) +b[("%x"):format(i)]=2 ^i end;return b end project["log.lua"] = function(...) local aa={}aa._logs={}aa._enabled=true;aa._logToFile=true aa._logFile="basalt.log"fs.delete(aa._logFile) aa.LEVEL={DEBUG=1,INFO=2,WARN=3,ERROR=4} @@ -175,7 +357,7 @@ function bb.run(bc)db=bc if(bc==nil)then db=true end local function cc()ac()while db do _c(os.pullEventRaw())end end while db do local dc,_d=pcall(cc)if not(dc)then ab.header="Basalt Runtime Error" -ab.error(_d)end end end;return bb end +ab.error(_d)end end end;bb.autoUpdate=bb.run;return bb end project["propertySystem.lua"] = function(...) local d=require("libraries/utils").deepCopy local _a=require("libraries/expect")local aa={}aa.__index=aa;aa._properties={} function aa.defineProperty(ba,ca,da)if