Package-level declarations

Types

Link copied to clipboard
typealias AnyBlock = Block
Link copied to clipboard
sealed interface AnyKeyboardKey
Link copied to clipboard
interface Asset
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface BlockHost
Link copied to clipboard
class BlockStack(myId: String = IdGenerator.makeId(), val contents: MutableList<Block> = mutableListOf()) : HasId, Flattenable, BlockHost
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class Comment(val block: Block?, val width: Double, val height: Double, val minimized: Boolean, val text: String, val position: Pair<Double, Double>) : Representable<JsonObject> , HasId
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface Expression : Block
Link copied to clipboard
interface Field
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface Flattenable
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
class HandlesSetNormalBinaryOp(opcode: String?, expressionA: Expression?, expressionB: Expression?, expressionAInputName: String = "NUM1", expressionBInputName: String = "NUM2", shadowExpressionA: ShadowExpression? = null, shadowExpressionB: ShadowExpression? = null) : NormalBinaryOp, HandlesSet
Link copied to clipboard
class HandlesSetNormalUnaryOp(opcode: String?, expression: Expression?, expressionInputName: String = "OPERAND", shadowExpression: ShadowExpression? = null) : NormalUnaryOp, HandlesSet
Link copied to clipboard
interface HasId
Link copied to clipboard
Link copied to clipboard
interface HatBlockHost
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Can be used to work with blocks that are not in the standard block categories.

Link copied to clipboard

Represents mathematical operations that can be applied to a number.

Link copied to clipboard
Link copied to clipboard
open class NormalBinaryOp(opcode: String?, expressionA: Expression?, expressionB: Expression?, expressionAInputName: String = "NUM1", expressionBInputName: String = "NUM2", shadowExpressionA: ShadowExpression? = null, shadowExpressionB: ShadowExpression? = null) : NormalExpression
Link copied to clipboard
open class NormalBlock : Block
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open class NormalUnaryOp(opcode: String?, expression: Expression?, expressionInputName: String = "OPERAND", shadowExpression: ShadowExpression? = null) : NormalExpression
Link copied to clipboard
class Procedure
Link copied to clipboard
sealed interface ProcedureArgument : Expression
Link copied to clipboard
class ProcedurePrototypeBuilder(name: String, val warp: Boolean)
Link copied to clipboard
data class ProjectJson(val string: String, val buildRoot: BuildRoot)
Link copied to clipboard
interface Property : Field
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
typealias Representation = JsonElement
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
typealias Sprite = SpriteBuilder
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Represents the different types of value inputs in Scratch.

Link copied to clipboard
data class ValueShadowExpression(val value: String, val opcode: String? = null) : NormalShadowExpression
Link copied to clipboard
Link copied to clipboard
sealed interface VariableLike : HandlesSet
Link copied to clipboard
Link copied to clipboard
sealed class VLB : NormalExpression, Field

Properties

Link copied to clipboard

A reporter for the user's last answer.

Link copied to clipboard

Creates a CloneTarget corresponding to the sprite.

Link copied to clipboard

A reporter for the current costume's name.

Link copied to clipboard

A reporter for the current costume's name.

Link copied to clipboard

A reporter for the current costume's number.

Link copied to clipboard

A reporter for the number of days since 2000.

Link copied to clipboard
val defaultFileSystem: FileSystem
Link copied to clipboard

Creates a DistanceObject corresponding to the sprite.

Link copied to clipboard

Converts a Double to a text expression.

Converts an Int to a text expression.

Converts a String to a text expression.

Link copied to clipboard
val httpClient: OkHttpClient
Link copied to clipboard

A reporter for the length of a list.

Link copied to clipboard

A reporter for the microphone loudness.

Link copied to clipboard

A boolean reporter for whether the mouse is down.

Link copied to clipboard

A reporter for the mouse's x-position.

Link copied to clipboard

A reporter for the mouse's y-position.

Link copied to clipboard

Creates a Property corresponding to the variable.

Link copied to clipboard

Creates a PropertyTarget corresponding to the sprite.

Link copied to clipboard

A reporter for the sprite's rotation. Can also be used to set or change the rotation.

Link copied to clipboard

Creates a SensingKey corresponding to the KeyboardKey instance.

Link copied to clipboard

A reporter for the sprite's size. Can also be used to set or change the size.

Link copied to clipboard

Creates a SpecialLocation corresponding to the sprite.

Link copied to clipboard

Creates a 'length of' operator block.

Link copied to clipboard

A reporter for the timer value.

Link copied to clipboard

Creates a TouchObject corresponding to the sprite.

Link copied to clipboard

A reporter for the user's username.

Link copied to clipboard

A reporter for the volume. Can also be used to set or change the volume.

Link copied to clipboard

A reporter for the sprite's x-position. Can also be used to set or change the x-position.

Link copied to clipboard

A reporter for the sprite's y-position. Can also be used to set or change the y-position.

Functions

Link copied to clipboard

Creates an 'and' logical operator block.

Link copied to clipboard

Adds an 'add to list' block.

