kopia lustrzana https://github.com/backface/turtlestitch
				
				
				
			removed "When switched to this scene hat block"
							rodzic
							
								
									52473cfb4e
								
							
						
					
					
						commit
						bd58ec1f40
					
				| 
						 | 
				
			
			@ -11,7 +11,7 @@
 | 
			
		|||
    * user defined custom block palettes
 | 
			
		||||
    * PWA, thanks, Joan and John, for pioneering this at Robolot and in Mircoblocks!
 | 
			
		||||
    * new "blocksZoom=n" url parameter, thanks, Bernat!
 | 
			
		||||
    * message, key and scene hat blocks can be expanded to show an optional upvar referencing their event data
 | 
			
		||||
    * message and key hat blocks can be expanded to show an optional upvar referencing their event data
 | 
			
		||||
    * added "enter" key to key-pressed dropdown
 | 
			
		||||
    * added "green flag" symbol to message drop-down
 | 
			
		||||
* **Notable Changes:**
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +43,7 @@
 | 
			
		|||
 | 
			
		||||
### 2021-10-20
 | 
			
		||||
* blocks: enable sending green-flag events when switching scenes
 | 
			
		||||
* blocks, objects, gui, threads: removed "When switched to this scene hat block"
 | 
			
		||||
 | 
			
		||||
### 2021-10-19
 | 
			
		||||
