Skip to main content

TextTask

A task for rendering some text from newText

warning

This page is a WIP. It contains all the information in Figura's documentation but we're working on adding more helpful descriptions.

For this entire page assume:

local myText = models:newText("myCoolTextName")

Text Task

setText()

Aliases: text()

Sets the Text for this task render

setText(text)

Parameters:

NameTypeDescriptionDefault
textString--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setText("Hi mom!")

getText()

Returns the Text from this task

getText()

Returns:

TypeDescription
String-

Example:

myText:getText()

setAlignment()

Aliases: alignment()

Sets this Text alignment

Can be either "LEFT", "RIGHT" or "CENTER"

Default "LEFT"

setAlignment(alignment)

Parameters:

NameTypeDescriptionDefault
alignmentString--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setAlignment("CENTER")

getAlignment()

Returns this Text alignment

Default "LEFT"

getAlignment()

Returns:

TypeDescription
String-

Example:

myText:getAlignment()

setBackground()

Aliases: background()

Sets if this text should render its background

Defaults to false

setBackground(background)

Parameters:

NameTypeDescriptionDefault
backgroundBoolean--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setBackground(true)

setBackgroundColor()

Aliases: backgroundColor()

Sets the background color of this text

If the alpha value is not given, it will use the vanilla value (as in the accessibility settings)

setBackgroundColor(rgba)

Parameters:

NameTypeDescriptionDefault
rgbaVector4--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setBackgroundColor(63 / 255, 255 / 255, 192 / 255, 203 / 255)

getBackgroundColor()

Gets this text's background color

getBackgroundColor()

Returns:

TypeDescription
Vector4-

Example:

myText:getBackgroundColor()

setOpacity()

Aliases: opacity()

Sets the opacity of this text

setOpacity(opacity)

Parameters:

NameTypeDescriptionDefault
opacityNumber--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setOpacity(0.5)

getOpacity()

Gets the opacity of this text

getOpacity()

Returns:

TypeDescription
Number-

Example:

myText:getOpacity()

setOutline()

Aliases: outline()

Toggles if the text should render with an outline

The text will always render at full brightness if it is given an outline

Not compatible with "Shadow" and "Emissive" modes

setOutline(outline)

Parameters:

NameTypeDescriptionDefault
outlineBoolean--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setOutline(true)

setOutlineColor()

Aliases: outlineColor()

Sets the outline color this Text should render

Only compatible with "Outline" mode

setOutlineColor(color)

Parameters:

NameTypeDescriptionDefault
colorVector3--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setOutline(true)
myText:setOutlineColor(255 / 255, 192 / 255, 203 / 255)

getOutlineColor()

Gets this tasks text outline color

getOutlineColor()

Returns:

TypeDescription
Vector3-

Example:

myText:getOutlineColor()

setSeeThrough()

Aliases: seeThrough()

Sets if this text can be seen behind walls

Defaults to false

setSeeThrough(seeThrough)

Parameters:

NameTypeDescriptionDefault
seeThroughBoolean--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setSeeThrough(true)

setShadow()

Aliases: shadow()

Toggles if the Text should render with a drop shadow

Not compatible with "Outline" mode

setShadow(shadow)

Parameters:

NameTypeDescriptionDefault
shadowBoolean--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setShadow(true)

setWidth()

Aliases: width()

Sets this text's max width, wrapping the text into multiple lines

A width of 0 or less does not wrap the text

Defaults to 0

setWidth(width)

Parameters:

NameTypeDescriptionDefault
widthInteger--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setWidth(1)

getWidth()

Gets this text's max width

Defaults to 0

getWidth()

Returns:

TypeDescription
Integer-

Example:

myText:getWidth()

setWrap()

Aliases: wrap()

Sets if this text should wrap lines

setWrap(wrap)

Parameters:

NameTypeDescriptionDefault
wrapBoolean--

Returns:

TypeDescription
TextTaskReturns self for chaining

Example:

myText:setWrap(true)

hasBackground()

Check if this text should render its background

Defaults to false

hasBackground()

Returns:

TypeDescription
Boolean-

Example:

myText:hasBackground()

hasOutline()

Checks if this task text has an outline

hasOutline()

Returns:

TypeDescription
Boolean-

Example:

myText:hasOutline()

hasShadow()

Checks if this task text has shadow

hasShadow()

Returns:

TypeDescription
Boolean-

Example:

myText:hasShadow()

hasWrap()

Check if this text should wrap lines

hasWrap()

Returns:

TypeDescription
Boolean-

Example:

myText:hasWrap()

isSeeThrough()

Check if this text can be seen behind walls

Defaults to false

isSeeThrough()

Returns:

TypeDescription
Boolean-

Example:

myText:isSeeThrough()

Render Task

setLight()

Aliases: light()

Sets the light override value of this task

