@turbowarp/types 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turbowarp/types",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "Type definitions for the Scratch VM and editor",
5
5
  "keywords": [
6
6
  "scratch"
@@ -61,7 +61,6 @@
61
61
  }
62
62
  },
63
63
  {
64
- opcode: 'button',
65
64
  blockType: Scratch.BlockType.BUTTON,
66
65
  func: 'MAKE_A_VARIABLE',
67
66
  text: 'button text'
@@ -56,10 +56,17 @@ if (target) {
56
56
  target.on('EVENT_TARGET_VISUAL_CHANGE', (target) => {
57
57
  const id: string = target.id;
58
58
  });
59
+
60
+ runtime.on('STOP_FOR_TARGET', (t: VM.RenderedTarget) => {
61
+
62
+ });
59
63
  } else {
60
64
  const doesNotExist: undefined = target;
61
65
  }
62
66
 
67
+ runtime._editingTarget as VM.Target;
68
+ runtime.getEditingTarget() as VM.Target;
69
+
63
70
  const audioEngine = new AudioEngine();
64
71
  vm.attachAudioEngine(audioEngine);
65
72
  audioEngine.audioContext.suspend();
@@ -11,14 +11,7 @@ declare namespace RenderWebGL {
11
11
 
12
12
  type BitmapData = ImageData | ImageBitmap | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
13
13
 
14
- const enum LayerGroup {
15
- // The renderer can be configured to use any strings as group names, but these are the groups
16
- // that scratch-vm uses, listed in order.
17
- Background = 'background',
18
- Video = 'video',
19
- Pen = 'pen',
20
- Sprite = 'sprite'
21
- }
14
+ type LayerGroup = 'background' | 'video' | 'pen' | 'sprite' | string;
22
15
 
23
16
  const enum UseGpuModes {
24
17
  Automatic = 'Automatic',
@@ -465,7 +458,7 @@ declare class RenderWebGL extends EventEmitter<RenderWebGL.ScratchRenderEventMap
465
458
  _nextDrawableId: number;
466
459
  _allDrawables: RenderWebGL.Drawable[];
467
460
 
468
- createDrawable(group: string): void;
461
+ createDrawable(group: string): number;
469
462
  destroyDrawable(drawableID: number, group: RenderWebGL.LayerGroup): void;
470
463
 
471
464
  _allSkins: RenderWebGL.Skin[];
@@ -474,7 +467,7 @@ declare class RenderWebGL extends EventEmitter<RenderWebGL.ScratchRenderEventMap
474
467
  /**
475
468
  * @see {RenderWebGL.BitmapSkin.setBitmap}
476
469
  */
477
- createBitmapSkin(image: RenderWebGL.BitmapData, bitmapResolution?: RenderWebGL.BitmapResolution, rotationCenter?: [number, number]): RenderWebGL.BitmapSkin;
470
+ createBitmapSkin(image: RenderWebGL.BitmapData, bitmapResolution?: RenderWebGL.BitmapResolution, rotationCenter?: [number, number]): number;
478
471
 
479
472
  /**
480
473
  * @see {RenderWebGL.BitmapSkin.setBitmap}
@@ -484,24 +477,24 @@ declare class RenderWebGL extends EventEmitter<RenderWebGL.ScratchRenderEventMap
484
477
  /**
485
478
  * @see {RenderWebGL.SVGSkin.setSVG}
486
479
  */
487
- createSVGSkin(svgData: string, rotationCenter: [number, number]): RenderWebGL.SVGSkin;
480
+ createSVGSkin(svgData: string, rotationCenter?: [number, number]): number;
488
481
 
489
482
  /**
490
483
  * @see {RenderWebGL.SVGSkin.setSVG}
491
484
  */
492
- updateSVGSkin(skinId: number, svgData: string, rotationCenter: [number, number]): void;
485
+ updateSVGSkin(skinId: number, svgData: string, rotationCenter?: [number, number]): void;
493
486
 
494
487
  /**
495
488
  * @see {RenderWebGL.TextBubbleSkin.setTextBubble}
496
489
  */
497
- createTextSkin(type: RenderWebGL.TextBubbleType, text: string, pointsLeft: boolean): RenderWebGL.TextBubbleSkin;
490
+ createTextSkin(type: RenderWebGL.TextBubbleType, text: string, pointsLeft: boolean): number;
498
491
 
499
492
  /**
500
493
  * @see {RenderWebGL.TextBubbleSkin.setTextBubble}
501
494
  */
502
495
  updateTextSkin(skinId: number, type: RenderWebGL.TextBubbleType, text: string, pointsLeft: boolean): void;
503
496
 
504
- createPenSkin(): RenderWebGL.PenSkin;
497
+ createPenSkin(): number;
505
498
 
506
499
  destroySkin(skinId: number): void;
507
500
 
@@ -14,7 +14,6 @@ declare namespace Scratch {
14
14
 
15
15
  namespace BlockType {
16
16
  const BOOLEAN: 'Boolean';
17
- /** @deprecated very incomplete and not useful yet */
18
17
  const BUTTON: 'button';
19
18
  const COMMAND: 'command';
20
19
  /** @deprecated does not work in compiler */
@@ -101,29 +100,31 @@ declare namespace Scratch {
101
100
  );
102
101
 
103
102
  interface AbstractBlock {
103
+ text: string | string[];
104
+ filter?: Array<'target' | 'sprite'>;
105
+ }
106
+ interface ExecutableBlock extends AbstractBlock {
104
107
  opcode: string;
105
108
  func?: string;
106
- text: string | string[];
107
109
  arguments?: Record<string, Argument>;
108
110
  hideFromPalette?: boolean;
109
- filter?: Array<'target' | 'sprite'>;
110
111
  blockIconURI?: string;
111
112
  }
112
- interface BooleanBlock extends AbstractBlock {
113
+ interface BooleanBlock extends ExecutableBlock {
113
114
  blockType: 'Boolean';
114
115
  }
115
116
  interface ButtonBlock extends AbstractBlock {
116
117
  blockType: 'button';
117
118
  func: 'MAKE_A_LIST' | 'MAKE_A_PROCEDURE' | 'MAKE_A_VARIABLE';
118
119
  }
119
- interface CommandBlock extends AbstractBlock {
120
+ interface CommandBlock extends ExecutableBlock {
120
121
  blockType: 'command';
121
122
  /**
122
123
  * Defaults to false.
123
124
  */
124
125
  isTerminal?: boolean;
125
126
  }
126
- interface ConditionalBlock extends AbstractBlock {
127
+ interface ConditionalBlock extends ExecutableBlock {
127
128
  blockType: 'conditional';
128
129
  /**
129
130
  * Defaults to false.
@@ -134,7 +135,7 @@ declare namespace Scratch {
134
135
  */
135
136
  branchCount?: number;
136
137
  }
137
- interface EventBlock extends AbstractBlock {
138
+ interface EventBlock extends ExecutableBlock {
138
139
  blockType: 'event';
139
140
  /**
140
141
  * This must be explicitly set to false, otherwise the block will not work.
@@ -146,7 +147,7 @@ declare namespace Scratch {
146
147
  */
147
148
  shouldRestartExistingThreads?: boolean;
148
149
  }
149
- interface HatBlock extends AbstractBlock {
150
+ interface HatBlock extends ExecutableBlock {
150
151
  blockType: 'hat';
151
152
  /**
152
153
  * Defaults to true.
@@ -157,14 +158,14 @@ declare namespace Scratch {
157
158
  */
158
159
  shouldRestartExistingThreads?: boolean;
159
160
  }
160
- interface ReporterBlock extends AbstractBlock {
161
+ interface ReporterBlock extends ExecutableBlock {
161
162
  blockType: 'reporter';
162
163
  /**
163
164
  * Defaults to false.
164
165
  */
165
166
  disableMonitor?: boolean;
166
167
  }
167
- interface LoopBlock extends AbstractBlock {
168
+ interface LoopBlock extends ExecutableBlock {
168
169
  blockType: 'loop';
169
170
  /**
170
171
  * Defaults to false.
@@ -1030,7 +1030,12 @@ declare namespace VM {
1030
1030
  interface RuntimeEventMap extends RuntimeAndVirtualMachineEventMap {
1031
1031
  PROJECT_STOP_ALL: [];
1032
1032
 
1033
- STOP_FOR_TARGET: [BaseTarget, Thread | undefined];
1033
+ STOP_FOR_TARGET: [
1034
+ // Target whose scripts are being stopped
1035
+ Target,
1036
+ // Optional thread exception to keep running
1037
+ Thread | undefined
1038
+ ];
1034
1039
 
1035
1040
  PROJECT_LOADED: [];
1036
1041
 
@@ -1139,7 +1144,7 @@ declare namespace VM {
1139
1144
  getTargetById(targetId: string): Target | undefined;
1140
1145
 
1141
1146
  /**
1142
- * Find a sprite's original target (not a clone) using the sprite's name.
1147
+ * Find a sprite's original target (not a clone or stage) using the sprite's name.
1143
1148
  * Returns undefined if the target doesn't exist.
1144
1149
  */
1145
1150
  getSpriteTargetByName(spriteName: string): Target | undefined;
@@ -1308,6 +1313,7 @@ declare namespace VM {
1308
1313
 
1309
1314
  emitProjectChanged(): void;
1310
1315
 
1316
+ _editingTarget: Target | null;
1311
1317
  getEditingTarget(): Target | null;
1312
1318
 
1313
1319
  setEditingTarget(target: Target): void;