Compare commits

..

2 Commits

Author SHA1 Message Date
41a1ced9ae 0.1.37 2018-05-02 16:24:07 -07:00
0ce5ffb1d6 Fix color grid on IE. 2018-05-02 16:23:22 -07:00
67 changed files with 436 additions and 597 deletions

View File

@ -1,35 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
Add screenshots to help explain your problem. You can copy paste the screenshot in the github report. The .gif screen recording is very useful as well.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View File

@ -1,17 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

6
cmds/pxtrequire.ts Normal file
View File

@ -0,0 +1,6 @@
/// <reference path="../node_modules/pxt-core/built/pxtlib.d.ts" />
import * as path from "path";
export let pxtCore = require("pxt-core");
// require.resolve() gives path to [pxt dir]/built/pxt.js, so move up twice to get pxt root dir
export let pxtCoreDir = path.resolve(require.resolve("pxt-core"), "..", "..");

View File

@ -3,8 +3,8 @@
## Support #support ## Support #support
* [Troubleshoot](/troubleshoot) * [Troubleshoot](/troubleshoot)
* [LEGO Support](http://service.lego.com/)
* [EV3 Manager](https://ev3manager.education.lego.com/) * [EV3 Manager](https://ev3manager.education.lego.com/)
* [LEGO Support](https://www.lego.com/service/)
## Projects #projects ## Projects #projects

View File

@ -4,14 +4,6 @@
```codecard ```codecard
[ [
{
"name": "Prepare",
"imageUrl": "/static/lessons/firmware.png",
"description": "To use Microsoft MakeCode with your EV3 brick, you will need to install the latest LEGO MINDSTORMS Education EV3 firmware - version 1.10 or higher. Follow these steps to install the latest firmware from LEGO.",
"label": "New? Start Here!",
"labelClass": "red ribbon large",
"url": "https://makecode.mindstorms.com/troubleshoot"
},
{ {
"name": "Try", "name": "Try",
"imageUrl": "/static/lessons/try.png", "imageUrl": "/static/lessons/try.png",

View File

@ -1,3 +1,3 @@
{ {
"appref": "v0.1.57" "appref": "v0.1.27"
} }

View File

@ -1,5 +1,9 @@
# Maker Activites # Maker Activites
These six activities require the [@boardname@ Core Set (45544)](https://education.lego.com/en-us/products/lego-mindstorms-education-ev3-core-set-/5003400). Supporting materials for teachers and middle school students are provided, offering everything teachers and students need to explore their inner makers as they follow the design process to solve open-ended, themed challenges...
* [Download Curriculum Materials](https://education.lego.com/en-us/downloads/mindstorms-ev3/curriculum)
## Activites ## Activites
```codecard ```codecard

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1,279 +1,252 @@
<?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="261.3" height="109.3" viewBox="0 0 69.1 28.9" id="svg9461">
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <defs id="defs9455">
<svg version="1.1" id="svg9461" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" <clipPath id="clipPath8689">
viewBox="0 0 85.6 95.6" style="enable-background:new 0 0 85.6 95.6;" xml:space="preserve"> <path d="M0 1145.9h1366V0H0z" id="path8687"/>
<style type="text/css"> </clipPath>
.st0{fill:url(#path8773_1_);} <clipPath id="clipPath8663">
.st1{clip-path:url(#SVGID_2_);} <path d="M309.8 89.4h3.7v3.7h-3.7z" id="path8661"/>
.st2{fill:#F2F2F2;} </clipPath>
.st3{fill:url(#path8805_1_);} <clipPath id="clipPath8647">
.st4{clip-path:url(#SVGID_4_);} <path d="M0 1145.9h1366V0H0z" id="path8645"/>
.st5{fill:#393939;} </clipPath>
.st6{fill:#98B6A7;} <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 .6661 -.32488 0 300.7 115)" id="linearGradient8637">
.st7{fill:url(#path8841_1_);} <stop offset="0" id="stop8633" stop-color="#757575"/>
.st8{clip-path:url(#SVGID_6_);} <stop offset="1" id="stop8635" stop-color="#393939"/>
.st9{fill:#6A6A6A;} </linearGradient>
.st10{fill:url(#path8875_1_);} <clipPath id="clipPath8595">
.st11{clip-path:url(#SVGID_8_);} <path d="M0 1145.9h1366V0H0z" id="path8593"/>
.st12{fill:#A9ABA9;} </clipPath>
.st13{fill:#9B9B9B;} <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 12.8096 -17.18704 0 300.7 98.4)" id="linearGradient8585">
.st14{fill:url(#path8927_1_);} <stop offset="0" id="stop8579" stop-color="#6a6a6a"/>
.st15{clip-path:url(#SVGID_10_);} <stop offset=".5" id="stop8581" stop-color="#48e400"/>
.st16{fill:#818181;} <stop offset="1" id="stop8583" stop-color="#6a6a6a"/>
.st17{fill:#FFFFFF;} </linearGradient>
.st18{clip-path:url(#SVGID_12_);} <clipPath id="clipPath8561">
.st19{fill:#FFEE00;} <path d="M0 1145.9h1366V0H0z" id="path8559"/>
.st20{fill:#D52715;} </clipPath>
.st21{fill:#171714;} <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -1.33016 5.597 0 300.7 88.4)" id="linearGradient8551">
.st22{clip-path:url(#SVGID_14_);} <stop offset="0" id="stop8547" stop-color="#a9aba9"/>
.st23{fill:#303030;} <stop offset="1" id="stop8549" stop-color="#535453"/>
</style> </linearGradient>
<g id="layer1" transform="translate(0 -268)"> <clipPath id="clipPath8525">
<g id="g10860" transform="translate(-20.8 -2)"> <path d="M0 1145.9h1366V0H0z" id="path8523"/>
<g id="g8755" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> </clipPath>
<g id="g8757"> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -.56074 .70884 0 300.7 115.6)" id="linearGradient8515">
<g id="g8763"> <stop offset="0" id="stop8511" stop-color="#a9aba9"/>
<g id="g8765"> <stop offset="1" id="stop8513" stop-color="#818181"/>
</linearGradient>
<linearGradient id="path8773_1_" gradientUnits="userSpaceOnUse" x1="-839.9431" y1="-715.001" x2="-838.9431" y2="-715.001" gradientTransform="matrix(0 -3.2193 3.3335 0 2933.3757 -2723.9758)"> <clipPath id="clipPath8493">
<stop offset="0" style="stop-color:#F2F2F2"/> <path d="M0 1145.9h1366V0H0z" id="path8491"/>
<stop offset="1" style="stop-color:#7A7A7A"/> </clipPath>
</linearGradient> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -2.39765 2.48247 0 300.7 98.1)" id="linearGradient8483">
<path id="path8773" class="st0" d="M490.2,93.1c-1.3,0-2.3-1-2.3-2.3V-24.8c0-1.1,0.8-2.3,2.3-2.3h119.9 <stop offset="0" id="stop8479" stop-color="#f2f2f2"/>
c1.1,0,1.9,1.1,1.9,2.3V90.9c0,1.1-0.8,2.3-1.9,2.3H490.2z"/> <stop offset="1" id="stop8481" stop-color="#7a7a7a"/>
</g> </linearGradient>
</g> <clipPath id="clipPath8449">
</g> <path d="M0 1145.9h1366V0H0z" id="path8447"/>
</g> </clipPath>
<g id="g8775" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <clipPath id="clipPath8977">
<g> <path d="M0 1145.9h1366V0H0z" id="path8975"/>
<defs> </clipPath>
<rect id="SVGID_1_" x="14.3" y="967.1" width="1822.3" height="1528.7"/> <clipPath id="clipPath8951">
</defs> <path d="M593 101h3.6v3.7H593z" id="path8949"/>
<clipPath id="SVGID_2_"> </clipPath>
<use xlink:href="#SVGID_1_" style="overflow:visible;"/> <clipPath id="clipPath8935">
</clipPath> <path d="M0 1145.9h1366V0H0z" id="path8933"/>
<g id="g8777" class="st1"> </clipPath>
<g id="g8783" transform="translate(569.7 111.2)"> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 .67046 -.32706 0 583.8 126.8)" id="linearGradient8925">
<path id="path8785" class="st2" d="M-72.7-125.8H33.2c1.1,0,2.3-1.1,2.3-2.3v-43.1c0-1.5-1.1-2.3-2.3-2.3H-72.7 <stop offset="0" id="stop8921" stop-color="#757575"/>
c-1.1,0-2.3,0.8-2.3,2.3v43.1C-75-127-73.8-125.8-72.7-125.8"/> <stop offset="1" id="stop8923" stop-color="#393939"/>
</g> </linearGradient>
</g> <clipPath id="clipPath8883">
</g> <path d="M0 1145.9h1366V0H0z" id="path8881"/>
</g> </clipPath>
<g id="g8787" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 12.89405 -17.29507 0 583.7 110)" id="linearGradient8873">
<g id="g8789"> <stop offset="0" id="stop8867" stop-color="#6a6a6a"/>
<g id="g8795"> <stop offset=".5" id="stop8869" stop-color="#48e400"/>
<g id="g8797"> <stop offset="1" id="stop8871" stop-color="#6a6a6a"/>
</linearGradient>
<linearGradient id="path8805_1_" gradientUnits="userSpaceOnUse" x1="106.3515" y1="93.6155" x2="107.3515" y2="93.6155" gradientTransform="matrix(0 -0.7528 0.9518 0 460.8399 126.682)"> <clipPath id="clipPath8849">
<stop offset="0" style="stop-color:#A9ABA9"/> <path d="M0 1145.9h1366V0H0z" id="path8847"/>
<stop offset="1" style="stop-color:#818181"/> </clipPath>
</linearGradient> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -1.33884 5.6329 0 583.7 100)" id="linearGradient8839">
<path id="path8805" class="st3" d="M495.9,128.7c-1.3,0-2.3-1-2.3-2.3V42.1c0-1.1,1.1-2.3,2.3-2.3H604c1.1,0,2.3,1.1,2.3,2.3 <stop offset="0" id="stop8835" stop-color="#a9aba9"/>
v84.3c0,1.1-1.1,2.3-2.3,2.3H495.9z"/> <stop offset="1" id="stop8837" stop-color="#535453"/>
</g> </linearGradient>
</g> <clipPath id="clipPath8813">
</g> <path d="M0 1145.9h1366V0H0z" id="path8811"/>
</g> </clipPath>
<g id="g8807" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -.56429 .71345 0 583.7 127.4)" id="linearGradient8803">
<g> <stop offset="0" id="stop8799" stop-color="#a9aba9"/>
<defs> <stop offset="1" id="stop8801" stop-color="#818181"/>
<rect id="SVGID_3_" x="14.3" y="967.1" width="1822.3" height="1528.7"/> </linearGradient>
</defs> <clipPath id="clipPath8781">
<clipPath id="SVGID_4_"> <path d="M0 1145.9h1366V0H0z" id="path8779"/>
<use xlink:href="#SVGID_3_" style="overflow:visible;"/> </clipPath>
</clipPath> <linearGradient x2="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -2.41323 2.4988 0 583.7 109.8)" id="linearGradient8771">
<g id="g8809" class="st4"> <stop offset="0" id="stop8767" stop-color="#f2f2f2"/>
<g id="g8815" transform="translate(572.7 146)"> <stop offset="1" id="stop8769" stop-color="#7a7a7a"/>
<path id="path8817" class="st5" d="M-64.4-29h83.6c2.3,0,4.2-1.9,4.2-4.2v-47.3c0-2.3-1.9-3.8-3.8-3.8h-83.9 </linearGradient>
c-2.3,0-4.2,1.5-4.2,3.8v47.6C-68.5-30.9-66.6-29-64.4-29"/> <clipPath id="clipPath8737">
</g> <path d="M0 1145.9h1366V0H0z" id="path8735"/>
<g id="g8819" transform="translate(574.4 145.4)"> </clipPath>
<path id="path8821" class="st6" d="M-59.6-30.7h71.1c1.5,0,3-1.5,3-3v-45.4c0-1.5-1.5-3-3-3h-71.1c-1.5,0-3,1.5-3,3v45.4 </defs>
C-62.7-32.2-61.1-30.7-59.6-30.7"/> <g id="layer1" transform="translate(0 -268)">
</g> <g id="g10860" transform="translate(-20.8 -2)">
</g> <g transform="matrix(.35278 0 0 -.35278 62.8 291.4)" id="g8727">
</g> <path id="path8729" d="M0 0h24" fill="none" stroke="#000" stroke-width="2"/>
</g> </g>
<g id="g8823" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <g id="g8731" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
<g id="g8825"> <g clip-path="url(#clipPath8737)" id="g8733">
<g id="g8831"> <g transform="translate(458 159.9)" id="g8739">
<g id="g8833"> <path id="path8741" d="M0 0h83a4 4 0 0 0 4-4v-52.5H-4V-4a4 4 0 0 0 4 4" fill="#e6e6e6"/>
</g>
<linearGradient id="path8841_1_" gradientUnits="userSpaceOnUse" x1="-608.1827" y1="-894.7903" x2="-607.1827" y2="-894.7903" gradientTransform="matrix(0 -1.7861 7.5145 0 7273.7993 -1143.2354)"> <g transform="translate(458 158.4)" id="g8743">
<stop offset="0" style="stop-color:#A9ABA9"/> <path id="path8745" d="M0 0h83c1.3 0 2.4-1.1 2.4-2.5V-52c0-.9-.6-1.5-1.5-1.5H-1c-.8 0-1.5.6-1.5 1.5v49.5C-2.5-1.1-1.4 0 0 0z" fill="none" stroke="#282828" stroke-width="3"/>
<stop offset="1" style="stop-color:#535453"/> </g>
</linearGradient> <g transform="translate(445 102.9)" id="g8747">
<path id="path8841" class="st7" d="M494.7-35.8V-60c0-1.1,1.1-2.3,2.3-2.3h105.9c1.1,0,2.3,1.1,2.3,2.3v24.2H494.7z"/> <path id="path8749" d="M0 0h108.8v-1.2a3 3 0 0 0-3-3H3a3 3 0 0 0-3 3z" fill="#626262"/>
</g> </g>
</g> <g transform="translate(489.8 102.9)" id="g8751">
</g> <path id="path8753" d="M0 0h19.3c0-.8-.6-1.4-1.4-1.4H1.4C.6-1.4 0-.8 0 0" fill="#818181"/>
</g> </g>
<g id="g8843" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> </g>
<g> </g>
<defs> <g id="g8755" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
<rect id="SVGID_5_" x="14.3" y="967.1" width="1822.3" height="1528.7"/> <g id="g8757">
</defs> <g id="g8763">
<clipPath id="SVGID_6_"> <g id="g8765">
<use xlink:href="#SVGID_5_" style="overflow:visible;"/> <path id="path8773" d="M567.9 139.7a.6.6 0 0 1-.6-.6v-30.6c0-.3.2-.6.6-.6h31.7c.3 0 .5.3.5.6v30.6c0 .3-.2.6-.5.6z" fill="url(#linearGradient8771)"/>
</clipPath> </g>
<g id="g8845" class="st8"> </g>
<g id="g8851" transform="translate(581.7 109.3)"> </g>
<path id="path8853" class="st9" d="M-39.3-131.1l-15.9,15.9v2.3H-59c-5.1,1-8.4,6-7.4,11.1c0.8,3.7,3.7,6.6,7.4,7.4h3.8v1.9 </g>
l15.9,16.3h15.1l15.9-15.9v-2.3h3.8c5.2,0,9.5-4.2,9.5-9.5c0-5.2-4.2-9.5-9.5-9.5h-3.8v-1.9l-15.1-15.9H-39.3z"/> <g id="g8775" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</g> <g clip-path="url(#clipPath8781)" id="g8777">
</g> <g transform="translate(569.7 111.2)" id="g8783">
</g> <path id="path8785" d="M0 0h28c.3 0 .6-.3.6-.6V-12c0-.4-.3-.6-.6-.6H0c-.3 0-.6.2-.6.6V-.6c0 .3.3.6.6.6" fill="#f2f2f2"/>
</g> </g>
<g id="g8855" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> </g>
<g id="g8857"> </g>
<g id="g8863"> <g id="g8787" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
<g id="g8865"> <g id="g8789">
<g id="g8795">
<linearGradient id="path8875_1_" gradientUnits="userSpaceOnUse" x1="-1182.8013" y1="-1084.7936" x2="-1181.8013" y2="-1084.7936" gradientTransform="matrix(0 17.201 -23.0721 0 -24479.207 20326.2344)"> <g id="g8797">
<stop offset="0" style="stop-color:#6A6A6A"/> <path id="path8805" d="M569.4 149.1a.6.6 0 0 1-.6-.6v-22.3c0-.3.3-.6.6-.6H598c.3 0 .6.3.6.6v22.3c0 .3-.3.6-.6.6z" fill="url(#linearGradient8803)"/>
<stop offset="0.5" style="stop-color:#48E400"/> </g>
<stop offset="1" style="stop-color:#6A6A6A"/> </g>
</linearGradient> </g>
<path id="path8875" class="st10" d="M542.4,33l-15.9-15.9v-2.3h-3.8c-5.2,0-9.5-4.2-9.5-9.5s4.2-9.5,9.5-9.5v0.4h3.8v-1.9 </g>
l15.9-16.3h15.9l15.9,16.3v1.9h3.8c5.1,1.1,8.3,6.2,7.2,11.3c-0.8,3.7-3.8,6.6-7.5,7.2h-3.8v2.6L558.3,33H542.4z"/> <g id="g8807" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</g> <g clip-path="url(#clipPath8813)" id="g8809">
</g> <g transform="translate(572.7 146)" id="g8815">
</g> <path id="path8817" d="M0 0h22.1c.6 0 1.1-.5 1.1-1.1v-12.5c0-.6-.5-1-1-1H0c-.6 0-1.1.4-1.1 1V-1c0 .5.5 1 1.1 1" fill="#393939"/>
</g> </g>
<g id="g8877" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <g transform="translate(574.4 145.4)" id="g8819">
<g> <path id="path8821" d="M0 0h18.8c.4 0 .8-.4.8-.8v-12c0-.4-.4-.8-.8-.8H0c-.4 0-.8.4-.8.8v12c0 .4.4.8.8.8" fill="#98b6a7"/>
<defs> </g>
<rect id="SVGID_7_" x="14.3" y="967.1" width="1822.3" height="1528.7"/> </g>
</defs> </g>
<clipPath id="SVGID_8_"> <g id="g8823" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/> <g id="g8825">
</clipPath> <g id="g8831">
<g id="g8879" class="st11"> <g id="g8833">
<g id="g8885" transform="translate(576.4 118.4)"> <path id="path8841" d="M569.1 105.6v-6.4c0-.3.3-.6.6-.6h28c.3 0 .6.3.6.6v6.4z" fill="url(#linearGradient8839)"/>
<path id="path8887" class="st12" d="M-54.1-105.8h11.3v-13.6h-11.3c-3.8,0-6.8,3-6.8,6.8C-60.9-108.9-57.8-105.8-54.1-105.8" </g>
/> </g>
</g> </g>
<g id="g8889" transform="translate(591 114.8)"> </g>
<path id="path8891" class="st12" d="M-13.5-115.8h-11.3v13.6h11.3c3.8,0,6.8-3,6.8-6.8C-6.6-112.8-9.7-115.8-13.5-115.8"/> <g id="g8843" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</g> <g clip-path="url(#clipPath8849)" id="g8845">
<g id="g8893" transform="translate(582 118.4)"> <g transform="translate(581.7 109.3)" id="g8851">
<path id="path8895" class="st5" d="M-38.5-105.8h13.6v-13.6h-14v13.6H-38.5"/> <path id="path8853" d="M0 0l-4.2 4.2v.6h-1a2.5 2.5 0 0 0 0 4.9h1v.5L0 14.5h4l4.2-4.2v-.6h1a2.5 2.5 0 0 0 0-5h-1v-.5L4.2 0z" fill="#6a6a6a"/>
</g> </g>
<g id="g8897" transform="translate(581.9 123.2)"> </g>
<path id="path8899" class="st12" d="M-38.8-92.5h14.4l10.6-11l-4.2-4.2v-7.6h-4.5v3.8c0,1.9-1.5,3.8-3.8,3.8h-11.3 </g>
c-1.4,0.2-2.8-0.8-3-2.2c0-0.3,0-0.5,0-0.8v-5.3h-3.8v8.3L-49-103L-38.8-92.5z"/> <g id="g8855" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</g> <g id="g8857">
<g id="g8901" transform="translate(585.6 110)"> <g id="g8863">
<path id="path8903" class="st12" d="M-28.5-129.2h-14.4l-10.6,11l4.5,4.5v7.6h3.8v-4.2c0-1.9,1.9-3.8,3.8-3.8h12.1 <g id="g8865">
c1.9,0,3,1.5,3,3v5.3h4.2v-8.3l4.5-4.5L-28.5-129.2z"/> <path id="path8875" d="M581.7 123.8l-4.2-4.2v-.6h-1a2.5 2.5 0 1 1 0-5v.1h1v-.5l4.2-4.3h4.2l4.2 4.3v.5h1a2.5 2.5 0 0 1-.1 4.9h-1v.7l-4.1 4.1z" fill="url(#linearGradient8873)"/>
</g> </g>
<path id="path8905" class="st5" d="M548.4,61.7h3.4V46.2h-3.4V61.7z"/> </g>
<path id="path8907" class="st13" d="M548.4,46.6h3.4v-6.8h-3.4V46.6z"/> </g>
</g> </g>
</g> <g id="g8877" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</g> <g clip-path="url(#clipPath8883)" id="g8879">
<g id="g8909" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <g transform="translate(576.4 118.4)" id="g8885">
<g id="g8911"> <path id="path8887" d="M0 0h3v-3.6H0A1.8 1.8 0 1 0 0 0" fill="#a9aba9"/>
<g id="g8917"> </g>
<g id="g8919"> <g transform="translate(591 114.8)" id="g8889">
<path id="path8891" d="M0 0h-3v3.6h3A1.8 1.8 0 1 0 0 0" fill="#a9aba9"/>
<linearGradient id="path8927_1_" gradientUnits="userSpaceOnUse" x1="-2168.2661" y1="-3506.5073" x2="-2167.2661" y2="-3506.5073" gradientTransform="matrix(0 0.8944 -0.4363 0 -979.787 1983.6796)"> </g>
<stop offset="0" style="stop-color:#757575"/> <g transform="translate(582 118.4)" id="g8893">
<stop offset="1" style="stop-color:#393939"/> <path id="path8895" d="M0 0h3.6v-3.6H-.1V0H0" fill="#393939"/>
</linearGradient> </g>
<path id="path8927" class="st14" d="M548.4,39.8h3.4v6.8h-3.4V39.8z"/> <g transform="translate(581.9 123.2)" id="g8897">
</g> <path id="path8899" d="M0 0h3.8l2.8-2.9L5.5-4v-2H4.3v1c0 .5-.4 1-1 1h-3a.7.7 0 0 1-.8-.8v-1.4h-1V-4l-1.2 1.2z" fill="#a9aba9"/>
</g> </g>
</g> <g transform="translate(585.6 110)" id="g8901">
</g> <path id="path8903" d="M0 0h-3.8l-2.8 2.9 1.2 1.2v2h1V5c0-.5.5-1 1-1h3.2c.5 0 .8.4.8.8v1.4h1.1V4l1.2-1.2z" fill="#a9aba9"/>
<g id="g8929" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> </g>
<g> <path id="path8905" d="M583.3 131.4h.9v-4.1h-.9z" fill="#393939"/>
<defs> <path id="path8907" d="M583.3 127.4h.9v-1.8h-.9z" fill="#9b9b9b"/>
<rect id="SVGID_9_" x="14.3" y="967.1" width="1822.3" height="1528.7"/> </g>
</defs> </g>
<clipPath id="SVGID_10_"> <g id="g8909" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
<use xlink:href="#SVGID_9_" style="overflow:visible;"/> <g id="g8911">
</clipPath> <g id="g8917">
<g id="g8931" class="st15"> <g id="g8919">
<path id="path8937" class="st16" d="M548.4,39.8h3.4V33h-3.4V39.8z"/> <path id="path8927" d="M583.3 125.6h.9v1.8h-.9z" fill="url(#linearGradient8925)"/>
<g id="g8939" transform="translate(571.2 125.6)"> </g>
<path id="path8941" class="st12" d="M-68.5-85.8h26.5v-6.4l-6.4-6.8h-17.8c-1.1,0-2.3,1.1-2.3,2.3V-85.8z"/> </g>
</g> </g>
<path id="path8943" class="st17" d="M585.1-39.2h13.6v-14h-13.6V-39.2z"/> </g>
</g> <g id="g8929" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</g> <g clip-path="url(#clipPath8935)" id="g8931">
</g> <path id="path8937" d="M583.3 125.6h.9v-1.8h-.9z" fill="#818181"/>
<g id="g8945" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <g transform="translate(571.2 125.6)" id="g8939">
<g> <path id="path8941" d="M0 0h7v-1.7L5.3-3.5H.6c-.3 0-.6.3-.6.6z" fill="#a9aba9"/>
<defs> </g>
<rect id="SVGID_11_" x="589.5" y="-48.7" width="4.8" height="4.9"/> <path id="path8943" d="M593 104.7h3.6V101H593z" fill="#fff"/>
</defs> </g>
<clipPath id="SVGID_12_"> </g>
<use xlink:href="#SVGID_11_" style="overflow:visible;"/> <g id="g8945" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
</clipPath> <g clip-path="url(#clipPath8951)" id="g8947">
<g id="g8947" class="st18"> <g transform="translate(596.4 103.2)" id="g8953">
<g id="g8953" transform="translate(596.4 103.2)"> <path id="path8955" d="M0 0v-.3C-.3-.8-.4-1-.8-1l-.3.2a.6.6 0 0 0-.5-.2c-.1 0-.2 0-.3.2C-2-1-2.1-1-2.2-1h-.6a.3.3 0 0 0-.3.2l.3 1h.5l.5.2.2-.1h.4c.1.1.3 0 .4 0V.1l.4.2.3-.1L0 0m-3.4-2.1H.2v3.6h-3.6z" fill="#fe0"/>
<path id="path8955" class="st19" d="M1.6-148.1v-1.1c-1.1-1.9-1.5-2.6-3-2.6l-1.1,0.8c-0.5-0.5-1.2-0.8-1.9-0.8 </g>
c-0.4,0-0.8,0-1.1,0.8c-0.4-0.8-0.8-0.8-1.1-0.8H-9c-0.5,0-1,0.3-1.1,0.8l1.1,3.8h1.9l1.9,0.8l0.8-0.4H-3c0.4,0.4,1.1,0,1.5,0 <g transform="translate(596.5 103)" id="g8957">
v-0.8l1.5,0.8l1.1-0.4L1.6-148.1 M-11.3-156H2.3v13.6h-13.6L-11.3-156z"/> <path id="path8959" d="M0 0c0-.2 0-.3-.2-.5 0-.2-.3-.4-.6-.4l-.4.1a.7.7 0 0 0-.4-.1H-2a.7.7 0 0 0-.4 0H-3c-.2 0-.3.1-.4.3 0 .4.2.7.4 1 0 .2.2.2.4.2h2.1L0 .5V0m-3.5-2H.1v3.6h-3.6z" fill="#d52715"/>
</g> </g>
<g id="g8957" transform="translate(596.5 103)"> <path id="path8961" d="M596.6 101H593v3.6h3.6zm-3.7 0h3.7v3.7H593z" fill="#171714"/>
<path id="path8959" class="st20" d="M1.8-148.6c0-0.8,0-1.1-0.8-1.9c0-0.8-1.1-1.5-2.3-1.5l-1.5,0.4c-0.5-0.3-1-0.4-1.5-0.4 <g transform="translate(596.5 103.7)" id="g8963">
h-1.5c-0.5-0.1-1-0.1-1.5,0h-2.3c-0.8,0-1.1,0.4-1.5,1.1c0,1.5,0.8,2.6,1.5,3.8c0,0.8,0.8,0.8,1.5,0.8H0l1.9-0.4V-148.6 <path id="path8965" d="M0 0v-.2.2m0 0v-.2.1m0 0zm0 0z" fill="#171714"/>
M-11.4-156.2H2.2v13.6h-13.6V-156.2z"/> </g>
</g> <g transform="translate(596 103.2)" id="g8967">
<path id="path8961" class="st21" d="M598.7-53.2h-13.6v13.6h13.6V-53.2z M584.7-53.2h14v14h-13.6L584.7-53.2z"/> <path id="path8969" d="M0 0a3 3 0 0 0-.2-.6h-.1c0 .2 0 .4.2.6H0m.3-.2L0-.6C0-.8-.2-1-.3-1c-.2 0-.3 0-.3.3l.1.4c.1.3.2.5.5.5s.3-.3.3-.5M-1 .1V0l-.3-.5.1-.1.2.2c0 .2 0 .2.2.2s.2-.1.1-.2c0-.3-.2-.5-.5-.5a.3.3 0 0 0-.3.3l.2.5c0 .2.2.4.5.4.2 0 .3 0 .3-.2 0-.1 0-.2-.2-.2h-.1v.2m-1-.5v-.2h.3c0-.2-.2-.3-.3-.3-.2 0-.3.1-.3.2 0 .3 0 .5.2.7 0 .2.2.3.4.3l.2-.1c0-.2 0-.2-.2-.2h-.1v-.1c.1 0 .2 0 .1-.2l-.3-.1m-.6-.2h.2c0-.2-.1-.3-.3-.3 0 0-.2 0-.2.2l.3.9s.1.1.2 0h.1c0-.3-.2-.5-.3-.8M0 .4C-.2.4-.3.4-.4.2l-.4.2-.4-.1-.3.1c-.2 0-.3 0-.4-.2v.1l-.3.1c-.1 0-.2 0-.3-.2-.1-.3-.3-.6-.3-1 0 0 .1-.2.3-.2l.3.1c.1 0 .2-.1.4 0h.6l.5.1.4-.2c.3 0 .5.3.6.6V0a.4.4 0 0 1-.3.4" fill="#171714"/>
<g id="g8963" transform="translate(596.5 103.7)"> </g>
<path id="path8965" class="st21" d="M1.8-146.7v-0.8V-146.7 M1.8-146.7v-0.8v0.4V-146.7z"/> </g>
</g> </g>
<g id="g8967" transform="translate(596 103.2)"> <g id="g8971" transform="matrix(.35278 0 0 -.35278 -129 330.1)">
<path id="path8969" class="st21" d="M0.5-148.1c-0.2-0.8-0.4-1.5-0.8-2.3h-0.4c0,0.8,0,1.5,0.8,2.3H0.5 M1.6-148.8l-1.1-1.5 <g clip-path="url(#clipPath8977)" id="g8973">
c0-0.8-0.8-1.5-1.1-1.5c-0.8,0-1.1,0-1.1,1.1l0.4,1.5c0.4,1.1,0.8,1.9,1.9,1.9s1.1-1.1,1.1-1.9 M-3.3-147.7v-0.4l-1.1-1.9 <g transform="translate(578 103)" id="g8979">
l0.4-0.4l0.8,0.8c0,0.8,0,0.8,0.8,0.8s0.8-0.4,0.4-0.8c0-1.1-0.8-1.9-1.9-1.9c-0.6,0-1.1,0.5-1.1,1.1l0,0l0.8,1.9 <path id="path8981" d="M0 0v-.3h-.6l-.1-.1v-.4H0v-.4h-1l-.2.2h-.3l-.1-.1v-.6H.7V.5h-2.3v-.6h.5V0H0z" fill="#f2f2f2"/>
c0,0.8,0.8,1.5,1.9,1.5c0.8,0,1.1,0,1.1-0.8c0-0.4,0-0.8-0.8-0.8h-0.4v0.8 M-6.4-149.6v-0.8h1.1c0-0.8-0.8-1.1-1.1-1.1 </g>
c-0.8,0-1.1,0.4-1.1,0.8c0,1.1,0,1.9,0.8,2.6c0,0.8,0.8,1.1,1.5,1.1l0.8-0.4c0-0.8,0-0.8-0.8-0.8h-0.4v-0.4 <g transform="translate(576 103.6)" id="g8983">
c0.4,0,0.8,0,0.4-0.8L-6.4-149.6 M-8.6-150.4h0.8c0-0.8-0.4-1.1-1.1-1.1c0,0-0.8,0-0.8,0.8l1.1,3.4c0,0,0.4,0.4,0.8,0h0.4 <path id="path8985" d="M0 0h-.5l-.1-.1-.6-1.3L-2-.1V0h-.5s-.1 0 0-.1l.9-2 .2-.1h.5l1 2L0 0" fill="#f2f2f2"/>
C-7.5-148.5-8.2-149.2-8.6-150.4 M0.5-146.6c-0.8,0-1.1,0-1.5-0.8l-1.5,0.8l-1.5-0.4l-1.1,0.4c-0.8,0-1.1,0-1.5-0.8v0.4 </g>
l-1.1,0.4c-0.4,0-0.8,0-1.1-0.8c-0.4-1.1-1.1-2.3-1.1-3.8c0,0,0.4-0.8,1.1-0.8l1.1,0.4c0.4,0,0.8-0.4,1.5,0h2.3l1.9,0.4 <g transform="translate(573 102.8)" id="g8987">
l1.5-0.8c1.1,0,1.9,1.1,2.3,2.3v1.5C1.6-147.4,1.1-146.8,0.5-146.6"/> <path id="path8989" d="M0 0h.1v-.4L0-.5h-1.5v-.3H0L.1-1v-.4h-2.2v2l.1.2H.1V.4h-1.6V0z" fill="#f2f2f2"/>
</g> </g>
</g> <g transform="translate(583.5 136.6)" id="g8991">
</g> <path id="path8993" d="M0 0l-.8 1.3-1.4-2.9 4-1c-.5.5-.5.7-.9 1.3.5.1 1 .4 1.4.7.8.4 1.5 1 2 1.9a4 4 0 0 1-.6 3.6c-.4 0-.8 0-1.3-.2C3.5 3 3.5 1 0 0" fill="#303030"/>
</g> </g>
<g id="g8971" transform="matrix(.35278 0 0 -.35278 -129 330.1)"> <g transform="translate(583.1 141.4)" id="g8995">
<g> <path id="path8997" d="M0 0l.8-1.2 1.4 2.8-3.8 1 .7-1.3-1.3-.7a4.5 4.5 0 0 1-2-2c-.4-1-.2-2.4.5-3.4.4 0 .8 0 1.2.2C-3.3-3-3.3-1 0 0" fill="#303030"/>
<defs> </g>
<rect id="SVGID_13_" x="14.3" y="967.1" width="1822.3" height="1528.7"/> </g>
</defs> </g>
<clipPath id="SVGID_14_"> </g>
<use xlink:href="#SVGID_13_" style="overflow:visible;"/> </g>
</clipPath>
<g id="g8973" class="st22">
<g id="g8979" transform="translate(578 103)">
<path id="path8981" class="st2" d="M-49.6-148.6v-1.1h-2.3l-0.4-0.4v-1.5h2.6v-1.5h-3.8l-0.8,0.8h-1.1l-0.4-0.4v-2.3h8.7v8.3
h-8.7v-2.3h1.9v0.4H-49.6z"/>
</g>
<g id="g8983" transform="translate(576 103.6)">
<path id="path8985" class="st2" d="M-55.2-147h-1.9l-0.4-0.4l-2.3-4.9l-3,4.9v0.4h-1.9c0,0-0.4,0,0-0.4l3.4-7.6l0.8-0.4h1.9
l3.8,7.6L-55.2-147"/>
</g>
<g id="g8987" transform="translate(573 102.8)">
<path id="path8989" class="st2" d="M-63.5-149.2h0.4v-1.5l-0.4-0.4h-5.7v-1.1h5.7l0.4-0.8v-1.5h-8.3v7.6l0.4,0.8h7.9v-1.5
h-6.1v-1.5H-63.5z"/>
</g>
<g id="g8991" transform="translate(583.5 136.6)">
<path id="path8993" class="st23" d="M-34.3-55.2l-3,4.9l-5.3-11l15.1-3.8c-1.9,1.9-1.9,2.6-3.4,4.9c1.9,0.4,3.8,1.5,5.3,2.6
c3,1.5,5.7,3.8,7.6,7.2c1.5,4.6,0.6,9.7-2.3,13.6c-1.5,0-3,0-4.9-0.8C-21.1-43.8-21.1-51.4-34.3-55.2"/>
</g>
<g id="g8995" transform="translate(583.1 141.4)">
<path id="path8997" class="st23" d="M-35.4-41.8l3-4.5l5.3,10.6L-41.5-32l2.6-4.9l-4.9-2.6c-3.3-1.6-5.9-4.3-7.6-7.6
c-1.5-3.8-0.8-9.1,1.9-12.9c1.5,0,3,0,4.5,0.8C-47.9-53.2-47.9-45.6-35.4-41.8"/>
</g>
</g>
</g>
</g>
</g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -3,7 +3,7 @@
<msapplication> <msapplication>
<tile> <tile>
<square150x150logo src="/mstile-150x150.png"/> <square150x150logo src="/mstile-150x150.png"/>
<TileColor>#33adcb</TileColor> <TileColor>#da532c</TileColor>
</tile> </tile>
</msapplication> </msapplication>
</browserconfig> </browserconfig>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

After

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -2,60 +2,14 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="326.000000pt" height="326.000000pt" viewBox="0 0 326.000000 326.000000" width="904.000000pt" height="904.000000pt" viewBox="0 0 904.000000 904.000000"
preserveAspectRatio="xMidYMid meet"> preserveAspectRatio="xMidYMid meet">
<metadata> <metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013 Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata> </metadata>
<g transform="translate(0.000000,326.000000) scale(0.100000,-0.100000)" <g transform="translate(0.000000,904.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none"> fill="#000000" stroke="none">
<path d="M1535 3046 c-5 -2 -35 -9 -65 -16 -30 -7 -69 -23 -85 -36 -38 -30 <path d="M0 4520 l0 -4510 4520 0 4520 0 0 4510 0 4510 -4520 0 -4520 0 0
-29 -49 37 -81 131 -64 395 -46 468 32 l22 23 -39 26 c-53 35 -134 53 -239 54 -4510z"/>
-49 1 -93 -1 -99 -2z"/>
<path d="M1122 2799 l-64 -30 56 -41 c74 -54 87 -92 93 -269 5 -129 4 -139
-20 -190 -97 -213 -600 -265 -788 -82 -38 37 -49 55 -58 101 -6 30 -11 75 -11
98 0 24 -4 45 -9 48 -8 5 -228 -88 -243 -102 -3 -4 78 -58 180 -121 295 -181
588 -360 987 -606 204 -125 375 -228 381 -228 6 0 154 87 330 193 175 107 330
200 344 208 14 7 165 98 335 202 171 103 365 221 432 262 67 40 119 76 115 79
-18 18 -236 109 -242 102 -4 -4 -10 -37 -13 -73 -10 -105 -22 -134 -79 -184
-29 -25 -57 -46 -64 -46 -7 0 -33 -9 -58 -20 -39 -16 -128 -31 -201 -34 -62
-2 -186 18 -248 41 -106 38 -171 87 -204 152 -24 48 -27 63 -24 145 6 224 14
253 93 316 l57 45 -71 33 c-39 17 -74 32 -78 32 -5 0 -8 -19 -7 -43 2 -78 -21
-134 -72 -177 -153 -132 -500 -137 -674 -9 -39 28 -50 44 -65 93 -11 33 -19
77 -18 98 2 47 -6 47 -92 7z m729 -454 c163 -53 253 -149 252 -270 -1 -268
-14 -325 -95 -396 -38 -33 -77 -55 -138 -78 -74 -26 -203 -49 -250 -44 -8 1
-46 5 -85 8 -105 10 -220 56 -288 117 -74 66 -87 106 -92 293 -4 128 -2 145
18 195 29 69 110 135 212 170 92 31 138 37 271 35 90 -2 127 -8 195 -30z"/>
<path d="M1619 2246 c-2 -2 -33 -7 -69 -10 -91 -10 -176 -43 -222 -87 -46 -43
-45 -64 3 -115 27 -28 112 -66 179 -79 36 -8 188 -8 230 -1 120 20 220 82 220
137 0 65 -118 130 -260 145 -36 3 -68 8 -71 10 -3 2 -8 2 -10 0z"/>
<path d="M1297 1873 c-3 -2 -1 -18 5 -35 68 -194 612 -185 653 11 7 31 5 33
-11 26 -193 -80 -377 -88 -561 -25 -45 16 -84 26 -86 23z"/>
<path d="M1350 2775 c0 -68 96 -119 240 -128 144 -9 288 34 309 94 13 39 -1
45 -59 24 -112 -40 -311 -38 -432 4 -47 16 -58 17 -58 6z"/>
<path d="M680 2674 c-99 -19 -210 -72 -223 -108 -10 -25 31 -64 91 -87 75 -28
256 -35 335 -13 107 32 177 77 177 115 0 22 -42 53 -101 74 -44 16 -229 28
-279 19z"/>
<path d="M2448 2675 c-2 -2 -30 -5 -63 -8 -99 -8 -184 -54 -185 -99 0 -26 74
-75 149 -99 96 -30 262 -31 352 0 66 21 90 39 102 73 16 46 -149 121 -285 131
-37 2 -69 3 -70 2z"/>
<path d="M1050 2380 c-34 -19 -149 -52 -200 -58 -121 -14 -268 -4 -332 23 -48
19 -48 19 -48 -9 0 -35 37 -71 101 -97 45 -18 74 -22 174 -22 101 -1 130 3
185 23 78 28 125 61 138 99 12 33 3 53 -18 41z"/>
<path d="M2184 2363 c2 -16 7 -36 11 -45 13 -32 112 -84 200 -104 11 -3 65 -5
120 -6 154 -1 253 41 271 116 6 26 5 28 -12 22 -87 -34 -252 -48 -364 -32 -51
8 -161 42 -202 63 -27 13 -28 13 -24 -14z"/>
<path d="M11 2146 c4 -31 10 -88 14 -128 4 -40 9 -80 10 -89 2 -9 6 -40 10
-70 6 -55 32 -266 40 -329 5 -36 11 -93 20 -177 3 -27 8 -65 11 -85 5 -35 28
-53 716 -553 391 -284 712 -514 715 -512 2 3 6 237 7 521 2 369 0 520 -8 530
-9 11 -465 295 -576 358 -19 11 -47 29 -62 39 -14 11 -31 19 -37 19 -6 0 -11
4 -11 8 0 5 -12 14 -27 21 -14 7 -49 27 -77 45 -52 34 -467 288 -515 316 -14
8 -68 41 -120 73 -126 79 -119 78 -110 13z"/>
<path d="M2816 1930 c-236 -143 -431 -260 -433 -260 -3 0 -17 -8 -31 -19 -15
-10 -166 -103 -337 -206 -170 -103 -313 -191 -316 -196 -7 -13 -12 -1049 -4
-1049 4 0 382 267 500 354 11 8 135 96 275 196 140 100 262 186 270 193 8 7
94 68 190 136 96 68 180 128 187 135 10 9 28 108 38 214 2 18 6 45 9 60 3 15
8 52 11 82 4 30 11 87 16 125 5 39 12 88 15 110 2 22 7 56 9 76 3 20 8 56 10
80 3 24 7 60 10 79 10 67 17 150 14 150 -2 0 -197 -117 -433 -260z"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 603 B

View File

@ -1,6 +1,6 @@
{ {
"name": "MakeCode for EV3", "name": "",
"short_name": "MakeCode for EV3", "short_name": "",
"icons": [ "icons": [
{ {
"src": "/android-chrome-192x192.png", "src": "/android-chrome-192x192.png",
@ -8,14 +8,12 @@
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "/android-chrome-256x256.png", "src": "/android-chrome-512x512.png",
"sizes": "256x256", "sizes": "512x512",
"type": "image/png" "type": "image/png"
} }
], ],
"theme_color": "#ff0000", "theme_color": "#ffffff",
"background_color": "#ff0000", "background_color": "#ffffff",
"start_url": "makecode.mindstorms.com", "display": "standalone"
"display": "standalone",
"orientation": "portrait"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 477 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -1,6 +1,6 @@
# Line Following # Line Following
## Introduction @unplugged ## Introduction @fullscreen
Make a program to follow a line using the Color sensor and reflected light. Let's test reflected light to see if it's white or black (on the line), and drive our robot accordingly. Make a program to follow a line using the Color sensor and reflected light. Let's test reflected light to see if it's white or black (on the line), and drive our robot accordingly.
@ -90,7 +90,7 @@ forever(function () {
}) })
``` ```
## Step 7 # Step 7
In the second ``||motors:tank large motors||`` block in the ``||logic:else||`` clause, change the speed values of the motors from ``50%``, ``50%`` to ``15%``, ``5%``. This slows down the robot, and steers it to the right (because the **B** motor is driving faster than the **C** motor). In the second ``||motors:tank large motors||`` block in the ``||logic:else||`` clause, change the speed values of the motors from ``50%``, ``50%`` to ``15%``, ``5%``. This slows down the robot, and steers it to the right (because the **B** motor is driving faster than the **C** motor).

View File

@ -1,6 +1,6 @@
# Make a custom animation # Make a custom animation
## Introduction @unplugged ## Introduction @fullscreen
Create a custom animation for your @boardname@. Create a custom animation for your @boardname@.
@ -10,7 +10,7 @@ Create a custom animation for your @boardname@.
Open the ``||brick:Brick||`` Toolbox drawer. Drag out a ``||brick:show string||`` block onto the Workspace, and drop it into the ``||loops:on Start||`` block. You should hear and see the block click into place. Open the ``||brick:Brick||`` Toolbox drawer. Drag out a ``||brick:show string||`` block onto the Workspace, and drop it into the ``||loops:on Start||`` block. You should hear and see the block click into place.
```blocks ```block
brick.showString("Hello world", 1) brick.showString("Hello world", 1)
``` ```

View File

@ -1,6 +1,6 @@
# Music Brick # Music Brick
## Introduction @unplugged ## Introduction @fullscreen
Transform your @boardname@ into a musical instrument! Transform your @boardname@ into a musical instrument!

View File

@ -1,10 +1,10 @@
# Object Near? # Object Near?
## Introduction @unplugged ## Introduction @fullscreen
The digital Ultrasonic Sensor generates sound waves and reads their echoes to detect and measure distance from objects in centimeters. Build a program that will detect when an object is nearby. The digital Ultrasonic Sensor generates sound waves and reads their echoes to detect and measure distance from objects in centimeters. Build a program that will detect when an object is nearby.
![Simulator with brick and ultrasonic sensor](/static/tutorials/object-near/ultrasonic-near.gif) ![Simualtor with brick and ultrasonic sensor](/static/tutorials/object-near/ultrasonic-near.gif)
## Step 1 ## Step 1

View File

@ -1,6 +1,6 @@
# Red Light, Green Light # Red Light, Green Light
## Introduction @unplugged ## Introduction @fullscreen
Use the ``||sensors:pause color sensor||`` block to play Red Light, Green Light with your @boardname@ robot! Use the ``||sensors:pause color sensor||`` block to play Red Light, Green Light with your @boardname@ robot!

View File

@ -1,6 +1,6 @@
# Run motors # Run motors
## Introduction @unplugged ## Introduction @fullscreen
Use the buttons to start and stop the large and medium motors. Use the buttons to start and stop the large and medium motors.
@ -66,7 +66,8 @@ brick.buttonDown.onEvent(ButtonEvent.Pressed, function () {
## Step 5 ## Step 5
Now, lets add a Medium motor, and tell it how many rotations we want it to run for. Open the ``||brick:Brick||`` Toolbox drawer. Drag out **2** ``|brick:on button||`` blocks. In the ``||brick:on button||`` blocks, use the drop-down menu to select the ``left`` and ``right`` buttons. Now, lets add a Medium motor, and tell it how many rotations we want it to run for.
Open the ``||brick:Brick||`` Toolbox drawer. Drag out **2** ``|brick:on button||`` blocks. In the ``||brick:on button||`` blocks, use the drop-down menu to select the ``left`` and ``right`` buttons.
```blocks ```blocks
brick.buttonUp.onEvent(ButtonEvent.Pressed, function () { brick.buttonUp.onEvent(ButtonEvent.Pressed, function () {
@ -104,11 +105,9 @@ brick.buttonRight.onEvent(ButtonEvent.Pressed, function () {
## Step 7 ## Step 7
For the ``||motors:run||`` blocks that are in the ``||brick:on button left||`` and ``||brick:on button right||`` blocks, use the drop-down menu to select a ``medium motor`` on port ``D``. For the ``||motors:run||`` blocks that are in the ``||brick:on button left||`` and ``||brick:on button right||`` blocks, use the drop-down menu to select ``medium motor D``.
| | | | ![Select motor on a port dropdown](/static/tutorials/run-motors/run-motor-dropdown.png)
|-|-|-|
| ![Select a motor type dropdown](/static/tutorials/run-motors/run-motor-dropdown.png) | | | ![Select a motor port dropdown](/static/tutorials/run-motors/motor-port-dropdown.png) |
```blocks ```blocks
brick.buttonUp.onEvent(ButtonEvent.Pressed, function () { brick.buttonUp.onEvent(ButtonEvent.Pressed, function () {
@ -204,7 +203,7 @@ brick.buttonEnter.onEvent(ButtonEvent.Pressed, function () {
}) })
``` ```
## Step 12 # Step 12
Open the ``||motors:Motors||`` Toolbox drawer. Drag out a ``||motors:stop all motors||`` block onto the Workspace, and drop into the ``||brick:on button||`` enter block. Open the ``||motors:Motors||`` Toolbox drawer. Drag out a ``||motors:stop all motors||`` block onto the Workspace, and drop into the ``||brick:on button||`` enter block.

View File

@ -1,6 +1,6 @@
# Security Alert # Security Alert
## Introduction @unplugged ## Introduction @fullscreen
The Infrared Sensor uses infrared light waves to detect proximity to the robot. Build an security alert using the infrared sensor. The Infrared Sensor uses infrared light waves to detect proximity to the robot. Build an security alert using the infrared sensor.

View File

@ -1,6 +1,6 @@
# Using Touch Sensor Values # Using Touch Sensor Values
## Introduction @unplugged ## Introduction @fullscreen
Use the Touch sensor value to stop a running motor. Use the Touch sensor value to stop a running motor.

View File

@ -1,6 +1,6 @@
# Touch to Run # Touch to Run
## Introduction @unplugged ## Introduction @fullscreen
Use the Touch sensor to run a motor. Use the Touch sensor to run a motor.

View File

@ -1,6 +1,6 @@
# Wake Up! # Wake Up!
## Introduction @unplugged ## Introduction @fullscreen
Show different moods on your @boardname@. Show different moods on your @boardname@.

View File

@ -1,6 +1,6 @@
# What Animal Am I? # What Animal Am I?
## Introduction @unplugged ## Introduction @fullscreen
Create different animal effects with your @boardname@. Create different animal effects with your @boardname@.
@ -10,7 +10,7 @@ Create different animal effects with your @boardname@.
Open the ``||brick:Brick||`` Toolbox drawer. Drag out a ``||brick:show string||`` block from the **Screen** section onto the Workspace, and drop it into the ``||loops:on start||`` block. You should hear and see the block click into place. Open the ``||brick:Brick||`` Toolbox drawer. Drag out a ``||brick:show string||`` block from the **Screen** section onto the Workspace, and drop it into the ``||loops:on start||`` block. You should hear and see the block click into place.
```blocks ```block
brick.showString("Hello world", 1) brick.showString("Hello world", 1)
``` ```

View File

@ -1,6 +1,6 @@
# What Color is it? # What Color is it?
## Introduction @unplugged ## Introduction @fullscreen
Use the Color sensor to detect different colors. Use the Color sensor to detect different colors.
@ -111,7 +111,7 @@ brick.showString("What color?", 1)
## Step 8 ## Step 8
In the ``||music:play sound effect||`` blocks, use the drop-down menu to select the ``colors red``, ``colors green``, and ``colors yellow`` sound effects corresponding to the different colors detected. In the ``||music::play sound effect||`` blocks, use the drop-down menu to select the ``colors red``, ``colors green``, and ``colors yellow`` sound effects corresponding to the different colors detected.
```blocks ```blocks
sensors.color3.onColorDetected(ColorSensorColor.Red, function () { sensors.color3.onColorDetected(ColorSensorColor.Red, function () {

View File

@ -25,55 +25,41 @@ pxt.editor.initExtensionsAsync = function (opts: pxt.editor.ExtensionOptions): P
const saveAs = pxt.BrowserUtils.hasSaveAs(); const saveAs = pxt.BrowserUtils.hasSaveAs();
const htmlBody = ` const htmlBody = `
<div class="ui grid stackable"> <div class="ui two column grid stackable">
<div class="column five wide" style="background-color: #E2E2E2;"> <div class="column">
<div class="ui header">${lf("First time here?")}</div> <div class="ui">
<strong style="font-size:small">${lf("You must have version 1.10 or above of the firmware")}</strong> <div class="image">
<div style="justify-content: center;display: flex;padding: 1rem;"> <img class="ui medium rounded image" src="./static/download/connect.svg" style="height:109px;width:261px;margin-bottom:1rem;">
<img class="ui image" src="./static/download/firmware.png" style="height:100px;" /> </div>
</div> <div class="content">
<a href="/troubleshoot" target="_blank">${lf("Check your firmware version here and update if needed")}</a> <div class="description">
</div> <span class="ui blue circular label">1</span>
<div class="column eleven wide"> <strong>${lf("Connect the EV3 brick to your computer with a USB cable.")}</strong>
<div class="ui grid">
<div class="row">
<div class="column">
<div class="ui two column grid padded">
<div class="column">
<div class="ui">
<div class="image">
<img class="ui medium rounded image" src="./static/download/connect.svg" style="height:109px;width:261px;margin-bottom:1rem;" />
</div>
<div class="content">
<div class="description">
<span class="ui yellow circular label">1</span>
<strong>${lf("Connect the EV3 to your computer with a USB cable")}</strong>
<br />
<span style="font-size:small">${lf("Use the miniUSB port on the top of the EV3 brick")}</span>
</div>
</div>
</div>
</div>
<div class="column">
<div class="ui">
<div class="image">
<img class="ui medium rounded image" src="./static/download/transfer.svg" style="height:109px;width:261px;margin-bottom:1rem;" />
</div>
<div class="content">
<div class="description">
<span class="ui yellow circular label">2</span>
<strong>${lf("Move the .uf2 file to the EV3 brick")}</strong>
<br />
<span style="font-size:small">${lf("Locate the downloaded .uf2 file and drag it to the EV3 USB drive")}</span>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="column">
<div class="ui">
<div class="image">
<img class="ui medium rounded image" src="./static/download/transfer.svg" style="height:109px;width:261px;margin-bottom:1rem;">
</div>
<div class="content">
<div class="description">
<span class="ui blue circular label">2</span>
${lf("Locate the downloaded .uf2 file and drag it to the EV3 drive")}
</div>
</div>
</div>
</div>
</div>
<div class="ui one column grid">
<div class="column">
<a href="/troubleshoot" target="_blank" class="ui segment container" style="background:#ffdb90">
<i class="icon exclamation circle large" aria-hidden="true"></i>
${lf("Did you prepare your EV3 brick for MakeCode?")}
</a>
</div>
</div>`; </div>`;
return confirmAsync({ return confirmAsync({
@ -83,7 +69,6 @@ pxt.editor.initExtensionsAsync = function (opts: pxt.editor.ExtensionOptions): P
hideCancel: true, hideCancel: true,
hideAgree: false, hideAgree: false,
agreeLbl: lf("I got it"), agreeLbl: lf("I got it"),
className: 'downloaddialog',
buttons: [downloadAgain ? { buttons: [downloadAgain ? {
label: fn, label: fn,
icon: "download", icon: "download",

View File

@ -24,7 +24,6 @@ def projectName = "pxt-ev3"
credentialsBinding { credentialsBinding {
string("PXT_ACCESS_TOKEN", "pxt_access_token") string("PXT_ACCESS_TOKEN", "pxt_access_token")
string("PXT_RELEASE_REPO", "pxt_release_repo_ev3") string("PXT_RELEASE_REPO", "pxt_release_repo_ev3")
string("CROWDIN_KEY", "pxt_crowdin_key")
} }
} }
} }

View File

@ -185,7 +185,7 @@ namespace sensors {
* @param handler the code to run when detected * @param handler the code to run when detected
*/ */
//% help=sensors/color-sensor/on-light-detected //% help=sensors/color-sensor/on-light-detected
//% block="on **color sensor** %this|%mode|%condition" //% block="on **color sensor** %this|detected %mode|%condition"
//% blockId=colorOnLightDetected //% blockId=colorOnLightDetected
//% parts="colorsensor" //% parts="colorsensor"
//% blockNamespace=sensors //% blockNamespace=sensors
@ -202,7 +202,7 @@ namespace sensors {
* @param color the color to detect * @param color the color to detect
*/ */
//% help=sensors/color-sensor/pause-until-light-detected //% help=sensors/color-sensor/pause-until-light-detected
//% block="pause until **color sensor** %this|%mode|%condition" //% block="pause until **color sensor** %this|detected %mode|%condition"
//% blockId=colorPauseUntilLightDetected //% blockId=colorPauseUntilLightDetected
//% parts="colorsensor" //% parts="colorsensor"
//% blockNamespace=sensors //% blockNamespace=sensors

View File

@ -164,7 +164,7 @@ void playTone(int frequency, int ms) {
} }
/** /**
* Stop all sounds. * Play a tone through the speaker for some amount of time.
*/ */
//% help=music/stop-all-sounds //% help=music/stop-all-sounds
//% blockId=music_stop_all_sounds block="stop all sounds" //% blockId=music_stop_all_sounds block="stop all sounds"

View File

@ -26,7 +26,7 @@ declare namespace music {
function playTone(frequency: int32, ms: int32): void; function playTone(frequency: int32, ms: int32): void;
/** /**
* Stop all sounds. * Play a tone through the speaker for some amount of time.
*/ */
//% help=music/stop-all-sounds //% help=music/stop-all-sounds
//% blockId=music_stop_all_sounds block="stop all sounds" //% blockId=music_stop_all_sounds block="stop all sounds"

70
package-lock.json generated
View File

@ -1,25 +1,25 @@
{ {
"name": "pxt-ev3", "name": "pxt-ev3",
"version": "0.2.2", "version": "0.1.37",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@types/bluebird": { "@types/bluebird": {
"version": "2.0.33", "version": "2.0.33",
"resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-2.0.33.tgz", "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-2.0.33.tgz",
"integrity": "sha1-J3wmM9z1qAgDvXGHEMK4VyWWYoU=", "integrity": "sha512-iq7ss0qO31YCYeLEPrBoVMDLw1dBotOS7394a+Dj2CSvQNjQfJvryVo9es5ghvQZmIqO7Q0tlCe9YpwTZKOoXg==",
"dev": true "dev": true
}, },
"@types/marked": { "@types/marked": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz",
"integrity": "sha1-WDwiPdMzhaHdoBqvd7DNBBHEtSQ=", "integrity": "sha512-CSf9YWJdX1DkTNu9zcNtdCcn6hkRtB5ILjbhRId4ZOQqx30fXmdecuaXhugQL6eyrhuXtaHJ7PHI+Vm7k9ZJjg==",
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "8.0.53", "version": "8.0.53",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.53.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.53.tgz",
"integrity": "sha1-OWs1r4JvpmqtRyyMt7jV4nf05tg=", "integrity": "sha512-54Dm6NwYeiSQmRB1BLXKr5GELi0wFapR1npi8bnZhEcu84d/yQKqnwwXQ56hZ0RUbTG6L5nqDZaN3dgByQXQRQ==",
"dev": true "dev": true
}, },
"JSONStream": { "JSONStream": {
@ -34,7 +34,7 @@
"abbrev": { "abbrev": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true "dev": true
}, },
"acorn": { "acorn": {
@ -361,7 +361,7 @@
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
}, },
"are-we-there-yet": { "are-we-there-yet": {
"version": "1.1.4", "version": "1.1.4",
@ -499,7 +499,7 @@
"base64-js": { "base64-js": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
"integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=" "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw=="
}, },
"bcrypt-pbkdf": { "bcrypt-pbkdf": {
"version": "1.0.1", "version": "1.0.1",
@ -763,7 +763,7 @@
"bufferstreams": { "bufferstreams": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz", "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz",
"integrity": "sha1-qFFawCT6kOj6fVjBGxPeofKKvnI=", "integrity": "sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==",
"dev": true, "dev": true,
"requires": { "requires": {
"readable-stream": "2.3.3" "readable-stream": "2.3.3"
@ -864,7 +864,7 @@
"cipher-base": { "cipher-base": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"requires": { "requires": {
"inherits": "2.0.3", "inherits": "2.0.3",
"safe-buffer": "5.1.1" "safe-buffer": "5.1.1"
@ -873,7 +873,7 @@
"clap": { "clap": {
"version": "1.2.3", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
"integrity": "sha1-TzZ0WzIAhJJVf0ZBLWbVDLmbzlE=", "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
"requires": { "requires": {
"chalk": "1.1.3" "chalk": "1.1.3"
} }
@ -1544,7 +1544,7 @@
"glob": { "glob": {
"version": "7.1.2", "version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": { "requires": {
"fs.realpath": "1.0.0", "fs.realpath": "1.0.0",
"inflight": "1.0.6", "inflight": "1.0.6",
@ -1654,7 +1654,7 @@
"hash.js": { "hash.js": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
"integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
"requires": { "requires": {
"inherits": "2.0.3", "inherits": "2.0.3",
"minimalistic-assert": "1.0.0" "minimalistic-assert": "1.0.0"
@ -2277,11 +2277,6 @@
"object-visit": "1.0.1" "object-visit": "1.0.1"
} }
}, },
"marked": {
"version": "0.3.19",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz",
"integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg=="
},
"math-expression-evaluator": { "math-expression-evaluator": {
"version": "1.2.17", "version": "1.2.17",
"resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
@ -2354,7 +2349,7 @@
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": { "requires": {
"brace-expansion": "1.1.8" "brace-expansion": "1.1.8"
} }
@ -2546,7 +2541,7 @@
"npmlog": { "npmlog": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": { "requires": {
"are-we-there-yet": "1.1.4", "are-we-there-yet": "1.1.4",
"console-control-strings": "1.1.0", "console-control-strings": "1.1.0",
@ -3284,17 +3279,19 @@
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
}, },
"pxt-common-packages": { "pxt-common-packages": {
"version": "0.22.2", "version": "0.22.1",
"resolved": "https://registry.npmjs.org/pxt-common-packages/-/pxt-common-packages-0.22.2.tgz", "resolved": "https://registry.npmjs.org/pxt-common-packages/-/pxt-common-packages-0.22.1.tgz",
"integrity": "sha512-bndrU1Aqig0O504QuaQYICrSQfQF7QFBoOArl0hdY7NWfq2yNJu8CHoW2oKJm+r+LTz150D4XuHjCIGLEv2MBQ==", "integrity": "sha512-GdqA/7tk1OQbkeMeCiPG4oRocV7lMb9HCya6gp5RuCPLKNpbLaCDHyLsXQGR8sXJOoFqrLjUWaQILbMKhCGNMQ==",
"requires": { "requires": {
"pxt-core": "3.12.18" "autoprefixer": "6.7.7",
"pxt-core": "3.12.12",
"rtlcss": "2.2.1"
} }
}, },
"pxt-core": { "pxt-core": {
"version": "3.12.18", "version": "3.12.12",
"resolved": "https://registry.npmjs.org/pxt-core/-/pxt-core-3.12.18.tgz", "resolved": "https://registry.npmjs.org/pxt-core/-/pxt-core-3.12.12.tgz",
"integrity": "sha512-Dd1XHjMjSR6gqf8B2LB7mtppD+VI49wckd/jCK8dHZcjb7RbngqTnfjOuHcDbXfSrvDrGFNzBhYvYaLf70AV7g==", "integrity": "sha512-o/u+Qxt2Xuid8f6f2KHDYnJ7qcxOvcbiUqxoOMFZrQkgnME7Pekly+mQPn2w1kjpO9M84BX70Mi9ld8dY/nLRg==",
"requires": { "requires": {
"bluebird": "3.5.1", "bluebird": "3.5.1",
"browserify": "16.2.0", "browserify": "16.2.0",
@ -3303,7 +3300,6 @@
"keytar": "4.2.1", "keytar": "4.2.1",
"less": "2.7.3", "less": "2.7.3",
"lzma": "2.3.2", "lzma": "2.3.2",
"marked": "0.3.19",
"node-hid": "0.5.7", "node-hid": "0.5.7",
"pngjs": "3.3.2", "pngjs": "3.3.2",
"postcss": "6.0.21", "postcss": "6.0.21",
@ -3472,7 +3468,7 @@
"readable-stream": { "readable-stream": {
"version": "2.3.3", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
"integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
"requires": { "requires": {
"core-util-is": "1.0.2", "core-util-is": "1.0.2",
"inherits": "2.0.3", "inherits": "2.0.3",
@ -3486,7 +3482,7 @@
"string_decoder": { "string_decoder": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": { "requires": {
"safe-buffer": "5.1.1" "safe-buffer": "5.1.1"
} }
@ -3731,12 +3727,12 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
}, },
"sax": { "sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
}, },
"semantic-ui-less": { "semantic-ui-less": {
"version": "2.2.14", "version": "2.2.14",
@ -4048,7 +4044,7 @@
"stream-http": { "stream-http": {
"version": "2.7.2", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
"integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
"requires": { "requires": {
"builtin-status-codes": "3.0.0", "builtin-status-codes": "3.0.0",
"inherits": "2.0.3", "inherits": "2.0.3",
@ -4199,7 +4195,7 @@
"commander": { "commander": {
"version": "2.12.2", "version": "2.12.2",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
"integrity": "sha1-D1lGxCftnsDZGka7ne9T5UZQ5VU=", "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
"dev": true "dev": true
} }
} }
@ -4359,7 +4355,7 @@
"pako": { "pako": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
"integrity": "sha1-AQEhG6pwxLykoPY/Igbpe3368lg=", "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
"dev": true "dev": true
} }
} }
@ -4514,7 +4510,7 @@
"uuid": { "uuid": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
"integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
}, },
"varstream": { "varstream": {
"version": "0.3.2", "version": "0.3.2",
@ -4610,7 +4606,7 @@
"which": { "which": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"dev": true, "dev": true,
"requires": { "requires": {
"isexe": "2.0.0" "isexe": "2.0.0"
@ -4619,7 +4615,7 @@
"wide-align": { "wide-align": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
"integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
"requires": { "requires": {
"string-width": "1.0.2" "string-width": "1.0.2"
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "pxt-ev3", "name": "pxt-ev3",
"version": "0.2.2", "version": "0.1.37",
"description": "LEGO MINDSTORMS EV3 for Microsoft MakeCode", "description": "LEGO MINDSTORMS EV3 for Microsoft MakeCode",
"private": true, "private": true,
"keywords": [ "keywords": [
@ -30,6 +30,8 @@
"docs/*/*.md", "docs/*/*.md",
"docs/*/*/*.md" "docs/*/*/*.md"
], ],
"main": "built/pxtrequire.js",
"typings": "built/pxtrequire.d.ts",
"devDependencies": { "devDependencies": {
"typescript": "2.6.1", "typescript": "2.6.1",
"semantic-ui-less": "2.2.14", "semantic-ui-less": "2.2.14",
@ -39,8 +41,8 @@
"webfonts-generator": "^0.4.0" "webfonts-generator": "^0.4.0"
}, },
"dependencies": { "dependencies": {
"pxt-common-packages": "0.22.7", "pxt-common-packages": "0.22.1",
"pxt-core": "3.13.30" "pxt-core": "3.12.16"
}, },
"scripts": { "scripts": {
"test": "node node_modules/pxt-core/built/pxt.js travis" "test": "node node_modules/pxt-core/built/pxt.js travis"

View File

@ -81,6 +81,7 @@
"accentColor": "#0089BF", "accentColor": "#0089BF",
"logoUrl": "https://education.lego.com/", "logoUrl": "https://education.lego.com/",
"logo": "./static/lego_education_logo.png", "logo": "./static/lego_education_logo.png",
"highContrastLogo": "./static/lego_education_logo_white.png",
"docsLogo": "./static/lego-logo.svg", "docsLogo": "./static/lego-logo.svg",
"portraitLogo": "./static/lego-logo.svg", "portraitLogo": "./static/lego-logo.svg",
"footerLogo": "./static/lego-logo.svg", "footerLogo": "./static/lego-logo.svg",
@ -98,8 +99,6 @@
"betaUrl": "https://makecode.legoeducation.com/about", "betaUrl": "https://makecode.legoeducation.com/about",
"driveDisplayName": "EV3", "driveDisplayName": "EV3",
"boardName": "LEGO® MINDSTORMS® Education EV3", "boardName": "LEGO® MINDSTORMS® Education EV3",
"copyrightText": "LEGO, the LEGO logo, MINDSTORMS and the MINDSTORMS EV3 logo are trademarks and/ or copyrights of the LEGO Group. ©2018 The LEGO Group. All rights reserved.",
"crowdinProject": "kindscript",
"selectLanguage": true, "selectLanguage": true,
"availableLocales": [ "availableLocales": [
"en" "en"
@ -108,11 +107,11 @@
"docMenu": [ "docMenu": [
{ {
"name": "Support", "name": "Support",
"path": "https://www.lego.com/service/" "path": "http://service.lego.com"
}, },
{ {
"name": "Troubleshoot", "name": "Upgrade Firmware",
"path": "/troubleshoot" "path": "https://ev3manager.education.lego.com/"
}, },
{ {
"name": "Blocks", "name": "Blocks",
@ -171,8 +170,7 @@
}, },
"monacoColors": { "monacoColors": {
"editor.background": "#f9f9f9" "editor.background": "#f9f9f9"
}, }
"fileNameExclusiveFilter": "[^a-zA-Z]"
}, },
"ignoreDocsErrors": true "ignoreDocsErrors": true
} }

View File

@ -17,8 +17,7 @@ namespace pxsim {
private speedCmdTime: number; private speedCmdTime: number;
private _synchedMotor: MotorNode; // non-null if synchronized private _synchedMotor: MotorNode; // non-null if synchronized
private manualReferenceAngle: number = undefined; private manualSpeed: number = undefined;
private manualAngle: number = undefined;
constructor(port: number, large: boolean) { constructor(port: number, large: boolean) {
super(port); super(port);
@ -104,18 +103,14 @@ namespace pxsim {
} }
manualMotorDown() { manualMotorDown() {
this.manualReferenceAngle = this.angle;
this.manualAngle = 0;
} }
// position: 0, 360 manualMotorMove(speed: number) {
manualMotorAngle(angle: number) { this.manualSpeed = speed;
this.manualAngle = angle;
} }
manualMotorUp() { manualMotorUp() {
delete this.manualReferenceAngle; this.manualSpeed = undefined;
delete this.manualAngle;
} }
updateState(elapsed: number) { updateState(elapsed: number) {
@ -131,7 +126,7 @@ namespace pxsim {
} }
private updateStateStep(elapsed: number) { private updateStateStep(elapsed: number) {
if (this.manualAngle === undefined) { if (!this.manualSpeed) {
// compute new speed // compute new speed
switch (this.speedCmd) { switch (this.speedCmd) {
case DAL.opOutputSpeed: case DAL.opOutputSpeed:
@ -207,11 +202,7 @@ namespace pxsim {
} }
} }
else { else {
// the user is holding the handle - so position is the angle this.speed = this.manualSpeed;
this.speed = 0;
// rotate by the desired angle change
this.angle = this.manualReferenceAngle + this.manualAngle;
this.setChangedState();
} }
this.speed = Math.round(this.speed); // integer only this.speed = Math.round(this.speed); // integer only
@ -226,8 +217,7 @@ namespace pxsim {
// if the motor was stopped or there are no speed commands, // if the motor was stopped or there are no speed commands,
// let it coast to speed 0 // let it coast to speed 0
if ((this.manualReferenceAngle === undefined) if (this.speed && !(this.started || this.speedCmd)) {
&& this.speed && !(this.started || this.speedCmd)) {
// decay speed 5% per tick // decay speed 5% per tick
this.speed = Math.round(Math.max(0, Math.abs(this.speed) - 10) * sign(this.speed)); this.speed = Math.round(Math.max(0, Math.abs(this.speed) - 10) * sign(this.speed));
} }

View File

@ -101,13 +101,10 @@ namespace pxsim.visuals {
export const SCREEN_HEIGHT = 128; export const SCREEN_HEIGHT = 128;
export interface IBoardTheme { export interface IBoardTheme {
accent?: string; accent?: string;
highContrast?: boolean;
display?: string; display?: string;
buttonOuter?: string; buttonOuter?: string;
buttonUps: string[]; buttonUps: string[];
buttonDown?: string; buttonDown?: string;
wireColor?: string;
backgroundViewColor?: string;
} }
export var themes: IBoardTheme[] = ["#3ADCFE"].map(accent => { export var themes: IBoardTheme[] = ["#3ADCFE"].map(accent => {
@ -115,21 +112,12 @@ namespace pxsim.visuals {
accent: accent, accent: accent,
buttonOuter: "#979797", buttonOuter: "#979797",
buttonUps: ["#a8aaa8", "#393939", "#a8aaa8", "#a8aaa8", "#a8aaa8", '#a8aaa8'], buttonUps: ["#a8aaa8", "#393939", "#a8aaa8", "#a8aaa8", "#a8aaa8", '#a8aaa8'],
buttonDown: "#000", buttonDown: "#000"
wireColor: '#5A5A5A',
backgroundViewColor: '#d6edff'
} }
}); });
export function randomTheme(highContrast?: boolean, light?: boolean): IBoardTheme { export function randomTheme(highContrast?: boolean, light?: boolean): IBoardTheme {
let theme = themes[Math.floor(Math.random() * themes.length)]; return themes[Math.floor(Math.random() * themes.length)];
if (highContrast) {
theme = JSON.parse(JSON.stringify(theme)) as IBoardTheme;
theme.highContrast = true;
theme.wireColor = '#ffffff';
theme.backgroundViewColor = '#ffffff';
}
return theme;
} }
export interface IBoardProps { export interface IBoardProps {
@ -346,7 +334,7 @@ namespace pxsim.visuals {
this.style.textContent = EV3_STYLE; this.style.textContent = EV3_STYLE;
this.layoutView = new LayoutView(); this.layoutView = new LayoutView();
this.layoutView.inject(this.element, this.props.theme); this.layoutView.inject(this.element);
const brick = new BrickViewPortrait(-1); const brick = new BrickViewPortrait(-1);
this.layoutView.setBrick(brick); this.layoutView.setBrick(brick);

View File

@ -13,7 +13,7 @@ namespace pxsim.visuals {
'x': 0, 'y': 0, 'x': 0, 'y': 0,
'width': '100%', 'width': '100%',
'height': '100%', 'height': '100%',
'style': `fill: ${this.theme.backgroundViewColor};stroke: #A8A9A8; stroke-width: 3px; stroke-opacity: 0.2` 'style': `fill: #d6edff; stroke: #A8A9A8; stroke-width: 3px; stroke-opacity: 0.2`
}) as SVGRectElement; }) as SVGRectElement;
return this.backgroundGroup; return this.backgroundGroup;
} }

View File

@ -13,7 +13,7 @@ namespace pxsim.visuals {
private static SLIDER_RADIUS = 100; private static SLIDER_RADIUS = 100;
private internalAngle: number = 0; private internalSpeed: number = 0;
getInnerView(parent: SVGSVGElement, globalDefs: SVGDefsElement) { getInnerView(parent: SVGSVGElement, globalDefs: SVGDefsElement) {
this.group = svg.elt("g") as SVGGElement; this.group = svg.elt("g") as SVGGElement;
@ -102,9 +102,9 @@ namespace pxsim.visuals {
} else if (dx >= 0 && dy <= 0) { } else if (dx >= 0 && dy <= 0) {
deg = 90 - deg; deg = 90 - deg;
} }
const value = Math.abs(Math.ceil((deg % 360))); const value = Math.abs(Math.ceil((deg % 360) / 360 * this.getMax()));
this.internalAngle = value; this.internalSpeed = value;
this.updateDial(); this.updateDial();
this.prevVal = deg; this.prevVal = deg;
@ -119,7 +119,7 @@ namespace pxsim.visuals {
private handleSliderMove() { private handleSliderMove() {
this.dial.setAttribute('cursor', '-webkit-grabbing'); this.dial.setAttribute('cursor', '-webkit-grabbing');
const state = this.state; const state = this.state;
state.manualMotorAngle(this.internalAngle); state.manualMotorMove(this.internalSpeed);
} }
private handleSliderUp() { private handleSliderUp() {
@ -127,18 +127,19 @@ namespace pxsim.visuals {
const state = this.state; const state = this.state;
state.manualMotorUp(); state.manualMotorUp();
this.internalAngle = 0; this.internalSpeed = 0;
this.updateDial(); this.updateDial();
} }
private updateDial() { private updateDial() {
let angle = this.internalAngle; let speed = this.internalSpeed;
// Update dial position // Update dial position
const deg = speed / this.getMax() * 360; // degrees
const radius = MotorSliderControl.SLIDER_RADIUS; const radius = MotorSliderControl.SLIDER_RADIUS;
const dialRadius = 5; const dialRadius = 5;
const x = Math.ceil((radius - dialRadius) * Math.sin(angle * Math.PI / 180)) + radius; const x = Math.ceil((radius - dialRadius) * Math.sin(deg * Math.PI / 180)) + radius;
const y = Math.ceil((radius - dialRadius) * -Math.cos(angle * Math.PI / 180)) + radius; const y = Math.ceil((radius - dialRadius) * -Math.cos(deg * Math.PI / 180)) + radius;
this.dial.setAttribute('transform', `translate(${x}, ${y})`); this.dial.setAttribute('transform', `translate(${x}, ${y})`);
} }
@ -147,10 +148,18 @@ namespace pxsim.visuals {
return; return;
} }
const node = this.state; const node = this.state;
const angle = node.getAngle() % 360; const speed = node.getSpeed();
// Update reporter // Update reporter
this.reporter.textContent = `${angle}°`; this.reporter.textContent = `${speed}`;
}
private getMin() {
return 0;
}
private getMax() {
return 100;
} }
} }

View File

@ -12,7 +12,6 @@ namespace pxsim.visuals {
export const MODULE_INNER_PADDING_RATIO = 1 / 35; export const MODULE_INNER_PADDING_RATIO = 1 / 35;
export const MAX_MODULE_WIDTH = 100; export const MAX_MODULE_WIDTH = 100;
export const MIN_MODULE_HEIGHT = 40;
export const CLOSE_ICON_GAP_MULTIPLIER = 0.3; export const CLOSE_ICON_GAP_MULTIPLIER = 0.3;
@ -79,8 +78,8 @@ namespace pxsim.visuals {
public setBrick(brick: BrickView) { public setBrick(brick: BrickView) {
this.brick = brick; this.brick = brick;
this.brick.inject(this.scrollGroup, this.theme); this.brick.inject(this.scrollGroup);
this.brickLandscape.inject(this.scrollGroup, this.theme); this.brickLandscape.inject(this.scrollGroup);
this.brick.setSelected(false); this.brick.setSelected(false);
this.brickLandscape.setSelected(true); this.brickLandscape.setSelected(true);
this.brickLandscape.setVisible(false); this.brickLandscape.setVisible(false);
@ -212,16 +211,16 @@ namespace pxsim.visuals {
// Inject all wires // Inject all wires
for (let port = 0; port < DAL.NUM_OUTPUTS; port++) { for (let port = 0; port < DAL.NUM_OUTPUTS; port++) {
this.outputWires[port].inject(this.scrollGroup, this.theme); this.outputWires[port].inject(this.scrollGroup);
} }
for (let port = 0; port < DAL.NUM_INPUTS; port++) { for (let port = 0; port < DAL.NUM_INPUTS; port++) {
this.inputWires[port].inject(this.scrollGroup, this.theme); this.inputWires[port].inject(this.scrollGroup);
} }
// Inject all view containers // Inject all view containers
for (let i = 0; i < 4; i++) { for (let i = 0; i < 4; i++) {
this.inputContainers[i].inject(this.scrollGroup, this.theme); this.inputContainers[i].inject(this.scrollGroup);
this.outputContainers[i].inject(this.scrollGroup, this.theme); this.outputContainers[i].inject(this.scrollGroup);
} }
// Inject all ports // Inject all ports
@ -253,12 +252,6 @@ namespace pxsim.visuals {
} }
public updateTheme(theme: IBoardTheme) { public updateTheme(theme: IBoardTheme) {
this.inputWires.forEach(n => {
n.updateTheme(theme);
})
this.outputWires.forEach(n => {
n.updateTheme(theme);
})
this.inputs.forEach(n => { this.inputs.forEach(n => {
n.updateTheme(theme); n.updateTheme(theme);
}) })
@ -379,7 +372,7 @@ namespace pxsim.visuals {
// Translate and resize view // Translate and resize view
view.resize(inputWidth - inputPadding * 2, inputHeight); view.resize(inputWidth - inputPadding * 2, inputHeight);
const viewHeight = Math.max(view.getActualHeight(), MIN_MODULE_HEIGHT); const viewHeight = view.getActualHeight();
view.translate(inputPadding, 0, true); view.translate(inputPadding, 0, true);
// Resize control // Resize control

View File

@ -36,10 +36,7 @@ namespace pxsim.visuals {
private updateSensorLightVisual(color: string) { private updateSensorLightVisual(color: string) {
const sensorHole = this.content.getElementById(this.normalizeId(ColorSensorView.sensor_hole_id)) as SVGCircleElement; const sensorHole = this.content.getElementById(this.normalizeId(ColorSensorView.sensor_hole_id)) as SVGCircleElement;
sensorHole.style.stroke = color; sensorHole.style.fill = color;
if (color != '#ffffff') {
sensorHole.style.strokeWidth = '2px';
}
} }
} }
} }

View File

@ -19,9 +19,8 @@ namespace pxsim.visuals {
public abstract getInnerWidth(): number; public abstract getInnerWidth(): number;
public abstract getInnerHeight(): number; public abstract getInnerHeight(): number;
public inject(parent: SVGElement, theme: IBoardTheme, width?: number, visible = true) { public inject(parent: SVGElement, width?: number, visible = true) {
this.width = width; this.width = width;
this.theme = theme;
parent.appendChild(this.getView()); parent.appendChild(this.getView());
if (visible) { if (visible) {
@ -277,7 +276,7 @@ namespace pxsim.visuals {
} }
public addView(view: View) { public addView(view: View) {
view.inject(this.element, this.theme); view.inject(this.element);
} }
public clear() { public clear() {

View File

@ -41,11 +41,6 @@ namespace pxsim.visuals {
return this.wire; return this.wire;
} }
public updateThemeCore() {
let theme = this.theme;
this.path.setAttribute('stroke', theme.wireColor);
}
updatePath() { updatePath() {
if (!this.hasDimensions) return; if (!this.hasDimensions) return;
const height = this.endY - this.startY; const height = this.endY - this.startY;

View File

@ -15,6 +15,6 @@
"Maker": "maker" "Maker": "maker"
}, },
"electronManifest": { "electronManifest": {
"latest": "v0.1.56" "latest": "v0.1.30"
} }
} }

View File

@ -111,11 +111,9 @@
} }
/* Editor download dialog */ /* Editor download dialog */
.ui.downloaddialog.modal>.content { .ui.button.troubleshoot {
padding: 1rem; background: none !important;
} color: @blue;
.ui.downloaddialog.modal>.actions {
background-color: #FAFAFA;
} }
/* Tutorial */ /* Tutorial */
@ -157,6 +155,22 @@
} }
} }
/** high contrast **/
.hc {
.ui.menu, #downloadArea,
.menubar .ui.menu.fixed .ui.item.editor-menuitem .item.active {
background-color: black !important;
color: white !important;
}
.ui.red.corner.label {
border-color: #d4000d!important;
}
.menubar .ui.menu.fixed .item.editor-menuitem .ui.grid {
border-color: white !important;
}
}
/******************************* /*******************************
Custom icons Custom icons
*******************************/ *******************************/