Values are given from 0 to 15, indicating the block light and sky light levels you want to use

Passing nil will reset the lighting override for this task

setLight(light)

Parameters:

NameTypeDescriptionDefault
lightVector2--

Returns:

TypeDescription
RenderTask-

Example:

local blockLight = world.getLightLevel(player:getPos())
local skyLight = world.getSkyLightLevel(player:getPos())
myBlock:setLight(blockLight, skyLight)

getLight()

Returns the light override value of this task

getLight()

Returns:

TypeDescription
Vector2-

Example:

myBlock:getLight()

setMatrix()

Aliases: matrix()

Sets the given matrix as the position matrix for this render task

The normal matrix is automatically calculated as the inverse transpose of this matrix

Calling this DOES NOT CHANGE the values of position, rot, or scale in the render task

If you call setPos() or a similar function, the effects of setMatrix() will be overwritten

setMatrix(matrix)

Parameters:

NameTypeDescriptionDefault
matrixMatrix4--

Returns:

TypeDescription
RenderTask-

Example:

myBlock:setMatrix(matrices.mat4())

getName()

Get this task's name

getName()

Returns:

TypeDescription
String-

Example:

myBlock:getName()

getNormalMatrix()

Recalculates the normal matrix for this render task, based on its current position, rotation, scale, and pivot, then returns this matrix

getNormalMatrix()

Returns:

TypeDescription
Matrix3-

Example:

myBlock:getNormalMatrix()

getNormalMatrixRaw()

Returns the normal matrix for this render task

The Raw version of the function is different in that it doesn't recalculate the matrix before returning it

getNormalMatrixRaw()

Returns:

TypeDescription
Matrix3-

Example:

myBlock:getNormalMatrixRaw()

setOverlay()

Aliases: overlay()

Sets the overlay override value of this task

Values you give are 0 to 15, indicating the white overlay and the damage overlay levels you want to use

Passing nil will reset the overlay override for this task

setOverlay(overlay)

Parameters:

NameTypeDescriptionDefault
overlayVector2--

Returns:

TypeDescription
RenderTask-

Example:

local hurt = player:getNbt.HurtTime > 0
myBlock:setOverlay(hurt and 0 or nil, 1)

getOverlay()

Returns the overlay override value of this task

getOverlay()

Returns:

TypeDescription
Vector2-

Example:

myBlock:getOverlay()

setPos()

Aliases: pos()

Sets the position of the task, relative to its attached part

Uses model coordinates

setPos(pos)

Parameters:

NameTypeDescriptionDefault
posVector3--

Returns:

TypeDescription
RenderTask-

Example:

myBlock:setPos(0, 16, 0)

getPos()

Gets this task position

getPos()

Returns:

TypeDescription
Vector3-

Example:

myBlock:getPos()

getPositionMatrix()

Recalculates the matrix for this render task, based on its current position, rotation, scale, and pivot, then returns this matrix

getPositionMatrix()

Returns:

TypeDescription
Matrix4-

Example:

myBlock:getPositionMatrix()

getPositionMatrixRaw()

Returns the position matrix for this render task

The Raw version of the function is different in that it doesn't recalculate the matrix before getting it

getPositionMatrixRaw()

Returns:

TypeDescription
Matrix4-

Example:

myBlock:getPositionMatrixRaw()

setRot()

Aliases: rot()

Sets the rotation of the task, relative to its attached part

setRot(rot)

Parameters:

NameTypeDescriptionDefault
rotVector3--

Returns:

TypeDescription
RenderTask-

Example:

myBlock:setRot(0, 45, 22.5)

getRot()

Gets this task rotation

getRot()

Returns:

TypeDescription
Vector3-

Example:

myBlock:getRot()

setScale()

Aliases: scale()

Sets the scale of the task, relative to its attached part

setScale(scale)

Parameters:

NameTypeDescriptionDefault
scaleVector3--

Returns:

TypeDescription
RenderTask-

Example:

myBlock:setScale(0.4, 0.4, 0.4) -- myBlock:setScale(0.4) also works

getScale()

Gets this task scale

getScale()

Returns:

TypeDescription
Vector3-

Example:

myBlock:getScale()

setVisible()

Aliases: visible()

Sets whether or not this task should be rendered

setVisible(visible)

Parameters:

NameTypeDescriptionDefault
visibleBoolean--

Returns:

TypeDescription
RenderTask-

Example:

local myPage = action_wheel.newPage()
myPage:newAction():setOnToggle(function(state)
myBlock:setVisible(state)
end)

isVisible()

Checks if this task is visible

isVisible()

Returns:

TypeDescription
Boolean-

Example:

if myBlock:isVisible() then
-- do something
end

remove()

Removes this render task from the parent model part

remove()

Returns:

TypeDescription
RenderTask-

Example:

myBlock:remove()