UNPKG

sb-edit

Version:

Import, edit, and export Scratch project files

214 lines (213 loc) 6.43 kB
import _Block from "./Block"; export interface Base { type: string; value: unknown; } export interface Number extends Base { type: "number"; value: number | string; } export interface String extends Base { type: "string"; value: string; } export interface Boolean extends Base { type: "boolean"; value: boolean; } export interface Angle extends Base { type: "angle"; value: number; } export interface Color extends Base { type: "color"; value: { r: number; g: number; b: number; }; } export interface Broadcast extends Base { type: "broadcast"; value: string; } export interface Variable extends Base { type: "variable"; value: { id: string; name: string; }; } export interface List extends Base { type: "list"; value: { id: string; name: string; }; } export interface Block extends Base { type: "block"; value: _Block; } export interface Blocks extends Base { type: "blocks"; value: _Block[] | null; } export interface Costume extends Base { type: "costume"; value: string; } export interface Backdrop extends Base { type: "backdrop"; value: string; } export interface GraphicEffect extends Base { type: "graphicEffect"; value: "COLOR" | "FISHEYE" | "WHIRL" | "PIXELATE" | "MOSAIC" | "BRIGHTNESS" | "GHOST"; } export interface Sound extends Base { type: "sound"; value: string; } export interface SoundEffect extends Base { type: "soundEffect"; value: "PITCH" | "PAN"; } export interface GoToTarget extends Base { type: "goToTarget"; value: string; } export interface PointTowardsTarget extends Base { type: "pointTowardsTarget"; value: string; } export interface RotationStyle extends Base { type: "rotationStyle"; value: "left-right" | "don't rotate" | "all around"; } export interface ScrollAlignment extends Base { type: "scrollAlignment"; value: string; } export interface PenColorParam extends Base { type: "penColorParam"; value: "color" | "saturation" | "brightness" | "transparency"; } export interface MusicDrum extends Base { type: "musicDrum"; value: string; } export interface MusicInstrument extends Base { type: "musicInstrument"; value: string; } export interface VideoSensingAttribute extends Base { type: "videoSensingAttribute"; value: "motion" | "direction"; } export interface VideoSensingSubject extends Base { type: "videoSensingSubject"; value: "Stage" | "this sprite"; } export interface VideoSensingVideoState extends Base { type: "videoSensingVideoState"; value: "off" | "on" | "on-flipped"; } export interface WeDo2MotorId extends Base { type: "wedo2MotorId"; value: "motor" | "motor A" | "motor B" | "all motors"; } export interface WeDo2MotorDirection extends Base { type: "wedo2MotorDirection"; value: "this way" | "that way" | "reverse"; } export interface WeDo2TiltDirection extends Base { type: "wedo2TiltDirection"; value: "up" | "down" | "left" | "right"; } export interface WeDo2TiltDirectionAny extends Base { type: "wedo2TiltDirectionAny"; value: "up" | "down" | "left" | "right" | "any"; } export interface WeDo2Op extends Base { type: "wedo2Op"; value: "<" | ">"; } export interface Key extends Base { type: "key"; value: "space" | "up arrow" | "down arrow" | "right arrow" | "left arrow" | "any" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"; } export interface GreaterThanMenu extends Base { type: "greaterThanMenu"; value: "LOUDNESS" | "TIMER"; } export interface StopMenu extends Base { type: "stopMenu"; value: "all" | "this script" | "other scripts in sprite"; } export interface Target extends Base { type: "target"; value: string; } export interface CloneTarget extends Base { type: "cloneTarget"; value: string; } export interface TouchingTarget extends Base { type: "touchingTarget"; value: string; } export interface DistanceToMenu extends Base { type: "distanceToMenu"; value: string; } export interface DragModeMenu extends Base { type: "dragModeMenu"; value: "draggable" | "not draggable"; } export interface PropertyOfMenu extends Base { type: "propertyOfMenu"; value: string; } export interface CurrentMenu extends Base { type: "currentMenu"; value: "YEAR" | "MONTH" | "DATE" | "DAYOFWEEK" | "HOUR" | "MINUTE" | "SECOND"; } export interface MathopMenu extends Base { type: "mathopMenu"; value: "abs" | "floor" | "ceiling" | "sqrt" | "sin" | "cos" | "tan" | "asin" | "acos" | "atan" | "ln" | "log" | "e ^" | "10 ^"; } export interface FrontBackMenu extends Base { type: "frontBackMenu"; value: "front" | "back"; } export interface ForwardBackwardMenu extends Base { type: "forwardBackwardMenu"; value: "forward" | "backward"; } export interface CostumeNumberName extends Base { type: "costumeNumberName"; value: "number" | "name"; } export type CustomBlockArgument = { type: "label"; name: string; } | { type: "numberOrString"; name: string; defaultValue: string | number; } | { type: "boolean"; name: string; defaultValue: boolean; }; export interface CustomBlockArguments extends Base { type: "customBlockArguments"; value: CustomBlockArgument[]; } export interface CustomBlockInputValues extends Base { type: "customBlockInputValues"; value: Array<Exclude<Any, CustomBlockInputValues>>; } export type FieldAny = Costume | Backdrop | GraphicEffect | Sound | SoundEffect | GoToTarget | PointTowardsTarget | RotationStyle | ScrollAlignment | PenColorParam | MusicDrum | MusicInstrument | VideoSensingAttribute | VideoSensingSubject | VideoSensingVideoState | WeDo2MotorId | WeDo2MotorDirection | WeDo2TiltDirection | WeDo2TiltDirectionAny | WeDo2Op | Key | GreaterThanMenu | StopMenu | Target | CloneTarget | TouchingTarget | DistanceToMenu | DragModeMenu | PropertyOfMenu | CurrentMenu | MathopMenu | FrontBackMenu | ForwardBackwardMenu | CostumeNumberName | Variable | List; export type Any = Number | String | Boolean | Angle | Color | Broadcast | Block | Blocks | CustomBlockArguments | CustomBlockInputValues | FieldAny;