From dab281a9cbad96f4c86aae095ee4320ecc7bd322 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 12:41:47 -0800 Subject: [PATCH 1/8] including a few icons in block names --- libs/core/_locales/core-strings.json | 40 +++++++++--------- libs/core/icons.jres | 21 +++++++++ libs/core/ir.ts | 10 ++--- libs/core/jres/icons/infraredSensor-icon.png | Bin 0 -> 5043 bytes libs/core/jres/icons/motorLarge-icon.png | Bin 0 -> 5381 bytes libs/core/jres/icons/motorMedium-icon.png | Bin 0 -> 5170 bytes libs/core/jres/icons/touchSensor-icon.png | Bin 0 -> 4904 bytes .../core/jres/icons/ultrasonicSensor-icon.png | Bin 0 -> 5271 bytes libs/core/output.ts | 16 +++---- libs/core/pxt.json | 1 + libs/core/touch.ts | 8 ++-- libs/core/ultrasonic.ts | 12 +++--- 12 files changed, 65 insertions(+), 43 deletions(-) create mode 100644 libs/core/icons.jres create mode 100644 libs/core/jres/icons/infraredSensor-icon.png create mode 100644 libs/core/jres/icons/motorLarge-icon.png create mode 100644 libs/core/jres/icons/motorMedium-icon.png create mode 100644 libs/core/jres/icons/touchSensor-icon.png create mode 100644 libs/core/jres/icons/ultrasonicSensor-icon.png diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index 5292ec55..c4435c68 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -55,14 +55,14 @@ "motors.Motor.speed|block": "%motor|speed", "motors.Motor.stop|block": "stop %motor", "motors.Motor.tachoCount|block": "%motor|tacho count", - "motors.largeMotorA|block": "large motor A", - "motors.largeMotorB|block": "large motor B", - "motors.largeMotorC|block": "large motor C", - "motors.largeMotorD|block": "large motor D", - "motors.mediumMotorA|block": "medium motor A", - "motors.mediumMotorB|block": "medium motor B", - "motors.mediumMotorC|block": "medium motor C", - "motors.mediumMotorD|block": "medium motor D", + "motors.largeMotorA|block": "`icons.motorLarge` A", + "motors.largeMotorB|block": "`icons.motorLarge` B", + "motors.largeMotorC|block": "`icons.motorLarge` C", + "motors.largeMotorD|block": "`icons.motorLarge` D", + "motors.mediumMotorA|block": "`icons.motorMedium` A", + "motors.mediumMotorB|block": "`icons.motorMedium` B", + "motors.mediumMotorC|block": "`icons.motorMedium` C", + "motors.mediumMotorD|block": "`icons.motorMedium` D", "motors.stopAllMotors|block": "stop all motors", "motors|block": "motors", "output|block": "output", @@ -93,23 +93,23 @@ "sensors.gyro2|block": "gyro sensor 2", "sensors.gyro3|block": "gyro sensor 3", "sensors.gyro4|block": "gyro sensor 4", - "sensors.infraredSensor1|block": "infrared sensor 1", - "sensors.infraredSensor2|block": "infrared sensor 2", - "sensors.infraredSensor3|block": "infrared sensor 3", - "sensors.infraredSensor4|block": "infrared sensor 4", + "sensors.infraredSensor1|block": "`icons.infraredSensor` 1", + "sensors.infraredSensor2|block": "`icons.infraredSensor` 2", + "sensors.infraredSensor3|block": "`icons.infraredSensor` 3", + "sensors.infraredSensor4|block": "`icons.infraredSensor` 4", "sensors.remoteButtonBottomLeft|block": "remote button bottom-left", "sensors.remoteButtonBottomRight|block": "remote button bottom-right", "sensors.remoteButtonCenter|block": "remote button center", "sensors.remoteButtonTopLeft|block": "remote button top-left", "sensors.remoteButtonTopRight|block": "remote button top-right", - "sensors.touchSensor1|block": "touch sensor 1", - "sensors.touchSensor2|block": "touch sensor 2", - "sensors.touchSensor3|block": "touch sensor 3", - "sensors.touchSensor4|block": "touch sensor 4", - "sensors.ultrasonic1|block": "ultrasonic sensor 1", - "sensors.ultrasonic2|block": "ultrasonic sensor 2", - "sensors.ultrasonic3|block": "ultrasonic sensor 3", - "sensors.ultrasonic4|block": "ultrasonic sensor 4", + "sensors.touchSensor1|block": "`icons.touchSensor` 1", + "sensors.touchSensor2|block": "`icons.touchSensor` 2", + "sensors.touchSensor3|block": "`icons.touchSensor` 3", + "sensors.touchSensor4|block": "`icons.touchSensor` 4", + "sensors.ultrasonic1|block": "`icons.ultrasonicSensor` 1", + "sensors.ultrasonic2|block": "`icons.ultrasonicSensor` 2", + "sensors.ultrasonic3|block": "`icons.ultrasonicSensor` 3", + "sensors.ultrasonic4|block": "`icons.ultrasonicSensor` 4", "sensors|block": "sensors", "serial|block": "serial", "{id:category}Brick": "Brick", diff --git a/libs/core/icons.jres b/libs/core/icons.jres new file mode 100644 index 00000000..38cf5836 --- /dev/null +++ b/libs/core/icons.jres @@ -0,0 +1,21 @@ +{ + "*": { + "namespace": "icons", + "dataEncoding": "base64" + }, + "ultrasonicSensor": { + "icon": "data:image/png;base64,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" + }, + "infraredSensor": { + "icon": "data:image/png;base64,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" + }, + "motorMedium": { + "icon": "data:image/png;base64,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" + }, + "motorLarge": { + "icon": "data:image/png;base64,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" + }, + "touchSensor": { + "icon": "data:image/png;base64,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" + } +} \ No newline at end of file diff --git a/libs/core/ir.ts b/libs/core/ir.ts index 1e73dd32..db20425a 100644 --- a/libs/core/ir.ts +++ b/libs/core/ir.ts @@ -214,7 +214,7 @@ namespace sensors { //% parts="infraredsensor" //% blockNamespace=sensors //% weight=99 blockGap=8 - //% group="Ultrasonic Sensor" + //% group="Infrared Sensor" wait(event: InfraredSensorEvent) { // TODO } @@ -258,16 +258,16 @@ namespace sensors { } } - //% fixedInstance whenUsed block="infrared sensor 1" + //% fixedInstance whenUsed block="`icons.infraredSensor` 1" export const infraredSensor1: InfraredSensor = new InfraredSensor(1) - //% fixedInstance whenUsed block="infrared sensor 2" + //% fixedInstance whenUsed block="`icons.infraredSensor` 2" export const infraredSensor2: InfraredSensor = new InfraredSensor(2) - //% fixedInstance whenUsed block="infrared sensor 3" + //% fixedInstance whenUsed block="`icons.infraredSensor` 3" export const infraredSensor3: InfraredSensor = new InfraredSensor(3) - //% fixedInstance whenUsed block="infrared sensor 4" + //% fixedInstance whenUsed block="`icons.infraredSensor` 4" export const infraredSensor4: InfraredSensor = new InfraredSensor(4) diff --git a/libs/core/jres/icons/infraredSensor-icon.png b/libs/core/jres/icons/infraredSensor-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7f232861e47cfaae2e7b13197ac4e4dcfdcf2378 GIT binary patch literal 5043 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 literal 0 HcmV?d00001 diff --git a/libs/core/jres/icons/touchSensor-icon.png b/libs/core/jres/icons/touchSensor-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a34d50540e60f308d511a1807c116e1f833c0e7 GIT binary patch literal 4904 zcmV+@6W8pCP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000P6Nkl+K!S%t5kjgc z5<-sWI?9AA)J#%Kx zIeTv&X6(jI(#E0dX)b4P{d=!}t@Zy$l*^S@g%D}2mDAco2rd>1m;?R{JPs_J|7WQ* z%Yg$2kWwP09^(>+{kT49f)?I4N$ADeHFMtgn8j$l(FN8pAjZzvZ#rv&G0^a~$0lqG!O#Z(>bQp#t z5((lsrdF#F1OYQMGmMW3CY@$_dYTts{44$aM~LGXDHTx^5d;;YC}zWk4cv0e z&2)Bl5=9Yl93w8Q`##|Nz`s@n1RTyethFTk1c`*t;NUU#?R%c_@o}`)SZfHwh;q4% z?|a;M<4tVab_1zYiZBc>c01>Qp94PyrdI`|4yL|gb5n*&5b(ZdQS`iKLDNt%w+>{uKu927VUX7HD!2vWQ4xHJq!&U zN2z-E48uBioP#Y}KEkcH-bOB$qgt)voV!@Mo&p{Qj;sm@&S4wr%4E`j;P9bC?Ay1G znVA{1_HeFF=5l#~mX<7c-uY3sZM&gSS&pTB&x>gx#Lt{_k4h=$)~#E2nLq%X#af3{ zisq&!O2s03_Uz%%p~J*+)F5+6xm+QRWA458E9~64lf}hFj4>Evh~pSz4Axq#wHRXt zfQLFeJNuH!q`Pb&OTSrTNF)=a(-{Vj9%c9LU5t%QAZ5Lr=jRu==9*1B_~8BT?gJQO z8+%)fu}c7r*6N!|sXo2xnII+AT8&yY7fphgr>gZ@A2m*p2SOG#wiCFrq)Cyo% z21J0fj)d>=&O75QE-sKrB#5F2-}l+P`5K}qB8ut?L-{_&Qy*s{`T)XHA2| zrVseT6{jYf&2s$s5XEAVWHLn@$N0X-#*G{CeV-_b>S<7l|32HtZg^SraU%Isegb` z>nIebxa!%L(C5lfucGIG!6m7uf9fYVGiRbIH8iHX3o-bas=c1RjhlY(QJ@fs}GWeE4Y#HeNw3;{ryK!N~5)h zl#-TgmbSK5?8y;YOY?vQ^HUqqW$n7*3(atYZ(-+IcUwHPrh}6 zo=x?N4_IZp-`YuD3DI4h+~5>F>AZmQ=2Hz|L{-vLU%9QJJxdi%{QqS z#~RNgVJ&B|OrThQWN3cu%-LU`KJa(z#tR6o(Zi>P{bH%ewbxxoKHrKlbz5p**& zOeVvje;mR&@O>W$Q7S`gYa9Q0{Aq&O(tHe_?zh6u9Dynwn!Y0c*eDi!+s|BX@-Atcs1 zT3T9YYHnh2ae+-EQ|zn+7$=E>3Qg6RtE?mjQbN#9)`#;tS!hx|>aM%) zdO=FrX06>;Di)cYnlSyal02+fz2+5lEc8(1lV|scTuhB=Ol;m<*1dzL~m*$&y zP|Ia;!((Kk7==JOSZ@Uy!C^mUL|e8RuYIdgdpB5l;%Y0Az}vt*Qp&Gs&zqc^on>I) z4Mt9#!a9d;%!_<3OC_i0KJ;P+n0Uu2Dw(&8E} z?xbgl1Skht$5ayjsU3K3W%>RF__Wq~pS6}#Bf|_H9bjSp99nxsQOwZL5Vcxu*+Tff zPcoTW9`(*Sl!M|6FSBs2$Wae|tE>D1|#bPm6E|5WBDa;}cj?7kb|hXr||Y2Y~|(J8&aFxm=-GEM3Z2)wN2aTRZD! zJ*ggTZN7eQZEZUOdvOzfnPcW4@RSh3T5J7sxnhGLxR{|jKPruDdPgRbyM%K_#O9I@ a|8D@F8<0t^_Xq(10000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000TXNkllRV_1>*c)cz45R0ueJWQj?h~3t6&DdB4&O4Kfm`jRGKJ? zF-?=CW74;|+p5-@AF@qrpX+u!q2J#z?#tK?#Y{w#(Nn=|kpg={$3QVC% zBy3u4NEk(!h9-;!ajaJF*$%B%jdrWWmaW^c-ib_WjYi`*c2{RUbGW-J_fR^S+*4~b z5A<|*j>SqZ&Aj>6%hl!Pv?;_dFCuqApFC*w<`Z-JJv5hM`XMDR97k-A1d{KE}zS6fOw~+l1|^T!=ul>e|YQDGKx`3 z{lY-Z2Os`40*L(9{oeB2Hy0Mlh55IB%)r0^$z<}~FB*opYoPZxa+%b=db52tj^nmr z2+#_x!4P0sCNfkgr7#32Eznwn2GcZ=(kGOXd`A}sXh0Kr^(O%G`3~mh<~VWU1UGKn zcu!A;O2r3{jO`gObmc#+l>SAi(Zr$G8%ysa3yT%%^*TdCLr5uk_St87_0?D3^O1DY z+4a61#TU~F>+@?4{~XDx6_MBYZ7KaiyWOT*t>U^ad-v{TX=#bGXU|fpRJiZH`|hAB z2m)HI7R_c8*L8`aFuke6`Kp@``zv+-Pqfx;twAY`QW`^O;N7dt(s4{2dXKqnmpG0| zBoZtvEO7q(c}7P^v2B~HSFcj7RylIy2>E=TYPCwc-6oD>0E7?-VPF^ro%!_VP1D@7 z+;IQev5hU83#lV$y;X+MsfMS&90W3oRs0h`#J_#(xm|8`?$X@cY@+SD7{+QL#qnxm zJ9Ov}Qc5N!Ca^4vv9U3B@7|3N0;LpMYi!%bvMg3sR;btOba!`?N~Ko0Hw1z2Gk0r_ z8?)sX61mM!X0shPfjb+TlI|m}yOQvHe*?to0|rt`UV7;zwr$(S-FM&3l`B^`b?Ow; z)6*P1dX!u)hY*6fxj7~#Cb)L(8ns%DO`A3`GBQG`RAPR9o@>{xF+V?#@3|kzb#$FO za_o~&Zr`!{)XK_js>}zD-T(JXl}f+w`-rtp8ATC^M1ubQeth4jTrT5z9>c@Kq*5t* zdV1*Y?k1T`lFep0bLI>uPo5--A^;kV1~W4=OioTRJv~jM(Le}+W!nUS*D*8o!%sQM zRM5R?^LZ&HxqJtfio(G#ida`+r4%D0BkbS5pRTShu3x{-nKNgwZJWWtLB__$uq+G1 zFbINx`T2QV*Cm}!V_Bzq4xj;X0B(&_XD-|HnV zguoES8Wr)Xj<10ff{h3WV>M#+C}M1Omd9?~;2#ZxOG6zCmKMg#7}gIK7Z>)O9UrIB zXizGZHo`5XM$S#e$BN`>Bbn>TuTPymL|b~;C8&fw@h6P6GH z0a&Kxg-U-el;P{m+S1>~aVT8ZWqNuVA;gBRgkgwM3KhqATEo&3&&<#B@gU%bKv^j+ zXR`!SQms}|N+E>6PNhgTn|#o5_}!Tq9N%Zsw4%Zz$N!?gt6N(^5DeIkxDp*BiL5OCpiDqbX^v@uP^a)#A(Z^V}DPd@YsYN1jJIj_I*&T805@`D7Rd zk=AUj*ZG5$6}D>4w}ATb&;HY~`+w_V)Ly}Q?MGK&eTG==d?AMUwc2v^ndmTgF(R4J9c21CPUNH+%!!{Cb6Q3!1J(d8!ZI3@6+3Eb4F|GmdWIA ze)RjF`0OA3c|uAo)5P*z_f9z$f^@d?Z+y3%@Lc!LLMby{rYxkb7969>H7faiRs$nSa(4?QalqeOGN@u>meQ4K_nQK@7#rM63 z5<(C<4pA~m!uL5L1YvJ4=JDg?`g$qUS||4&xaUuOuZ?3n1c6UyS79=p$xZeb2Qf{P zC=7r0g7wqEC_pUt76%@wFIS&wHEK`0=`>R#BlKl5h*F7`>crFggH?0>a#z6Tt%7Nk;{@0gao+gn-L(XyR@NWCFU>-45v#|6VM(fa4x`o#bL dA9;uU&j9D86(sh|iG~0G002ovPDHLkV1f*~7=i!* literal 0 HcmV?d00001 diff --git a/libs/core/output.ts b/libs/core/output.ts index f3c68e5a..dc912b75 100644 --- a/libs/core/output.ts +++ b/libs/core/output.ts @@ -216,28 +216,28 @@ namespace motors { } } - //% whenUsed fixedInstance block="large motor A" + //% whenUsed fixedInstance block="`icons.motorLarge` A" export const largeMotorA = new Motor(Output.A, true); - //% whenUsed fixedInstance block="large motor B" + //% whenUsed fixedInstance block="`icons.motorLarge` B" export const largeMotorB = new Motor(Output.B, true); - //% whenUsed fixedInstance block="large motor C" + //% whenUsed fixedInstance block="`icons.motorLarge` C" export const largeMotorC = new Motor(Output.C, true); - //% whenUsed fixedInstance block="large motor D" + //% whenUsed fixedInstance block="`icons.motorLarge` D" export const largeMotorD = new Motor(Output.D, true); - //% whenUsed fixedInstance block="medium motor A" + //% whenUsed fixedInstance block="`icons.motorMedium` A" export const mediumMotorA = new Motor(Output.A, false); - //% whenUsed fixedInstance block="medium motor B" + //% whenUsed fixedInstance block="`icons.motorMedium` B" export const mediumMotorB = new Motor(Output.B, false); - //% whenUsed fixedInstance block="medium motor C" + //% whenUsed fixedInstance block="`icons.motorMedium` C" export const mediumMotorC = new Motor(Output.C, false); - //% whenUsed fixedInstance block="medium motor D" + //% whenUsed fixedInstance block="`icons.motorMedium` D" export const mediumMotorD = new Motor(Output.D, false); function reset(out: Output) { diff --git a/libs/core/pxt.json b/libs/core/pxt.json index 24832ada..b21ee1ff 100644 --- a/libs/core/pxt.json +++ b/libs/core/pxt.json @@ -28,6 +28,7 @@ "dal.d.ts", "images.ts", "images.jres", + "icons.jres", "ns.ts" ], "testFiles": [ diff --git a/libs/core/touch.ts b/libs/core/touch.ts index c603fae4..cc9760c4 100644 --- a/libs/core/touch.ts +++ b/libs/core/touch.ts @@ -67,12 +67,12 @@ namespace sensors { } } - //% whenUsed block="touch sensor 1" weight=95 fixedInstance + //% whenUsed block="`icons.touchSensor` 1" weight=95 fixedInstance export const touchSensor1: TouchSensor = new TouchSensor(1) - //% whenUsed block="touch sensor 2" weight=95 fixedInstance + //% whenUsed block="`icons.touchSensor` 2" weight=95 fixedInstance export const touchSensor2: TouchSensor = new TouchSensor(2) - //% whenUsed block="touch sensor 3" weight=95 fixedInstance + //% whenUsed block="`icons.touchSensor` 3" weight=95 fixedInstance export const touchSensor3: TouchSensor = new TouchSensor(3) - //% whenUsed block="touch sensor 4" weight=95 fixedInstance + //% whenUsed block="`icons.touchSensor` 4" weight=95 fixedInstance export const touchSensor4: TouchSensor = new TouchSensor(4) } diff --git a/libs/core/ultrasonic.ts b/libs/core/ultrasonic.ts index fe32a12f..d131e70d 100644 --- a/libs/core/ultrasonic.ts +++ b/libs/core/ultrasonic.ts @@ -85,16 +85,16 @@ namespace sensors { return this.getNumber(NumberFormat.UInt16LE, 0) & 0x0fff; } } - - //% fixedInstance whenUsed block="ultrasonic sensor 4" - export const ultrasonic4: UltraSonicSensor = new UltraSonicSensor(4) - //% fixedInstance whenUsed block="ultrasonic sensor 1" + //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 1" export const ultrasonic1: UltraSonicSensor = new UltraSonicSensor(1) + + //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 4" + export const ultrasonic4: UltraSonicSensor = new UltraSonicSensor(4) - //% fixedInstance whenUsed block="ultrasonic sensor 2" + //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 2" export const ultrasonic2: UltraSonicSensor = new UltraSonicSensor(2) - //% fixedInstance whenUsed block="ultrasonic sensor 3" + //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 3" export const ultrasonic3: UltraSonicSensor = new UltraSonicSensor(3) } From 9437873427f70af21652dc32725239c0a0c82428 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 12:58:37 -0800 Subject: [PATCH 2/8] more images --- libs/core/_locales/core-strings.json | 86 +++++++++++----------- libs/core/color.ts | 20 ++--- libs/core/gyro.ts | 16 ++-- libs/core/icons.jres | 6 ++ libs/core/ir.ts | 16 ++-- libs/core/jres/icons/colorSensor-icon.png | Bin 0 -> 5317 bytes libs/core/jres/icons/gyroSensor-icon.png | Bin 0 -> 4950 bytes libs/core/output.ts | 16 ++-- libs/core/touch.ts | 42 +++++------ libs/core/ultrasonic.ts | 20 ++--- 10 files changed, 114 insertions(+), 108 deletions(-) create mode 100644 libs/core/jres/icons/colorSensor-icon.png create mode 100644 libs/core/jres/icons/gyroSensor-icon.png diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index c4435c68..70acfb9e 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -55,61 +55,61 @@ "motors.Motor.speed|block": "%motor|speed", "motors.Motor.stop|block": "stop %motor", "motors.Motor.tachoCount|block": "%motor|tacho count", - "motors.largeMotorA|block": "`icons.motorLarge` A", - "motors.largeMotorB|block": "`icons.motorLarge` B", - "motors.largeMotorC|block": "`icons.motorLarge` C", - "motors.largeMotorD|block": "`icons.motorLarge` D", - "motors.mediumMotorA|block": "`icons.motorMedium` A", - "motors.mediumMotorB|block": "`icons.motorMedium` B", - "motors.mediumMotorC|block": "`icons.motorMedium` C", - "motors.mediumMotorD|block": "`icons.motorMedium` D", + "motors.largeMotorA|block": "large A", + "motors.largeMotorB|block": "large B", + "motors.largeMotorC|block": "large C", + "motors.largeMotorD|block": "large D", + "motors.mediumMotorA|block": "medium A", + "motors.mediumMotorB|block": "medium B", + "motors.mediumMotorC|block": "medium C", + "motors.mediumMotorD|block": "medium D", "motors.stopAllMotors|block": "stop all motors", "motors|block": "motors", "output|block": "output", "screen|block": "screen", - "sensors.ColorSensor.ambientLight|block": "%color| ambient light", - "sensors.ColorSensor.color|block": "%color| color", - "sensors.ColorSensor.onColorDetected|block": "on %sensor|detected %color", - "sensors.ColorSensor.reflectedLight|block": "%color| reflected light", - "sensors.GyroSensor.angle|block": "%sensor|angle", - "sensors.GyroSensor.rate|block": "%sensor|rotation rate", - "sensors.InfraredSensor.on|block": "on %sensor|%event", - "sensors.InfraredSensor.proximity|block": "%infrared|proximity", - "sensors.InfraredSensor.remoteCommand|block": "%infrared|remote command", - "sensors.InfraredSensor.wait|block": "wait %sensor|for %event", + "sensors.ColorSensor.ambientLight|block": "`icons.colorSensor` %color| ambient light", + "sensors.ColorSensor.color|block": "`icons.colorSensor` %color| color", + "sensors.ColorSensor.onColorDetected|block": "on `icons.colorSensor` %sensor|detected %color", + "sensors.ColorSensor.reflectedLight|block": "`icons.colorSensor` %color| reflected light", + "sensors.GyroSensor.angle|block": "`icons.gyroSensor` %sensor|angle", + "sensors.GyroSensor.rate|block": "`icons.gyroSensor` %sensor|rotation rate", + "sensors.InfraredSensor.on|block": "on `icons.infraredSensor` %sensor|%event", + "sensors.InfraredSensor.proximity|block": "`icons.infraredSensor` %infrared|proximity", + "sensors.InfraredSensor.remoteCommand|block": "`icons.infraredSensor` %infrared|remote command", + "sensors.InfraredSensor.wait|block": "wait `icons.infraredSensor` %sensor|for %event", "sensors.RemoteInfraredBeaconButton.isPressed|block": "%button|is pressed", "sensors.RemoteInfraredBeaconButton.onEvent|block": "on %button|%event", "sensors.RemoteInfraredBeaconButton.wasPressed|block": "%button|was pressed", - "sensors.TouchSensor.isTouched|block": "%sensor|is touched", - "sensors.TouchSensor.onEvent|block": "on %sensor|%event", - "sensors.UltraSonicSensor.distance|block": "%sensor|distance", - "sensors.UltraSonicSensor.on|block": "on %sensor|%event", - "sensors.UltraSonicSensor.wait|block": "wait %sensor|for %event", - "sensors.color1|block": "color sensor 1", - "sensors.color2|block": "color sensor 2", - "sensors.color3|block": "color sensor 3", - "sensors.color4|block": "color sensor 4", - "sensors.gyro1|block": "gyro sensor 1", - "sensors.gyro2|block": "gyro sensor 2", - "sensors.gyro3|block": "gyro sensor 3", - "sensors.gyro4|block": "gyro sensor 4", - "sensors.infraredSensor1|block": "`icons.infraredSensor` 1", - "sensors.infraredSensor2|block": "`icons.infraredSensor` 2", - "sensors.infraredSensor3|block": "`icons.infraredSensor` 3", - "sensors.infraredSensor4|block": "`icons.infraredSensor` 4", + "sensors.TouchSensor.isTouched|block": "`icons.touchSensor` %sensor|is touched", + "sensors.TouchSensor.onEvent|block": "on `icons.touchSensor` %sensor|%event", + "sensors.UltraSonicSensor.distance|block": "`icons.ultrasonicSensor` %sensor|distance", + "sensors.UltraSonicSensor.on|block": "on `icons.ultrasonicSensor` %sensor|%event", + "sensors.UltraSonicSensor.wait|block": "wait `icons.ultrasonicSensor` %sensor|for %event", + "sensors.color1|block": "1", + "sensors.color2|block": "2", + "sensors.color3|block": "3", + "sensors.color4|block": "4", + "sensors.gyro1|block": "1", + "sensors.gyro2|block": "2", + "sensors.gyro3|block": "3", + "sensors.gyro4|block": "4", + "sensors.infraredSensor1|block": "1", + "sensors.infraredSensor2|block": "2", + "sensors.infraredSensor3|block": "3", + "sensors.infraredSensor4|block": "4", "sensors.remoteButtonBottomLeft|block": "remote button bottom-left", "sensors.remoteButtonBottomRight|block": "remote button bottom-right", "sensors.remoteButtonCenter|block": "remote button center", "sensors.remoteButtonTopLeft|block": "remote button top-left", "sensors.remoteButtonTopRight|block": "remote button top-right", - "sensors.touchSensor1|block": "`icons.touchSensor` 1", - "sensors.touchSensor2|block": "`icons.touchSensor` 2", - "sensors.touchSensor3|block": "`icons.touchSensor` 3", - "sensors.touchSensor4|block": "`icons.touchSensor` 4", - "sensors.ultrasonic1|block": "`icons.ultrasonicSensor` 1", - "sensors.ultrasonic2|block": "`icons.ultrasonicSensor` 2", - "sensors.ultrasonic3|block": "`icons.ultrasonicSensor` 3", - "sensors.ultrasonic4|block": "`icons.ultrasonicSensor` 4", + "sensors.touchSensor1|block": "1", + "sensors.touchSensor2|block": "2", + "sensors.touchSensor3|block": "3", + "sensors.touchSensor4|block": "4", + "sensors.ultrasonic1|block": "1", + "sensors.ultrasonic2|block": "2", + "sensors.ultrasonic3|block": "3", + "sensors.ultrasonic4|block": "4", "sensors|block": "sensors", "serial|block": "serial", "{id:category}Brick": "Brick", diff --git a/libs/core/color.ts b/libs/core/color.ts index b334d4a6..77308481 100644 --- a/libs/core/color.ts +++ b/libs/core/color.ts @@ -59,7 +59,7 @@ namespace sensors { * @param handler the code to run when detected */ //% help=input/color/on-color-detected - //% block="on %sensor|detected %color" + //% block="on `icons.colorSensor` %sensor|detected %color" //% blockId=colorOnColorDetected //% parts="colorsensor" //% blockNamespace=sensors @@ -77,7 +77,7 @@ namespace sensors { * @param color the color sensor to query the request */ //% help=input/color/ambient-light - //% block="%color| ambient light" + //% block="`icons.colorSensor` %color| ambient light" //% blockId=colorGetAmbient //% parts="colorsensor" //% blockNamespace=sensors @@ -93,7 +93,7 @@ namespace sensors { * @param color the color sensor to query the request */ //% help=input/color/refelected-light - //% block="%color| reflected light" + //% block="`icons.colorSensor` %color| reflected light" //% blockId=colorGetReflected //% parts="colorsensor" //% blockNamespace=sensors @@ -109,7 +109,7 @@ namespace sensors { * @param color the color sensor to query the request */ //% help=input/color/color - //% block="%color| color" + //% block="`icons.colorSensor` %color| color" //% blockId=colorGetColor //% parts="colorsensor" //% blockNamespace=sensors @@ -121,15 +121,15 @@ namespace sensors { } } - //% whenUsed block="color sensor 3" weight=95 fixedInstance + //% whenUsed block="1" weight=95 fixedInstance + export const color1: ColorSensor = new ColorSensor(1) + + //% whenUsed block="3" weight=90 fixedInstance export const color3: ColorSensor = new ColorSensor(3) - //% whenUsed block="color sensor 1" weight=95 fixedInstance - export const color1: ColorSensor = new ColorSensor(1) - - //% whenUsed block="color sensor 2" weight=95 fixedInstance + //% whenUsed block="2" weight=90 fixedInstance export const color2: ColorSensor = new ColorSensor(2) - //% whenUsed block="color sensor 4" weight=95 fixedInstance + //% whenUsed block="4" weight=90 fixedInstance export const color4: ColorSensor = new ColorSensor(4) } diff --git a/libs/core/gyro.ts b/libs/core/gyro.ts index 74de5b20..2a394cc6 100644 --- a/libs/core/gyro.ts +++ b/libs/core/gyro.ts @@ -24,7 +24,7 @@ namespace sensors { * @param sensor the gyroscope to query the request */ //% help=input/gyro/angle - //% block="%sensor|angle" + //% block="`icons.gyroSensor` %sensor|angle" //% blockId=gyroGetAngle //% parts="gyroscope" //% blockNamespace=sensors @@ -40,7 +40,7 @@ namespace sensors { * @param sensor the gyroscope to query the request */ //% help=input/gyro/rate - //% block="%sensor|rotation rate" + //% block="`icons.gyroSensor` %sensor|rotation rate" //% blockId=gyroGetRate //% parts="gyroscope" //% blockNamespace=sensors @@ -51,16 +51,16 @@ namespace sensors { return this.getNumber(NumberFormat.Int16LE, 0) } } - - //% fixedInstance whenUsed block="gyro sensor 2" - export const gyro2: GyroSensor = new GyroSensor(2) - //% fixedInstance whenUsed block="gyro sensor 1" + //% fixedInstance whenUsed block="1" export const gyro1: GyroSensor = new GyroSensor(1) - //% fixedInstance whenUsed block="gyro sensor 3" + //% fixedInstance whenUsed block="2" weight=95 + export const gyro2: GyroSensor = new GyroSensor(2) + + //% fixedInstance whenUsed block="3" export const gyro3: GyroSensor = new GyroSensor(3) - //% fixedInstance whenUsed block="gyro sensor 4" + //% fixedInstance whenUsed block="4" export const gyro4: GyroSensor = new GyroSensor(4) } diff --git a/libs/core/icons.jres b/libs/core/icons.jres index 38cf5836..2198314e 100644 --- a/libs/core/icons.jres +++ b/libs/core/icons.jres @@ -17,5 +17,11 @@ }, "touchSensor": { "icon": "data:image/png;base64,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" + }, + "gyroSensor": { + "icon": "data:image/png;base64,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" + }, + "colorSensor": { + "icon": "data:image/png;base64,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" } } \ No newline at end of file diff --git a/libs/core/ir.ts b/libs/core/ir.ts index db20425a..ec247342 100644 --- a/libs/core/ir.ts +++ b/libs/core/ir.ts @@ -193,7 +193,7 @@ namespace sensors { * @param handler the code to run when detected */ //% help=input/infrared/on - //% block="on %sensor|%event" + //% block="on `icons.infraredSensor` %sensor|%event" //% blockId=infraredOn //% parts="infraredsensor" //% blockNamespace=sensors @@ -209,7 +209,7 @@ namespace sensors { * Waits for the event to occur */ //% help=input/ultrasonic/wait - //% block="wait %sensor|for %event" + //% block="wait `icons.infraredSensor` %sensor|for %event" //% blockId=infraredwait //% parts="infraredsensor" //% blockNamespace=sensors @@ -224,7 +224,7 @@ namespace sensors { * @param ir the infrared sensor */ //% help=input/infrared/proximity - //% block="%infrared|proximity" + //% block="`icons.infraredSensor` %infrared|proximity" //% blockId=infraredGetProximity //% parts="infrared" //% blockNamespace=sensors @@ -240,7 +240,7 @@ namespace sensors { * @param ir the infrared sensor */ //% help=input/infrared/remote-command - //% block="%infrared|remote command" + //% block="`icons.infraredSensor` %infrared|remote command" //% blockId=infraredGetRemoteCommand //% parts="infrared" //% blockNamespace=sensors @@ -258,16 +258,16 @@ namespace sensors { } } - //% fixedInstance whenUsed block="`icons.infraredSensor` 1" + //% fixedInstance whenUsed block="1" export const infraredSensor1: InfraredSensor = new InfraredSensor(1) - //% fixedInstance whenUsed block="`icons.infraredSensor` 2" + //% fixedInstance whenUsed block="2" export const infraredSensor2: InfraredSensor = new InfraredSensor(2) - //% fixedInstance whenUsed block="`icons.infraredSensor` 3" + //% fixedInstance whenUsed block="3" export const infraredSensor3: InfraredSensor = new InfraredSensor(3) - //% fixedInstance whenUsed block="`icons.infraredSensor` 4" + //% fixedInstance whenUsed block="4" export const infraredSensor4: InfraredSensor = new InfraredSensor(4) diff --git a/libs/core/jres/icons/colorSensor-icon.png b/libs/core/jres/icons/colorSensor-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..82c7cf0323926c929633d64e23ab1c22b4901a5e GIT binary patch literal 5317 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 Uz6_CVxc~qF07*qoM6N<$g8ffHCIA2c literal 0 HcmV?d00001 diff --git a/libs/core/output.ts b/libs/core/output.ts index dc912b75..4a87e043 100644 --- a/libs/core/output.ts +++ b/libs/core/output.ts @@ -216,28 +216,28 @@ namespace motors { } } - //% whenUsed fixedInstance block="`icons.motorLarge` A" + //% whenUsed fixedInstance block="large A" export const largeMotorA = new Motor(Output.A, true); - //% whenUsed fixedInstance block="`icons.motorLarge` B" + //% whenUsed fixedInstance block="large B" export const largeMotorB = new Motor(Output.B, true); - //% whenUsed fixedInstance block="`icons.motorLarge` C" + //% whenUsed fixedInstance block="large C" export const largeMotorC = new Motor(Output.C, true); - //% whenUsed fixedInstance block="`icons.motorLarge` D" + //% whenUsed fixedInstance block="large D" export const largeMotorD = new Motor(Output.D, true); - //% whenUsed fixedInstance block="`icons.motorMedium` A" + //% whenUsed fixedInstance block="medium A" export const mediumMotorA = new Motor(Output.A, false); - //% whenUsed fixedInstance block="`icons.motorMedium` B" + //% whenUsed fixedInstance block="medium B" export const mediumMotorB = new Motor(Output.B, false); - //% whenUsed fixedInstance block="`icons.motorMedium` C" + //% whenUsed fixedInstance block="medium C" export const mediumMotorC = new Motor(Output.C, false); - //% whenUsed fixedInstance block="`icons.motorMedium` D" + //% whenUsed fixedInstance block="medium D" export const mediumMotorD = new Motor(Output.D, false); function reset(out: Output) { diff --git a/libs/core/touch.ts b/libs/core/touch.ts index cc9760c4..119bc80d 100644 --- a/libs/core/touch.ts +++ b/libs/core/touch.ts @@ -35,12 +35,28 @@ namespace sensors { return DAL.DEVICE_TYPE_TOUCH } + /** + * Do something when a touch sensor is touched... + * @param sensor the touch sensor that needs to be clicked or used + * @param event the kind of button gesture that needs to be detected + * @param body code to run when the event is raised + */ + //% help=input/touch/on-event + //% blockId=touchEvent block="on `icons.touchSensor` %sensor|%event" + //% parts="touch" + //% blockNamespace=sensors + //% weight=99 blockGap=8 + //% group="Touch Sensor" + onEvent(ev: TouchSensorEvent, body: () => void) { + this.button.onEvent(ev, body) + } + /** * Check if touch sensor is touched. * @param sensor the port to query the request */ //% help=input/touch/is-touched - //% block="%sensor|is touched" + //% block="`icons.touchSensor` %sensor|is touched" //% blockId=touchIsTouched //% parts="touch" //% blockNamespace=sensors @@ -49,30 +65,14 @@ namespace sensors { isTouched() { return this.button.isPressed(); } - - /** - * Do something when a touch sensor is touched... - * @param sensor the touch sensor that needs to be clicked or used - * @param event the kind of button gesture that needs to be detected - * @param body code to run when the event is raised - */ - //% help=input/touch/on-event - //% blockId=touchEvent block="on %sensor|%event" - //% parts="touch" - //% blockNamespace=sensors - //% weight=99 blockGap=8 - //% group="Touch Sensor" - onEvent(ev: TouchSensorEvent, body: () => void) { - this.button.onEvent(ev, body) - } } - //% whenUsed block="`icons.touchSensor` 1" weight=95 fixedInstance + //% whenUsed block="1" weight=95 fixedInstance export const touchSensor1: TouchSensor = new TouchSensor(1) - //% whenUsed block="`icons.touchSensor` 2" weight=95 fixedInstance + //% whenUsed block="2" weight=95 fixedInstance export const touchSensor2: TouchSensor = new TouchSensor(2) - //% whenUsed block="`icons.touchSensor` 3" weight=95 fixedInstance + //% whenUsed block="3" weight=95 fixedInstance export const touchSensor3: TouchSensor = new TouchSensor(3) - //% whenUsed block="`icons.touchSensor` 4" weight=95 fixedInstance + //% whenUsed block="4" weight=95 fixedInstance export const touchSensor4: TouchSensor = new TouchSensor(4) } diff --git a/libs/core/ultrasonic.ts b/libs/core/ultrasonic.ts index d131e70d..069bb664 100644 --- a/libs/core/ultrasonic.ts +++ b/libs/core/ultrasonic.ts @@ -41,9 +41,9 @@ namespace sensors { * @param handler the code to run when detected */ //% help=input/ultrasonic/on - //% block="on %sensor|%event" //% blockId=ultrasonicOn - //% parts="infraredsensor" + //% block="on `icons.ultrasonicSensor` %sensor|%event" + //% parts="ultrasonicsensor" //% blockNamespace=sensors //% weight=100 blockGap=8 //% group="Ultrasonic Sensor" @@ -58,9 +58,9 @@ namespace sensors { * Waits for the event to occur */ //% help=input/ultrasonic/wait - //% block="wait %sensor|for %event" + //% block="wait `icons.ultrasonicSensor` %sensor|for %event" //% blockId=ultrasonicWait - //% parts="infraredsensor" + //% parts="ultrasonicsensor" //% blockNamespace=sensors //% weight=99 blockGap=8 //% group="Ultrasonic Sensor" @@ -73,9 +73,9 @@ namespace sensors { * @param sensor the ultrasonic sensor port */ //% help=input/ultrasonic/distance - //% block="%sensor|distance" + //% block="`icons.ultrasonicSensor` %sensor|distance" //% blockId=sonarGetDistance - //% parts="ultrasonic" + //% parts="ultrasonicsensor" //% blockNamespace=sensors //% weight=65 blockGap=8 //% group="Ultrasonic Sensor" @@ -86,15 +86,15 @@ namespace sensors { } } - //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 1" + //% fixedInstance whenUsed block="1" export const ultrasonic1: UltraSonicSensor = new UltraSonicSensor(1) - //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 4" + //% fixedInstance whenUsed block="4" export const ultrasonic4: UltraSonicSensor = new UltraSonicSensor(4) - //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 2" + //% fixedInstance whenUsed block="2" export const ultrasonic2: UltraSonicSensor = new UltraSonicSensor(2) - //% fixedInstance whenUsed block="`icons.ultrasonicSensor` 3" + //% fixedInstance whenUsed block="3" export const ultrasonic3: UltraSonicSensor = new UltraSonicSensor(3) } From 41c2899feb8824a2835aca518d339eb9573b09a7 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 13:03:15 -0800 Subject: [PATCH 3/8] more icons --- libs/core/_locales/core-strings.json | 16 ++++++++-------- libs/core/icons.jres | 3 +++ libs/core/ir.ts | 16 ++++++++-------- libs/core/jres/icons/remoteButton-icon.png | Bin 0 -> 5373 bytes 4 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 libs/core/jres/icons/remoteButton-icon.png diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index 70acfb9e..32f947b0 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -77,9 +77,9 @@ "sensors.InfraredSensor.proximity|block": "`icons.infraredSensor` %infrared|proximity", "sensors.InfraredSensor.remoteCommand|block": "`icons.infraredSensor` %infrared|remote command", "sensors.InfraredSensor.wait|block": "wait `icons.infraredSensor` %sensor|for %event", - "sensors.RemoteInfraredBeaconButton.isPressed|block": "%button|is pressed", - "sensors.RemoteInfraredBeaconButton.onEvent|block": "on %button|%event", - "sensors.RemoteInfraredBeaconButton.wasPressed|block": "%button|was pressed", + "sensors.RemoteInfraredBeaconButton.isPressed|block": "`icons.remoteButton` %button|is pressed", + "sensors.RemoteInfraredBeaconButton.onEvent|block": "on `icons.remoteButton` %button|%event", + "sensors.RemoteInfraredBeaconButton.wasPressed|block": "`icons.remoteButton` %button|was pressed", "sensors.TouchSensor.isTouched|block": "`icons.touchSensor` %sensor|is touched", "sensors.TouchSensor.onEvent|block": "on `icons.touchSensor` %sensor|%event", "sensors.UltraSonicSensor.distance|block": "`icons.ultrasonicSensor` %sensor|distance", @@ -97,11 +97,11 @@ "sensors.infraredSensor2|block": "2", "sensors.infraredSensor3|block": "3", "sensors.infraredSensor4|block": "4", - "sensors.remoteButtonBottomLeft|block": "remote button bottom-left", - "sensors.remoteButtonBottomRight|block": "remote button bottom-right", - "sensors.remoteButtonCenter|block": "remote button center", - "sensors.remoteButtonTopLeft|block": "remote button top-left", - "sensors.remoteButtonTopRight|block": "remote button top-right", + "sensors.remoteButtonBottomLeft|block": "bottom-left", + "sensors.remoteButtonBottomRight|block": "bottom-right", + "sensors.remoteButtonCenter|block": "center", + "sensors.remoteButtonTopLeft|block": "top-left", + "sensors.remoteButtonTopRight|block": "top-right", "sensors.touchSensor1|block": "1", "sensors.touchSensor2|block": "2", "sensors.touchSensor3|block": "3", diff --git a/libs/core/icons.jres b/libs/core/icons.jres index 2198314e..67dc3953 100644 --- a/libs/core/icons.jres +++ b/libs/core/icons.jres @@ -23,5 +23,8 @@ }, "colorSensor": { "icon": "data:image/png;base64,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" + }, + "remoteButton": { + "icon": "data:image/png;base64,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" } } \ No newline at end of file diff --git a/libs/core/ir.ts b/libs/core/ir.ts index ec247342..20e0e178 100644 --- a/libs/core/ir.ts +++ b/libs/core/ir.ts @@ -93,7 +93,7 @@ namespace sensors { * @param button the remote button to query the request */ //% help=input/remote-infrared-beacon/is-pressed - //% block="%button|is pressed" + //% block="`icons.remoteButton` %button|is pressed" //% blockId=remoteButtonIsPressed //% parts="remote" //% blockNamespace=sensors @@ -108,7 +108,7 @@ namespace sensors { * @param button the remote button to query the request */ //% help=input/remote-infrared-beacon/was-pressed - //% block="%button|was pressed" + //% block="`icons.remoteButton` %button|was pressed" //% blockId=remotebuttonWasPressed //% parts="remote" //% blockNamespace=sensors @@ -125,7 +125,7 @@ namespace sensors { * @param body code to run when the event is raised */ //% help=input/remote-infrared-beacon/on-event - //% blockId=remotebuttonEvent block="on %button|%event" + //% blockId=remotebuttonEvent block="on `icons.remoteButton` %button|%event" //% parts="remote" //% blockNamespace=sensors //% weight=99 blockGap=8 @@ -274,30 +274,30 @@ namespace sensors { /** * Remote beacon (center) button. */ - //% whenUsed block="remote button center" weight=95 fixedInstance + //% whenUsed block="center" weight=95 fixedInstance export const remoteButtonCenter = irButton(IrRemoteButton.CenterBeacon) /** * Remote top-left button. */ - //% whenUsed block="remote button top-left" weight=95 fixedInstance + //% whenUsed block="top-left" weight=95 fixedInstance export const remoteButtonTopLeft = irButton(IrRemoteButton.TopLeft) /** * Remote top-right button. */ - //% whenUsed block="remote button top-right" weight=95 fixedInstance + //% whenUsed block="top-right" weight=95 fixedInstance export const remoteButtonTopRight = irButton(IrRemoteButton.TopRight) /** * Remote bottom-left button. */ - //% whenUsed block="remote button bottom-left" weight=95 fixedInstance + //% whenUsed block="bottom-left" weight=95 fixedInstance export const remoteButtonBottomLeft = irButton(IrRemoteButton.BottomLeft) /** * Remote bottom-right button. */ - //% whenUsed block="remote button bottom-right" weight=95 fixedInstance + //% whenUsed block="bottom-right" weight=95 fixedInstance export const remoteButtonBottomRight = irButton(IrRemoteButton.BottomRight) } diff --git a/libs/core/jres/icons/remoteButton-icon.png b/libs/core/jres/icons/remoteButton-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cb389b30937c69ea3bb7bcf1eafb7e13083eaaa9 GIT binary patch literal 5373 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 bYy3R`BI!`h5n-sZ00000NkvXXu0mjf!0ZC( literal 0 HcmV?d00001 From d100026d5ce695997d45e005d1986a8127ec56ba Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 13:05:50 -0800 Subject: [PATCH 4/8] more icons --- libs/core/_locales/core-strings.json | 18 +++++++++--------- libs/core/output.ts | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index 32f947b0..7af2c0a5 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -47,14 +47,14 @@ "brick|block": "brick", "control.raiseEvent|block": "raise event|from %src|with value %value", "control|block": "control", - "motors.Motor.count|block": "%motor|count", - "motors.Motor.move|block": "move %motor|by %angle|degrees at %power|%", - "motors.Motor.power|block": "power %motor|to %power|%", - "motors.Motor.setBrake|block": "set %motor|brake %brake", - "motors.Motor.setReversed|block": "set %motor|reversed %reversed", - "motors.Motor.speed|block": "%motor|speed", - "motors.Motor.stop|block": "stop %motor", - "motors.Motor.tachoCount|block": "%motor|tacho count", + "motors.Motor.count|block": "`icons.motorLarge` %motor|count", + "motors.Motor.move|block": "move `icons.motorLarge` %motor|by %angle|degrees at %power|%", + "motors.Motor.power|block": "power `icons.motorLarge` %motor|to %power|%", + "motors.Motor.setBrake|block": "set `icons.motorLarge` %motor|brake %brake", + "motors.Motor.setReversed|block": "set `icons.motorLarge` %motor|reversed %reversed", + "motors.Motor.speed|block": "`icons.motorLarge` %motor|speed", + "motors.Motor.stop|block": "stop `icons.motorLarge` %motor", + "motors.Motor.tachoCount|block": "`icons.motorLarge` %motor|tacho count", "motors.largeMotorA|block": "large A", "motors.largeMotorB|block": "large B", "motors.largeMotorC|block": "large C", @@ -63,7 +63,7 @@ "motors.mediumMotorB|block": "medium B", "motors.mediumMotorC|block": "medium C", "motors.mediumMotorD|block": "medium D", - "motors.stopAllMotors|block": "stop all motors", + "motors.stopAllMotors|block": "stop all `icons.motorLarge`", "motors|block": "motors", "output|block": "output", "screen|block": "screen", diff --git a/libs/core/output.ts b/libs/core/output.ts index 4a87e043..aec5ed2c 100644 --- a/libs/core/output.ts +++ b/libs/core/output.ts @@ -66,7 +66,7 @@ namespace motors { /** * Stops all motors */ - //% blockId=motorStopAll block="stop all motors" + //% blockId=motorStopAll block="stop all `icons.motorLarge`" //% weight=10 group="Motors" blockGap=8 export function stopAllMotors() { const b = mkCmd(Output.ALL, DAL.opOutputStop, 0) @@ -91,7 +91,7 @@ namespace motors { * @param motor the output connection that the motor is connected to * @param power the power from ``100`` full forward to ``-100`` full backward, eg: 50 */ - //% blockId=motorSetPower block="power %motor|to %power|%" + //% blockId=motorSetPower block="power `icons.motorLarge` %motor|to %power|%" //% weight=99 group="Motors" blockGap=8 //% power.min=-100 power.max=100 power(power: number) { @@ -114,7 +114,7 @@ namespace motors { * @param angle the degrees to rotate, eg: 360 * @param power the power from ``100`` full forward to ``-100`` full backward, eg: 50 */ - //% blockId=motorMove block="move %motor|by %angle|degrees at %power|%" + //% blockId=motorMove block="move `icons.motorLarge` %motor|by %angle|degrees at %power|%" //% weight=98 group="Motors" blockGap=8 //% power.min=-100 power.max=100 move(angle: number, power: number) { @@ -134,7 +134,7 @@ namespace motors { /** * Stops the motor */ - //% blockId=motorStop block="stop %motor" + //% blockId=motorStop block="stop `icons.motorLarge` %motor" //% weight=97 group="Motors" stop() { const b = mkCmd(this.port, DAL.opOutputStop, 1) @@ -146,7 +146,7 @@ namespace motors { * Sets the automatic brake on or off when the motor is off * @param brake a value indicating if the motor should break when off */ - //% blockId=outputMotorSetBrakeMode block="set %motor|brake %brake" + //% blockId=outputMotorSetBrakeMode block="set `icons.motorLarge` %motor|brake %brake" //% brake.fieldEditor=toggleonoff //% weight=60 group="Motors" blockGap=8 setBrake(brake: boolean) { @@ -156,7 +156,7 @@ namespace motors { /** * Reverses the motor polarity */ - //% blockId=motorSetReversed block="set %motor|reversed %reversed" + //% blockId=motorSetReversed block="set `icons.motorLarge` %motor|reversed %reversed" //% reversed.fieldEditor=toggleonoff //% weight=59 group="Motors" setReversed(reversed: boolean) { @@ -169,7 +169,7 @@ namespace motors { * Gets motor actual speed. * @param motor the port which connects to the motor */ - //% blockId=motorSpeed block="%motor|speed" + //% blockId=motorSpeed block="`icons.motorLarge` %motor|speed" //% weight=72 group="Motors" blockGap=8 speed(): number { return getMotorData(this.port).actualSpeed; @@ -179,7 +179,7 @@ namespace motors { * Gets motor step count. * @param motor the port which connects to the motor */ - //% blockId=motorCount block="%motor|count" + //% blockId=motorCount block="`icons.motorLarge` %motor|count" //% weight=71 group="Motors" blockGap=8 count(): number { return getMotorData(this.port).count; @@ -189,7 +189,7 @@ namespace motors { * Gets motor tacho count. * @param motor the port which connects to the motor */ - //% blockId=motorTachoCount block="%motor|tacho count" + //% blockId=motorTachoCount block="`icons.motorLarge` %motor|tacho count" //% weight=70 group="Motors" tachoCount(): number { return getMotorData(this.port).tachoCount; From c936c16c330339bf4662853d709da20128bae527 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 22:03:43 -0800 Subject: [PATCH 5/8] more icons --- libs/core/_locales/core-strings.json | 28 +++++++++--------- libs/core/buttons.ts | 18 +++++------ libs/core/icons.jres | 5 +++- libs/core/ir.ts | 6 ++-- ...eButton-icon.png => brickButtons-icon.png} | Bin libs/core/jres/icons/brickDisplay-icon.png | Bin 0 -> 4239 bytes libs/core/screen.ts | 4 +-- 7 files changed, 32 insertions(+), 29 deletions(-) rename libs/core/jres/icons/{remoteButton-icon.png => brickButtons-icon.png} (100%) create mode 100644 libs/core/jres/icons/brickDisplay-icon.png diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index 7af2c0a5..61921f98 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -32,18 +32,18 @@ "TouchSensorEvent.Released|block": "released", "UltrasonicSensorEvent.ObjectDetected|block": "object detected", "UltrasonicSensorEvent.ObjectNear|block": "object near", - "brick.Button.isPressed|block": "%button|is pressed", - "brick.Button.onEvent|block": "on %button|%event", - "brick.Button.wasPressed|block": "%button|was pressed", - "brick.buttonDown|block": "button down", - "brick.buttonEnter|block": "button enter", - "brick.buttonLeft|block": "button left", - "brick.buttonRight|block": "button right", - "brick.buttonUp|block": "button up", + "brick.Button.isPressed|block": "`icons.brickButtons` %button|is pressed", + "brick.Button.onEvent|block": "on `icons.brickButtons` %button|%event", + "brick.Button.wasPressed|block": "`icons.brickButtons` %button|was pressed", + "brick.buttonDown|block": "down", + "brick.buttonEnter|block": "enter", + "brick.buttonLeft|block": "left", + "brick.buttonRight|block": "right", + "brick.buttonUp|block": "up", "brick.pattern|block": "%pattern", - "brick.print|block": "print %text| at x: %x| y: %y", - "brick.setPixel|block": "set pixel %on| at x: %x| y: %y", - "brick.setStatusLight|block": "set status light %pattern=led_pattern", + "brick.print|block": "`icons.brickDisplay` print %text| at x: %x| y: %y", + "brick.setPixel|block": "`icons.brickDisplay` set pixel %on| at x: %x| y: %y", + "brick.setStatusLight|block": "set `icons.brickButtons` to %pattern=led_pattern", "brick|block": "brick", "control.raiseEvent|block": "raise event|from %src|with value %value", "control|block": "control", @@ -77,9 +77,9 @@ "sensors.InfraredSensor.proximity|block": "`icons.infraredSensor` %infrared|proximity", "sensors.InfraredSensor.remoteCommand|block": "`icons.infraredSensor` %infrared|remote command", "sensors.InfraredSensor.wait|block": "wait `icons.infraredSensor` %sensor|for %event", - "sensors.RemoteInfraredBeaconButton.isPressed|block": "`icons.remoteButton` %button|is pressed", - "sensors.RemoteInfraredBeaconButton.onEvent|block": "on `icons.remoteButton` %button|%event", - "sensors.RemoteInfraredBeaconButton.wasPressed|block": "`icons.remoteButton` %button|was pressed", + "sensors.RemoteInfraredBeaconButton.isPressed|block": "`icons.infraredSensor` %button|is pressed", + "sensors.RemoteInfraredBeaconButton.onEvent|block": "on `icons.infraredSensor` %button|%event", + "sensors.RemoteInfraredBeaconButton.wasPressed|block": "`icons.infraredSensor` %button|was pressed", "sensors.TouchSensor.isTouched|block": "`icons.touchSensor` %sensor|is touched", "sensors.TouchSensor.onEvent|block": "on `icons.touchSensor` %sensor|%event", "sensors.UltraSonicSensor.distance|block": "`icons.ultrasonicSensor` %sensor|distance", diff --git a/libs/core/buttons.ts b/libs/core/buttons.ts index b92c3f39..4b6bd11f 100644 --- a/libs/core/buttons.ts +++ b/libs/core/buttons.ts @@ -84,7 +84,7 @@ namespace brick { * @param button the button to query the request */ //% help=input/button/is-pressed - //% block="%button|is pressed" + //% block="`icons.brickButtons` %button|is pressed" //% blockId=buttonIsPressed //% parts="brick" //% blockNamespace=brick @@ -99,7 +99,7 @@ namespace brick { * @param button the button to query the request */ //% help=input/button/was-pressed - //% block="%button|was pressed" + //% block="`icons.brickButtons` %button|was pressed" //% blockId=buttonWasPressed //% parts="brick" //% blockNamespace=brick @@ -118,7 +118,7 @@ namespace brick { * @param body code to run when the event is raised */ //% help=input/button/on-event - //% blockId=buttonEvent block="on %button|%event" + //% blockId=buttonEvent block="on `icons.brickButtons` %button|%event" //% parts="brick" //% blockNamespace=brick //% weight=99 blockGap=8 @@ -180,31 +180,31 @@ namespace brick { /** * Enter button on the EV3 Brick. */ - //% whenUsed block="button enter" weight=95 fixedInstance + //% whenUsed block="enter" weight=95 fixedInstance export const buttonEnter: Button = new DevButton(DAL.BUTTON_ID_ENTER) /** * Left button on the EV3 Brick. */ - //% whenUsed block="button left" weight=95 fixedInstance + //% whenUsed block="left" weight=95 fixedInstance export const buttonLeft: Button = new DevButton(DAL.BUTTON_ID_LEFT) /** * Right button on the EV3 Brick. */ - //% whenUsed block="button right" weight=94 fixedInstance + //% whenUsed block="right" weight=94 fixedInstance export const buttonRight: Button = new DevButton(DAL.BUTTON_ID_RIGHT) /** * Up button on the EV3 Brick. */ - //% whenUsed block="button up" weight=95 fixedInstance + //% whenUsed block="up" weight=95 fixedInstance export const buttonUp: Button = new DevButton(DAL.BUTTON_ID_UP) /** * Down button on the EV3 Brick. */ - //% whenUsed block="button down" weight=95 fixedInstance + //% whenUsed block="down" weight=95 fixedInstance export const buttonDown: Button = new DevButton(DAL.BUTTON_ID_DOWN) } @@ -233,7 +233,7 @@ namespace brick { * Set lights. * @param pattern the lights pattern to use. */ - //% blockId=setLights block="set status light %pattern=led_pattern" + //% blockId=setLights block="set `icons.brickButtons` to %pattern=led_pattern" //% weight=100 group="Light" export function setStatusLight(pattern: number): void { if (currPattern === pattern) diff --git a/libs/core/icons.jres b/libs/core/icons.jres index 67dc3953..be203f27 100644 --- a/libs/core/icons.jres +++ b/libs/core/icons.jres @@ -24,7 +24,10 @@ "colorSensor": { "icon": "data:image/png;base64,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" }, - "remoteButton": { + "brickButtons": { "icon": "data:image/png;base64,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" + }, + "brickDisplay": { + "icon": "data:image/png;base64,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" } } \ No newline at end of file diff --git a/libs/core/ir.ts b/libs/core/ir.ts index 20e0e178..0129aa0f 100644 --- a/libs/core/ir.ts +++ b/libs/core/ir.ts @@ -93,7 +93,7 @@ namespace sensors { * @param button the remote button to query the request */ //% help=input/remote-infrared-beacon/is-pressed - //% block="`icons.remoteButton` %button|is pressed" + //% block="`icons.infraredSensor` %button|is pressed" //% blockId=remoteButtonIsPressed //% parts="remote" //% blockNamespace=sensors @@ -108,7 +108,7 @@ namespace sensors { * @param button the remote button to query the request */ //% help=input/remote-infrared-beacon/was-pressed - //% block="`icons.remoteButton` %button|was pressed" + //% block="`icons.infraredSensor` %button|was pressed" //% blockId=remotebuttonWasPressed //% parts="remote" //% blockNamespace=sensors @@ -125,7 +125,7 @@ namespace sensors { * @param body code to run when the event is raised */ //% help=input/remote-infrared-beacon/on-event - //% blockId=remotebuttonEvent block="on `icons.remoteButton` %button|%event" + //% blockId=remotebuttonEvent block="on `icons.infraredSensor` %button|%event" //% parts="remote" //% blockNamespace=sensors //% weight=99 blockGap=8 diff --git a/libs/core/jres/icons/remoteButton-icon.png b/libs/core/jres/icons/brickButtons-icon.png similarity index 100% rename from libs/core/jres/icons/remoteButton-icon.png rename to libs/core/jres/icons/brickButtons-icon.png diff --git a/libs/core/jres/icons/brickDisplay-icon.png b/libs/core/jres/icons/brickDisplay-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7bded6234530d26f82f1c549b55c02d173bf44 GIT binary patch literal 4239 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 literal 0 HcmV?d00001 diff --git a/libs/core/screen.ts b/libs/core/screen.ts index 70ca003f..d3cfe580 100644 --- a/libs/core/screen.ts +++ b/libs/core/screen.ts @@ -84,7 +84,7 @@ namespace brick { * @param x the starting position's x coordinate, eg: 0 * @param y the starting position's x coordinate, eg: 0 */ - //% blockId=screen_setpixel block="set pixel %on| at x: %x| y: %y" + //% blockId=screen_setpixel block="`icons.brickDisplay` set pixel %on| at x: %x| y: %y" //% weight=98 group="Screen" //% x.min=0 x.max=178 y.min=0 y.max=128 on.fieldEditor=toggleonoff export function setPixel(on: boolean, x: number, y: number) { @@ -100,7 +100,7 @@ namespace brick { * @param x the starting position's x coordinate, eg: 0 * @param y the starting position's x coordinate, eg: 0 */ - //% blockId=screen_print block="print %text| at x: %x| y: %y" + //% blockId=screen_print block="`icons.brickDisplay` print %text| at x: %x| y: %y" //% weight=99 group="Screen" inlineInputMode="inline" blockGap=8 //% x.min=0 x.max=178 y.min=0 y.max=128 export function print(text: string, x: number, y: number, mode = Draw.Normal) { From 90afb60cc4a94e3975fc3dfbfa9f88f2437367d2 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 22:04:29 -0800 Subject: [PATCH 6/8] bump pxt-core to 2.3.26, bump pxt-common-packages to 0.14.2, --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 61150691..8fc3ea53 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "semantic-ui-less": "^2.2.4" }, "dependencies": { - "pxt-common-packages": "0.12.17", - "pxt-core": "2.3.19" + "pxt-common-packages": "0.14.2", + "pxt-core": "2.3.26" }, "scripts": { "test": "node node_modules/pxt-core/built/pxt.js travis" From b602b52f7d19e6b834044161ff4130a07d3d066b Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 22:25:26 -0800 Subject: [PATCH 7/8] bump pxt-core to 2.3.27, --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8fc3ea53..6134614b 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ }, "dependencies": { "pxt-common-packages": "0.14.2", - "pxt-core": "2.3.26" + "pxt-core": "2.3.27" }, "scripts": { "test": "node node_modules/pxt-core/built/pxt.js travis" From 3a5885b28eb195047c1642566f022d90192e1c20 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 16 Nov 2017 22:25:36 -0800 Subject: [PATCH 8/8] 0.0.30 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6134614b..1016cd7f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pxt-ev3", - "version": "0.0.29", + "version": "0.0.30", "description": "LEGO Mindstorms EV3 for Microsoft MakeCode", "private": true, "keywords": [