deploy: d55a80dc0e
This commit is contained in:
64
.github/workflows/deploy.yml
vendored
64
.github/workflows/deploy.yml
vendored
@@ -1,64 +0,0 @@
|
|||||||
# Sample workflow for building and deploying a VitePress site to GitHub Pages
|
|
||||||
#
|
|
||||||
name: Deploy VitePress site to Pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Runs on pushes targeting the `main` branch. Change this to `master` if you're
|
|
||||||
# using the `master` branch as the default branch.
|
|
||||||
push:
|
|
||||||
branches: [gh-pages]
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pages: write
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
||||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
||||||
concurrency:
|
|
||||||
group: pages
|
|
||||||
cancel-in-progress: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Build job
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Not needed if lastUpdated is not enabled
|
|
||||||
# - uses: pnpm/action-setup@v3 # Uncomment this if you're using pnpm
|
|
||||||
# - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
cache: npm # or pnpm / yarn
|
|
||||||
- name: Setup Pages
|
|
||||||
uses: actions/configure-pages@v4
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci # or pnpm install / yarn install / bun install
|
|
||||||
- name: Build with VitePress
|
|
||||||
run: npm run docs:build # or pnpm docs:build / yarn docs:build / bun run docs:build
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-pages-artifact@v3
|
|
||||||
with:
|
|
||||||
path: docs/.vitepress/dist
|
|
||||||
|
|
||||||
# Deployment job
|
|
||||||
deploy:
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
needs: build
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: Deploy
|
|
||||||
steps:
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v4
|
|
||||||
112
docs/content/BaseElement.md
Normal file
112
docs/content/BaseElement.md
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
# BaseElement
|
||||||
|
The base class for all UI elements in Basalt
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
|Property|Type|Default|Description|
|
||||||
|
|---|---|---|---|
|
||||||
|
|type|string|BaseElement|The type identifier of the element
|
||||||
|
|eventCallbacks|table|{}|Table containing all registered event callbacks
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
|Method|Returns|Description|
|
||||||
|
|---|---|---|
|
||||||
|
|[BaseElement.listenTo](#BaseElement.listenTo)|-|
|
||||||
|
|[BaseElement.new](#BaseElement.new)|table|
|
||||||
|
|[BaseElement:fireEvent](#BaseElement:fireEvent)|table|
|
||||||
|
|[BaseElement:init](#BaseElement:init)|table|
|
||||||
|
|[BaseElement:listenEvent](#BaseElement:listenEvent)|table|
|
||||||
|
|[BaseElement:registerCallback](#BaseElement:registerCallback)|table|
|
||||||
|
|[BaseElement:updateRender](#BaseElement:updateRender)|-|
|
||||||
|
|
||||||
|
## BaseElement.listenTo(class, eventName)
|
||||||
|
Registers an event that this class can listen to
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `class` `table` The class to add the event to
|
||||||
|
* `eventName` `string` The name of the event to register
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
BaseElement.listenTo(MyClass, "mouse_click")
|
||||||
|
```
|
||||||
|
|
||||||
|
## BaseElement.new(id, basalt)
|
||||||
|
Creates a new BaseElement instance
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `id` `string` The unique identifier for this element
|
||||||
|
* `basalt` `table` The basalt instance
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `The` newly created BaseElement instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local element = BaseElement.new("myId", basalt)
|
||||||
|
```
|
||||||
|
|
||||||
|
## BaseElement:fireEvent(event, ...)
|
||||||
|
Triggers an event and calls all registered callbacks
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `event` `string` The event to fire
|
||||||
|
* `...` `any` Additional arguments to pass to the callbacks
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `self` The BaseElement instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
element:fireEvent("mouse_click", 1, 2)
|
||||||
|
```
|
||||||
|
|
||||||
|
## BaseElement:init(id, basalt)
|
||||||
|
Initializes the BaseElement instance
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `id` `string` The unique identifier for this element
|
||||||
|
* `basalt` `table` The basalt instance
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `self` The initialized instance
|
||||||
|
|
||||||
|
## BaseElement:listenEvent(eventName, enable?)
|
||||||
|
Enables or disables event listening for a specific event
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `eventName` `string` The name of the event to listen for
|
||||||
|
* `enable` *(optional)* `boolean` Whether to enable or disable the event (default: true)
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `self` The BaseElement instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
element:listenEvent("mouse_click", true)
|
||||||
|
```
|
||||||
|
|
||||||
|
## BaseElement:registerCallback(event, callback)
|
||||||
|
Registers a callback function for an event
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `event` `string` The event to register the callback for
|
||||||
|
* `callback` `function` The callback function to register
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `self` The BaseElement instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
element:registerCallback("mouse_click", function(self, ...) end)
|
||||||
|
```
|
||||||
|
|
||||||
|
## BaseElement:updateRender()
|
||||||
|
Requests a render update for this element
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
element:updateRender()
|
||||||
|
```
|
||||||
|
|
||||||
10
docs/content/BaseFrame.md
Normal file
10
docs/content/BaseFrame.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
## BaseFrame.new()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## BaseFrame:multiBlit()
|
||||||
|
|
||||||
|
## BaseFrame:render()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## BaseFrame:textFg()
|
||||||
|
|
||||||
6
docs/content/Button.md
Normal file
6
docs/content/Button.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
## Button.new()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## Button:render()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
28
docs/content/Container.md
Normal file
28
docs/content/Container.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
## Container.new()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## Container:addChild()
|
||||||
|
|
||||||
|
## Container:handleEvent()
|
||||||
|
|
||||||
|
## Container:multiBlit()
|
||||||
|
|
||||||
|
## Container:registerChildEvent()
|
||||||
|
|
||||||
|
## Container:registerChildrenEvents()
|
||||||
|
|
||||||
|
## Container:removeChild()
|
||||||
|
|
||||||
|
## Container:removeChildrenEvents()
|
||||||
|
|
||||||
|
## Container:render()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## Container:sortChildren()
|
||||||
|
|
||||||
|
## Container:sortChildrenEvents()
|
||||||
|
|
||||||
|
## Container:textFg()
|
||||||
|
|
||||||
|
## Container:unregisterChildEvent()
|
||||||
|
|
||||||
3
docs/content/Frame.md
Normal file
3
docs/content/Frame.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## Frame.new()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
37
docs/content/VisualElement.md
Normal file
37
docs/content/VisualElement.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
## VisualElement.new()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## VisualElement:getAbsolutePosition(x?, y?)
|
||||||
|
Returns the absolute position of the element or the given coordinates.
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `x` *(optional)* `number` -- x position
|
||||||
|
* `y` *(optional)* `number` -- y position
|
||||||
|
|
||||||
|
## VisualElement:getRelativePosition(x?, y?)
|
||||||
|
Returns the relative position of the element or the given coordinates.
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `x` *(optional)* `number` -- x position
|
||||||
|
* `y` *(optional)* `number` -- y position
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `nil` `nil` nil
|
||||||
|
|
||||||
|
## VisualElement:handleEvent()
|
||||||
|
|
||||||
|
## VisualElement:isInBounds()
|
||||||
|
|
||||||
|
## VisualElement:mouse_click()
|
||||||
|
|
||||||
|
## VisualElement:mouse_release()
|
||||||
|
|
||||||
|
## VisualElement:mouse_up()
|
||||||
|
|
||||||
|
## VisualElement:multiBlit()
|
||||||
|
|
||||||
|
## VisualElement:render()
|
||||||
|
@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
|
||||||
|
## VisualElement:textFg()
|
||||||
|
|
||||||
0
docs/content/colorHex.md
Normal file
0
docs/content/colorHex.md
Normal file
14
docs/content/elementManager.md
Normal file
14
docs/content/elementManager.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
## ElementManager.extendMethod()
|
||||||
|
|
||||||
|
## ElementManager.generateId()
|
||||||
|
|
||||||
|
## ElementManager.getElement()
|
||||||
|
|
||||||
|
## ElementManager.getElementList()
|
||||||
|
|
||||||
|
## ElementManager.loadElement()
|
||||||
|
|
||||||
|
## ElementManager.loadPlugin()
|
||||||
|
|
||||||
|
## ElementManager.registerPlugin()
|
||||||
|
|
||||||
2
docs/content/errorManager.md
Normal file
2
docs/content/errorManager.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
## errorHandler.error()
|
||||||
|
|
||||||
1
docs/content/expect.md
Normal file
1
docs/content/expect.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Simple type checking without stack traces
|
||||||
1
docs/content/init.md
Normal file
1
docs/content/init.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Use xpcall with error handler
|
||||||
7
docs/content/log.md
Normal file
7
docs/content/log.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Log levels
|
||||||
|
## Log.error()
|
||||||
|
|
||||||
|
## Log.setEnabled()
|
||||||
|
|
||||||
|
## Log.setLogToFile()
|
||||||
|
|
||||||
139
docs/content/main.md
Normal file
139
docs/content/main.md
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
# Basalt
|
||||||
|
This is the UI Manager and the starting point for your project. The following functions allow you to influence the default behavior of Basalt.
|
||||||
|
|
||||||
|
Before you can access Basalt, you need to add the following code on top of your file:
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local basalt = require("basalt")
|
||||||
|
```
|
||||||
|
|
||||||
|
What this code does is it loads basalt into the project, and you can access it by using the variable defined as "basalt".
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
|Method|Returns|Description|
|
||||||
|
|---|---|---|
|
||||||
|
|[basalt.create](#basalt.create)|table|Creates a new UI element
|
||||||
|
|[basalt.createFrame](#basalt.createFrame)|table|
|
||||||
|
|[basalt.getElementManager](#basalt.getElementManager)|table|
|
||||||
|
|[basalt.getMainFrame](#basalt.getMainFrame)|BaseFrame|
|
||||||
|
|[basalt.removeSchedule](#basalt.removeSchedule)|-|
|
||||||
|
|[basalt.run](#basalt.run)|-|
|
||||||
|
|[basalt.scheduleUpdate](#basalt.scheduleUpdate)|number|
|
||||||
|
|[basalt.setActiveFrame](#basalt.setActiveFrame)|-|
|
||||||
|
|[basalt.stop](#basalt.stop)|-|
|
||||||
|
|[basalt.update](#basalt.update)|-|
|
||||||
|
|
||||||
|
## basalt.create(type, id?)
|
||||||
|
Creates and returns a new UI element of the specified type.
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `type` `string` The type of element to create (e.g. "Button", "Label", "BaseFrame")
|
||||||
|
* `id` *(optional)* `string` Optional unique identifier for the element
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `element` The created element instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local button = basalt.create("Button")
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.createFrame()
|
||||||
|
Creates and returns a new frame
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `BaseFrame` The created frame instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local mainFrame = basalt.createFrame()
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.getElementManager()
|
||||||
|
Returns the element manager instance
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `table` `ElementManager` The element manager
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local manager = basalt.getElementManager()
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.getMainFrame()
|
||||||
|
Gets or creates the main frame
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `BaseFrame` `table` The main frame instance
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local frame = basalt.getMainFrame()
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.removeSchedule(id)
|
||||||
|
Removes a scheduled update
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `id` `number` The schedule ID to remove
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
basalt.removeSchedule(scheduleId)
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.run(isActive)
|
||||||
|
Starts the Basalt runtime
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `isActive` `boolean` Whether to start active (default: true)
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
basalt.run()
|
||||||
|
basalt.run(false)
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.scheduleUpdate(func)
|
||||||
|
Schedules a function to be updated
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `func` `function` The function to schedule
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
* `number` `Id` The schedule ID
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
local id = basalt.scheduleUpdate(myFunction)
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.setActiveFrame(frame)
|
||||||
|
Sets the active frame
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
* `frame` `table` The frame to set as active
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
basalt.setActiveFrame(myFrame)
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.stop()
|
||||||
|
Stops the Basalt runtime
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
basalt.stop()
|
||||||
|
```
|
||||||
|
|
||||||
|
## basalt.update()
|
||||||
|
Updates all scheduled functions
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
```lua
|
||||||
|
basalt.update()
|
||||||
|
```
|
||||||
|
|
||||||
8
docs/content/propertySystem.md
Normal file
8
docs/content/propertySystem.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
## PropertySystem.defineProperty()
|
||||||
|
|
||||||
|
## PropertySystem:__init()
|
||||||
|
|
||||||
|
## PropertySystem:_updateProperty()
|
||||||
|
|
||||||
|
## PropertySystem:observe()
|
||||||
|
|
||||||
22
docs/content/render.md
Normal file
22
docs/content/render.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
## Render.new()
|
||||||
|
|
||||||
|
## Render:bg()
|
||||||
|
|
||||||
|
## Render:blit()
|
||||||
|
|
||||||
|
## Render:clear()
|
||||||
|
|
||||||
|
## Render:clearArea()
|
||||||
|
|
||||||
|
## Render:fg()
|
||||||
|
|
||||||
|
## Render:getSize()
|
||||||
|
|
||||||
|
## Render:multiBlit()
|
||||||
|
|
||||||
|
## Render:render()
|
||||||
|
|
||||||
|
## Render:text()
|
||||||
|
|
||||||
|
## Render:textFg()
|
||||||
|
|
||||||
4
docs/content/utils.md
Normal file
4
docs/content/utils.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
## utils.deepCopy()
|
||||||
|
|
||||||
|
## utils.getCenteredPosition()
|
||||||
|
|
||||||
Reference in New Issue
Block a user