const categorySeparator = '';
const blockSeparator = ''; // At default scale, about 28px
const motion = function (isStage, targetId) {
return `
${isStage ? `
` : `
10
15
15
${blockSeparator}
0
0
1
1
0
0
${blockSeparator}
90
${blockSeparator}
10
0
10
0
${blockSeparator}
${blockSeparator}
${blockSeparator}
`}
${categorySeparator}
`;
};
const looks = function (isStage, targetId) {
return `
${isStage ? '' : `
Hello!
2
Hello!
Hmm...
2
Hmm...
${blockSeparator}
`}
${isStage ? `
` : `
${blockSeparator}
10
100
`}
${blockSeparator}
25
0
${blockSeparator}
${isStage ? '' : `
${blockSeparator}
1
`}
${isStage ? `
` : `
`}
${categorySeparator}
`;
};
const sound = function (isStage, targetId) {
return `
${blockSeparator}
10
100
${blockSeparator}
-10
100
${categorySeparator}
`;
};
const events = function (isStage) {
return `
${isStage ? `
` : `
`}
${blockSeparator}
10
${blockSeparator}
${categorySeparator}
`;
};
const control = function (isStage) {
return `
1
${blockSeparator}
10
${blockSeparator}
${blockSeparator}
${blockSeparator}
${isStage ? `
` : `
`}
${categorySeparator}
`;
};
const sensing = function (isStage) {
return `
${isStage ? '' : `
${blockSeparator}
`}
What's your name?
${blockSeparator}
${isStage ? '' : `
${blockSeparator}
''+
${blockSeparator}
`}
${blockSeparator}
${blockSeparator}
${blockSeparator}
${blockSeparator}
${blockSeparator}
${categorySeparator}
`;
};
const operators = function () {
return `
${blockSeparator}
1
10
${blockSeparator}
100
100
100
${blockSeparator}
${blockSeparator}
apple
banana
1
apple
apple
apple
a
${blockSeparator}
${blockSeparator}
${categorySeparator}
`;
};
const variables = function () {
return `
`;
};
const myBlocks = function () {
return `
`;
};
const xmlOpen = '';
const xmlClose = '';
/**
* @param {!boolean} isStage - Whether the toolbox is for a stage-type target.
* @param {?string} targetId - The current editing target
* @param {string?} categoriesXML - null for default toolbox, or an XML string with elements.
* @returns {string} - a ScratchBlocks-style XML document for the contents of the toolbox.
*/
const makeToolboxXML = function (isStage, targetId, categoriesXML) {
const gap = [categorySeparator];
const everything = [
xmlOpen,
motion(isStage, targetId), gap,
looks(isStage, targetId), gap,
sound(isStage, targetId), gap,
events(isStage, targetId), gap,
control(isStage, targetId), gap,
sensing(isStage, targetId), gap,
operators(isStage, targetId), gap,
variables(isStage, targetId), gap,
myBlocks(isStage, targetId)
];
if (categoriesXML) {
everything.push(gap, categoriesXML);
}
everything.push(xmlClose);
return everything.join('\n');
};
export default makeToolboxXML;