Eng:Explore (Scratch Modification)

Explore is a Scratch Modification created by powerpoint56 based on Scratch 1.4. Its main purpose is to improve Scratch by allowing the user to "explore" in such ways as using the Internet, file manipulation, etc.

New Blocks
Explore has 210+ new blocks as well as 6 new categories: Connect, Objects, Program, More, Strings and Files.

These blocks are as of version ~2.5. More have been added since.

Motion

 * point towards x: (0) y: (0) - points towards the given coordinate
 * set rotation style to [normal v] - sets the rotation style for the sprite
 * set rotation center to x: (10) y: (10) - sets the rotation center for the sprite
 * toggle draggable - toggles whether a sprite can be dragged in the player
 * snap to grid (10) - rounds sprite location to the nearest x.
 * - reports if sprite is draggable in player
 * (rotation style) - reports the rotation style for the sprite

Control

 * while <> - c-block
 * launch - c block that starts a script but continues right on to the next with no delay
 * stop all and press green flag - end cap that restarts the project (equivalent of pressing the green flag).

Looks

 * (name of costume (1)) - reports the name of a costume
 * delete costume (10) - deletes specified costume
 * add costume from [paint new v] - adds a new costume from specified location
 *  - reports if the computer's camera (webcam) is available
 * add [url v] costume from [] - adds a new costume from specified location
 * (last said/thought) - reports what the sprite last said or thought
 * (graphic effect [color v]) - reports the specified graphic effect amount
 * apply graphic effects to costume
 * set [stretch v] to - sets the size, stretch or vertical stretch of a sprite
 * change [stretch v] by - changes the size, stretch, or vertical stretch of a sprite by a certain amount
 * (stretch) - reports the stretch of a sprite
 * (vertical stretch) - reports the vertical stretch of a sprite
 *  - reports if a sprite is showing
 * go to layer (1) - sends the sprite to the specified layer
 * (height) - reports the height of the sprite
 * (width) - reports the width of the sprite
 * flip horizontal - flips the sprite horizontally
 * flip vertical - flips the sprite vertically

Sensing

 * (get [time v]) - reports the specified item (items involve time)
 * <[left v] mouse down?> - reports if the specified part of the mouse is being pressed
 * (key pressed) - reports the last key pressed
 * (distance to x: (10) y: (10)) - reports the distance to the specified location
 *  - reports true if the computer being used to run Explore is a Windows computer
 *  - reports true if the computer being used to run Explore is a Mac

Sound

 * import sound - imports a sound from a user's local files
 * record sound - records a sound
 * (length of sound [pop v]) - reports the length of a sound
 * (number of sounds) - reports the number of sounds

Operators

 * - constant; reports true
 * - constant; reports false
 * (if <> then [] else []) - if the boolean is true it reports the first item, otherwise it reports the second item
 * (letters (1) to (5) of [hello world]) - reports the letters from the first and last specified letter numbers.
 * (ascii for [A]) - reports the ascii code of a letter
 * (ascii (65) as letter) - reports the letter for the ascii code specified
 * <[raincoat] contains [coat]> - reports true if the first string contains the second string
 * ([reverse v] [hello]) - reports a string altered as specified
 * (round to  places) - reports a number rounded to the nearest specified decimal place
 * (constant [pi v]) - reports a constant from the menu
 * ([] as string) - reports the specified value as a string
 * <[] is a string> - reports true if value is a string
 * <[] is a number> - reports true if value is a number

Pen

 *  - reports true if the pen is down
 * (pen color in rgb/words) - reports the rgb version of a color (r:g:b:)
 * stamp text [hi] at x: (0) y: (0) font: [Arial] size: (10) color: [ ] - stamps text at the given location and using the specified information

Variables

 * move [ v] to x (10) y (10) - moves a the variable watcher to a certain location
 * set [ v] to [ ] - changes a variable's watcher color
 * set [ v] style to [small v] - sets the type of watcher
 * add variable [] as [private v] - creates a variable in the specified area

Lists

 * add list [] - creates a list
 * (items (1) to (3) of [list v]) - reports the items of a list from the first to second valued items
 * set list blocks color to [ ] - sets the color of every list and list block to the given color
 * split [a,b,c] by [,] into [list v] - splits the string at each specified spot and adds it to the specified list
 * (join [list v] with [,]) - joins the items in the list together using the specified character
 * ([mean v] of [list v]) - reports the data specified about a list

Cloud Lists
Cloud lists, like cloud variables in Scratch 2.0, are lists but on the cloud.


 * make cloud list [] - makes a cloud list
 * (cloud list []) - reports the cloud list ' s data
 * add [thing] to c-list [] - adds specified data to a cloud list
 * delete (1) of c-list [] - deletes specified item of a cloud list
 * delete all of c-list [] - deletes all of the items in a cloud list
 * insert [thing] at (1) of c-list [] - inserts given item at a certain part of a cloud list
 * replace (1) of c-list [] with [thing] - replaces the specified item with the given data on a cloud list
 * (item (1) of c-list []) - reports the specified item of a cloud list
 * (item (1) to (3) of c-list []) - reports the given items of a cloud list
 * (length of c-list []) - reports how many items are in a cloud list
 * transfer c-list [] to list [list v] - transfers the data on a cloud data to a local list

Connect (New Category)

 * (read file []) - reports text from a file on a user's computer
 * (read line (10) of file []) - reports specified line of a file; obsolete in version 2.2 or later
 * (number of lines on file []) - reports how many lines are in a file; obsolete in version 2.2 or later
 *  - reports true if the specified file exists
 * (size of file [] (KB)) - reports the size of specified file in kilobytes
 * (directory for []) - reports the location on a user's computer that a file is in
 * (file name for []) - reports the file name for a file
 * write [] to text file [] - writes specified data to a text file
 * export [costume 1 v] to file [] - exports specified costume to an image file
 * make file/folder at [] - makes file/folder at specified location
 * clear file [] - keeps file but makes content blank
 * delete file [] - deletes a file
 * (read url []) - reports the page source code at a url
 * (read line (10) of url []) - reports the specified line of a url's source code; obsolete in version 2.2 or later
 * (number of lines on url []) - reports the number of lines in a url's source code; obsolete in version 2.2 or later
 * open - opens the specified url in the user's default browser
 * search [google v] for [] - searches the specified search engine for the given query
 * ([temperature v] in [02139]) - reports certain data (weather, location, etc.) for a zip code.
 * ([temperature v] in days [1 v] at [02139]) - gives a weather forecast: certain weather in a number of days at a zip code.
 * set cloud var [] to [] - sets a cloud variable to a certain value
 * (get cloud var []) - reports a cloud variable
 * - reports true if there is internet connection

Objects (New Category)

 * clone me - clones the sprite
 * clone me and do: - c block that clones sprite and has clone perform the task inside loop
 *  -activates if sprite a clone
 * delete me - cap block that deletes the sprite running it (unless it is not a clone)
 * set my name to [] - sets the sprite ' s name to specified text
 * (my name) - reports the sprite ' s name
 * make [ v] do - c block that makes specified sprite performs task inside loop

Program (New Category)

 * enter presentation mode
 * exit presentation mode
 *  - reports true if using presentation mode
 *  - reports true if using Explore offline
 * set stepping speed to (0) - sets the stepping speed to specified number
 * import project from [] - imports a project from a certain location
 * save project - saves the project that is currently running
 * quit Explore - end cap that exits out of Explore
 * set cursor to [normal v] - sets the cursor to the specified type
 * set clipboard to [] - sets the clipboard to specified data
 * (clipboard) - reports what's on the clipboard
 * run code - runs the specified Squeak code
 * (report code []) - reports the specified Squeak code
 * (Explore remaining memory) - reports the remaining memory of Explore
 * host mesh
 * join mesh [] - joins mesh on specified IP
 * leave mesh - exits mesh
 * (IP address) - reports the user ' s IP address

More (New Category)

 * (dialog ask for file, title [] extension(s) [txt docx]) - reports location gotten from a file-chooser dialog using the above info
 * (pick file path, title []) - reports location of a chosen file
 * (pick folder path, title []) - reports location of a chosen folder
 * (file path [user v]) - reports the location of common folders on a user's computer
 * dialog [Info] title [This is info] - pops up dialog with specified title and specified data
 *  - reports true if yes or no dialog answered yes
 * (ask [Do you agree?] with buttons [Yes, I agree] [No, I do not.] []) - reports the answer when it asks the specified question with specified options
 * (ask [What's your name?] initial answer [John Doe]) - reports the answer a user gives to the specified question
 * (string editor text [] title []) - opens a multiline text editor and reports its contents after user edits it
 *  - reports true if the specified question is confirmed
 * inform []
 * (font # (10)) - reports the specified font number's name
 *  - reports true if the specified font exists
 * (newline)
 * (line (1) of (multiline)) - reports a certain line of a multiline string
 * (lines in (multiline) - reports the number of lines in the specified multiline string
 * ((multiline)) - reports the specified multiline string
 * (color at pixel x: (0) y: (0)) - reports the color of the specified pixel
 * (color r: (10) g: (10) b: (10)) - reports the specified color
 * (color h: (10) s: (10) v: (10)) - reports the specified color
 * (color [ ]) - reports the specified color in rgb format

Other Features
Explore has various new features, the most important being a new menu called "Explore". Other non-block improvements have been made in more recent versions.

Explore menu
The Explore menu has the following options. Most of the options are updated using info from the cloud.


 * Check for updates: Checks for new versions of Explore.
 * Current Development: Discusses current development of Explore.
 * Explore community: Lists members who have signed up for the community (see Join community).
 * Find member: Finds a member in the community.
 * Join community: The Explore community is simply a group of people who use Explore. By clicking this button a user adds their username to the list.

The rest of the options open certain URLs.

New Plugins Feature
Explore 3.4 and later has a new feature called plugins. Plugins are change sets that developers can make to be added to Explore. People who use Explore can use the new Plugins menu to find plugins and install them to get special blocks/features.

Malware Protection
Explore, like most programming languages, has many useful features that can also be used to create viruses. There will be a malware protection feature in Explore 4.

Windows Installer
During development of Explore 3.3, jueschnei began working with powerpoint56, and created a new Windows Installer that is still in active development.

The installed version of Explore by jueschnei comes with many helpful new features. It automatically keeps Explore up to date, and has its own Explore2EXE converter. Recent development has been focused on the Explore Store, which will let users share and browse projects, plugins and more.

Future Development
Powerpoint56 and jueschnei are working on the Explore store and Explore 4. Jueschnei also is working on the Windows installer, the Explore store, the updater, the website, and other improvements to the Windows installed version.