SpriteTask
A task for rendering a single Sprite from newSprite
For this entire page assume:
local mySprite = models:newSprite("myCoolSpritesName")
setTexture(texture: Texture | string, width: number?, height: number?): SpriteTask
Sets this task's texture The texture dimensions, Width and Height, must be provided if the texture is a location For custom textures, the dimensions are optional
Parameters
Name | Type | Description |
---|---|---|
texture | Texture | Either a custom texture or a resource location. |
width | number? | Width of the texture in pixels. Optional for custom textures. |
height | number? | Height of the texture in pixels. Optional for custom textures. |
Returns
Name | Type | Description |
---|---|---|
spriteTask | SpriteTask | The SpriteTask you called this function on to allow for chaining |
Example:
-- using a resource location
mySprite:setTexture("textures/item/turtle_egg.png", 16, 16)
-- using a custom texture
mySprite:setTexture(textures["myTexture"])
-- using a custom texture with dimensions
mySprite:setTexture(textures["myTexture"], 16, 16)
getTexture(): Texture
Returns this task's current texture
Example:
mySprite:getTexture()
setDimensions(dimensions: Vector2): SpriteTask
Sets the texture dimensions, used in UV calculation. Accepts a Vector2
of dimension values or a number per value.
Example:
-- use the long water_flow texture then make it one block
mySprite:setTexture("textures/block/water_flow.png", 16, 16)
mySprite:setDimensions(32, 1024)
getDimensions(): Vector2
Returns the texture dimensions, used in UV calculation
Example:
mySprite:getDimensions()
setSize(size: Vector2): SpriteTask
Sets the width and height used to render this sprite. Accepts a Vector2
of size values or a number per value.
Example:
-- make my small egg bigger
mySprite:setTexture("textures/item/turtle_egg.png", 8, 8)
mySprite:setSize(16, 16)
getSize(): Vector2
Returns the width and height used to render this sprite
Example:
mySprite:getSize()
setRegion(region: Vector2): SpriteTask
Sets the texture UV region. Accepts a Vector2
of region values or a number per value. Uses its dimensions to calculate the max UV.
Example:
mySprite:setRegion(64, 64)
getRegion(): Vector2
Gets the texture UV region
Example:
mySprite:getRegion()
setUV(uv: Vector2): SpriteTask
Sets this texture UV offset. Accepts a Vector2
of UV values or a number per value. The Region and Dimension are used to calculate the end UV.
Example:
-- Let's make a sprite task of flowing water!
mySprite:setTexture("textures/block/water_flow.png", 16, 16)
mySprite:setDimensions(32, 1024)
mySprite:setColor(world.getBiome():getWaterColor())
local t = 0
function events.tick()
mySprite:setUV(1, t / 32)
t = t + 1
end
getUV(): Vector2
Gets this texture UV offset
Example:
mySprite:getUV()
setUVPixels(uv: Vector2): SpriteTask
Set this texture UV offset, in pixels, based on the texture's dimension. Accepts a Vector2
of UV values or a number per value.
Example:
-- Let's make a sprite task of flowing water!
mySprite:setTexture("textures/block/water_flow.png", 16, 16)
mySprite:setDimensions(32, 1024)
mySprite:setColor(world.getBiome():getWaterColor())
local t = 0
function events.tick()
mySprite:setUVPixels(1, t)
t = t - 1
end
getUVPixels(): Vector2
Get this texture UV offset, in pixels, based on the texture's dimension
Example:
mySprite:getUVPixels()
setColor(rgba: Vector4): SpriteTask
Sets a color multiplier for this sprite. Values are RGBA from 0 to 1. Default values are 1, alpha is optional. Takes a Vector4
of rgba values or a number per value.
Example:
mySprite:setColor(world.getBiome():getWaterColor())
getColor(): Vector4
Gets the current color multiplier of this sprite Values are RGBA from 0 to 1
Example:
mySprite:getColor()
setRenderType(renderType: RenderType): SpriteTask
Sets the current render type of this sprite TRANSLUCENT by default Check the docs enum command for all render types
Example:
mySprite:setRenderType("CUTOUT")
getRenderType(): RenderType
Gets the name of the current render type for this sprite
Example:
mySprite:getRenderType()
getVertices(): Vertex[]
Returns a table with all 4 vertices of this sprite Changing the values through other functions will reset those vertices
Example:
mySprite:getVertices()
remove(): SpriteTask
Removes this sprite task from the parent model part
Example:
mySprite:remove()
getName(): string
Get this task's name
Example:
mySprite:getName()
setVisible(state: boolean): SpriteTask
Sets whether or not this task should be rendered
Example:
local myPage = action_wheel.newPage()
myPage:newAction():setOnToggle(function(state)
mySprite:setVisible(state)
end)
isVisible(): boolean
Checks if this task is visible
Example:
if mySprite:isVisible() then
-- do something
end
setLight(blockLight: number?, skyLight: number?): SpriteTask
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
Example:
local blockLight = world.getLightLevel(player:getPos())
local skyLight = world.getSkyLightLevel(player:getPos())
mySprite:setLight(blockLight, skyLight)
getLight(): Vector2
Returns the light override value of this task
Example:
mySprite:getLight()
setOverlay(whiteOverlay: number?, hurtOverlay: number?): SpriteTask
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
Example:
local hurt = player:getNbt.HurtTime > 0
mySprite:setOverlay(hurt and 0 or nil, 1)
getOverlay(): Vector2
Returns the overlay override value of this task
Example:
mySprite:getOverlay()
setPos(pos: Vector3): SpriteTask
Sets the position of the task, relative with its attached part Uses model coordinates
Example:
mySprite:setPos(0, 16, 0)
getPos(): Vector3
Gets this task position
Example:
mySprite:getPos()
setRot(rot: Vector3): SpriteTask
Sets the rotation of the task, relative with its attached part
Example:
mySprite:setRot(0, 45, 22.5)
getRot(): Vector3
Gets this task rotation
Example:
mySprite:getRot()
setScale(scale: Vector3): SpriteTask
Sets the scale of the task, relative with its attached part
Example:
mySprite:setScale(0.4, 0.4, 0.4) -- mySprite:setScale(0.4) also works
getScale(): SpriteTask
Gets this task scale
Example:
mySprite:getScale()
setMatrix(matrix: Matrix4): SpriteTask
Sets the given matrix as the position matrix for this sprite 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 sprite task If you call setPos() or a similar function, the effects of setMatrix() will be overwritten
Example:
mySprite:setMatrix(matrices.mat4())
getPositionMatrix(): Matrix4
Recalculates the matrix for this sprite task, based on its current position, rotation, scale, and pivot, then returns this matrix
Example:
mySprite:getPositionMatrix()
getPositionMatrixRaw(): Matrix4
Returns the position matrix for this sprite task The Raw version of the function is different in that it doesn't recalculate the matrix before getting it
Example:
mySprite:getPositionMatrixRaw()
getNormalMatrix(): Matrix3
Recalculates the normal matrix for this sprite task, based on its current position, rotation, scale, and pivot, then returns this matrix
Example:
mySprite:getNormalMatrix()
getNormalMatrixRaw(): Matrix3
Returns the normal matrix for this sprite task The Raw version of the function is different in that it doesn't recalculate the matrix before returning it
Example:
mySprite:getNormalMatrixRaw()