new extension primitive for querying all variable names accessible from a specified scope (global, sprite, script)

snap8
Jens Mönig 2022-06-29 17:31:45 +02:00
rodzic 429956dbfa
commit c494464893
3 zmienionych plików z 21 dodań i 2 usunięć

Wyświetl plik

@ -23,6 +23,7 @@
* new "this script" primitive, experimental
* new localization extension primitives in the "ide" category, hyperized
* new extension primitive for importing a costume from a url
* new extension primitive for querying all variable names accessible from a specified scope (global, sprite, script)
* new support for setting the translation via the API
* new "Tad" and "Jahrd" costume series, thanks, Meghan and Brian!
* **Notable Changes:**
@ -59,6 +60,7 @@
* threads: added support for "defaults" selector on primitives
* threads: added support for "editables" selector on primitives
* threads, byob: added support for "menus" selector on primitives
* extensions: new extension primitive for querying all variable names accessible from a specified scope (global, sprite, script)
### 2022-06-28
* blocks, byob, threads: new "menus" selector for block attributes

Wyświetl plik

@ -28,7 +28,7 @@
<script src="src/sketch.js?version=2021-11-03"></script>
<script src="src/video.js?version=2019-06-27"></script>
<script src="src/maps.js?version=2021-06-15"></script>
<script src="src/extensions.js?version=2022-05-28"></script>
<script src="src/extensions.js?version=2022-06-29"></script>
<script src="src/xml.js?version=2021-07-05"></script>
<script src="src/store.js?version=2022-04-26"></script>
<script src="src/locale.js?version=2022-06-28"></script>

Wyświetl plik

@ -34,7 +34,7 @@ SVG_Costume, newCanvas, Point*/
/*jshint esversion: 11, bitwise: false*/
modules.extensions = '2022-May-28';
modules.extensions = '2022-June-29';
// Global stuff
@ -735,6 +735,23 @@ SnapExtensions.primitives.set(
}
);
SnapExtensions.primitives.set(
'var_names(scope)',
function (scope, proc) {
var frame;
if (scope === 'script') {
frame = proc.context.isInCustomBlock() ?
proc.homeContext.variables
: proc.context.outerContext.variables;
} else if (scope === 'sprite') {
frame = this.variables;
} else {
frame = this.globalVariables();
}
return new List(frame.allNames());
}
);
SnapExtensions.primitives.set(
'var_delete(name)',
function (name, proc) {