[READ-ONLY] Mirror of https://github.com/thoda-dev/du_render_script_library. A library to build renderscript in boards without writting it as a full string
Lua 100%

README.md

du_render_script_library #

A library to build renderscript in boards without writting it as a full string

The goal of that lib is to make RenderScript easier to write and read when written un control units and not directly in screens.

Project status #

This project is currently in developpement and not finished yet.

I'm currently looking for feedbacks and ideas to improve it and fix some limitations like how to render a function or loop or condition in the render script.

Discord Server #

You can join me on Discord for help or suggestions or requests by following that link : https://discord.gg/qkdjyqDZQZ

How to use it #

Paste all the content of the library (prefer the minified version) at the start of your script in a control unit in game and then you can use it like this:

local script = setmetatable({},RenderScript)
local MyFirstLayer = script:createLayer()
script:addBox(MyFirstLayer,0,0,100,100)

if not script:isTooLong() then
    script:sendToScreen(screen)
else
    system.print("WARNING: Script too long!! Length is actualy " .. script:len() .. " / " .. script:getMaxSize())
end

Code before #

Code was all formated as a string and was hard to read, write and debug

local script = [[
    local MyFirstLayer = createLayer()
    addBox(MyFirstLayer, 0, 0, 100, 100)
]]

screen.setRenderScript(script)

Addition to the default render script #

This library add some functions to the default render script:

Third Party libraries support #

use(libraryName): Use a third party library in the renderscript

  • libraryName: string The name of the library to use, it will also be used as the variable name to access it in the renderScript

useAtlas(): Use the atlas library in the renderscript

useJSON(): Use the JSON (dkjson) library in the renderscript

useRSLib(): Use the RSLib library in the renderscript

RenderScript utilities functions #

getMaxSize(): Get the maximum size of the render script

isTooLong(): Check if the render script is too long

sendToScreen(screen): Send the render script to a screen

Others #

insertCodeLine(code): Insert a line of code in the render script