import LazyScratchBlocks from './tw-lazy-scratch-blocks';
const categorySeparator = '';
const blockSeparator = ''; // At default scale, about 28px
const translate = (id, english) => {
if (LazyScratchBlocks.isLoaded()) {
const ScratchBlocks = LazyScratchBlocks.get();
return ScratchBlocks.ScratchMsgs.translate(id, english);
}
return english;
};
/* eslint-disable no-unused-vars */
const motion = function (isInitialSetup, isStage, targetId) {
const stageSelected = translate(
'MOTION_STAGE_SELECTED',
'Stage selected: no motion blocks'
);
return `
${isStage ? `
` : `
10
10
15
15
${blockSeparator}
0
0
10
10
1
1
0
0
${blockSeparator}
90
0
0
${blockSeparator}
10
0
10
0
${blockSeparator}
${blockSeparator}
${blockSeparator}
`}
${categorySeparator}
`;
};
const xmlEscape = function (unsafe) {
return unsafe.replace(/[<>&'"]/g, c => {
switch (c) {
case '<': return '<';
case '>': return '>';
case '&': return '&';
case '\'': return ''';
case '"': return '"';
}
});
};
const looks = function (isInitialSetup, isStage, targetId, costumeName, backdropName) {
const hello = translate('LOOKS_HELLO', 'Hello!');
const hmm = translate('LOOKS_HMM', 'Hmm...');
return `
${isStage ? '' : `
${hello}
2
${hello}
${hmm}
2
${hmm}
${blockSeparator}
Helvetica
14
BUBBLE_STROKE
STROKE_WIDTH
0
${blockSeparator}
`}
${isStage ? `
${backdropName}
${backdropName}
${backdropName}
` : `
${costumeName}
${costumeName}
${blockSeparator}
${backdropName}
${blockSeparator}
10
100
${blockSeparator}
100
100
`}
${blockSeparator}
25
0
${blockSeparator}
${isStage ? '' : `
${blockSeparator}
${blockSeparator}
1
1
${blockSeparator}
`}
${isStage ? `
` : `
`}
${categorySeparator}
`;
};
const sound = function (isInitialSetup, isStage, targetId, soundName) {
return `
${soundName}
5
${soundName}
${blockSeparator}
${soundName}
5
${soundName}
${soundName}
${blockSeparator}
1
${soundName}
${blockSeparator}
${soundName}
${soundName}
${blockSeparator}
10
100
${blockSeparator}
-10
100
${categorySeparator}
`;
};
const events = function (isInitialSetup, isStage) {
return `
${blockSeparator}
${blockSeparator}
${isStage ? `
` : `
`}
${blockSeparator}
10
${blockSeparator}
${categorySeparator}
`;
};
const control = function (isInitialSetup, isStage) {
return `
1
1
${blockSeparator}
10
10
${blockSeparator}
ello
ello
${blockSeparator}
foo
bar
${blockSeparator}
${blockSeparator}
Hello!
${blockSeparator}
${blockSeparator}
${isStage ? `
` : `
`}
${LazyScratchBlocks.isNameUrMom() ? '' : ''}
${categorySeparator}
`;
};
const sensing = function (isInitialSetup, isStage, targetId) {
const name = translate('SENSING_ASK_TEXT', 'What\'s your name?');
// const openDocumentation = translate('OPEN_DOCUMENTATION', 'Open Documentation');
const helpManual = translate('HELP_MANUAL', 'Help Manual');
return `
${isStage ? '' : `
${blockSeparator}
10
-10
-10
10
10
-10
-10
10
${blockSeparator}
`}
${isInitialSetup ? '' : `
${name}
`}
world
10
${blockSeparator}
${blockSeparator}
${blockSeparator}
Hello!
${isStage ? '' : `
${blockSeparator}
${blockSeparator}
`}
${blockSeparator}
${blockSeparator}
${blockSeparator}
0
${blockSeparator}
${blockSeparator}
${blockSeparator}
${categorySeparator}
`;
};
const operators = function (isInitialSetup) {
const apple = translate('OPERATORS_JOIN_APPLE', 'apple');
const banana = translate('OPERATORS_JOIN_BANANA', 'banana');
const letter = translate('OPERATORS_LETTEROF_APPLE', 'a');
return `
3
2
root
16
${blockSeparator}
1
10
50
1
100
1
3
0.5
${blockSeparator}
50
50
50
50
50
50
${blockSeparator}
${blockSeparator}
${blockSeparator}
${isInitialSetup ? '' : `
${blockSeparator}
${apple}
${banana}
${apple}
${banana}
pear
${blockSeparator}
world
Hello world!
world
Hello world!
${blockSeparator}
1
${apple}
2
3
Hello!
${apple}
${blockSeparator}
${apple}
${letter}
abcdef
abc
${blockSeparator}
foo bar
foo
bar
bar bar doo
bar
foo
foo bar
foo
g
${blockSeparator}
ello
`}
${blockSeparator}
${blockSeparator}
${blockSeparator}
foo
true
${categorySeparator}
`;
};
const variables = function () {
return `
`;
};
const lists = function () {
return `
`;
};
const myBlocks = function () {
return `
`;
};
const liveTests = function () {
return `
${blockSeparator}
0
0
${blockSeparator}
${blockSeparator}
${blockSeparator}
`;
};
/* eslint-enable no-unused-vars */
const xmlOpen = '';
const xmlClose = '';
/**
* @param {!boolean} isInitialSetup - Whether the toolbox is for initial setup. If the mode is "initial setup",
* blocks with localized default parameters (e.g. ask and wait) should not be loaded. (LLK/scratch-gui#5445)
* @param {?boolean} isStage - Whether the toolbox is for a stage-type target. This is always set to true
* when isInitialSetup is true.
* @param {?string} targetId - The current editing target
* @param {?Array.