Link copied to clipboard

Adds an 'ask and wait' block.

Link copied to clipboard

Creates a block stack and adds its contents to the current script.

Adds an existing block stack's contents to the current script.

Link copied to clipboard

Adds a 'broadcast' block.

Link copied to clipboard

Adds a 'broadcast and wait' block.

Link copied to clipboard
fun build(block: BuildRoot.() -> Unit): BuildRoot

The entry point for building a Scratch project.

Link copied to clipboard

Adds a 'go forward/backward layers' block.

Link copied to clipboard

Adds a 'change effect by' block.

Link copied to clipboard

Changes the opcode of a shadow expression.

Link copied to clipboard

Adds a 'change size by' block.

Link copied to clipboard

Adds a 'change sound effect by' block.

Link copied to clipboard
fun BlockHost.changeVar(variable: Variable, expression: Expression?): NormalBlock

Adds a 'change variable by' block.

Link copied to clipboard

Adds a 'change volume by' block.

Link copied to clipboard

Adds a 'change x by' block.

Link copied to clipboard

Adds a 'change y by' block.

Link copied to clipboard

Adds a 'clear graphic effects' block.

Link copied to clipboard

Adds a 'clear sound effects' block.

Link copied to clipboard

Creates a 'color is touching color' boolean reporter.

Link copied to clipboard

Creates a 'list contains' boolean reporter.

Link copied to clipboard

Creates a 'contains' operator block.

Link copied to clipboard

Creates a block stack without adding it to the current script.

Link copied to clipboard

Adds a 'create clone of' block.

Adds a 'create clone of' block for a specific sprite.

Link copied to clipboard

Creates a 'current' time reporter.

Link copied to clipboard

Adds a 'delete all of list' block.

Link copied to clipboard

Adds a 'delete of list' block.

Link copied to clipboard

Adds a 'delete this clone' block.

Link copied to clipboard

Creates a 'distance to' reporter.

Creates a 'distance to' reporter for a specific sprite.

Link copied to clipboard
operator fun Expression?.div(other: Expression?): NormalBinaryOp

Creates a division operator block.

Link copied to clipboard
infix fun HalfIfElse.elseBlock(block: BlockHost.() -> Unit): IfElseBlock

Defines the 'else' part of an 'if-else' block.

Link copied to clipboard

Creates an 'equals' comparison block.

Link copied to clipboard

Adds a 'forever' loop.

Link copied to clipboard

Creates an 'item of list' reporter.

Link copied to clipboard
fun getChecksum(path: Path): String
Link copied to clipboard
Link copied to clipboard

Adds a 'glide to location' block.

Link copied to clipboard

Adds a 'glide to x, y' block.

Link copied to clipboard

Adds a 'go to layer' block.

Link copied to clipboard

Adds a 'go to location' block.

Link copied to clipboard

Adds a 'go to x y' block.

Link copied to clipboard

Creates a 'greater than' comparison block.

Link copied to clipboard

Adds a 'hide' block.

Link copied to clipboard

Adds a 'hide list' block.

Link copied to clipboard

Adds a 'hide variable' block.

Link copied to clipboard

Adds an 'if' block.

Link copied to clipboard
fun BlockHost.ifElseBlock(expression: Expression?, block: BlockHost.() -> Unit): HalfIfElse

Starts an 'if-else' block.

Link copied to clipboard

Adds an 'if on edge, bounce' block.

Link copied to clipboard

Creates an 'item # of in list' reporter.

Link copied to clipboard

Adds an 'insert at of list' block.

Link copied to clipboard

Creates an isolated stack of blocks that is not attached to any hat block.

Link copied to clipboard

Creates a 'join' operator block.

Link copied to clipboard

Creates a 'key pressed' boolean reporter.

Creates a 'key pressed' boolean reporter for a specific key.

Link copied to clipboard

Creates a 'less than' comparison block.

Link copied to clipboard

Creates a 'letter of' operator block.

Link copied to clipboard
operator fun Expression?.minus(other: Expression?): NormalBinaryOp

Creates a subtraction operator block.

Link copied to clipboard
fun BuildRoot.modifyProject(path: Path)

Modifies an existing Scratch project file (.sb3) with the generated project JSON.

fun ProjectJson.modifyProject(path: Path, addResources: Boolean = false)

Modifies an existing Scratch project file (.sb3) with the generated project JSON and optionally adds resources.

Link copied to clipboard

Adds a 'move steps' block.

Link copied to clipboard
operator fun Expression.not(): Expression

Creates a 'not' operator block.

Link copied to clipboard
fun notBlock(expression: Expression?): NormalUnaryOp

Creates a 'not' logical operator block.

Link copied to clipboard
infix fun Expression?.or(other: Expression?): NormalBinaryOp

Creates an 'or' logical operator block.

Link copied to clipboard

Prints the generated project JSON to the console.

Link copied to clipboard

Adds a 'start sound' block.

Link copied to clipboard

Adds a 'play sound until done' block.

