Testing docs
This commit is contained in:
9
.github/workflows/docs.yml
vendored
9
.github/workflows/docs.yml
vendored
@@ -32,29 +32,24 @@ jobs:
|
|||||||
build-essential \
|
build-essential \
|
||||||
libreadline-dev
|
libreadline-dev
|
||||||
|
|
||||||
# Konfiguriere LuaRocks für Lua 5.3
|
|
||||||
sudo luarocks --lua-version=5.3 install ldoc
|
sudo luarocks --lua-version=5.3 install ldoc
|
||||||
|
|
||||||
# Verifiziere Installation
|
|
||||||
ldoc --version || exit 1
|
ldoc --version || exit 1
|
||||||
|
|
||||||
- name: Generate Documentation
|
- name: Generate Documentation
|
||||||
run: |
|
run: |
|
||||||
# Erstelle config.ld wenn nicht vorhanden
|
|
||||||
if [ ! -f "config.ld" ]; then
|
if [ ! -f "config.ld" ]; then
|
||||||
echo 'project="Basalt2"; title="Basalt2 Documentation"; description="A powerful UI Framework for ComputerCraft"; dir="docs"; style="!pale"; format="markdown"; file="src"; all=true; template=true' > config.ld
|
echo 'project="Basalt2"; title="Basalt2 Documentation"; description="A powerful UI Framework for ComputerCraft"; dir="docs"; style="!pale"; format="markdown"; file="src"; all=true; template=true' > config.ld
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "LDoc Konfiguration:"
|
echo "LDoc Configuration:"
|
||||||
cat config.ld
|
cat config.ld
|
||||||
|
|
||||||
echo "Verfügbare Lua-Dateien:"
|
echo "Available Lua-Files:"
|
||||||
find src -name "*.lua" -type f
|
find src -name "*.lua" -type f
|
||||||
|
|
||||||
# Generiere Dokumentation
|
|
||||||
ldoc . --verbose
|
ldoc . --verbose
|
||||||
|
|
||||||
# Prüfe ob Docs generiert wurden
|
|
||||||
if [ ! -d "docs" ]; then
|
if [ ! -d "docs" ]; then
|
||||||
echo "Documentation generation failed"
|
echo "Documentation generation failed"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
55
src/main.lua
55
src/main.lua
@@ -1,7 +1,15 @@
|
|||||||
|
--- Basalt UI Framework main module
|
||||||
|
-- @module basalt
|
||||||
|
-- @author NyoriE
|
||||||
|
-- @license MIT
|
||||||
|
-- @copyright 2025
|
||||||
|
|
||||||
local elementManager = require("elementManager")
|
local elementManager = require("elementManager")
|
||||||
local expect = require("libraries/expect")
|
local expect = require("libraries/expect")
|
||||||
local errorManager = require("errorManager")
|
local errorManager = require("errorManager")
|
||||||
|
|
||||||
|
--- The main Basalt instance
|
||||||
|
-- @type Basalt
|
||||||
local basalt = {}
|
local basalt = {}
|
||||||
basalt.traceback = true
|
basalt.traceback = true
|
||||||
basalt._events = {}
|
basalt._events = {}
|
||||||
@@ -12,6 +20,12 @@ basalt.LOGGER = require("log")
|
|||||||
local mainFrame = nil
|
local mainFrame = nil
|
||||||
local updaterActive = false
|
local updaterActive = false
|
||||||
|
|
||||||
|
--- Creates a new UI element
|
||||||
|
-- @function create
|
||||||
|
-- @param type string The type of element to create (e.g. "BaseFrame")
|
||||||
|
-- @param[opt] id string Optional ID for the element
|
||||||
|
-- @return table The created element instance
|
||||||
|
-- @usage local button = basalt.create("Button", "myButton")
|
||||||
function basalt.create(type, id)
|
function basalt.create(type, id)
|
||||||
if(id==nil)then id = elementManager.generateId() end
|
if(id==nil)then id = elementManager.generateId() end
|
||||||
local element = elementManager.getElement(type).new(id, basalt)
|
local element = elementManager.getElement(type).new(id, basalt)
|
||||||
@@ -22,16 +36,28 @@ function basalt.create(type, id)
|
|||||||
return element
|
return element
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Creates and returns a new frame
|
||||||
|
-- @function createFrame
|
||||||
|
-- @return table The created frame instance
|
||||||
|
-- @usage local mainFrame = basalt.createFrame()
|
||||||
function basalt.createFrame()
|
function basalt.createFrame()
|
||||||
local frame = basalt.create("BaseFrame")
|
local frame = basalt.create("BaseFrame")
|
||||||
mainFrame = frame
|
mainFrame = frame
|
||||||
return frame
|
return frame
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Returns the element manager instance
|
||||||
|
-- @function getElementManager
|
||||||
|
-- @return table The element manager
|
||||||
|
-- @usage local manager = basalt.getElementManager()
|
||||||
function basalt.getElementManager()
|
function basalt.getElementManager()
|
||||||
return elementManager
|
return elementManager
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Gets or creates the main frame
|
||||||
|
-- @function getMainFrame
|
||||||
|
-- @return table The main frame instance
|
||||||
|
-- @usage local frame = basalt.getMainFrame()
|
||||||
function basalt.getMainFrame()
|
function basalt.getMainFrame()
|
||||||
if(mainFrame == nil)then
|
if(mainFrame == nil)then
|
||||||
mainFrame = basalt.createFrame()
|
mainFrame = basalt.createFrame()
|
||||||
@@ -39,20 +65,36 @@ function basalt.getMainFrame()
|
|||||||
return mainFrame
|
return mainFrame
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Sets the active frame
|
||||||
|
-- @function setActiveFrame
|
||||||
|
-- @param frame table The frame to set as active
|
||||||
|
-- @return boolean Always returns false
|
||||||
|
-- @usage basalt.setActiveFrame(myFrame)
|
||||||
function basalt.setActiveFrame(frame)
|
function basalt.setActiveFrame(frame)
|
||||||
mainFrame = frame
|
mainFrame = frame
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Schedules a function to be updated
|
||||||
|
-- @function scheduleUpdate
|
||||||
|
-- @param func function The function to schedule
|
||||||
|
-- @return number The schedule ID
|
||||||
|
-- @usage local id = basalt.scheduleUpdate(myFunction)
|
||||||
function basalt.scheduleUpdate(func)
|
function basalt.scheduleUpdate(func)
|
||||||
table.insert(basalt._schedule, func)
|
table.insert(basalt._schedule, func)
|
||||||
return #basalt._schedule
|
return #basalt._schedule
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Removes a scheduled update
|
||||||
|
-- @function removeSchedule
|
||||||
|
-- @param id number The schedule ID to remove
|
||||||
|
-- @usage basalt.removeSchedule(scheduleId)
|
||||||
function basalt.removeSchedule(id)
|
function basalt.removeSchedule(id)
|
||||||
basalt._schedule[id] = nil
|
basalt._schedule[id] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Internal event handler
|
||||||
|
-- @local
|
||||||
local function updateEvent(event, ...)
|
local function updateEvent(event, ...)
|
||||||
if(event=="terminate")then basalt.stop() end
|
if(event=="terminate")then basalt.stop() end
|
||||||
|
|
||||||
@@ -75,12 +117,17 @@ local function updateEvent(event, ...)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Internal render function
|
||||||
|
-- @local
|
||||||
local function renderFrames()
|
local function renderFrames()
|
||||||
if(mainFrame)then
|
if(mainFrame)then
|
||||||
mainFrame:render()
|
mainFrame:render()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Updates all scheduled functions
|
||||||
|
-- @function update
|
||||||
|
-- @usage basalt.update()
|
||||||
function basalt.update()
|
function basalt.update()
|
||||||
for k,v in pairs(basalt._schedule) do
|
for k,v in pairs(basalt._schedule) do
|
||||||
if type(v)=="function" then
|
if type(v)=="function" then
|
||||||
@@ -89,12 +136,20 @@ function basalt.update()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Stops the Basalt runtime
|
||||||
|
-- @function stop
|
||||||
|
-- @usage basalt.stop()
|
||||||
function basalt.stop()
|
function basalt.stop()
|
||||||
term.clear()
|
term.clear()
|
||||||
term.setCursorPos(1,1)
|
term.setCursorPos(1,1)
|
||||||
updaterActive = false
|
updaterActive = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Starts the Basalt runtime
|
||||||
|
-- @function run
|
||||||
|
-- @param[opt] isActive boolean Whether to start active (default: true)
|
||||||
|
-- @usage basalt.run()
|
||||||
|
-- @usage basalt.run(false)
|
||||||
function basalt.run(isActive)
|
function basalt.run(isActive)
|
||||||
updaterActive = isActive
|
updaterActive = isActive
|
||||||
if(isActive==nil)then updaterActive = true end
|
if(isActive==nil)then updaterActive = true end
|
||||||
|
|||||||
Reference in New Issue
Block a user