From 91f0d59be078f8c120b5429352f284ce87bc8c6b Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <cwillisf@media.mit.edu> Date: Tue, 23 Apr 2019 12:17:48 -0700 Subject: [PATCH] fix extension block color application --- docs/extensions.md | 4 ++++ src/engine/runtime.js | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/docs/extensions.md b/docs/extensions.md index 6cb632e1c..f2a8779ac 100644 --- a/docs/extensions.md +++ b/docs/extensions.md @@ -152,6 +152,10 @@ class SomeBlocks { // Will be used as the extension's namespace. id: 'someBlocks', + // Core extensions only: override the default extension block colors. + color1: '#FF8C1A', + color2: '#DB6E00', + // Optional: the human-readable name of this extension as string. // This and any other string to be displayed in the Scratch UI may either be // a string or a call to `formatMessage`; a plain string will not be diff --git a/src/engine/runtime.js b/src/engine/runtime.js index 8b066b0a5..14ded0443 100644 --- a/src/engine/runtime.js +++ b/src/engine/runtime.js @@ -40,6 +40,8 @@ const defaultBlockPackages = { scratch3_procedures: require('../blocks/scratch3_procedures') }; +const defaultExtensionColors = ['#0FBD8C', '#0DA57A', '#0B8E69']; + /** * Information used for converting Scratch argument types into scratch-blocks data. * @type {object.<ArgumentType, {shadowType: string, fieldType: string}>} @@ -775,14 +777,21 @@ class Runtime extends EventEmitter { showStatusButton: extensionInfo.showStatusButton, blockIconURI: extensionInfo.blockIconURI, menuIconURI: extensionInfo.menuIconURI, - color1: extensionInfo.colour || '#0FBD8C', - color2: extensionInfo.colourSecondary || '#0DA57A', - color3: extensionInfo.colourTertiary || '#0B8E69', customFieldTypes: {}, blocks: [], menus: [] }; + if (extensionInfo.color1) { + categoryInfo.color1 = extensionInfo.color1; + categoryInfo.color2 = extensionInfo.color2; + categoryInfo.color3 = extensionInfo.color3; + } else { + categoryInfo.color1 = defaultExtensionColors[0]; + categoryInfo.color2 = defaultExtensionColors[1]; + categoryInfo.color3 = defaultExtensionColors[2]; + } + this._blockInfo.push(categoryInfo); this._fillExtensionCategory(categoryInfo, extensionInfo);