Link copied to clipboard
operator fun Expression?.plus(other: Expression?): NormalBinaryOp

Creates an addition operator block.

Link copied to clipboard

Adds a 'point in direction' block.

Link copied to clipboard

Adds a 'point towards' block.

Link copied to clipboard

Defines a custom block procedure.

Link copied to clipboard

Creates a 'property of' reporter using a string for the property name.

Creates a 'property of' reporter.

Creates a 'property of' reporter using a variable or list.

Creates a 'property of' reporter for a specific sprite using a string for the property name.

Creates a 'property of' reporter for a specific sprite.

Creates a 'property of' reporter for a specific sprite using a variable or list.

Link copied to clipboard

Creates a 'pick random' operator block.

Link copied to clipboard
operator fun Expression?.rem(other: Expression?): NormalBinaryOp

Creates a 'mod' operator block.

Link copied to clipboard

Adds a 'repeat' loop.

Link copied to clipboard

Adds a 'repeat until' loop.

Link copied to clipboard

Adds a 'replace item of list' block.

Link copied to clipboard

Adds a 'reset timer' block.

Link copied to clipboard
fun round(expression: Expression?): NormalUnaryOp

Creates a 'round' operator block.

Link copied to clipboard

Adds a 'say' block.

Link copied to clipboard

Adds a 'say for secs' block.

Link copied to clipboard

Adds a 'set drag mode' block.

Link copied to clipboard

Adds a 'set effect to' block.

Link copied to clipboard

Adds a 'set rotation style' block.

Link copied to clipboard

Adds a 'set size to' block.

Link copied to clipboard

Adds a 'set sound effect to' block.

Link copied to clipboard
fun BlockHost.setVar(variable: Variable, expression: Expression?): NormalBlock

Adds a 'set variable to' block.

Link copied to clipboard

Adds a 'set volume to' block.

Link copied to clipboard

Adds a 'set x to' block.

Link copied to clipboard

Adds a 'set y to' block.

Link copied to clipboard

Adds a 'show' block.

Link copied to clipboard

Adds a 'show list' block.

Link copied to clipboard

Adds a 'show variable' block.

Link copied to clipboard

Adds a 'stop all sounds' block.

Link copied to clipboard
fun BlockHost.stopBlock(stopType: StopType = StopType.THIS_SCRIPT): NormalBlock

Adds a 'stop' block.

Link copied to clipboard

Adds a 'switch backdrop to' block.

Link copied to clipboard

Adds a 'switch costume to' block.

Link copied to clipboard

Adds a 'next backdrop' block.

Link copied to clipboard

Adds a 'next costume' block.

Link copied to clipboard

Adds a 'think' block.

Link copied to clipboard

Adds a 'think for secs' block.

Link copied to clipboard
operator fun Expression?.times(other: Expression?): NormalBinaryOp

Creates a multiplication operator block.

Link copied to clipboard

Converts the built project into a ProjectJson object containing the JSON string.

Link copied to clipboard

Creates a 'touching' boolean reporter.

Creates a 'touching' boolean reporter for a specific sprite.

Link copied to clipboard

Creates a 'touching color' boolean reporter.

Link copied to clipboard

Adds a 'turn left' block.

Link copied to clipboard

Adds a 'turn right' block.

Link copied to clipboard

Adds a 'wait' block.

Link copied to clipboard

Adds a 'wait until' block.

Link copied to clipboard

Creates a 'when backdrop switches to' hat block.

Link copied to clipboard

Creates a 'when this sprite clicked' hat block.

Link copied to clipboard

Creates a 'when loudness >' or 'when timer >' hat block.

Link copied to clipboard

Creates a 'when green flag clicked' hat block.

Link copied to clipboard

Creates a 'when I receive' hat block.

Link copied to clipboard

Creates a 'when I start as a clone' hat block.

Link copied to clipboard

Creates a 'when key pressed' hat block.

Link copied to clipboard

Adds a 'while' loop. This is a custom block concept, not a default Scratch block.

Link copied to clipboard

Adds default mutation entries to a block.

Link copied to clipboard
fun <B : NormalBlock> B.withExpression(name: String, expression: Expression? = null, shadowExpression: ShadowExpression? = null): B

Adds an expression input to a block.

Link copied to clipboard
fun <B : NormalBlock> B.withField(name: String, field: Field): B

Adds a field to a block.

Link copied to clipboard

Defines a block to be used to change an expression to a certain value.

Link copied to clipboard
fun <B : HandlesSet> B.withHandlesSet(block: (Expression?) -> Block): B

Defines a block to be used to set an expression to a certain value.

Link copied to clipboard
fun <B : NormalBlock> B.withMutation(name: String, value: Representation? = null): B

Adds mutation data to a block.

Link copied to clipboard
fun BuildRoot.writeTo(path: Path)

Writes the project to a .sb3 file, including all assets.

fun ProjectJson.writeTo(path: Path)

Writes the project to a .sb3 file, including the project JSON and all assets.

Link copied to clipboard

Writes the project JSON to a file at the specified path.