@turbowarp/types
    Preparing search index...

    Interface Runtime

    interface Runtime {
        _blockInfo: ExtensionInfo[];
        _cloneCounter: number;
        _editingTarget: RenderedTarget | null;
        _hats: Record<string, HatInfo>;
        _primitives: Record<string, Function>;
        _steppingInterval: number | null;
        audioEngine: AudioEngine;
        compatibilityMode: boolean;
        currentMSecs: number;
        currentStepTime: number | null;
        executableTargets: RenderedTarget[];
        flyoutBlocks: Blocks;
        ioDevices: IODevices;
        monitorBlocks: Blocks;
        origin: string | null;
        profiler: Profiler | null;
        redrawRequested: boolean;
        renderer: RenderWebGL;
        sequencer: Sequencer;
        storage: GUIScratchStorage;
        targets: RenderedTarget[];
        threads: Thread[];
        turboMode: boolean;
        v2BitmapAdapter?: BitmapAdapter;
        _getMonitorThreadCount(threads: Thread[]): number;
        _pushThread(
            topBlockId: string,
            target: RenderedTarget,
            options?: { stackClick?: boolean; updateMonitor?: boolean },
        ): Thread;
        _restartThread(thread: Thread): Thread;
        _step(): void;
        _stopThread(thread: Thread): void;
        addCloudVariable(): void;
        addTarget(target: RenderedTarget): void;
        allScriptsByOpcodeDo(
            opcode: string,
            callback: (script: RuntimeScriptCache, target: RenderedTarget) => void,
            target?: RenderedTarget,
        ): void;
        allScriptsDo(
            callback: (blockId: string, target: RenderedTarget) => void,
            target?: RenderedTarget,
        ): void;
        attachAudioEngine(audioEngine: AudioEngine): void;
        attachRenderer(renderer: RenderWebGL): void;
        attachStorage(storage: ScratchStorage): void;
        attachV2BitmapAdapter(bitmapAdapter: BitmapAdapter): void;
        canAddCloudVariable(): boolean;
        changeCloneCounter(changeAmount: number): void;
        clonesAvailable(): boolean;
        connectPeripheral(extensionID: string, peripheralId: number): void;
        createNewGlobalVariable(variableName: string): ScalarVariable;
        createNewGlobalVariable(
            variableName: string,
            variableId: string,
        ): ScalarVariable;
        createNewGlobalVariable(
            variableName: string,
            variableId: string,
            type: "",
        ): ScalarVariable;
        createNewGlobalVariable(
            variableName: string,
            variableId: string,
            type: "list",
        ): ListVariable;
        createNewGlobalVariable(
            variableName: string,
            variableId: string,
            type: "broadcast_msg",
        ): BroadcastVariable;
        disableProfiling(): void;
        disconnectPeripheral(extensionID: string): void;
        dispose(): void;
        disposeTarget(target: RenderedTarget): void;
        emit<K extends keyof RuntimeEventMap>(
            event: K,
            ...args: EventEmitterArgs<RuntimeEventMap, K>,
        ): void;
        emitProjectChanged(): void;
        emitProjectLoaded(): void;
        enableProfiling(callback: (profilerFrame: ProfilerFrame) => void): void;
        fireTargetWasCreated(
            newTarget: RenderedTarget,
            oldTarget?: RenderedTarget,
        ): void;
        fireTargetWasRemoved(target: RenderedTarget): void;
        getAllVarNamesOfType(variableType: VM.VariableType): string[];
        getBlocksXML(target?: RenderedTarget): { id: string; xml: string }[];
        getEditingTarget(): RenderedTarget | null;
        getIsEdgeActivatedHat(opcode: string): boolean;
        getIsHat(opcode: string): boolean;
        getLabelForOpcode(
            opcode: string,
        ): { category: "extension"; label: string } | undefined;
        getNumberOfCloudVariables(): number;
        getOpcodeFunction(opcode: string): Function;
        getPeripheralIsConnected(extensionID: string): boolean;
        getSpriteTargetByName(spriteName: string): RenderedTarget | undefined;
        getTargetByDrawableId(drawableID: number): RenderedTarget | undefined;
        getTargetById(targetId: string): RenderedTarget | undefined;
        getTargetForStage(): RenderedTarget | undefined;
        greenFlag(): void;
        hasCloudData(): boolean;
        isActiveThread(thread: Thread): boolean;
        isWaitingThread(thread: Thread): boolean;
        listeners<K extends keyof RuntimeEventMap>(
            event: K,
        ): EventEmitterCallback<RuntimeEventMap, K>[];
        moveExecutable(target: RenderedTarget, delta: number): void;
        off<K extends keyof RuntimeEventMap>(
            event: K,
            callback: EventEmitterCallback<RuntimeEventMap, K>,
        ): void;
        on<K extends keyof RuntimeEventMap>(
            event: K,
            callback: EventEmitterCallback<RuntimeEventMap, K>,
        ): void;
        once<K extends keyof RuntimeEventMap>(
            event: K,
            callback: EventEmitterCallback<RuntimeEventMap, K>,
        ): void;
        quit(): void;
        removeCloudVariable(): void;
        removeExecutable(target: RenderedTarget): void;
        removeListener<K extends keyof RuntimeEventMap>(
            event: K,
            callback: EventEmitterCallback<RuntimeEventMap, K>,
        ): void;
        requestBlocksUpdate(): void;
        requestRedraw(): void;
        requestTargetsUpdate(target: RenderedTarget): void;
        requestToolboxExtensionsUpdate(): void;
        scanForPeripheral(extensionID: string): void;
        setEditingTarget(target: RenderedTarget): void;
        setExecutablePosition(target: RenderedTarget, newIndex: number): void;
        start(): void;
        startHats(
            opcode: string,
            matchFields?: Record<string, unknown>,
            target?: RenderedTarget,
        ): Thread[] | undefined;
        stopAll(): void;
        stopForTarget(target: RenderedTarget): void;
        toggleScript(
            topBlockId: string,
            options?: { stackClick?: boolean; target?: string },
        ): void;
        updateCurrentMSecs(): void;
        visualReport(blockId: string, value: any): void;
    }

    Hierarchy (View Summary)

    Index

    Properties

    _blockInfo: ExtensionInfo[]
    _cloneCounter: number
    _editingTarget: RenderedTarget | null
    _hats: Record<string, HatInfo>
    _primitives: Record<string, Function>
    _steppingInterval: number | null

    Interval ID returned by setInterval(). null if accessed before the project has started.

    audioEngine: AudioEngine
    compatibilityMode: boolean

    If true, the runtime is running at 60 FPS. If false, the runtime is running at 30 FPS.

    currentMSecs: number
    currentStepTime: number | null

    The time of a step, measured in milliseconds. null if accessed before the project has started.

    executableTargets: RenderedTarget[]
    flyoutBlocks: Blocks
    ioDevices: IODevices
    monitorBlocks: Blocks
    origin: string | null
    profiler: Profiler | null
    redrawRequested: boolean
    renderer: RenderWebGL
    sequencer: Sequencer
    targets: RenderedTarget[]
    threads: Thread[]
    turboMode: boolean
    v2BitmapAdapter?: BitmapAdapter

    Methods

    • Parameters

      • topBlockId: string
      • target: RenderedTarget
      • Optionaloptions: { stackClick?: boolean; updateMonitor?: boolean }

      Returns Thread

    • Increment the value of the runtime's cloud variable counter. Check the value before you call this method; it will let the counter go above the limit. This method does not actually create a new cloud variable.

      Returns void

    • Returns true if the runtime's cloud variable counter is under the limit.

      Returns boolean

    • Parameters

      • changeAmount: number

      Returns void

    • Parameters

      • extensionID: string
      • peripheralId: number

      Returns void

    • Parameters

      • extensionID: string

      Returns void

    • Parameters

      • opcode: string

      Returns boolean

    • Parameters

      • opcode: string

      Returns boolean

    • Parameters

      • opcode: string

      Returns { category: "extension"; label: string } | undefined

    • Returns the value of the runtime's cloud variable counter.

      Returns number

    • Parameters

      • opcode: string

      Returns Function

    • Parameters

      • extensionID: string

      Returns boolean

    • Find a sprite's original target (not a clone or stage) using the sprite's name. Returns undefined if the target doesn't exist.

      Parameters

      • spriteName: string

      Returns RenderedTarget | undefined

    • Look up a target by it's drawable ID. Returns undefined if the target doesn't exist.

      Parameters

      • drawableID: number

      Returns RenderedTarget | undefined

    • Returns the target that is the stage. Returns undefined if called before the project has loaded or if the stage has somehow been removed.

      Returns RenderedTarget | undefined

    • Start "when green flag pressed" scripts.

      Returns void

    • Returns true if the runtime's cloud variable counter is non-zero.

      Returns boolean

    • A thread is considered active if it is in the thread list and is not STATUS_DONE.

      Parameters

      Returns boolean

    • A thread is considered waiting if:

      • It is in STATUS_PROMISE_WAIT, or
      • It is in STATUS_YIELD_TICK, or
      • It is not considered active

      Parameters

      Returns boolean

    • Decrement the value of the runtime's cloud variable counter. Check the value before you call this method; it will let the counter go under 0. This method does not actually remove a cloud variable.

      Returns void

    • Parameters

      • extensionID: string

      Returns void

    • Start the runtime's event loop. This doesn't start any scripts.

      Returns void

    • Parameters

      • topBlockId: string
      • Optionaloptions: { stackClick?: boolean; target?: string }

      Returns void

    • Parameters

      • blockId: string
      • value: any

      Returns void