* threads: enable sending green-flag events to specific sprites
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,10 +17,10 @@
 | 
			
		|||
        <script src="src/symbols.js?version=2021-03-03"></script>
 | 
			
		||||
        <script src="src/widgets.js?version=2021-07-21"></script>
 | 
			
		||||
        <script src="src/blocks.js?version=2021-10-20"></script>
 | 
			
		||||
        <script src="src/threads.js?version=2021-10-19"></script>
 | 
			
		||||
        <script src="src/objects.js?version=2021-10-14"></script>
 | 
			
		||||
        <script src="src/threads.js?version=2021-10-20"></script>
 | 
			
		||||
        <script src="src/objects.js?version=2021-10-20"></script>
 | 
			
		||||
        <script src="src/scenes.js?version=2021-10-12"></script>
 | 
			
		||||
        <script src="src/gui.js?version=2021-10-14"></script>
 | 
			
		||||
        <script src="src/gui.js?version=2021-10-20"></script>
 | 
			
		||||
        <script src="src/paint.js?version=2021-07-05"></script>
 | 
			
		||||
        <script src="src/lists.js?version=2021-07-19"></script>
 | 
			
		||||
        <script src="src/byob.js?version=2021-10-14"></script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3177,8 +3177,6 @@ BlockMorph.prototype.showMessageUsers = function () {
 | 
			
		|||
        message = '__shout__go__';
 | 
			
		||||
    } else if (this.selector === 'receiveOnClone') {
 | 
			
		||||
        message = '__clone__init__';
 | 
			
		||||
    } else if (this.selector === 'receiveOnScene') {
 | 
			
		||||
        message = '__scene__init__';
 | 
			
		||||
    } else if (inputs[0] instanceof InputSlotMorph) {
 | 
			
		||||
        message = inputs[0].evaluate();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,7 +85,7 @@ Animation, BoxMorph, BlockDialogMorph, RingMorph, Project, ZERO, BLACK*/
 | 
			
		|||
 | 
			
		||||
// Global stuff ////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
modules.gui = '2021-October-14';
 | 
			
		||||
modules.gui = '2021-October-20';
 | 
			
		||||
 | 
			
		||||
// Declarations
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -5830,7 +5830,9 @@ IDE_Morph.prototype.switchToScene = function (scene, refreshAlbum, msg) {
 | 
			
		|||
    }
 | 
			
		||||
    this.toggleAppMode(appMode);
 | 
			
		||||
    this.world().keyboardFocus = this.stage;
 | 
			
		||||
    this.stage.fireChangeOfSceneEvent(msg);
 | 
			
		||||
    if (msg) {
 | 
			
		||||
        this.stage.fireChangeOfSceneEvent(msg);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
IDE_Morph.prototype.setURL = function (str) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ BlockVisibilityDialogMorph*/
 | 
			
		|||
 | 
			
		||||
/*jshint esversion: 6*/
 | 
			
		||||
 | 
			
		||||
modules.objects = '2021-October-14';
 | 
			
		||||
modules.objects = '2021-October-20';
 | 
			
		||||
 | 
			
		||||
var SpriteMorph;
 | 
			
		||||
var StageMorph;
 | 
			
		||||
| 
						 | 
				
			
			@ -907,11 +907,6 @@ SpriteMorph.prototype.initBlocks = function () {
 | 
			
		|||
        },
 | 
			
		||||
 | 
			
		||||
        // Scenes
 | 
			
		||||
        receiveOnScene: {
 | 
			
		||||
            type: 'hat',
 | 
			
		||||
            category: 'control',
 | 
			
		||||
            spec: 'when switched to this scene %message'
 | 
			
		||||
        },
 | 
			
		||||
        doSwitchToScene: {
 | 
			
		||||
            type: 'command',
 | 
			
		||||
            category: 'control',
 | 
			
		||||
| 
						 | 
				
			
			@ -2557,7 +2552,6 @@ SpriteMorph.prototype.blockTemplates = function (
 | 
			
		|||
        blocks.push(block('newClone'));
 | 
			
		||||
        blocks.push(block('removeClone'));
 | 
			
		||||
        blocks.push('-');
 | 
			
		||||
        blocks.push(block('receiveOnScene'));
 | 
			
		||||
        blocks.push(block('doSwitchToScene'));
 | 
			
		||||
        blocks.push('-');
 | 
			
		||||
        blocks.push(block('doPauseAll'));
 | 
			
		||||
| 
						 | 
				
			
			@ -6095,8 +6089,7 @@ SpriteMorph.prototype.allHatBlocksFor = function (message) {
 | 
			
		|||
                return event === message
 | 
			
		||||
                    || (event instanceof Array
 | 
			
		||||
                        && message !== '__shout__go__'
 | 
			
		||||
                        && message !== '__clone__init__'
 | 
			
		||||
                        && message !== '__scene__init__');
 | 
			
		||||
                        && message !== '__clone__init__');
 | 
			
		||||
            }
 | 
			
		||||
            if (sel === 'receiveGo') {
 | 
			
		||||
                return message === '__shout__go__';
 | 
			
		||||
| 
						 | 
				
			
			@ -6104,9 +6097,6 @@ SpriteMorph.prototype.allHatBlocksFor = function (message) {
 | 
			
		|||
            if (sel === 'receiveOnClone') {
 | 
			
		||||
                return message === '__clone__init__';
 | 
			
		||||
            }
 | 
			
		||||
            if (sel === 'receiveOnScene') {
 | 
			
		||||
                return message === '__scene__init__';
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			@ -8472,24 +8462,32 @@ StageMorph.prototype.fireChangeOfSceneEvent = function (message) {
 | 
			
		|||
 | 
			
		||||
    this.children.concat(this).forEach(morph => {
 | 
			
		||||
        if (isSnapObject(morph)) {
 | 
			
		||||
            morph.allHatBlocksFor('__scene__init__').forEach(block => {
 | 
			
		||||
                var varName =  block.inputs()[0].evaluate()[0],
 | 
			
		||||
                    varFrame;
 | 
			
		||||
                if (varName) {
 | 
			
		||||
                    varFrame = new VariableFrame();
 | 
			
		||||
                    varFrame.addVar(varName, isNil(message) ? '' : message);
 | 
			
		||||
            morph.allHatBlocksFor(message).forEach(block => {
 | 
			
		||||
                var varName, varFrame;
 | 
			
		||||
                if (block.selector === 'receiveMessage') {
 | 
			
		||||
                    varName = block.inputs()[1].evaluate()[0];
 | 
			
		||||
                    if (varName) {
 | 
			
		||||
                        varFrame = new VariableFrame();
 | 
			
		||||
                        varFrame.addVar(varName, message);
 | 
			
		||||
                    }
 | 
			
		||||
                    procs.push(this.threads.startProcess(
 | 
			
		||||
                        block,
 | 
			
		||||
                        morph,
 | 
			
		||||
                        this.isThreadSafe,
 | 
			
		||||
                        null, // exportResult (bool)
 | 
			
		||||
                        null, // callback
 | 
			
		||||
                        null, // isClicked
 | 
			
		||||
                        null, // rightAway
 | 
			
		||||
                        null, // atomic
 | 
			
		||||
                        varFrame
 | 
			
		||||
                    ));
 | 
			
		||||
                } else {
 | 
			
		||||
                    procs.push(this.threads.startProcess(
 | 
			
		||||
                        block,
 | 
			
		||||
                        morph,
 | 
			
		||||
                        this.isThreadSafe
 | 
			
		||||
                    ));
 | 
			
		||||
                }
 | 
			
		||||
                procs.push(this.threads.startProcess(
 | 
			
		||||
                    block,
 | 
			
		||||
                    morph,
 | 
			
		||||
                    this.isThreadSafe,
 | 
			
		||||
                    null, // exportResult (bool)
 | 
			
		||||
                    null, // callback
 | 
			
		||||
                    null, // isClicked
 | 
			
		||||
                    null, // rightAway
 | 
			
		||||
                    null, // atomic
 | 
			
		||||
                    varFrame
 | 
			
		||||
                ));
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			@ -8799,7 +8797,6 @@ StageMorph.prototype.blockTemplates = function (
 | 
			
		|||
        blocks.push(block('createClone'));
 | 
			
		||||
        blocks.push(block('newClone'));
 | 
			
		||||
        blocks.push('-');
 | 
			
		||||
        blocks.push(block('receiveOnScene'));
 | 
			
		||||
        blocks.push(block('doSwitchToScene'));
 | 
			
		||||
        blocks.push('-');
 | 
			
		||||
        blocks.push(block('doPauseAll'));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ SnapExtensions, AlignmentMorph, TextMorph, Cloud*/
 | 
			
		|||
 | 
			
		||||
/*jshint esversion: 6*/
 | 
			
		||||
 | 
			
		||||
modules.threads = '2021-October-19';
 | 
			
		||||
modules.threads = '2021-October-20';
 | 
			
		||||
 | 
			
		||||
var ThreadManager;
 | 
			
		||||
var Process;
 | 
			
		||||
| 
						 | 
				
			
			@ -4700,11 +4700,11 @@ Process.prototype.goToLayer = function (name) {
 | 
			
		|||
Process.prototype.doSwitchToScene = function (id, transmission) {
 | 
			
		||||
    var rcvr = this.blockReceiver(),
 | 
			
		||||
        idx = 0,
 | 
			
		||||
        message = transmission.at(1),
 | 
			
		||||
        message = this.inputOption(transmission.at(1)),
 | 
			
		||||
        ide, scenes, num, scene;
 | 
			
		||||
    this.assertAlive(rcvr);
 | 
			
		||||
    this.assertType(message, ['text', 'number']);
 | 
			
		||||
    if (this.readyToTerminate || this.topBlock.selector === 'receiveOnScene') {
 | 
			
		||||
    if (this.readyToTerminate) {
 | 
			
		||||
        // let the user press "stop" or "esc",
 | 
			
		||||
        // prevent "when this scene starts" hat blocks from directly
 | 
			
		||||
        // switching to another
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue