Scratch Patches by nXIII
These little guys can help you customize and improve your own version of Scratch. The best part: none involve new blocks, so the projects you create will be no different that normal Scratch projects.
_________________________________
Notes
- these patches are not for use in mods; they are exclusively for customizing the Scratch application itself
- please post suggestions and/or bugs and glitches
- thanks to ScratchReallyROCKS, Mac keyboard shortcuts are now available
_________________________________
The Patcher
Installing the patcher is the hardest (but not very hard) thing you must do in order to install patches. Simply follow these instructions:
Step 1: Open Scratch
Step 2: Press and hold the "shift" key while clicking the loop of the "R" in the Scratch logo
Step 3: Select "turn fill-screen off" from the popup menu which shows up
Not showing up? Make sure you're clicking inside the loop of the "R"; the "logo" referred to is the one in the top-left corner.
Step 4: Click anywhere in the "white space" which shows up at the bottom and right sides of the window
Step 5: Select "open..." from the popup menu
Step 6: Select "workspace" from the subsequent popup menu
Step 7: Copy the following text and paste it into the textbox-like window with (Windows) Alt+V or (Mac) Command+V, or by clicking the "-" button above the scrollbar (appears when the mouse is over the "workspace" window) and selecting "paste (v)"'From MIT Squeak 0.9.4 (June 1, 2003) [No updates present.] on 18 June 2010 at 5:06:17 pm'!
!ScratchFileChooserDialog methodsFor: 'initialization'!
createPatchFileChooserFor: t1
scratchFrame _ nil.
readingScratchFile _ true.
list _ ScratchFilePicker new extensions: #(#patch ).
self removeAllMorphs.
bottomSpacer delete.
bottomSpacer _ nil.
mainColumn addMorphBack: list.
self title: 'Add Patch'.
list scratchInfoClient: nil.
mainColumn addMorphBack: (Morph new extent: 5 @ 9;
color: Color transparent);
addMorphBack: newTitleBin.
fileInfoColumn addMorphBack: buttonRow.
self addMorphBack: shortcutColumn;
addMorphBack: mainColumn;
addMorphBack: fileInfoColumn! !
!ScratchFrameMorph methodsFor: 'menu/button actions'!
addPatch
| t1 t2 t3 t4 |
t1 _ ScratchFileChooserDialog new createPatchFileChooserFor: self;
type: #patch.
t2 _ t1 getUserResponse.
t2 = #cancelled ifTrue: [^ self].
t3 _ (FileDirectory forFileName: t2)
oldFileNamed: t2.
t4 _ t3 contentsOfEntireFile.
(ReadWriteStream
on: t4
from: 1
to: t4 size) fileIn! !
!ScratchFrameMorph methodsFor: 'menu/button actions'!
fileMenu: t1
| t2 |
t2 _ CustomMenu new.
t2 add: 'New' action: #newScratchProject.
t2 add: 'Open' action: #openScratchProject.
t2 add: 'Save' action: #saveScratchProjectNoDialog.
t2 add: 'Save As' action: #saveScratchProject.
t2 addLine.
t2 add: 'Import Project' action: #importScratchProject.
t2 add: 'Export Sprite' action: #exportSprite.
t2 addLine.
t2 add: 'Add Patch' action: #addPatch.
t2 addLine.
t2 add: 'Project Notes' action: #editNotes.
Sensor shiftPressed
ifTrue:
[t2 addLine.
t2 add: 'Write Project Summary' action: #writeSummaryFile.
t2 add: 'Write Multiple Project Summaries' action: #writeMultipleSummaries].
t2 addLine.
t2 add: 'Quit' action: #quitScratch.
t2 localize.
#(2 4 5 6 7 8 ) do: [:t3 | t2 labels at: t3 put: ((t2 labels at: t3)
copyFrom: 1 to: (t2 labels at: t3) size - 1)
, ScratchTranslator ellipsesSuffix].
t2 invokeOn: self at: t1 bottomLeft + (0 @ 10)! !Step 8: Select all the text by click-and-drag or by pressing (Windows) Alt+A or (Mac) Command+A
Step 9: File in the selection by right-clicking (Mac option+click) the selection and clicking "more..." then "file it in"
Step 10: Shift-click the loop of the "R" in the Scratch logo again and select "save image for end-user" then select "yes" when prompted. Scratch should close, and when restarted you will see a new option in the file menu: "Add Patch..."
_________________________________
Installing a Patch
Once you have installed the patcher, simply select "Add Patch" from the file menu, navigate to the file (ends with .patch) and select "OK". The patch will be installed and can be used immediately.
_________________________________
Available Patches
note: make sure you have installed the patcher before downloading and installing any of these patches
Feedback Enhancements
This patch modifies Scratch's "feedback" methods for dropping and deleting blocks and comments. Features:
- Colored reporter block drop feedback - for example a variable block has an orange-tinted feedback
- Shadowed command block feedback - instead of a line to indicate where blocks will go, you get a nice little shadow of the blocks
- Shaded comment/deletion feedback - the feedback for comments and reporters now look like those for reporters
Download
Deletion Fixes
This patch makes deletion of embedded command blocks possible, as well as fixing Scratch's deletion of reporters - if they have embedded blocks, the embedded blocks will be kept in the editor. Features:
- Updated "cut" tool for blocks
- All blocks now have a delete menu item in their context menu
Download
More coming soon!
_________________________________
Last edited by nXIII (2012-08-26 23:19:00)
Offline
*laughs* Not Scratch modifications, Scratch patches!
Offline
Are these like Dlls?
Offline
Why no links?
And can I use these for my mod?
Last edited by waveOSBeta (2010-06-18 15:05:10)
Offline
Suggestion: Block Quality
(like in Panther)
Last edited by waveOSBeta (2010-06-18 22:46:12)
Offline
How are the patches encoded? Would you be able to make them in a normal text editor and change the extension to .patch?
Offline
ScratchReallyROCKS wrote:
How are the patches encoded? Would you be able to make them in a normal text editor and change the extension to .patch?
yes...they're CS files with a .patch extension. Sorry about not having upload links, mediafire died on me...
Offline
Can we still upload our projects?
Offline
When I clicked "file it in" it gave me a message saying "Syntax Error" with the following content:
< < < This string contains a character (ascii value 202) that is not normally used in code > > > createPatchFileChooserFor: t1
Nothing more expected -> scratchFrame _ nil.
readingScratchFile _ true.
list _ ScratchFilePicker new extensions: #(#patch ).
self removeAllMorphs.
bottomSpacer delete.
bottomSpacer _ nil.
mainColumn addMorphBack: list.
self title: 'Add Patch'.
list scratchInfoClient: nil.
mainColumn addMorphBack: (Morph new extent: 5 @ 9;
color: Color transparent);
addMorphBack: newTitleBin.
fileInfoColumn addMorphBack: buttonRow.
self addMorphBack: shortcutColumn;
addMorphBack: mainColumn;
addMorphBack: fileInfoColumn
I think that it was the exclamation points. Do I just take out the exclamation points?
EDIT:
Last edited by henley (2010-06-20 09:35:18)
Offline
henley wrote:
When I clicked "file it in" it gave me a message saying "Syntax Error" with the following content:
< < < This string contains a character (ascii value 202) that is not normally used in code > > > createPatchFileChooserFor: t1
Nothing more expected -> scratchFrame _ nil.
readingScratchFile _ true.
list _ ScratchFilePicker new extensions: #(#patch ).
self removeAllMorphs.
bottomSpacer delete.
bottomSpacer _ nil.
mainColumn addMorphBack: list.
self title: 'Add Patch'.
list scratchInfoClient: nil.
mainColumn addMorphBack: (Morph new extent: 5 @ 9;
color: Color transparent);
addMorphBack: newTitleBin.
fileInfoColumn addMorphBack: buttonRow.
self addMorphBack: shortcutColumn;
addMorphBack: mainColumn;
addMorphBack: fileInfoColumn
I think that it was the exclamation points. Do I just take out the exclamation points?
EDIT:
Weird, that didn't happen to me...
Edit:
continuing with my old question:
ScratchReallyROCKS wrote:
How are the patches encoded? Would you be able to make them in a normal text editor and change the extension to .patch?
Would we be able to make our own patches?
Last edited by ScratchReallyROCKS (2010-06-20 10:10:33)
Offline
ScratchReallyROCKS wrote:
henley wrote:
When I clicked "file it in" it gave me a message saying "Syntax Error" with the following content:
< < < This string contains a character (ascii value 202) that is not normally used in code > > > createPatchFileChooserFor: t1
Nothing more expected -> scratchFrame _ nil.
readingScratchFile _ true.
list _ ScratchFilePicker new extensions: #(#patch ).
self removeAllMorphs.
bottomSpacer delete.
bottomSpacer _ nil.
mainColumn addMorphBack: list.
self title: 'Add Patch'.
list scratchInfoClient: nil.
mainColumn addMorphBack: (Morph new extent: 5 @ 9;
color: Color transparent);
addMorphBack: newTitleBin.
fileInfoColumn addMorphBack: buttonRow.
self addMorphBack: shortcutColumn;
addMorphBack: mainColumn;
addMorphBack: fileInfoColumn
I think that it was the exclamation points. Do I just take out the exclamation points?
EDIT:
http://i46.tinypic.com/29cudk6.pngWeird, that didn't happen to me...
Edit:
continuing with my old question:ScratchReallyROCKS wrote:
How are the patches encoded? Would you be able to make them in a normal text editor and change the extension to .patch?
Would we be able to make our own patches?
.CS files (What the .patch files are when they start out) are just C# (C-sharp) code files, which can be made in any text-editor, so if you know how to code the patch, then you should be able to.
Offline
henley wrote:
When I clicked "file it in" it gave me a message saying "Syntax Error" with the following content:
< < < This string contains a character (ascii value 202) that is not normally used in code > > > createPatchFileChooserFor: t1
Nothing more expected -> scratchFrame _ nil.
readingScratchFile _ true.
list _ ScratchFilePicker new extensions: #(#patch ).
self removeAllMorphs.
bottomSpacer delete.
bottomSpacer _ nil.
mainColumn addMorphBack: list.
self title: 'Add Patch'.
list scratchInfoClient: nil.
mainColumn addMorphBack: (Morph new extent: 5 @ 9;
color: Color transparent);
addMorphBack: newTitleBin.
fileInfoColumn addMorphBack: buttonRow.
self addMorphBack: shortcutColumn;
addMorphBack: mainColumn;
addMorphBack: fileInfoColumn
I think that it was the exclamation points. Do I just take out the exclamation points?
EDIT:
http://i46.tinypic.com/29cudk6.png
You should leave the exclamation points in.
And it doesn't look like you copied the entire length of the code.
Last edited by nXIII (2010-06-20 11:24:57)
Offline
markyparky56 wrote:
.CS files (What the .patch files are when they start out) are just C# (C-sharp) code files, which can be made in any text-editor, so if you know how to code the patch, then you should be able to.
Thanks. Well, I guess I should go learn C#. Do you know where a good place to do that is?
Offline
ScratchReallyROCKS wrote:
markyparky56 wrote:
.CS files (What the .patch files are when they start out) are just C# (C-sharp) code files, which can be made in any text-editor, so if you know how to code the patch, then you should be able to.
Thanks. Well, I guess I should go learn C#. Do you know where a good place to do that is?
I got a pro in C# by reading books. Read books!
Offline
meew0 wrote:
ScratchReallyROCKS wrote:
markyparky56 wrote:
.CS files (What the .patch files are when they start out) are just C# (C-sharp) code files, which can be made in any text-editor, so if you know how to code the patch, then you should be able to.
Thanks. Well, I guess I should go learn C#. Do you know where a good place to do that is?
I got a pro in C# by reading books. Read books!
![]()
Umm...
Squeak saves .cs files as Change Sets, not C# code.
Offline
ThePCKid wrote:
meew0 wrote:
ScratchReallyROCKS wrote:
Thanks. Well, I guess I should go learn C#. Do you know where a good place to do that is?I got a pro in C# by reading books. Read books!
![]()
Umm...
Squeak saves .cs files as Change Sets, not C# code.
Hmmm... interesting... thats confusing, and annoying.
Offline
markyparky56 wrote:
ThePCKid wrote:
meew0 wrote:
I got a pro in C# by reading books. Read books!
![]()
Umm...
Squeak saves .cs files as Change Sets, not C# code.Hmmm... interesting... thats confusing, and annoying.
Yes, they're written in Squeak. But C# saves .cs files, too. But definitely leave all the exclamation points and everything in. Does anyone know a good file sharing site? Mediafire died on me....
Last edited by nXIII (2010-06-20 13:10:37)
Offline
nXIII wrote:
Yes, they're written in Squeak.
Cool! Does this mean that we could make a code in squeak and change the extension to .patch?
Offline