├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── bug_report_form.yml │ ├── config.yml │ ├── docs.md │ └── feature.md ├── Basalt ├── init.lua ├── libraries │ ├── basaltDraw.lua │ ├── basaltEvent.lua │ ├── basaltLogs.lua │ ├── basaltMon.lua │ ├── bimg.lua │ ├── images.lua │ ├── process.lua │ ├── reactivePrimitives.lua │ ├── tHex.lua │ ├── utils.lua │ └── xmlParser.lua ├── loadObjects.lua ├── main.lua ├── objects │ ├── BaseFrame.lua │ ├── Button.lua │ ├── ChangeableObject.lua │ ├── Checkbox.lua │ ├── Container.lua │ ├── Dropdown.lua │ ├── Flexbox.lua │ ├── Frame.lua │ ├── Graph.lua │ ├── Image.lua │ ├── Input.lua │ ├── Label.lua │ ├── List.lua │ ├── Menubar.lua │ ├── MonitorFrame.lua │ ├── MovableFrame.lua │ ├── Object.lua │ ├── Pane.lua │ ├── Program.lua │ ├── Progressbar.lua │ ├── Radio.lua │ ├── ScrollableFrame.lua │ ├── Scrollbar.lua │ ├── Slider.lua │ ├── Switch.lua │ ├── Textfield.lua │ ├── Thread.lua │ ├── Timer.lua │ ├── Treeview.lua │ └── VisualObject.lua ├── plugin.lua └── plugins │ ├── advancedBackground.lua │ ├── animations.lua │ ├── basaltAdditions.lua │ ├── bigfonts.lua │ ├── border.lua │ ├── debug.lua │ ├── dynamicValues.lua │ ├── pixelbox.lua │ ├── reactive.lua │ ├── shadow.lua │ ├── textures.lua │ └── themes.lua ├── CHANGELOG.md ├── LICENSE ├── README.md └── docs ├── .nojekyll ├── Home.md ├── _footer.md ├── _media ├── basaltPreview2.gif ├── dynamic-frames.mp4 ├── flexbox-example.png ├── flexgrow-property.mp4 ├── frame-flexgrow-property.mp4 ├── frames-with-menubars.mp4 ├── frames-with-sidebar.mp4 ├── installer.png ├── logo.png ├── pane-example-1.png ├── pane-example-2.png ├── resizable-frames.mp4 └── scrollable-frames.mp4 ├── _navbar.md ├── _sidebar.md ├── bTemp.lua ├── docs1_6 ├── .nojekyll ├── CNAME ├── Home.md ├── _footer.md ├── _media │ ├── basaltPreview2.gif │ ├── dynamic-frames.mp4 │ ├── frames-with-menubars.mp4 │ ├── frames-with-sidebar.mp4 │ ├── installer.png │ ├── logo.png │ ├── pane-example-1.png │ ├── pane-example-2.png │ ├── resizable-frames.mp4 │ └── scrollable-frames.mp4 ├── _navbar.md ├── _sidebar.md ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── home │ ├── How-To.md │ └── download.md ├── index.html ├── objects │ ├── Animation.md │ ├── Animation │ │ ├── add.md │ │ ├── addMode.md │ │ ├── cancel.md │ │ ├── changeBackground.md │ │ ├── changeText.md │ │ ├── changeTextColor.md │ │ ├── move.md │ │ ├── offset.md │ │ ├── onDone.md │ │ ├── onStart.md │ │ ├── play.md │ │ ├── setMode.md │ │ ├── setObject.md │ │ ├── size.md │ │ └── wait.md │ ├── Basalt.md │ ├── Basalt │ │ ├── autoUpdate.md │ │ ├── createFrame.md │ │ ├── debug.md │ │ ├── getActiveFrame.md │ │ ├── getFrame.md │ │ ├── getTheme.md │ │ ├── getVariable.md │ │ ├── getVersion.md │ │ ├── isKeyDown.md │ │ ├── log.md │ │ ├── onEvent.md │ │ ├── removeFrame.md │ │ ├── schedule.md │ │ ├── setActiveFrame.md │ │ ├── setMouseDragThrottle.md │ │ ├── setMouseMoveThrottle.md │ │ ├── setTheme.md │ │ ├── setVariable.md │ │ ├── stopUpdate.md │ │ └── update.md │ ├── Button.md │ ├── Button │ │ ├── setHorizontalAlign.md │ │ ├── setText.md │ │ └── setVerticalAlign.md │ ├── Checkbox.md │ ├── Checkbox │ │ └── setSymbol.md │ ├── Dropdown.md │ ├── Dropdown │ │ ├── addItem.md │ │ ├── clear.md │ │ ├── editItem.md │ │ ├── getAll.md │ │ ├── getItem.md │ │ ├── getItemCount.md │ │ ├── getItemIndex.md │ │ ├── getOffset.md │ │ ├── removeItem.md │ │ ├── selectItem.md │ │ ├── setDropdownSize.md │ │ ├── setOffset.md │ │ └── setSelectedItem.md │ ├── Frame.md │ ├── Frame │ │ ├── addLayout.md │ │ ├── addLayoutFromString.md │ │ ├── addObject.md │ │ ├── getFocusedObject.md │ │ ├── getLastLayout.md │ │ ├── getObject.md │ │ ├── getOffset.md │ │ ├── removeFocusedObject.md │ │ ├── removeObject.md │ │ ├── setBar.md │ │ ├── setBarTextAlign.md │ │ ├── setFocusedObject.md │ │ ├── setMirror.md │ │ ├── setMonitor.md │ │ ├── setMonitorScale.md │ │ ├── setMovable.md │ │ ├── setOffset.md │ │ ├── setScrollAmount.md │ │ ├── setScrollable.md │ │ ├── setTheme.md │ │ └── showBar.md │ ├── Image.md │ ├── Image │ │ ├── getImageSize.md │ │ ├── getMetadata.md │ │ ├── loadImage.md │ │ ├── play.md │ │ ├── resizeImage.md │ │ ├── selectFrame.md │ │ ├── setImage.md │ │ ├── shrink.md │ │ └── usePalette.md │ ├── Input.md │ ├── Input │ │ ├── getInputLimit.md │ │ ├── getInputType.md │ │ ├── setDefaultText.md │ │ ├── setInputLimit.md │ │ └── setInputType.md │ ├── Label.md │ ├── Label │ │ ├── getFontSize.md │ │ ├── setFontSize.md │ │ └── setText.md │ ├── List.md │ ├── List │ │ ├── addItem.md │ │ ├── clear.md │ │ ├── editItem.md │ │ ├── getAll.md │ │ ├── getItem.md │ │ ├── getItemCount.md │ │ ├── getItemIndex.md │ │ ├── getOffset.md │ │ ├── removeItem.md │ │ ├── selectItem.md │ │ ├── setOffset.md │ │ ├── setScrollable.md │ │ └── setSelectedItem.md │ ├── Menubar.md │ ├── Menubar │ │ ├── addItem.md │ │ ├── clear.md │ │ ├── editItem.md │ │ ├── getAll.md │ │ ├── getItem.md │ │ ├── getItemCount.md │ │ ├── getItemIndex.md │ │ ├── getOffset.md │ │ ├── removeItem.md │ │ ├── selectItem.md │ │ ├── setOffset.md │ │ ├── setScrollable.md │ │ ├── setSelectedItem.md │ │ └── setSpace.md │ ├── Object.md │ ├── Object │ │ ├── disable.md │ │ ├── enable.md │ │ ├── getAbsolutePosition.md │ │ ├── getAnchorPosition.md │ │ ├── getBackground.md │ │ ├── getForeground.md │ │ ├── getName.md │ │ ├── getPosition.md │ │ ├── getSize.md │ │ ├── getValue.md │ │ ├── hide.md │ │ ├── isFocused.md │ │ ├── isVisible.md │ │ ├── onChange.md │ │ ├── onChar.md │ │ ├── onClick.md │ │ ├── onClickUp.md │ │ ├── onDrag.md │ │ ├── onEvent.md │ │ ├── onGetFocus.md │ │ ├── onHover.md │ │ ├── onKey.md │ │ ├── onKeyUp.md │ │ ├── onLeave.md │ │ ├── onLoseFocus.md │ │ ├── onRelease.md │ │ ├── onReposition.md │ │ ├── onResize.md │ │ ├── onScroll.md │ │ ├── remove.md │ │ ├── setAnchor.md │ │ ├── setBackground.md │ │ ├── setBorder.md │ │ ├── setFocus.md │ │ ├── setForeground.md │ │ ├── setParent.md │ │ ├── setPosition.md │ │ ├── setShadow.md │ │ ├── setSize.md │ │ ├── setValue.md │ │ ├── setZIndex.md │ │ └── show.md │ ├── Pane.md │ ├── Program.md │ ├── Program │ │ ├── execute.md │ │ ├── getQueuedEvents.md │ │ ├── getStatus.md │ │ ├── injectEvent.md │ │ ├── injectEvents.md │ │ ├── isPaused.md │ │ ├── onDone.md │ │ ├── onError.md │ │ ├── pause.md │ │ ├── setEnviroment.md │ │ └── stop.md │ ├── Progressbar.md │ ├── Progressbar │ │ ├── getProgress.md │ │ ├── onDone.md │ │ ├── setBackgroundSymbol.md │ │ ├── setDirection.md │ │ ├── setProgress.md │ │ └── setProgressBar.md │ ├── Radio.md │ ├── Radio │ │ ├── addItem.md │ │ ├── clear.md │ │ ├── editItem.md │ │ ├── getAll.md │ │ ├── getItem.md │ │ ├── getItemCount.md │ │ ├── getItemIndex.md │ │ ├── removeItem.md │ │ ├── selectItem.md │ │ └── setSelectedItem.md │ ├── Scrollbar.md │ ├── Scrollbar │ │ ├── getIndex.md │ │ ├── setBackgroundSymbol.md │ │ ├── setBarType.md │ │ ├── setIndex.md │ │ ├── setMaxValue.md │ │ └── setSymbol.md │ ├── Slider.md │ ├── Slider │ │ ├── getIndex.md │ │ ├── setBackgroundSymbol.md │ │ ├── setBarType.md │ │ ├── setIndex.md │ │ ├── setMaxValue.md │ │ └── setSymbol.md │ ├── Textfield.md │ ├── Textfield │ │ ├── addKeywords.md │ │ ├── addLine.md │ │ ├── addRule.md │ │ ├── editLine.md │ │ ├── getLine.md │ │ ├── getLines.md │ │ ├── getTextCursor.md │ │ └── removeLine.md │ ├── Thread.md │ ├── Thread │ │ ├── getStatus.md │ │ ├── start.md │ │ └── stop.md │ ├── Timer.md │ └── Timer │ │ ├── cancel.md │ │ ├── onCall.md │ │ ├── setTime.md │ │ └── start.md └── tips │ ├── buttonColoring.md │ ├── design.md │ ├── dynamicvalues.md │ ├── logic.md │ └── xml.md ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── guides ├── dynamicvalues.md ├── introduction.md └── xml.md ├── home ├── How-To.md ├── download.md └── getting-started.md ├── index.html ├── install.lua ├── objects ├── Animation.md ├── Animation │ ├── add.md │ ├── addMode.md │ ├── cancel.md │ ├── changeBackground.md │ ├── changeText.md │ ├── changeTextColor.md │ ├── move.md │ ├── offset.md │ ├── onDone.md │ ├── onStart.md │ ├── play.md │ ├── setMode.md │ ├── setObject.md │ ├── size.md │ └── wait.md ├── Basalt.md ├── Basalt │ ├── addObject.md │ ├── addPlugin.md │ ├── autoUpdate.md │ ├── createFrame.md │ ├── debug.md │ ├── getActiveFrame.md │ ├── getFrame.md │ ├── getTheme.md │ ├── getVariable.md │ ├── getVersion.md │ ├── isKeyDown.md │ ├── log.md │ ├── memory.md │ ├── onEvent.md │ ├── removeFrame.md │ ├── schedule.md │ ├── setActiveFrame.md │ ├── setMouseDragThrottle.md │ ├── setMouseMoveThrottle.md │ ├── setRenderingThrottle.md │ ├── setTheme.md │ ├── setVariable.md │ ├── stopUpdate.md │ └── update.md ├── BaseFrame.md ├── BaseFrame │ ├── getOffset.md │ └── setOffset.md ├── Button.md ├── Button │ ├── setHorizontalAlign.md │ ├── setText.md │ └── setVerticalAlign.md ├── ChangeableObject.md ├── ChangeableObject │ ├── getValue.md │ ├── onChange.md │ └── setValue.md ├── Checkbox.md ├── Checkbox │ └── setSymbol.md ├── Container.md ├── Container │ ├── addChild.md │ ├── clearFocusedChild.md │ ├── getChild.md │ ├── getDeepChild.md │ ├── removeChild.md │ ├── removeChildren.md │ ├── setFocusedChild.md │ ├── setImportant.md │ ├── sortElementOrder.md │ └── updateZIndex.md ├── Dropdown.md ├── Dropdown │ ├── addItem.md │ ├── clear.md │ ├── editItem.md │ ├── getAll.md │ ├── getItem.md │ ├── getItemCount.md │ ├── getItemIndex.md │ ├── getOffset.md │ ├── removeItem.md │ ├── selectItem.md │ ├── setDropdownSize.md │ ├── setOffset.md │ └── setSelectedItem.md ├── Flexbox.md ├── Flexbox │ ├── addBreak.md │ ├── getDirection.md │ ├── getFlexBasis.md │ ├── getFlexGrow.md │ ├── getFlexShrink.md │ ├── getJustifyContent.md │ ├── getSpacing.md │ ├── getWrap.md │ ├── setDirection.md │ ├── setFlexBasis.md │ ├── setFlexGrow.md │ ├── setFlexShrink.md │ ├── setJustifyContent.md │ ├── setSpacing.md │ ├── setWrap.md │ └── updateLayout.md ├── Frame.md ├── Frame │ ├── addLayout.md │ ├── addLayoutFromString.md │ ├── addObject.md │ ├── getFocusedObject.md │ ├── getLastLayout.md │ ├── getObject.md │ ├── getOffset.md │ ├── removeFocusedObject.md │ ├── removeObject.md │ ├── setBar.md │ ├── setBarTextAlign.md │ ├── setFocusedObject.md │ ├── setMirror.md │ ├── setMonitor.md │ ├── setMonitorScale.md │ ├── setMovable.md │ ├── setOffset.md │ ├── setScrollAmount.md │ ├── setScrollable.md │ ├── setTheme.md │ └── showBar.md ├── Graph.md ├── Graph │ ├── Textdokument (neu).txt │ ├── addDataPoint.md │ ├── getGraphSymbol.md │ ├── getMaxEntries.md │ ├── getMaxValue.md │ ├── setGraphColor.md │ ├── setGraphSymbol.md │ ├── setGraphType.md │ ├── setMaxEntries.md │ ├── setMaxValue.md │ └── setMinValue.md ├── Image.md ├── Image │ ├── addFrame.md │ ├── blit.md │ ├── clear.md │ ├── getActiveFrame.md │ ├── getFrame.md │ ├── getFrameCount.md │ ├── getFrameObject.md │ ├── getFrames.md │ ├── getImage.md │ ├── getImageSize.md │ ├── getMetadata.md │ ├── getOffset.md │ ├── getShrinkedImage.md │ ├── loadImage.md │ ├── moveFrame.md │ ├── play.md │ ├── removeFrame.md │ ├── resizeImage.md │ ├── selectFrame.md │ ├── setBg.md │ ├── setFg.md │ ├── setImage.md │ ├── setImageSize.md │ ├── setOffset.md │ ├── setText.md │ ├── shrink.md │ └── usePalette.md ├── Input.md ├── Input │ ├── getInputLimit.md │ ├── getInputType.md │ ├── getOffset.md │ ├── getTextOffset.md │ ├── setDefaultText.md │ ├── setInputLimit.md │ ├── setInputType.md │ ├── setOffset.md │ └── setTextOffset.md ├── Label.md ├── Label │ ├── getFontSize.md │ ├── setFontSize.md │ ├── setText.md │ └── setTextAlign.md ├── List.md ├── List │ ├── addItem.md │ ├── clear.md │ ├── editItem.md │ ├── getAll.md │ ├── getItem.md │ ├── getItemCount.md │ ├── getItemIndex.md │ ├── getOffset.md │ ├── getOptions.md │ ├── getSelectionColor.md │ ├── isSelectionColorActive.md │ ├── onSelect.md │ ├── removeItem.md │ ├── selectItem.md │ ├── setOffset.md │ ├── setOptions.md │ ├── setScrollable.md │ └── setSelectionColor.md ├── Menubar.md ├── Menubar │ ├── addItem.md │ ├── clear.md │ ├── editItem.md │ ├── getAll.md │ ├── getItem.md │ ├── getItemCount.md │ ├── getItemIndex.md │ ├── getOffset.md │ ├── getSpace.md │ ├── removeItem.md │ ├── selectItem.md │ ├── setOffset.md │ ├── setScrollable.md │ ├── setSelectedItem.md │ └── setSpace.md ├── MonitorFrame.md ├── MonitorFrame │ ├── setMonitor.md │ └── setMonitorGroup.md ├── MovableFrame.md ├── MovableFrame │ ├── getDraggingMap.md │ └── setDraggingMap.md ├── Object.md ├── Object │ ├── disable.md │ ├── enable.md │ ├── getAbsolutePosition.md │ ├── getAnchorPosition.md │ ├── getBackground.md │ ├── getForeground.md │ ├── getName.md │ ├── getParent.md │ ├── getPosition.md │ ├── getSize.md │ ├── getType.md │ ├── getValue.md │ ├── getZIndex.md │ ├── hide.md │ ├── isFocused.md │ ├── isType.md │ ├── isVisible.md │ ├── onChar.md │ ├── onClick.md │ ├── onClickUp.md │ ├── onDrag.md │ ├── onEvent.md │ ├── onGetFocus.md │ ├── onHover.md │ ├── onKey.md │ ├── onKeyUp.md │ ├── onLeave.md │ ├── onLoseFocus.md │ ├── onRelease.md │ ├── onReposition.md │ ├── onResize.md │ ├── onScroll.md │ ├── remove.md │ ├── setAnchor.md │ ├── setBackground.md │ ├── setBorder.md │ ├── setFocus.md │ ├── setForeground.md │ ├── setParent.md │ ├── setPosition.md │ ├── setShadow.md │ ├── setSize.md │ ├── setValue.md │ ├── setZIndex.md │ └── show.md ├── Pane.md ├── Program.md ├── Program │ ├── execute.md │ ├── getQueuedEvents.md │ ├── getStatus.md │ ├── injectEvent.md │ ├── injectEvents.md │ ├── isPaused.md │ ├── onDone.md │ ├── onError.md │ ├── pause.md │ ├── setEnviroment.md │ ├── stop.md │ └── updateQueuedEvents.md ├── Progressbar.md ├── Progressbar │ ├── getProgress.md │ ├── onDone.md │ ├── setBackgroundSymbol.md │ ├── setDirection.md │ ├── setProgress.md │ └── setProgressBar.md ├── Radio.md ├── Radio │ ├── addItem.md │ ├── clear.md │ ├── editItem.md │ ├── getAll.md │ ├── getItem.md │ ├── getItemCount.md │ ├── getItemIndex.md │ ├── removeItem.md │ ├── selectItem.md │ └── setSelectedItem.md ├── ScrollableFrame.md ├── ScrollableFrame │ ├── setDirection.md │ └── setScrollAmount.md ├── Scrollbar.md ├── Scrollbar │ ├── getIndex.md │ ├── setBackgroundSymbol.md │ ├── setBarType.md │ ├── setIndex.md │ ├── setScrollAmount.md │ └── setSymbol.md ├── Slider.md ├── Slider │ ├── getIndex.md │ ├── setBackgroundSymbol.md │ ├── setBarType.md │ ├── setIndex.md │ ├── setMaxValue.md │ └── setSymbol.md ├── Textfield.md ├── Textfield │ ├── addKeywords.md │ ├── addLine.md │ ├── addRule.md │ ├── clear.md │ ├── editLine.md │ ├── editRule.md │ ├── getLine.md │ ├── getLines.md │ ├── getOffset.md │ ├── getSelection.md │ ├── getTextCursor.md │ ├── removeLine.md │ ├── removeRule.md │ ├── setOffset.md │ └── setSelection.md ├── Thread.md ├── Thread │ ├── getStatus.md │ ├── start.md │ └── stop.md ├── Timer.md ├── Timer │ ├── cancel.md │ ├── onCall.md │ ├── setTime.md │ └── start.md ├── Treeview.md ├── Treeview │ ├── addChild.md │ ├── findChildrenByText.md │ ├── getChildren.md │ ├── getOffset.md │ ├── getParent.md │ ├── getRoot.md │ ├── getSelectionColor.md │ ├── getText.md │ ├── isExpandable.md │ ├── isExpanded.md │ ├── isSelectionColorActive.md │ ├── onSelect.md │ ├── onSelectNode.md │ ├── removeChild.md │ ├── setExpandable.md │ ├── setExpanded.md │ ├── setOffset.md │ ├── setRoot.md │ ├── setScrollable.md │ ├── setSelectionColor.md │ └── setText.md ├── VisualObject.md └── VisualObject │ ├── addBG.md │ ├── addBackgroundBox.md │ ├── addBlit.md │ ├── addDraw.md │ ├── addFG.md │ ├── addForegroundBox.md │ ├── addPostDraw.md │ ├── addPreDraw.md │ ├── addText.md │ ├── addTextBox.md │ ├── addTexture.md │ ├── animateOffset.md │ ├── animatePosition.md │ ├── animateSize.md │ ├── getAbsolutePosition.md │ ├── getBackground.md │ ├── getDrawId.md │ ├── getForeground.md │ ├── getHeight.md │ ├── getPosition.md │ ├── getShadow.md │ ├── getSize.md │ ├── getWidth.md │ ├── getX.md │ ├── getY.md │ ├── hide.md │ ├── ignoreOffset.md │ ├── isFocused.md │ ├── isVisible.md │ ├── onReposition.md │ ├── onResize.md │ ├── setBackground.md │ ├── setBorder.md │ ├── setDrawState.md │ ├── setFocus.md │ ├── setForeground.md │ ├── setInfinitePlay.md │ ├── setPosition.md │ ├── setShadow.md │ ├── setSize.md │ ├── setTextureMode.md │ ├── setTransparency.md │ ├── setVisible.md │ ├── setZIndex.md │ └── show.md ├── packager.lua ├── ui.lua └── versions ├── basalt-1.0.0.lua ├── basalt-1.5.0.lua ├── basalt-1.6.0.lua ├── basalt-1.6.2.lua ├── basalt-1.6.3.lua ├── basalt-1.6.4.lua ├── basalt-1.6.5.lua ├── basalt-1.6.6.lua ├── basalt-1.7.0.lua ├── basalt-1.7.1.lua └── latest.lua /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | contact_links: 2 | - name: Community Support 3 | url: https://discord.gg/yNNnmBVBpE 4 | about: Please ask and answer questions here. 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/docs.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Documentation 3 | about: Anything that you think is wrong about the documentation. 4 | title: 'docs: [TITLE]' 5 | labels: documentation 6 | assignees: '' 7 | 8 | --- 9 | 10 | ** Where? ** 11 | Please describe what you want changed. Screenshot / Quotes 12 | 13 | ** Possible solution ** 14 | Please describe a possible solution. 15 | 16 | ** Others ** 17 | Anything else you want to say? 18 | 19 | ** Checklist ** 20 | [ ] I am looking at the latest version of the docs. 21 | -------------------------------------------------------------------------------- /Basalt/init.lua: -------------------------------------------------------------------------------- 1 | local curDir = fs.getDir(table.pack(...)[2]) or "" 2 | 3 | local defaultPath = package.path 4 | if not(packed)then 5 | local format = "path;/path/?.lua;/path/?/init.lua;" 6 | 7 | local main = format:gsub("path", curDir) 8 | local objFolder = format:gsub("path", curDir.."/objects") 9 | local plugFolder = format:gsub("path", curDir.."/plugins") 10 | local libFolder = format:gsub("path", curDir.."/libraries") 11 | 12 | 13 | package.path = main..objFolder..plugFolder..libFolder..defaultPath 14 | end 15 | local Basalt = require("main") 16 | package.path = defaultPath 17 | 18 | return Basalt -------------------------------------------------------------------------------- /Basalt/libraries/basaltLogs.lua: -------------------------------------------------------------------------------- 1 | local logDir = "" 2 | local logFileName = "basaltLog.txt" 3 | 4 | local defaultLogType = "Debug" 5 | 6 | fs.delete(logDir~="" and logDir.."/"..logFileName or logFileName) 7 | 8 | local mt = { 9 | __call = function(_,text, typ) 10 | if(text==nil)then return end 11 | local dirStr = logDir~="" and logDir.."/"..logFileName or logFileName 12 | local handle = fs.open(dirStr, fs.exists(dirStr) and "a" or "w") 13 | handle.writeLine("[Basalt]["..os.date("%Y-%m-%d %H:%M:%S").."]["..(typ and typ or defaultLogType).."]: "..tostring(text)) 14 | handle.close() 15 | end, 16 | } 17 | 18 | return setmetatable({}, mt) 19 | 20 | --Work in progress -------------------------------------------------------------------------------- /Basalt/libraries/tHex.lua: -------------------------------------------------------------------------------- 1 | local cols = {} 2 | 3 | for i = 0, 15 do 4 | cols[2^i] = ("%x"):format(i) 5 | end 6 | return cols -------------------------------------------------------------------------------- /Basalt/loadObjects.lua: -------------------------------------------------------------------------------- 1 | local _OBJECTS = {} 2 | 3 | if(packaged)then 4 | for k,v in pairs(getProject("objects"))do 5 | _OBJECTS[k] = v() 6 | end 7 | return _OBJECTS 8 | end 9 | 10 | local args = table.pack(...) 11 | local dir = fs.getDir(args[2] or "Basalt") 12 | if(dir==nil)then 13 | error("Unable to find directory "..args[2].." please report this bug to our discord.") 14 | end 15 | 16 | for _,v in pairs(fs.list(fs.combine(dir, "objects")))do 17 | if(v~="example.lua")and not(v:find(".disabled"))then 18 | local name = v:gsub(".lua", "") 19 | _OBJECTS[name] = require(name) 20 | end 21 | end 22 | return _OBJECTS -------------------------------------------------------------------------------- /Basalt/objects/Pane.lua: -------------------------------------------------------------------------------- 1 | return function(name, basalt) 2 | -- Pane 3 | local base = basalt.getObject("VisualObject")(name, basalt) 4 | local objectType = "Pane" 5 | 6 | base:setSize(25, 10) 7 | 8 | local object = { 9 | getType = function(self) 10 | return objectType 11 | end, 12 | } 13 | 14 | object.__index = object 15 | return setmetatable(object, base) 16 | end -------------------------------------------------------------------------------- /Basalt/plugins/basaltAdditions.lua: -------------------------------------------------------------------------------- 1 | return { 2 | basalt = function() 3 | return { 4 | cool = function() 5 | print("ello") 6 | sleep(2) 7 | end 8 | } 9 | end 10 | } -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/.nojekyll -------------------------------------------------------------------------------- /docs/_footer.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | Thanks for checking out our wiki, join our discord for more help: [https://discord.gg/yM7kndJdJJ](discord.gg/yNNnmBVBpE) 4 | -------------------------------------------------------------------------------- /docs/_media/basaltPreview2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/basaltPreview2.gif -------------------------------------------------------------------------------- /docs/_media/dynamic-frames.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/dynamic-frames.mp4 -------------------------------------------------------------------------------- /docs/_media/flexbox-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/flexbox-example.png -------------------------------------------------------------------------------- /docs/_media/flexgrow-property.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/flexgrow-property.mp4 -------------------------------------------------------------------------------- /docs/_media/frame-flexgrow-property.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/frame-flexgrow-property.mp4 -------------------------------------------------------------------------------- /docs/_media/frames-with-menubars.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/frames-with-menubars.mp4 -------------------------------------------------------------------------------- /docs/_media/frames-with-sidebar.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/frames-with-sidebar.mp4 -------------------------------------------------------------------------------- /docs/_media/installer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/installer.png -------------------------------------------------------------------------------- /docs/_media/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/logo.png -------------------------------------------------------------------------------- /docs/_media/pane-example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/pane-example-1.png -------------------------------------------------------------------------------- /docs/_media/pane-example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/pane-example-2.png -------------------------------------------------------------------------------- /docs/_media/resizable-frames.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/resizable-frames.mp4 -------------------------------------------------------------------------------- /docs/_media/scrollable-frames.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/_media/scrollable-frames.mp4 -------------------------------------------------------------------------------- /docs/_navbar.md: -------------------------------------------------------------------------------- 1 | - Getting Started 2 | - [Home](Home) 3 | - [How To](home/How-To) 4 | - [Download](home/download) 5 | -------------------------------------------------------------------------------- /docs/docs1_6/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/.nojekyll -------------------------------------------------------------------------------- /docs/docs1_6/CNAME: -------------------------------------------------------------------------------- 1 | basalt.madefor.cc -------------------------------------------------------------------------------- /docs/docs1_6/_footer.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | Thanks for checking out our wiki, join our discord for more help: [discord.gg/yM7kndJdJJ](discord.gg/yNNnmBVBpE) 4 | -------------------------------------------------------------------------------- /docs/docs1_6/_media/basaltPreview2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/basaltPreview2.gif -------------------------------------------------------------------------------- /docs/docs1_6/_media/dynamic-frames.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/dynamic-frames.mp4 -------------------------------------------------------------------------------- /docs/docs1_6/_media/frames-with-menubars.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/frames-with-menubars.mp4 -------------------------------------------------------------------------------- /docs/docs1_6/_media/frames-with-sidebar.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/frames-with-sidebar.mp4 -------------------------------------------------------------------------------- /docs/docs1_6/_media/installer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/installer.png -------------------------------------------------------------------------------- /docs/docs1_6/_media/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/logo.png -------------------------------------------------------------------------------- /docs/docs1_6/_media/pane-example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/pane-example-1.png -------------------------------------------------------------------------------- /docs/docs1_6/_media/pane-example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/pane-example-2.png -------------------------------------------------------------------------------- /docs/docs1_6/_media/resizable-frames.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/resizable-frames.mp4 -------------------------------------------------------------------------------- /docs/docs1_6/_media/scrollable-frames.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/_media/scrollable-frames.mp4 -------------------------------------------------------------------------------- /docs/docs1_6/_navbar.md: -------------------------------------------------------------------------------- 1 | - Getting Started 2 | - [Home](Home) 3 | - [How To](home/How-To) 4 | - [Download](home/download) 5 | -------------------------------------------------------------------------------- /docs/docs1_6/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/favicon-16x16.png -------------------------------------------------------------------------------- /docs/docs1_6/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/favicon-32x32.png -------------------------------------------------------------------------------- /docs/docs1_6/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pyroxenium/Basalt/64cb0d15e8881a505db52a7673a2122dd178ec52/docs/docs1_6/favicon.ico -------------------------------------------------------------------------------- /docs/docs1_6/objects/Animation/cancel.md: -------------------------------------------------------------------------------- 1 | ## cancel 2 | Cancels the animation 3 | 4 | #### Returns: 5 | 1. `animation` Animation in use 6 | 7 | #### Usage: 8 | 9 | ```lua 10 | local mainFrame = basalt.createFrame() 11 | local testButton = mainFrame:addButton() 12 | local aAnimation = mainFrame:addAnimation():add(function() testButton:setBackground(colors.black) end):wait(1):add(function() aAnimation:cancel() end):wait(1):add(function() testButton:setBackground(colors.lightGray) end) 13 | 14 | aAnimation:play() 15 | ``` -------------------------------------------------------------------------------- /docs/docs1_6/objects/Animation/onStart.md: -------------------------------------------------------------------------------- 1 | ## onStart 2 | `onStart(self)`
3 | This is a event which gets fired as soon as the animation is started. 4 | 5 | ```lua 6 | local basalt = require("Basalt") 7 | 8 | local mainFrame = basalt.createFrame() 9 | local testButton = mainFrame:addButton("buttonToAnimate") 10 | local aAnimation = mainFrame:addAnimation():setObject(testButton):changeTextColor({colors.red, colors.yellow, colors.green}, 2) 11 | aAnimation:onStart(function() 12 | basalt.debug("The animation is started") 13 | end) 14 | 15 | aAnimation:play() 16 | ``` 17 | -------------------------------------------------------------------------------- /docs/docs1_6/objects/Animation/setObject.md: -------------------------------------------------------------------------------- 1 | ## setObject 2 | Sets the object which the animation should reposition/resize 3 | 4 | #### Parameters: 5 | 1. `table` object 6 | 7 | #### Returns: 8 | 1. `animation` Animation in use 9 | 10 | #### Usage: 11 | 12 | ```lua 13 | local mainFrame = basalt.createFrame() 14 | local testButton = mainFrame:addButton() 15 | local aAnimation = mainFrame:addAnimation():setObject(testButton) 16 | ``` 17 | 18 | ```lua 19 | local mainFrame = basalt.createFrame() 20 | local testButton = mainFrame:addButton("buttonToAnimate") 21 | ``` 22 | ```xml 23 | 24 | ``` -------------------------------------------------------------------------------- /docs/docs1_6/objects/Animation/wait.md: -------------------------------------------------------------------------------- 1 | ## wait 2 | Sets a wait timer for the next function after the previous function got executed, no wait timer calls the next function immediately 3 | #### Parameters: 4 | 1. `number` The length of delay between the functions _(in seconds)_ 5 | 6 | #### Returns: 7 | 1. `animation` Animation in use 8 | 9 | #### Usage: 10 | ```lua 11 | local mainFrame = basalt.createFrame() 12 | local testButton = mainFrame:addButton() 13 | local aAnimation = mainFrame:addAnimation():add(function() testButton:setPosition(3,3) end):wait(1):add(function() testButton:setPosition(1,1,"r") end):wait(2):add(function() testButton:setPosition(1,1,"r") end) 14 | 15 | aAnimation:play() 16 | ``` -------------------------------------------------------------------------------- /docs/docs1_6/objects/Basalt/autoUpdate.md: -------------------------------------------------------------------------------- 1 | # Basalt 2 | 3 | ## autoUpdate 4 | 5 | This starts the event and draw handler for you. The listeners will run until you stop them. 6 | 7 | ### Parameters 8 | 9 | 1. `boolean` optional - if you use false as the first parameter it would stop the listeners. Using false is a synonym for [`basalt.stopUpdate()`](objects/Basalt/stopUpdate.md). 10 | 11 | ### Usage 12 | 13 | * Enables the basalt listeners, otherwise the screen will not continue to update 14 | 15 | ```lua 16 | local main = basalt.createFrame() 17 | basalt.autoUpdate() 18 | ``` 19 | -------------------------------------------------------------------------------- /docs/docs1_6/objects/Basalt/getActiveFrame.md: -------------------------------------------------------------------------------- 1 | # Basalt 2 | 3 | ## getActiveFrame 4 | 5 | Returns the currently active/visible base frame. 6 | 7 | ### Returns 8 | 9 | 1. `frame` The current frame 10 | 11 | ### Usage 12 | 13 | * Displays the active frame name in the debug console 14 | 15 | ```lua 16 | local main = basalt.createFrame() 17 | basalt.debug(basalt.getActiveFrame():getName()) -- returns the id 18 | ``` 19 | -------------------------------------------------------------------------------- /docs/docs1_6/objects/Basalt/getFrame.md: -------------------------------------------------------------------------------- 1 | # Basalt 2 | 3 | ## getFrame 4 | 5 | Returns a base frame by the given id. 6 | 7 | ### Parameters 8 | 9 | 1. `string` id 10 | 11 | ### Returns 12 | 13 | 1. `frame` The frame with the supplied id. 14 | 15 | ### Usage 16 | 17 | * Creates, fetches and shows the "myFirstFrame" object 18 | 19 | ```lua 20 | local main = basalt.createFrame("firstBaseFrame") 21 | local main2 = basalt.createFrame("secondBaseFrame") 22 | main:addButton() 23 | :setText("Show") 24 | :onClick(function() 25 | local frame2 = basalt.getFrame("secondBaseFrame") 26 | if(frame2 ~= nil)then 27 | frame2:show() 28 | end 29 | end) 30 | basalt.autoUpdate() 31 | ``` 32 | -------------------------------------------------------------------------------- /docs/docs1_6/objects/Basalt/getTheme.md: -------------------------------------------------------------------------------- 1 | # Basalt 2 | 3 | ## basalt.getTheme 4 | 5 | Returns the current base-theme. This base-theme can be set using setTheme.md. 6 | A list of base-theme keys can be found [here](https://github.com/Pyroxenium/Basalt/blob/master/Basalt/theme.lua). 7 | 8 | ### Returns 9 | 10 | 1. `number` The color of the requested base-theme key. 11 | 12 | ### Usage 13 | 14 | * Displays the color of the main background in the debug console 15 | 16 | ```lua 17 | basalt.debug(basalt.getTheme("BasaltBG")) 18 | ``` 19 | -------------------------------------------------------------------------------- /docs/docs1_6/objects/Basalt/getVariable.md: -------------------------------------------------------------------------------- 1 | # Basalt 2 | 3 | ## getVariable 4 | 5 | Returns a variable defined with [setVariable](objects/Basalt/setVariable) 6 | 7 | ### Returns 8 | 9 | 1. `variable` The variable stored 10 | 11 | ### Usage 12 | 13 | * Displays the stored variable in the debug console 14 | 15 | ```lua 16 | basalt.setVariable("abc", function() 17 | basalt.debug("I got clicked") 18 | return 1 19 | end) 20 | 21 | basalt.debug(basalt.getVariable("abc")()) -- Should debug log "I got clicked" and debug log 1 (which was returned from the function) 22 | ``` 23 | 24 | ```xml 25 |