From a7146a804cb1c6c33e9e84c4a25c24e00b778537 Mon Sep 17 00:00:00 2001 From: jmoenig Date: Fri, 28 Dec 2018 19:29:15 +0100 Subject: [PATCH] added 'neg' selector to monad operator --- HISTORY.md | 3 +++ snap.html | 4 ++-- src/blocks.js | 3 ++- src/threads.js | 12 +++++++++++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index a1e672d7..a7a57237 100755 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,6 +2,9 @@ ## in development +###2018-12-28 +* Blocks, Threads: added 'neg' selector to monad operator dropdown + ### 2018-12-07 * GUI: fixed #2284 (executing "inherit" should not un-hide palette in presentation mode) diff --git a/snap.html b/snap.html index f24b9b1e..96f6e876 100755 --- a/snap.html +++ b/snap.html @@ -6,8 +6,8 @@ - - + + diff --git a/src/blocks.js b/src/blocks.js index 4bb02bd6..113f870c 100644 --- a/src/blocks.js +++ b/src/blocks.js @@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph, ToggleButtonMorph, DialMorph*/ // Global stuff //////////////////////////////////////////////////////// -modules.blocks = '2018-November-13'; +modules.blocks = '2018-December-28'; var SyntaxElementMorph; var BlockMorph; @@ -1257,6 +1257,7 @@ SyntaxElementMorph.prototype.labelPart = function (spec) { false, { abs : ['abs'], + neg : ['neg'], ceiling : ['ceiling'], floor : ['floor'], sqrt : ['sqrt'], diff --git a/src/threads.js b/src/threads.js index 779d6d73..5f8bd516 100644 --- a/src/threads.js +++ b/src/threads.js @@ -62,7 +62,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy, isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, TableFrameMorph, ColorSlotMorph, isSnapObject, Map*/ -modules.threads = '2018-October-26'; +modules.threads = '2018-December-28'; var ThreadManager; var Process; @@ -2609,6 +2609,9 @@ Process.prototype.reportMonadic = function (fname, n) { case 'abs': result = Math.abs(x); break; + case 'neg': + result = n * -1; + break; case 'ceiling': result = Math.ceil(x); break; @@ -3158,6 +3161,13 @@ Process.prototype.objectTouchingObject = function (thisObj, name) { } if (those.some(function (any) { return any.isVisible && thisObj.isTouching(any); + // check collision with any part, performance issue + // commented out for now + /* + return any.allParts().some(function (part) { + return part.isVisible && thisObj.isTouching(part); + }) + */ })) { return true; }