Just remember, they use the same format as making a new custom block.
Edit The Sensing Blocks
// Sensing
reportTouchingObject: {
only: SpriteMorph,
type: 'predicate',
category: 'sensing',
spec: 'touching %col ?',
defaults: [['mouse-pointer']]
},
reportTouchingColor: {
only: SpriteMorph,
type: 'predicate',
category: 'sensing',
spec: 'touching %clr ?'
},
reportColorIsTouchingColor: {
only: SpriteMorph,
type: 'predicate',
category: 'sensing',
spec: 'color %clr is touching %clr ?'
},
reportAspect: {
type: 'reporter',
category: 'sensing',
spec: '%asp at %loc',
defaults: [['hue'], ['mouse-pointer']]
},
reportStackSize: {
dev: true,
type: 'reporter',
category: 'sensing',
spec: 'stack size'
},
reportFrameCount: {
dev: true,
type: 'reporter',
category: 'sensing',
spec: 'frames'
},
reportYieldCount: {
dev: true,
type: 'reporter',
category: 'sensing',
spec: 'yields'
},
reportThreadCount: {
dev: true,
type: 'reporter',
category: 'sensing',
spec: 'processes'
},
doAsk: {
type: 'command',
category: 'sensing',
spec: 'ask %s and wait',
defaults: [localize('what\'s your name?')]
},
reportLastAnswer: { // retained for legacy compatibility
dev: true,
type: 'reporter',
category: 'sensing',
spec: 'answer'
},
getLastAnswer: {
type: 'reporter',
category: 'sensing',
spec: 'answer'
},
reportMouseX: {
type: 'reporter',
category: 'sensing',
spec: 'mouse x'
},
reportMouseY: {
type: 'reporter',
category: 'sensing',
spec: 'mouse y'
},
reportMouseDown: {
type: 'predicate',
category: 'sensing',
spec: 'mouse down?'
},
reportKeyPressed: {
type: 'predicate',
category: 'sensing',
spec: 'key %key pressed?',
defaults: [['space']]
},
reportRelationTo: {
only: SpriteMorph,
type: 'reporter',
category: 'sensing',
spec: '%rel to %dst',
defaults: [['distance'], ['mouse-pointer']]
},
doResetTimer: {
type: 'command',
category: 'sensing',
spec: 'reset timer'
},
reportTimer: { // retained for legacy compatibility
dev: true,
type: 'reporter',
category: 'sensing',
spec: 'timer'
},
getTimer: {
type: 'reporter',
category: 'sensing',
spec: 'timer'
},
reportAttributeOf: {
type: 'reporter',
category: 'sensing',
spec: '%att of %spr',
defaults: [['costume #']]
},
reportObject: {
type: 'reporter',
category: 'sensing',
spec: 'object %self',
defaults: [['myself']]
},
reportURL: {
type: 'reporter',
category: 'sensing',
spec: 'url %s',
defaults: ['snap.berkeley.edu']
},
doSetGlobalFlag: {
type: 'command',
category: 'sensing',
spec: 'set %setting to %b',
defaults: [['video capture']]
},
reportGlobalFlag: {
type: 'predicate',
category: 'sensing',
spec: 'is %setting on?',
defaults: [['turbo mode']]
},
reportDate: {
type: 'reporter',
category: 'sensing',
spec: 'current %dates',
defaults: [['date']]
},
reportGet: {
type: 'reporter',
category: 'sensing',
spec: 'my %get',
defaults: [['neighbors']]
},
reportAudio: {
type: 'reporter',
category: 'sensing',
spec: 'microphone %audio',
defaults: [['volume']]
},
Just edit the spec
part, inside of the ' '
.
For example:
reportURL: {
type: 'reporter',
category: 'sensing',
spec: 'YOUR DEFINITION HERE!!!',
defaults: ['snap.berkeley.edu']
For any block that won't be easy for a child to understand, just don't edit it.