From e2698596b8e4c06ad3776fbb52b123d4c3fbb606 Mon Sep 17 00:00:00 2001 From: ocogeclub Date: Wed, 20 Jan 2021 22:26:39 +0900 Subject: [PATCH] update: implemented theme --- img/cogechee.png | Bin 54266 -> 54177 bytes index.html | 106 +++++++++++---- scripts/ugj_blocks.js | 300 +++++++++++++++++++++--------------------- 3 files changed, 228 insertions(+), 178 deletions(-) diff --git a/img/cogechee.png b/img/cogechee.png index c7c195772d1f3961109ee190f8a7b90494bbcf1f..5aa2894eff3f69ebe0b2fca8ff5f4b6e2c9006bb 100644 GIT binary patch literal 54177 zcmXtgWmH^Uu~N84_g(c!9H*&~yZW5YYbn0h?L( zc>~_WcM{cbQnoX7ay9&A0unK?c64_nQFd}Rwy+~nv9q)8DcSY{fk;4-KZI1=R?c)? z-7w}Ceax&lIzsO@JjtUsl1QbLziMV+U?Sz0zR|(DC^#sB39Z;F{P6fv6r8f*dD)RF z>r%hWvPrxg6hsymawRlzyBBM0dLeVM=6XSW`8||G6744o#m^i2uY=tz6rV+VA3GQ= zl!G>3CDHWA>|wf72^gwv5b1!=@R0=(R#Z!1J07m?%Qny3{xB}%|MC+p)wvG(47D{(2dTo;5tKRVj#^ip>n2!tA~vBn)xI97wZTH}y4hyGnod z)J>`pSvZjp*`cL<{-*(Mq8Tog2Pg)&?52d?VRVpdzq42}G%4bo^Bs?;P(=hem68Br zER8o(5H1&W?|S5*NQ{*(QjpxEx?U^~93;V}an5F&@NLGj;n1DM+O#+74(JGy-nFa+HFB)ozK$cJ6g3J(6)Kax4j zAMe?eDN0vAjX^s1(#*4Uu(*v{TnR^W;DV8T`;vp*H=nyE)u1aDKO+$Fua@@WT20)$ zHCza;ZSJZC*KlR5BaCIgL%lK1VD4RamL`^Tw{=Q1dQ#}l_I((%nmv1WsGkPzH~LMH zRS6^(z{eGP)O+T=X7M`1Y9YGyfSbk1%mX`&1~!FVYrC=$I98W|^L&DauxEJk6$EwhjL{dj_#vr-oP$<1~?mH773C30{ky3MBVC z=^(zUk$wd&Jl=dNa7>#+-8Xw(Pu|wecg}LH&K(~c40+qOwO`#UyBjpb(DXrDzgl>& zm%O05hI6IZ(_OJVxQx~GW{~x^y?gv5s)7?J2(P?pLT5W0n!VUuVR0T# zV+nmXywUc9NmcpO*?Kigd+Ep*g8U!N6aB_MLFkyL10tP#i?uOKs9hG?MYTk#f$wix zQ!UJ1Yd>8vx&o3`8DdTZ*IuI-2`wmF7z*iPkD#?!g0{;)$?x^6Jk#o329b6PW|1D@v|m zMcFe%b(pspQH1d$6?aQ5KE715pBH>f8#z_|DQSERhGsmbI;E{hS!PZv#K}f2i(vcdOAT0)LAxQ)nhms*=M2- z)*Y@lN?5W1x0#k95wdEoS zM+3!qmG8~q6Y(HuQ6E7VIyOcGF_zfDCA{cXOqV!JB~h8-Z$N2gytue)>;k#qNhz2< z&3shb&jN2Wb_Xm%V`grGmjOn0@U!4=F8I^DMs$})ktaKom^n%ROVcu0!0%-}=E+P*`lP=a5 zyRx0TO|m!*hPg!y zK~EH0GR5qq(nu-xE$v-EV%wvGrSOXdTbed+AcarPnEs0PPxmC@Z>~@&h{DvcJYDng z`4bC+q?sCvc6}E59O?vx%`li^rr6~`AH?seq#BLta)m8c{uaC7QG|#<1+pjEfOs_XMJy%)Kk6 z{utC*IDLHS0RyQ7X;WEBHyTn}gcU*)l4flLuguQQv=7!WyS!X#7dynV7zOhyhp0GP zG#PJ8EKgEg8|K{%l*2DMfG51vQ(aEmK)lMtAFp8If@l?$V2XJbecLPi@C#BVedY3d z8~+>Vl8bx91|N>U)tQhOT5Q{;_KPhhE-}cS$PW)h4x#~Jzy^SXQ0H0F&jxo%wfS!? zmw0GX7!?d^kvrQhlUx6!a-LXO#pfgkuZ<&On3{>`(gYU7aOgPSU)c%q_ZyR@aG3-O z$AMr$A~^#7X)y@PDH5eqV-#Q_QOMMoue&;1OwQl4 zeJzB#4jT}HpRPMxnMal&p=6^=t*u1RK}fPlrR7$FqN+#{qf!bgN+IBpP${GcY}^pn zU%p7h#L_}YG91{uD*~0qt1SvMSok}u!+}hRyR;s(YG-B~S$M>Z64}rIDKiV&i4il6 zmiBh8c2w}g-@qLaJ_)6AXM66xRuPh7U+^tYpdfk62>B1pov=#!==B_ zSdT=30+?^%N?xhtIkD3POJgh;U1lX)rc1@O4DK|{mQ*(GQ%H|StEp_xy7A^j7Hk?f zCWD@y0Sy(e6I}w?7kr`^)*)eSNE@3>5P`>9&nR=vnl{rd-`$_dCKo0J`Pv>U{7rxV zT8FMfENqM|wpaw|8)#Ea%;={LrG)N%9fUP%78+9jR3J;u_&)h&GL_EUxxVcrH)4e9 zGYZpuyZWcA-~O<@$W&W%RDUIUehx$iv`c^lS?;ts$S>u*A7hMzK|>^ z+JAo|AFgKFwq-0|GOq_Ow(y0U&fNxyV14a{PoD~P>#({j0Oph%Ty|7^9~X`0-kxQ> zSd_GYZpYqT{j=cn^+@Iq>4Q_`&X?#!#XrGTNRGAcuP%N#D?YU5R(;nZFkjJ{L_}pV zk4Hv~gse_EK}~!N^G=9#D0*xQ&@`3bTcyCG7JZTN;NhR>$#E008Tx~cSzkJe|JHtK z>spFAM6&JCthQCj{#GqSxJE{)*cS8xBq$!9fX`5nAQ%b0gg2Za%xXDp*vtk(SP^sS zH|<2<;^iKDVc6n->8$w?(xYz4xC95gXFRt{%b9rabnh*x z2S-`At<1x);$geUDSLVaK%MB6!c^vgdEwMJGNzBt$tEUCulHse+c^F`2QIua5t%9u zRMVPt7_$LfIve3W*~#GDIDUj6X;3jJ3WNhvAcduxp;jWq3sy-Qh6Ml(HH;*zgdlV- zxM0WIkZYdEgyU{BjriO6<{ECSs2 zA@Rhyb|p2IZZ*4MhYQMR1L*Pt-Vi1e!VRw5ku73eSzR)>><^hA0NL;=TuN!fa*Ij8 zBPqb5Ndv)U!2>`N34(1&@aYxG>^rVZB=L$0v&CWfP!w)MjL0gZ!waCUK!3vc#H;xY z{kHR%Z3#s^B8E3-@aN^_<3br1=x%b5gS^y0su>>LFI5vfj^grk8>yHr@;_o7yAlN(C`&>|fwAv`vtZsFXtXhCx3d}5e8 z!%asaBu{Op2pvrmm_0LWbxxzuo9A0M5V65>0VBO>JTfCQcRJfDC`YwPw5 z!^@0trwJ2@CxohResTo)&%>~@HME-X2yw7x5H0-2lgk*4+x!h)h?I$M+#I}yfs%;= zp|RS|Zd{EpdIL`NAaEIRlXf7FzIk2{&`3$m1cUc{8nY}9FteYHfJMWDn(E3=Jo)|o zO~I5)gtXONhj;r!LciTq+tp0aKBs4N?UuPP<#ghrn~melJ4D{x*uT$^7m`yL4;$AJ zgMt8%It>5~#Hn_Z%K4VIQb`C7Ia}B?4x|SL2JbLGh;SK-zGmWgl-v8ykfMWnBm@#b(u zvH}%=lP=Q~)VGfbz}9R30R?GA4b!R(MCbv8ec`WbrsLg(>Ggtyg{k7C@mrCP8v{~p zwC_zCZg~5DR(ESZW_71HS@0T}CDRdAF)@e#4GYSNLEqHZO9*Leb93_shVVvzOQN zg|^$~B?rcFLW$4CLw}3mLAi~+lOyqrv-AA?u$;U&a4}$YQ)^395LY~YOy4EovkRpd ze;OP^j&ji?d$^sPE!SszUXurimBhNqTx{?$S?u&qw(OMUbfH@`F=aHsDQEloNGx7I zoI@mwiMm+QkW_%{_s0P#h7{6B%R4m513ODq0O3De10olc71@2 z;Scgc<+0I^Z8Vn9LLBJC-zGS6wnGDHZ3>z$KDN!|(Y`S1M z(BLwK0`~Oo;L7T@5STDVZ*Bcpu~y?>RbC}W{I7OZOS|^`+%pc@FnTlGfS0l{n3wI_U9`jdH^VHjYt=ZMuh=?7)&m`@tfOIE~l9~ab!wCJ@h8Q zNF^yLzper?dEW%oh50Yv#row9A&Qj==kERC^9q9ZOT?>ZCvWAAUH12gLUa-e$#I<; z)CnRY?};)RT8NxYa9W;M81V9r4#F;{ znEtJd$-$fjNyi`-M`x!91$@XyD~hRX=!=d1HCsd!nLYO`^ak`jSE2>HDyzV_W=pAh zhJ%td;sgN~2ufD=NiHMm8mL~1k`~>B2dUKpL*Ri3OiKGAqy<|lAxLl0V}^x;L;r-) z-!jb}GNZ^go*40D_@oVsr9Fa=rsemu)FfULmXbknD6 zjlz|iZn*Y2yoh;liM`t#hrvcSeR)8MFA$T68W%8fGS6IVbZo&*e_<#lGoWD9)iJO! zNS==r&Fe6()j0n;f%ttA0k5;!hKyj7*k+TuYvGb+s0hht0)|HG z?7*`A(5@lo{;b%{?3L2J6Fy)4L3b5UDwv^;cnsa4a zhKj~4E0~7G16b!LHF9dd(rB;vh!jy|y%ScCUdbP_ryZzOFC>J26hQ3zSE@n8kbUX{3k7wOrBQ7%AV_M^>+dQ{H4`*1~B@rx^(Z zQlnu}0f6dK98vE@9FvRHG%f?1Fx9$zi62{KgHD--is)*}zdB<{MI;oN zSA*?md&}PO(^Ly)Qm`4A{y{m1*7UU5%;T}2jD4`bGrH`UtE#%~E-k&s!Irx|@}>Tu z3${!pqQKL~pZYUakv8^@ZFE^iysShBZa^biepmuLC-`}H-LFOHvGj~Dg$g=*jc{T#0YfY+umrGCf}iXkIkaoDNh&ym=BZQNvcI|=7etxVta?VAv1vxp1?dJ;zieyNc(Chqcz3VAB1C1#8zg8R3k5?pTw9T`T?ek}?}J@X@3L}V&ciX*e98xTrRs=NgUI%;0%lz1?c z_#)HU+I?FKM5qi5C0r=+M1n8oTG05FVmc$Nfk|X>j5WOhjl`q?45Vh>W-2Kn=`JL| z21<`xV@3WwR%-?FIMNaG$wQTeHfAT`l6XU$zd!xufRs&WA|-FK>5+g2*! zOE(U~6|({Uzi8_+qVt9-f-7AhCd@Pq`<@^Hgt!+{4vyU479bTjWele%uVMJoV&8JQ z7?o!bm!Mo79)<={bA*QT=Vn`=H+KA3#tNV}dj*T?U9{aJSswaZ_0grN>&5;o4b<;( zKd>w9>+7B-=dY=*(iY1Q7tzyb9K{6&h&k(w)^=-E8_zY?=2p*8*wKRNFfxfM^PnSm zCVhXQUB|-0lQsXsY*;uN+NidR10F(hj)vFS%10#S1efyHv|A!sApcs62Zt-m5UFXk z1Nn3jUdDlZ@{Ari_3;)*0~!TGnqJiK>2yQVLs!;ADnr$QdI-GQy*Rfq&|d^@LgRSD zw_v);G#_|NP+JkUGtA$+)^=%+7=}iaqv!o#e=9Mkq4E)|4M3sqH(HPOUb{6_&<_a*^J^cEVTcfo}9^&U^4Z| z!#oNZnWTYT1?|BK*48AOcE!Dne@1}0^+2p3(9y-|6$BeBPFwAH0lPu;GC!sMSDkLp z8X#k&kPiMoiH$=i&~A|WD5pMNAR;x;18JsV$!1ur`eldqE>5E?QkBSJ{b3}qutF4S zNa-xEfU3XzOA0s8J4j%P4Y3lgR@*A~0}p&VF_(wv%_$_^Z;AQ=;ZU8sIkHZKM>*`U zW7}_KnQwCez`eAOkL5-*_fuzrxW7x~jl`gaS!f(4M{$E808h(xtLsgi#~QJWeMpH9 z`i4yUML$1|v1Zdkgu2)h3` z`v7v=0MG)sp;I;lYdKZ+huXKZ3S~-01;M$JZ3B}mb*=ACqcAR`o%?{kb_ua3k~~GJ z=Gz*~~Ayh7JJNW%pW$tT{YSD*5p4zjI5)H{GP0X z&oohGD;lf92(wsnSfo@YDds^*<$0L<4*`v<xL~J)tlwqO|WZ9j*8OjiqK?9WyVkl-eJT@{eU;^5M zc;lK4z)5Uw+{2kD6tQlgM9rVh5PXcV4@C+X#w6L06^Hym#3%dv2&nYP4f-1?~*3IFSqooS$bFMdMOC5ytM zYFZ|$p>44suF5UBMCiUW=2f{tT+^a{R381`XlItyEbj7QB+k=AmHga9U)L+&tpU)P zw`p6ki*+5O3sZvjI7@d80vz!``_Vqvrrc8C1YwRsxsu-roK8b4IJ~_*c{i?OiB&0> z8JEGNvslH~6pn<@G%c_C7Z_hD7YU>gnZ;(5ymB4vFfwF}l!_>U8=Y2;A6k?vTuyMn z-1Q2b^|&kplZNF<8_kvaws{@-xS)iQ|2HdqeVWMG>&tGx@$C$!sWvuAtrGUge5=NG z3I{~a&KNY!(HkEkFcYU5< zwdJ7h@SA?CZ0dKhW0+f|A{Ka44Xo%B$H*d#pkgkAU{5@vWa8%>9YU9JkNNg(T{ zsBVW5;z5jL8GUn-C@Ub^I*(JTeJ|cjMy9?u!ID+F+wM1K$C3p{15wV@mjzT?1MGaz zB!LFNGFq-g^sc$S?K&M{;P%4H+J9g4;sgx}hyK0?Xa|Syi$F;saM^s>+|gy4&xgdq z3*`J!#3C$)n#+4O=0!efK137BvHST*ha5m2HWCrLG$x=wyShqw74m9Jvd^31TR z(-qK7sbLIu;iHb3qtR?NLz-FNMZ!4Zh%vxz-DZ9~83^CSRbh`&87mgxRW#y-htiL- zrgupC6+8!bB$zG8>Jvv4s-5PF_6r&otduG$U8G*2iAWeHi6=lf@sGi~N+armHCWKX z*Z)TbDZ-*Pf@5{IojM+gGuYj;LZzU()Vy%*H}wJmcmgT3v#6n7m#gT_?KcofSik6r zulAK~0IW$1sjsRIAk_Q)-PEm-aXbpY*UkCeu~xa2hB$Ng;qi;9ely+NV7wQ`N}zSl zEm}g>-RD3ghxGuyzjf566rC!6tl*BSTNpf+te!1T31vw6TyNLj9Y$oSClw&nCoXnA zy@|I~wbsjxxiLDIWkkp#awADPR47!@&mNHl&z2!>?@ls*M^jN0h>}p8EM0^HQx7f> zSum=Yb+R(pw9^CL@Wh)8ECGTt#3}K=wX4D6lekM?KeLTu%dp4`R+#A;wO~MSSP)#P zhat_py-aCtkqW{Pj3Zz)GRzbiDLwW{uI&teHO&!`QedlMyYZ=#6>H9m_4k@XKdw*= zVOY&EG^al)#7=2hxlyMz*Ni0gMn5kN((%l-eBPl}d3FAA4$OPiSAsh86^)^^Da7zO z;nKOtH&uz$Mmifbq3BwF6jxH6q3?eHhysZ9tEp!O z1svjEilC>I(MZaB!L`&_bJy)L0+-2uov_CNfTzLIhR$)suXd#XY%H0V6{obJSMqW? zspb9qNs$vqKxsB8sW-Hr$q6i=IH4j zT-gmz#rbe)lQC!WrjO#2iwcSLSB`SEKTym+0>kpv8)>#5F+8nrV)2vRxf3m-%MQr7 zbUCn37b}M*UqzT@Z|UgRh;){H0T~lmvx1;ZXx<(LK!)=tJi77DBl`?u##UG!o|Asl z8L!m=^4~;IO&~Q!!1(KCKb0ehKl*JpR1GiZeE!}I(EWHhnt4Sl$gskI zL|a>45+&nD0kua6)y*8WR_iH+UuAC%+GWB6*hZcGWPCE)#=X;npC$M23YTz z&n)G2<&LSU&Un+>#P&^7NKK&r4NECM;BCMMihU1v^4(3t=v4zV1GiHv6y2`B zAzFI1h59^vXaDqi7nLp4{PXe;(o$} zj%m~AbIuYtpH|bmN<(mt)bdq|X`9r*8GhRJ+)P_l7uu!c>|colrIzY-vmDyHCx1QL z5&<;(WGN?Rz_c;saS3zVLi0QtRyoy&fC9V3-pqO}9mVs(>F^X;q&FNOBerE4e=V}= zEuMrIAQzusmIX&1;-*l(8aPjl4Yb6)UCxXFVg&(YlBIvj@@uas^zd^xO;pnPr7~3& zX0NdcY4D>G`Lj!yUb58@JI9gWC)K{}^UBn|qNbZw` z9*yYOoPzZcXT6c28Q2@$hoQf{i!I>k{YLFvuFxu~NkR!^T%NH;ArqVH$qF8$Wr+A! zqKM|2lfC)RliS0!%4wB8E$aXL8!XQiuMOVu4kLgo0n(-Ql1gFdNR>qOfmCOLn)-}7 zEYH&nKEGr=t7U_I{qRzF-+qz6KLdB$Cg-0087xeooXP-co)gINrXl5(!CyPCfqZnB z7c>H}4W9>@hQ}f_UpYoxQ({B@*6%G?`EB<2h5E41ST!gv=mtK*;o*tM`bzR_SM8H}1%f4^`#02|ZF9S5 zgjBokI%hk^isarDa4u-aG^0Q5A+Q(d^KQCfcUX^N-jDY8+5QsX_PO)TP zS!Tu_f49_7ETNV-8#v1K){B4{2tXX^n`q;IavHs|PFWQdV^XmRE;2<28nSD%azg&! zsC*=muIfS98xOLAhKV!`$&*1c6g}XxR(&^E&dJa-s#x6?gIF5c8TT8`F>i3#E6;jW z&Hx$6X!jbB%W{33^4M+6g8C&9)?$I-31=g+?lbGB|1t;Eu$4k+cEXl_+rFUETww^% zJ<~al^e@X;0YD00MNb~c`@mh!h*rBORPPzL(i@EqeFx%^?fC`He)>;`Rq5!^zE0#Z zfIMH65mH=JVBT3KIX+~nno`0b1yC_ILI=|{Nu&Nw?hi3A%2D*om!Tbi9v~(el z7(%}6#n-D9>GbXJ3qFOSh>M3b?RcRcJU+hT)>Bjsgy{MRlJ%)wS9}M&L0pR2HT8{y zt;y9++=Msq@eb#wdPIFd>2e$4$2Os-F}F4Ab-?jvEf~FvSN#)=d11koY7&f_A{xkY zGr$55u)0XxFbBV?pnBn>O90Cc{!L?kVI`F{j-AR#OVUqf!2G1^ZrO8lyh1(%*oIOm zR8J-V!G3WM{c2Ks7u{4e8JCxBg-DqnnH0`O!7>Oq=7-FWB@S{gjqikA18siiDag>O z5yMIldqx}?CsH*V`yRwAlE9rQ<1V=UW5whlg}B~+B@P%d-rDIh%uT&vTJ|y@Uz;(- zBvU)iZ&k&m<@7=(AMm`Vxj~S&KiE-KfCX2(8@8QiYVsoZkZK-CNX-`at2R4yWarpE z+pg?L8={=GsTpR5p(mw4qj6?-$Enz^PhTj-riuH*rxe~bW5c{&hl2-?;`((=0vy|s z?mFOn%aUr1j%9H3I~F5w_~^R6s|}=7CK2x8w~b!2>A>Ni0Ee%?k>1u-u6jI=^+hDL zZy#=d(0ib%YoaaxrSdUX)|*%)y1hNXA{;+_ToxdZCH z2S>+w?uZ>cFl{h9KdtWuAWpne5t8dWUQjcAZw4l#tB>RW+S$voI$dLHKou!LVEh@k zEI_@IbWDIQ?UonT3Aq@UF~3ZQ!+N;$Ct+wl#nfZdo>z+iwA5_+LKqFZUtT8>4kGv5 zyh>hCS-Y$`qge~`;9qmC$p4v@Y<0SrZEnq+c>ntLG)v6TIwb!LFj^^P%_ zzcMZd$~~QnF9G0oVd*mk3^J>mBFQNCQ`LGY3T2$mHT1oo`T-_GnT+0g6Y39uf2w}( zvn4wwA@>I9lFUfGkdi-}t)^pvM5TLK=2QrKgeS{TL@fDu(JmdevXVKfdl@i2wV$uT zrAU9rvd{PnbwDBZYi+q{39C#vQ)6P7~b;tL91?UNV+%90E^d*?JztCDjHc&J4Kw{ycy zFn&ul_s~vg2DYmIN=A+;;`+}jws{8{Q$vU@o&?-+@4&;qH;a&h1Z>1cKHbTe zYhVZ1;366F?%y(bBRGcLvKBzn=x%3!OP4M zT@bcu8Y8Ah2~vAgEL6GS*20xt**k-}8j(UpF%Tr4~2>2Rcsy)RD{!ESw{sI^VBV0_v*4wMm-tSpNHKTZM9#1H2?5^cJ zkV1mG!QuaC+oz}2Vm9SUy8p>x-%@I?uYQ%>y5xbHvV3iB>s*ZgQF38=@8XkCh+FN+ppzjn*E3VzTI2 z@f8Uod7%})v+m;EW`meo<3}Eaim5{Qod6^Pl3&H20%ZU;-2n(Y6`)WJD%EfN&bIY; zbqp&;hpaPu8c*V|Int23cim5W2}S736;_MGd~e5F=aX~t`D$OH>A4)QX%dt#%TOZ; z9JhXIgjZiig#yjX5kGsFTtUym3c+s2+SZ;yU|1UD-j83kbL6}JRhM0kbW@~8f*hR~Ogq#w-!ib=COpcI_St)S3PL(nKw#yNJetB^F1sD^rbDM~D6BNoq zU6?E7n`^Yd5SE=Yyp@uqGgPh}qh5WGQ=6+!?dZkF=N|@IO;T=?WyON=Dd5>1AQk!$ zY03zber%+i@bragq^YYQ$JU29$alChZ*bS#KM|=xnZ8P;3ox(;w_+xl=?=P+$Y@OQsX##5JyIDtkFyP=ug9a_&El^ zu>@4lh03eXR73y}9tCLP8Xqe&r3o19CJb_34Goqdw`4(#Oo37}mpsKF0|7q+P&M$^ zhnI}tS1L%&hhq8so@1Fz+n=oh@9)2=zCVu?O5}H~^pZ)EwCRahmaI>`Yaae^Ur1@D zIt8ayiu%ya#*wYofE#J2eJ;``de7d6oakQlG@1 z>45NQu6E3`*!DGH0{&EZ#ZU|tcrbcrEUgu8l4LMQSZlAJP(A_<(Dg{weU>1;&rM!d zGPM)K9yE?9#5>gVG$siJ_~wVzRMHv?*Wdl*|C`x{Jisu%2Pp&AkT zF>ldG{MYNB+JFoCNCg-00^r6aE$66QC13w6q{QwvU36%ipYUjem31lA+Ro;fFhn(Y zX8nhZE;DA|)kj__hJTKxl_N8iPoaAD*Uk(ei_t+oyNG$cV}0GfaJu0^!k|wO6I3o( zF367qr2bsS$Qmdm$4gN&rO5{OiFrt8>J_}S z2U+^(eW%{=rtLQ2CDU`&sh@k3`+ts5T)LaL$9oV%+vy?(e))|9^D2wsU+s+0U6Rq0 zi*Sb_saTboi~40!X&(I64gGcHY+3#d&d`2~4!m@LqHLxw-Fo%Qx;>}0K zV0u~&LrtEE{@V#;g-_s5fbd(w+)mypR6k`=fO-RP6<}+uZiA2HMcJVO8hS8LW(v%_ zHwU|pRgH5WutgiNKLCmzpj`3+*+-uG78DS%(h5DU*?=>9H~|G}Xl&ZqMY1#68Bce! zIA#I)sn86-SS^yc#Ss3kZ1fz8cwz~|u$B<<<|D1n#i5KP?#Fv<;h%p}23(zV%V0Ua zH^?eU$siMY!Tk*l^59@5W==IQAJ>l^8MTr4)S7>xybWPl#7=^=$@Hw0^e?)Ht_ zr89+2{_Q1WP|KmXd#GW>F6d8jp6YlnpZ(nyBkgyFiE4|zmVm8EZBzidg-gdM>WJ08 z4`8+9Pu-+s@8{eYQE;}e#R9au$=)~Sv2s{|DxIb%-ZlRqb!+9>y=k-uEDMooY*uO| zkr|UiLv}WPmqFofCe9^l3Tdeb6NfoJS5H3_6phv%7pQX0V_?GMFlqRy37bE*x7i;H z^^$&PaEQKP;QQG%+g+@Q;?N0>6~4O7Rcg0*zT;7Nq<4=6AeS9mD_}O(Jho+-moWr1 z?{ZPq9#K(QiD|MEL${7zsXyb3m3#e`Xbvur;{%wS8i5HYD_&({EsR2|T3_d}<|fU4 z0+??0?n2%?KuKx9JMRDpoW-{Ct)yluSHMTWa?#aU85r|TQqFCbvUYL_IGDJ_+^YuKjn(3(L#fAx`*++ppe_yDOdY98$W6p+0lj?7&8v>iP7dqdt`#c& zLS?j6^CahAKu;yL`gRc#MJ8Pd)b`Rh^1T1m74CDbWxakLx?F2h&?Pn~bGe`}V(xsq zf{+NNht)iQqrWup%Zut0_zWsc^Q^GZl@)D&X(t4#FteN+E`vuS&{RWsC#yZ-tN%BD zp?52Ti%~DAH+ISh6joqDN_u20(MI3Li;)q5RC%*)xQ#pn(}vIqd6oWsm7(TG z65d@VIi7MAN@v(KW90VOYG>oW^YM3ST^4~8i{@b~{c6C!94d}amjb#8VOIO@HxJSR zEQ#t4sendQUFjl17EA*8x;7|F?_JIIQ=t&c?}luYdu1;sQ%S(iT24h;Pv+71dVbOL zK?99d6F{Jg`{X1qWJHH9xFJo%MKjC}l_6#hKD)T%fl=&J*{JobKaf;tv~F!kY7K%! zYFTZs=TnC#M}_?|zhcQX4_==Zp-!{KXQ%o78|%pZQ?`Upr?m@~U)}ZfOb#QVchc`X zBLq4Rd}l;;9c)A|l7oRz^`72TB53J?P2YTODDX|VSJVmDp4!~z(fg9o$9IvHb2APLynwq#RfaL{-I%}F2q3hu?a z+G??RaRC|CCIRZIIE*bS&DJW zK*?BY8Ao5iqjL%?qWW`Cph^-_RLf0cspY_4Ec5c_SYMWMKmoDQRn__B+Cg!OlP&cx z*D}&mJDFs_q@9Q(0h_P!jO0;A9m}nGKETGxAlI-<& z!~V}$cK+31q;$R)=uh-5d|yAw(|^|#F518bX)Oa==;Xg|93q=TlTGGlcNsO* z_TiAbd6+CyHX~#n(T5G<;+6_H`3F{;M0A-zXRg8uL=PqqmOAfB;8P&K>D^^xkjF1Z zV-OkN#4+_TNC!xlb)Rl#ii-w~oPf=vm|UM#$h$D`7P5dB=h&f7+^T0KQ6dj zR*>w><}Io~OjVQ`KJty1%EWn^{rx>|hdv0XdbCUf$-MRZAUCIo3ZK_G`{=5y3xETG zLK22TLQY*|#^Z^sauS$MjZ5}nH2G_cZ3Vmv3;8#@w+q4eC26Tn=LS!kZKru9tE;X`I!ZBTYr=q-mS5M3 zMXCs6&PHR-h6iwHZ0vJ}hNg%-RtOrJX@Kk#vjJIb1`hq=7ve$rQ;7^5V^1Y@uy~^D z5%J>Ud%!*xrG48lEFhNyZY_c?Byc)Fa!_v`T5JqUgC<~*r^}iA3CxBS0aWw{h@y6V zrt6|k)1xka7*TC)(KM!e^;*## z{qjBjM#zBLTBUD8qqz_0XjNmM+w*%Yb2g|{rl4zL&Qm^;0hyU;IvbXssV0A`S z=9ha~PJ&%{k2(ePM{;(Xhz!7dxv6?GEYpEI4_FNNdr#>Ai-Cno4=GGP2B>S)6_eku z;1^FJTsIG>-Lur97Q_K0H_~eyz#R1klT4zod78YYTS;Cfh22%M6Bih+*atTK#qxcn0010rcg#Fd*-^gR*q;)4VB**n5cTj6R`x#GrYkB0az3?y zRI$~OJVx3i5BGRF<0t@d@_&II*&7EjQ=Q@8htsdZe}Nvq0iUiH7S#EGc z1Sj5KfKSsWR)<#WHH@w9*eS&TjGRM9w=pv?E%q$YJ%i!~3+nf^X-6Sn04HG?W`_Wf zdR9`zYUe+I*w+Pe;Fn%xAI~aT{zIP{0{KP};i7C#U?dX35Qg~GUieN)R*gpj^x4L- z{eU7KBYSeF*Hv{bqxqUkRs^^icrIS{KyLqLb6+0D_PzG^apIsh?;4($y%#A zw|L>(A|EXbsx-(9#%~jT4-<63kTt|o59YZl&g!mY!N`7U_=|@WYo~$_P=rX@`{RJI zZ!ut8zE|pT4y=b%K7Vy=`)1>aIab99&FK*cu4o{A#4g(&=Ky3?9$;M1$YaL(zHu8O znt}%m(%#2{jK_3XIPatC0Zabi=3gv3Ktamc``PvSTXox2nO@4CY&v|rbiNL#k5Hd* z8re<&0W%Ah#8@*qf6ZQX^b0o!=reBjhxBuPD%TwPY%EntOvXrc)=>b1`@p8y>F=iB zgg2^v1LT=c-AwzRi_=pU?`u}qWc4%Xjzn>S6q7k&pc-I!kKyYQJ7KEhKfqN}m(;ia z4(#(s|H6vb>x*i2z|8)1f&{lS68Cv{_UTfPipt=HSY+6LR%A0Q?!ES;J73^GP6%Qw zF7mOix*ik$r~zU1L&G*LwblOk3B$gCAzBb#YZcWIGx*~t8+QRkZ8Of#@LF|izko15 zaHYb&ru3}mk0mG}3(_CAuU?7Dm#Yo>`blW#~FT;^Vp9B^JoKmt`|Te7A|-6`{u_#`1(H(G?}Xo1>wY3*CK{#Ke~7|lKYs2 zDbUpZ@}MUr)y1xcdzZf|HW+V6yKByFvOS)ixSlEZ6_^icItyM0ZjszFuAQ?}aF^l+ z=zzd!GTX3#OM9K{2fKURHO>IcSgFrhv@ z=Bj5{tDh?>-r%4SEc8_Q^alb<&~zKk)t6)=uh{$eOzXX^%ays!5s58;?~mvPc8v9% zsnq0x%2kP1M!Or0j_H}W(DI0Up2co`(c8N_ZF!%y4;-Wt6f7@ihnPV4PLQSCo(piKcOpl1#8Qym$3N1A;bUrj5Q^wL&-0_e z(p(hyTm1)8fdz(UYRT%+ier^mou!79qhd?*B^=eSiQ77^f-OmmNdjM#)V*Ybks*F2 z^Y7z|^gS!0$<^wbnB2*veImro&NBRSH4$1|X2}|g>}&(BG080hcZI-b!UhW)y3?#P z&)4O;{fpSt%#4Z|tycndH>+5)8?>~^Uv^xDp21BG6^H=O!2yXwj~LW3aFd2zBDC$yE>T{tMXEiZb*P)Zt^-=}|i zegqX{#7azU{;rVRxFM*bKeG;UiCxa${j4yYy>P_`k#8Qp^dMr1ir*@2H+EgN9r*T6 zy79TcU?YLp-DNwJ8>4QGJL%%mS89q)q$C^O?yaiqwc$YKx%NIr5084pKb;vYEbcm= z${56CD%;u3l6#6Q%|FiT#GH?tdTh;&;XBDNt=Ezmm{n*j?oXHW33iqbnpzaRo~?g% zIb#0(tM%0=`s)yViguNVx;vvd8QSAxGYK7Pn7mI;pb6E~p1r4O0SPP{=vT(1NI=PoyX?-UKhnc~V&K1_?djE5;-&aGF`+PvUV*3CHg@-&6+8wY`$n{ixO`};zR4BKORRh?PY~ z9$w7-?v#RzItf7!mzJ@}*Uq7fel_D;(x^yL1!9i3wf?v??Feb2yH9&Ro7H9mKbelD zpF4RyqS|5Z4AP!gD+BG^#K$j`5^Od-1RP}c(j^F&KIEN_Y@=n0zuH5#x4?VhVffbF z1v;9@pS>dVw%FR#Yx~ZS^ zEo6&e-nzP^^Ge+`LUKIL5aWw7pGtG=IR-mtKRgLAQ?TEj1T>4dETso3^$42W>~C#OXuzyKcOs*E;+?D zqx{68%!x2~E{_2_8sW}5Hd+l0NPo`y=l#>EinMAI&7UDs)MQT>Q`}1w+qHG$%~Dk_ zrcPt={pmUro2eNu$PM)ehAC+wyB& z$aZP1iuJ9t>s*O<@So*PTB=xV*gcg`z9H79Rc+i<16!x8ed+CjIKMzlm;~fJl`lQc zvnS@eE_f>?CT9%9h_+9t%86hyjF9GM+=+Y=Y^%llaWQvY|ME-h%mW=-e-&gne1FQe z2caS0;dI&6`Xc7BCq`+4E&z++_d^I+Mce^Nu=!&)K$1&_Ogi`%DT(;lp*u{(6=YPB zZNI;nT$NtE+fW3zpJqKg{DY|)Z;jKX+1)d5?mB&9t((Izd`d6K@B@sNs@vM{_xg67 zJ*=EFJ;fLG9lh)|K&RGRF{}Ogc zdO*t-T+r;k5xHXccPR5!ljF|FVnM-Jk7b{hTjK@xIu6eyr)_cyQRW|raL8+dv!7Fc zvLfYMGY(YC%~+lpi9j2Mg?NkLJCG#3_gwT06T3`aP{D}iJ=WWl_skbcJhjH*->7LizOJ-JGO9+J+Lbnn`cUF4)if52eEk= z-?EyQJB!F5Qgcu`yRBcV18DVyzT?>3A*n&7+B1JAPvPnYt3?Je;opS3r}a8R32OlN z*Wl%CTwgz4qov{jqf^-MV|6KB-FE%rd5#6mCx!Q-Vu_1h4%sV%w-qo2WKQ^t{Tgip z4NSj^563Q=y?S~b6?PXMzz>Yp4x^ZVE795iRxnR@fg~Cf{PV@9vZ}E931J!f(tyq= zEJDm<=R_SsOydW5s4`SyLkgm4m#MN020_I^FCUU zibYJU&J?F@>967bYn3cwbCZRYlZ|B7bYF=!=yvzWwhdrNatbn2pb z3Ij$@-HusBuh|W%%?A&^gl3lH+>^Go(#aT(J*^oX8BzIb36DpzeA-r2oVlOdY6b0gJ7}NbLtGZE>>vEr)*DM6gM&lX7AjR*C@c`gI;(yn zqgk%xkzi{93{&vx0`tz#x*Kg7J-b7Z-Gvv3b>Vt7LBWvnmVX3y#Fd$7j{JJ?G+KU* z1g>_VGB+{|Uomc8$jHbKPfcdcu8bogBfER%b0!h%pRKBWAd zK#c8l56o5S|5pQsqx~}o4UM4DymNcA>_#iKHp#|`bSp(}jKfCNH5?Us*)&xeag;qbLsFjD%^EM8&%#cuuIiNr$Lvf{+)L;vc&WNY%s#{}#3iRw(=LsOse zUZh>Hl5b5X%QxV1H?#gYSx{%ltQwshmt1)dAL3=}>YLmKIA|@nTp2ZGPB(ji%+mr; zRu7i@+w4R*B>`7smgI)LPAGK80G{vn*@

SOa7Wl1?3Hx>O_BrT^psQUY(c%C>N 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�k8UkvLmoxdLWI*)YzmGt?*kdiKJO*7h1 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�k7VYADX%;;0#`U# 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�Hrk6NQbvZS&RuYwT%~hX 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 - + @@ -854,7 +849,7 @@ - + @@ -1011,7 +1006,7 @@ - + @@ -1083,7 +1078,7 @@ - + @@ -1309,7 +1304,7 @@ - + @@ -1326,7 +1321,70 @@ const testfunc = () => { elec.openURL('http://ocoge.club'); } + //============ User Customize Start =============== + // テーマ + // カスタムブロックカラー定義 + Blockly.HSV_SATURATION = 0.55; + Blockly.HSV_VALUE = 0.75; + var gpio_color = '0'; + var multimedia_color = '240'; + var network_color = '340'; + var special_color = '20'; + var snippets_color = '90'; + + // Blockly.Msg.UGJ_GPIO_HUE = 0;//FF7799 + // Blockly.Msg.UGJ_MULTIMEDIA_HUE = 240;//CF63CF + // Blockly.Msg.UGJ_NETWORK_HUE = 340;//"#54C4EA" + // Blockly.Msg.UGJ_SPECIAL_HUE = 20;//"#0FBD8C" + // Blockly.Msg.UGJ_SNIPPETS_HUE = 90; + + var theme = Blockly.Theme.defineTheme('ocoge', { + 'base': Blockly.Themes.Classic, + 'fontStyle': { "family": "Noto Sans CJK JP Light" }, + 'startHats': true, + 'componentStyles': { + 'toolboxBackgroundColour': 'aliceblue', + 'flyoutBackgroundColour': 'lavender', + 'toolboxForegroundColour': 'white', + 'flyoutForegroundColour': 'steelblue' + }, + 'blockStyles': { + 'gpio_blocks': { + "colourPrimary": gpio_color + }, + 'multimedia_blocks': { + "colourPrimary": multimedia_color + }, + 'network_blocks': { + "colourPrimary": network_color + }, + 'special_blocks': { + "colourPrimary": special_color + }, + 'snippets_blocks': { + "colourPrimary": snippets_color + } + }, + 'categoryStyles': { + "gpio_category": { + "colour": gpio_color + }, + "multimedia_category": { + "colour": multimedia_color + }, + "network_category": { + "colour": network_color + }, + "special_category": { + "colour": special_color + }, + "snippets_category": { + "colour": snippets_color + } + }, + }); + // Customize messages Blockly.Msg["CONTROLS_IF_MSG_THEN"] = "ならば"; Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = ""; @@ -1334,15 +1392,6 @@ Blockly.Msg["VARIABLES_SET"] = "変数 %1 を %2 にする"; Blockly.Msg["TEXT_PRINT_TITLE"] = "ダイアログに %1 を表示"; - // Block color - Blockly.HSV_SATURATION = 0.55; - Blockly.HSV_VALUE = 0.75; - Blockly.Msg.UGJ_GPIO_HUE = 0;//FF7799 - Blockly.Msg.UGJ_MULTIMEDIA_HUE = 240;//CF63CF - Blockly.Msg.UGJ_NETWORK_HUE = 340;//"#54C4EA" - Blockly.Msg.UGJ_SPECIAL_HUE = 20;//"#0FBD8C" - Blockly.Msg.UGJ_SNIPPETS_HUE = 90; - // Customize Toolbox class CustomCategory extends Blockly.ToolboxCategory { /** Constructor for a custom category. @override */ @@ -1687,6 +1736,7 @@ var workspace = Blockly.inject(blocklyDiv, { toolbox: document.getElementById('toolbox'), + theme: theme, scrollbars: true, grid: { diff --git a/scripts/ugj_blocks.js b/scripts/ugj_blocks.js index 38b4d2b..a2a53a8 100644 --- a/scripts/ugj_blocks.js +++ b/scripts/ugj_blocks.js @@ -3,29 +3,29 @@ const appDocRoot = '/home/pi/Documents/ocoge/' /** Fix Basic Blocks ****************************************************************************************/ Blockly.Blocks['ugj_control_for'] = { - init: function() { + init: function () { this.appendDummyInput() - .appendField(new Blockly.FieldVariable("番号"), "index"); + .appendField(new Blockly.FieldVariable("番号"), "index"); this.appendValueInput("from") - .setCheck("Number") - .appendField("を"); + .setCheck("Number") + .appendField("を"); this.appendValueInput("to") - .setCheck("Number") - .appendField("から"); + .setCheck("Number") + .appendField("から"); this.appendValueInput("by") - .setCheck("Number") - .appendField("まで"); + .setCheck("Number") + .appendField("まで"); this.appendDummyInput() - .appendField("ずつ") - .appendField(new Blockly.FieldDropdown([["増やして","increase"], ["減らして","decrease"]]), "crease"); + .appendField("ずつ") + .appendField(new Blockly.FieldDropdown([["増やして", "increase"], ["減らして", "decrease"]]), "crease"); this.appendStatementInput("do") - .setCheck(null); + .setCheck(null); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setColour(Blockly.Msg.LOOPS_HUE); - this.setTooltip(""); - this.setHelpUrl(""); + this.setTooltip(""); + this.setHelpUrl(""); } }; @@ -54,7 +54,7 @@ Blockly.Blocks['ugj_control_for'] = { // this.setHelpUrl(""); // } // }; -Blockly.JavaScript['ugj_control_for'] = function(block) { +Blockly.JavaScript['ugj_control_for'] = function (block) { var variable_index = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('index'), Blockly.Variables.NAME_TYPE); var value_from = Blockly.JavaScript.valueToCode(block, 'from', Blockly.JavaScript.ORDER_ATOMIC); var value_to = Blockly.JavaScript.valueToCode(block, 'to', Blockly.JavaScript.ORDER_ATOMIC); @@ -62,8 +62,8 @@ Blockly.JavaScript['ugj_control_for'] = function(block) { var dropdown_crease = block.getFieldValue('crease'); var statements_do = Blockly.JavaScript.statementToCode(block, 'do'); let daishou, tasuhiku; - if (dropdown_crease == 'increase') {daishou = '<'; tasuhiku = '+';} - else {daishou = '>'; tasuhiku = '-';} + if (dropdown_crease == 'increase') { daishou = '<'; tasuhiku = '+'; } + else { daishou = '>'; tasuhiku = '-'; } var code = [ `for (${variable_index} = ${value_from}; ${variable_index} ${daishou}= ${value_to}; ${variable_index} ${tasuhiku}= ${value_by}) {`, statements_do, @@ -123,19 +123,19 @@ Blockly.JavaScript['ugj_controls_forEach'] = function (block) { /** Additional Basic Blocks********************************************************************************* */ Blockly.Blocks['ugj_hextodec'] = { - init: function() { + init: function () { this.appendValueInput("hex") - .setCheck("String") - .appendField("0x"); + .setCheck("String") + .appendField("0x"); this.setInputsInline(true); this.setOutput(true, "Number"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); this.setColour(Blockly.Msg.MATH_HUE); - this.setTooltip("16進数を10進数に変換します。"); - this.setHelpUrl(""); + this.setTooltip("16進数を10進数に変換します。"); + this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_hextodec'] = function(block) { +Blockly.JavaScript['ugj_hextodec'] = function (block) { var value_hex = Blockly.JavaScript.valueToCode(block, 'hex', Blockly.JavaScript.ORDER_ATOMIC); var code = `parseInt (${value_hex}, 16)`; return [code, Blockly.JavaScript.ORDER_ATOMIC]; @@ -153,7 +153,7 @@ Blockly.Blocks['ugj_gpio_start'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("GPIOを初期化して接続します。"); this.setHelpUrl(""); } @@ -173,7 +173,7 @@ Blockly.Blocks['ugj_gpio_start_remote'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("他のマシンのリモートGPIOに接続します。"); this.setHelpUrl(""); } @@ -194,7 +194,7 @@ Blockly.Blocks['ugj_gpio_stop'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("GPIOとの接続を終了します。"); this.setHelpUrl(""); } @@ -217,7 +217,7 @@ Blockly.Blocks['ugj_gpio_setoutput'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("GPIO端子のモードを出力に設定します。"); this.setHelpUrl(""); } @@ -242,7 +242,7 @@ Blockly.Blocks['ugj_gpio_setinput'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("GPIO端子を入力モードにして、プルアップ・プルダウンを設定します。"); this.setHelpUrl(""); } @@ -268,7 +268,7 @@ Blockly.Blocks['ugj_gpio_read'] = { this.setInputsInline(true); this.setOutput(true, "Number"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("GPIO端子の値をデジタル値(0または1)で読み取ります。"); this.setHelpUrl(""); } @@ -295,7 +295,7 @@ Blockly.Blocks['ugj_gpio_write'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("GPIO端子の値をデジタル値(0または1)で出力します。"); this.setHelpUrl(""); } @@ -323,7 +323,7 @@ Blockly.Blocks['ugj_gpio_servo'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("サーボモータの回転をパルス幅(1000~2000μsec)までの数値で指定します。"); this.setHelpUrl(""); } @@ -350,7 +350,7 @@ Blockly.Blocks['ugj_gpio_setpwmfreqrange'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("パルス周波数をセットして、GPIO端子がPWM出力できるようにします。レンジは100固定です。"); this.setHelpUrl(""); } @@ -382,7 +382,7 @@ Blockly.Blocks['ugj_gpio_setpwmdutycycle'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("デューティ比(1~100%)を指定して出力を開始します。0を指定すると出力を停止します。事前に必ずパルス周波数ブロックが実行されるようにしてください。"); this.setHelpUrl("https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E6%AF%94"); } @@ -398,23 +398,23 @@ Blockly.JavaScript['ugj_gpio_setpwmdutycycle'] = function (block) { /** Open Serial Port ** */ /********************** */ Blockly.Blocks['ugj_gpio_serialopen'] = { - init: function() { + init: function () { this.appendValueInput("tty") - .setCheck("String") - .appendField("シリアルポート"); + .setCheck("String") + .appendField("シリアルポート"); this.appendDummyInput() - .appendField("を速度") - .appendField(new Blockly.FieldDropdown([["9600","9600"], ["19200","19200"], ["115200","115200"]]), "baud") - .appendField("bpsで開く"); + .appendField("を速度") + .appendField(new Blockly.FieldDropdown([["9600", "9600"], ["19200", "19200"], ["115200", "115200"]]), "baud") + .appendField("bpsで開く"); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("シリアルデバイスとの接続を開きます。"); this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_gpio_serialopen'] = function(block) { +Blockly.JavaScript['ugj_gpio_serialopen'] = function (block) { var value_tty = Blockly.JavaScript.valueToCode(block, 'tty', Blockly.JavaScript.ORDER_ATOMIC); var dropdown_baud = block.getFieldValue('baud'); var code = `let serhand = pi.serial_open(${value_tty}, ${dropdown_baud}, 0);`; @@ -424,18 +424,18 @@ Blockly.JavaScript['ugj_gpio_serialopen'] = function(block) { /** Close Serial Port ** */ /********************** */ Blockly.Blocks['ugj_serial_close'] = { - init: function() { + init: function () { this.appendDummyInput() - .appendField("シリアルポートを閉じる"); + .appendField("シリアルポートを閉じる"); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("シリアルデバイスとの接続を閉じます。"); this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_serial_close'] = function(block) { +Blockly.JavaScript['ugj_serial_close'] = function (block) { var code = 'pi.serial_close(serhand);'; return code; }; @@ -453,7 +453,7 @@ Blockly.Blocks['ugj_serial_write'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("シリアル接続されたデバイスにデータを送信します。シリアルポートは開かれていなくてはいけません。"); this.setHelpUrl(""); } @@ -477,7 +477,7 @@ Blockly.Blocks['ugj_gpio_serialread'] = { this.setInputsInline(true); this.setOutput(true, null); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("オープン済みシリアルポートから、指定のバイト数だけデータを読み込みます。"); this.setHelpUrl(""); } @@ -492,21 +492,21 @@ Blockly.JavaScript['ugj_gpio_serialread'] = function (block) { /** Open I2C Device ** */ /********************* */ Blockly.Blocks['ugj_gpio_i2copen'] = { - init: function() { + init: function () { this.appendValueInput("i2c_addr") - .setCheck("Number") - .appendField("アドレス"); + .setCheck("Number") + .appendField("アドレス"); this.appendDummyInput() - .appendField("の I2C デバイスを開く"); + .appendField("の I2C デバイスを開く"); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("I2C接続されたデバイスとの通信を開始します。一度にオープンできるI2Cデバイスはひとつだけです。"); this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_gpio_i2copen'] = function(block) { +Blockly.JavaScript['ugj_gpio_i2copen'] = function (block) { var value_i2c_addr = Blockly.JavaScript.valueToCode(block, 'i2c_addr', Blockly.JavaScript.ORDER_ATOMIC); var code = `let i2cHand = pi.i2c_open(1, ${value_i2c_addr}, 0);`; return code; @@ -521,7 +521,7 @@ Blockly.Blocks['ugj_gpio_i2cclose'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("I2C接続されたデバイスと通信を切断します。"); this.setHelpUrl(""); } @@ -548,7 +548,7 @@ Blockly.Blocks['ugj_gpio_i2cwritebyte'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("デバイスの指定されたレジスタに1バイトを書き込みます。"); this.setHelpUrl(""); } @@ -573,7 +573,7 @@ Blockly.Blocks['ugj_gpio_i2creadbyte'] = { this.setInputsInline(true); this.setOutput(true, null); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("デバイスの指定されたレジスタから1バイトを読み込みます。"); this.setHelpUrl(""); } @@ -602,7 +602,7 @@ Blockly.Blocks['ugj_dht'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("温湿度センサー DHT11/DHT22 を使用して気温と湿度を読み取ります。"); this.setHelpUrl(""); } @@ -639,7 +639,7 @@ Blockly.Blocks['ugj_gpio_sleep'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("実行環境全体を完全に一時停止します。停止中はすべての操作ができなくなります。※実験用"); this.setHelpUrl(""); } @@ -660,7 +660,7 @@ Blockly.Blocks['ugj_library_tensorflow'] = { this.appendDummyInput() .appendField("TensorFlowによる画像認識(推論)"); this.setOutput(true, "Library"); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("tensorflow.jsをロードし、推論ができるようにします。"); this.setHelpUrl(""); } @@ -679,7 +679,7 @@ Blockly.Blocks['ugj_tfpredict_init'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("画像認識(推論)をするためのビデオストリームを表示します。"); this.setHelpUrl(""); } @@ -705,7 +705,7 @@ Blockly.Blocks['ugj_tfpredict_loadmodel'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("ardamavi氏による指数え画像データセットをPonDad氏がts.js用モデルにコンバートしたものです。"); this.setHelpUrl("https://github.com/PonDad/manatee"); } @@ -727,7 +727,7 @@ Blockly.Blocks['ugj_tfpredict_predict'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("読み込んだモデルを使用してカメラ画像から画像認識を行い、変数に代入します。"); this.setHelpUrl(""); } @@ -768,7 +768,7 @@ Blockly.Blocks['ugj_face_library'] = { this.setInputsInline(true); this.setOutput(true, "Library"); // this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("face-api.jsをロードし、顔認識ができるようにします。"); this.setHelpUrl(""); } @@ -784,7 +784,7 @@ Blockly.Blocks['ugj_face_init'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("顔認識のためのビデオストリームを開始します。"); this.setHelpUrl(""); } @@ -805,7 +805,7 @@ Blockly.Blocks['ugj_face_display'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("カメラの映像を画像エリアに表示します。必須ではないブロックです。"); this.setHelpUrl(""); } @@ -835,7 +835,7 @@ Blockly.Blocks['ugj_face_detect'] = { .setCheck(null); this.setInputsInline(true); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("顔を発見したら動作します。"); this.setHelpUrl(""); } @@ -875,7 +875,7 @@ Blockly.Blocks['ugj_face_drawrect'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("顔の位置に四角形を表示します。"); this.setHelpUrl(""); } @@ -910,7 +910,7 @@ Blockly.Blocks['ugj_canvas_say'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("キャンバスにフキダシを作ります。"); this.setHelpUrl(""); } @@ -934,7 +934,7 @@ Blockly.Blocks['ugj_canvas_init'] = { .appendField("キャンバスを表示"); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("キャンバスを表示し、使用できるようにします。"); this.setHelpUrl(""); } @@ -960,7 +960,7 @@ Blockly.Blocks['ugj_canvas_finalize'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("使ったキャンバスを片付けます。"); this.setHelpUrl(""); } @@ -983,7 +983,7 @@ Blockly.Blocks['ugj_canvas_loadimg'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("画像ファイルの内容をキャンバス上にロードします。"); this.setHelpUrl(""); } @@ -1021,7 +1021,7 @@ Blockly.Blocks['ugj_canvas_clearrect'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("長方形に図形を消去します。左上の頂点の座標と、幅・高さを指定します。"); this.setHelpUrl(""); } @@ -1046,7 +1046,7 @@ Blockly.Blocks['ugj_canvas_width'] = { this.setInputsInline(true); this.setOutput(true, null); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("キャンバスの幅を取得します。"); this.setHelpUrl(""); } @@ -1065,7 +1065,7 @@ Blockly.Blocks['ugj_canvas_height'] = { this.setInputsInline(true); this.setOutput(true, "Number"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("キャンバスの高さを取得します。"); this.setHelpUrl(""); } @@ -1099,7 +1099,7 @@ Blockly.Blocks['ugj_canvas_drawcircle'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("円を描画します。"); this.setHelpUrl(""); } @@ -1145,7 +1145,7 @@ Blockly.Blocks['ugj_canvas_drawrect'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("キャンバス上に長方形を描画します。"); this.setHelpUrl(""); } @@ -1182,7 +1182,7 @@ Blockly.Blocks['ugj_event_key'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("キーボードを押したり離したりした時のアクションです。"); this.setHelpUrl("https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent/key/Key_Values"); } @@ -1212,7 +1212,7 @@ Blockly.Blocks['ugj_sound_play'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("音を鳴らします。"); this.setHelpUrl(""); } @@ -1249,7 +1249,7 @@ Blockly.Blocks['ugj_multimedia_cloudspeech_recognition'] = { .appendField("停止したら"); this.setInputsInline(true); this.setPreviousStatement(true); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("Google Cloud Speech API による音声認識を行います。言葉を検知したらステートメントが実行されます。認識途中の暫定結果を取得することもできます。"); this.setHelpUrl(""); } @@ -1352,7 +1352,7 @@ Blockly.Blocks['ugj_multimedia_webspeech_recognition'] = { .appendField("停止したら"); this.setInputsInline(true); this.setPreviousStatement(true); - this.setColour(Blockly.Msg.UGJ_MULTIMEDIA_HUE); + this.setStyle('multimedia_blocks') this.setTooltip("Web Speech API による音声認識を行います。言葉を検知したらステートメントが実行されます。認識途中の暫定結果を取得することもできます。"); this.setHelpUrl(""); } @@ -1419,7 +1419,7 @@ Blockly.Blocks['ugj_socket'] = { .appendField("が来たら"); this.setInputsInline(true); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("TCP接続(Telnet)でサーバーと接続します。"); this.setHelpUrl(""); } @@ -1457,7 +1457,7 @@ Blockly.Blocks['ugj_socket_write'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("TCP接続で開いたソケットにデータを書き込みます。"); this.setHelpUrl(""); } @@ -1489,7 +1489,7 @@ Blockly.Blocks['ugj_network_httpserver'] = { .appendField("を表示してアクセス待ちに戻る"); this.setInputsInline(true); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("HTTPサーバを起動します。ポートは3000固定です。"); this.setHelpUrl(""); } @@ -1526,7 +1526,7 @@ Blockly.Blocks['ugj_network_axios_geturl'] = { this.setInputsInline(true); this.setOutput(true, "String"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("URLにGETリクエストを送信し、レスポンスを取得します。エラーの場合、HTTPステータスコードを返します。"); this.setHelpUrl(""); } @@ -1572,7 +1572,7 @@ Blockly.Blocks['ugj_network_sendmail'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("メールを送信します。Fromアドレスは使用できません。"); this.setHelpUrl(""); } @@ -1617,7 +1617,7 @@ Blockly.Blocks['ugj_library_skyway'] = { .appendField("WebRTC+SkyWayによるウェブチャット"); this.setInputsInline(true); this.setOutput(true, "Library"); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("skyway.jsをロードし、ウェブチャットができるようにします。"); this.setHelpUrl(""); } @@ -1636,7 +1636,7 @@ Blockly.Blocks['ugj_webchat'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("ビデオ画面、チャット入力フォームや黒板を表示します。"); this.setHelpUrl(""); } @@ -1666,7 +1666,7 @@ Blockly.Blocks['ugj_getusermedia'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("このコンピュータにつながれているメディアデバイスから映像を取得して表示します。"); this.setHelpUrl(""); } @@ -1699,7 +1699,7 @@ Blockly.Blocks['ugj_skyway_newpeer'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("サーバーにIDを登録して、相手先呼び出しの準備をします。"); this.setHelpUrl(""); } @@ -1740,7 +1740,7 @@ Blockly.Blocks['ugj_skyway_called'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("接続要求があった場合、チャットを開始する処理です。"); this.setHelpUrl(""); } @@ -1769,7 +1769,7 @@ Blockly.Blocks['ugj_skyway_events'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("チャットの相手との接続後の動作を定義します。"); this.setHelpUrl(""); } @@ -1798,7 +1798,7 @@ Blockly.Blocks['ugj_skyway_eventopen'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("チャット相手との接続が確立したときの動作を決めます。"); this.setHelpUrl(""); } @@ -1826,7 +1826,7 @@ Blockly.Blocks['ugj_skyway_eventdata'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("チャット相手の発言を受信したときの動作です。"); this.setHelpUrl(""); } @@ -1855,7 +1855,7 @@ Blockly.Blocks['ugj_skyway_eventsend'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip("入力フィールドで送信が発生したときの動作を決めます。"); this.setHelpUrl(""); } @@ -1893,7 +1893,7 @@ Blockly.Blocks['ugj_file_readsync'] = { this.setInputsInline(true); this.setOutput(true, "String"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("あなたのホーム/ocogeディレクトリ内にあるファイルの内容を取得します。「符号化」は、テキストファイルでは通常「utf8」を選択します。"); this.setHelpUrl(""); } @@ -1921,7 +1921,7 @@ Blockly.Blocks['ugj_localstorage_save'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("テキストデータをローカルストレージに名前を付けて保存します。名前は半角アルファベットと数字だけで指定してください。"); this.setHelpUrl(""); } @@ -1945,7 +1945,7 @@ Blockly.Blocks['ugj_localstorage_load'] = { this.setInputsInline(true); this.setOutput(true, "String"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("ローカルストレージからテキストデータを読み込みます。"); this.setHelpUrl(""); } @@ -1966,7 +1966,7 @@ Blockly.Blocks['ugj_localstorage_keylist'] = { this.setInputsInline(true); this.setOutput(true, null); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("ローカルストレージに保存されているキーの一覧を取得します。"); this.setHelpUrl(""); } @@ -2006,7 +2006,7 @@ Blockly.Blocks['ugj_event_answer'] = { this.appendStatementInput("do") .setCheck(null); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("質問をして答えを待ちます。入力欄でキーボードのエンターキーが入力されるか、チェックマークボタンが押されると実行されます。"); this.setHelpUrl(""); } @@ -2054,7 +2054,7 @@ Blockly.Blocks['ugj_spawnsync'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("外部プログラムを実行して子プロセスを生成し、子プロセスが終了するまで待ちます。"); this.setHelpUrl(""); } @@ -2083,7 +2083,7 @@ Blockly.Blocks['ugj_spawn'] = { .setCheck(null); this.setInputsInline(true); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("外部プログラムを実行して子プロセスを生成します。データを受け取る毎にステートメントが実行されます。"); this.setHelpUrl(""); } @@ -2111,35 +2111,35 @@ Blockly.JavaScript['ugj_spawn'] = function (block) { /************************** */ // gesture_sensor.py Blockly.Blocks['ugj_child_gesture'] = { - init: function() { + init: function () { this.appendDummyInput() - .appendField("ジェスチャー"); + .appendField("ジェスチャー"); this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); - this.setTooltip("ジェスチャーセンサー Paj7620 (GrovePi-Python)"); - this.setHelpUrl(""); + this.setStyle('special_blocks') + this.setTooltip("ジェスチャーセンサー Paj7620 (GrovePi-Python)"); + this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_child_gesture'] = function(block) { +Blockly.JavaScript['ugj_child_gesture'] = function (block) { var code = `'python3', ['./scripts/gesture.py']`; return [code, Blockly.JavaScript.ORDER_NONE]; }; // face.py Blockly.Blocks['ugj_child_facepy'] = { - init: function() { + init: function () { this.appendDummyInput() - .appendField("face.py:カメラ画像を表示") - .appendField(new Blockly.FieldDropdown([["しない"," "], ["する","-w"]]), "win"); + .appendField("face.py:カメラ画像を表示") + .appendField(new Blockly.FieldDropdown([["しない", " "], ["する", "-w"]]), "win"); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); - this.setTooltip("OpenCVによる顔認識 Python2スクリプト - 顔のX座標を返します。"); - this.setHelpUrl(""); + this.setStyle('special_blocks') + this.setTooltip("OpenCVによる顔認識 Python2スクリプト - 顔のX座標を返します。"); + this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_child_facepy'] = function(block) { +Blockly.JavaScript['ugj_child_facepy'] = function (block) { var dropdown_win = block.getFieldValue('win'); var code = `'python', ['./scripts/face.py', '${dropdown_win}']`; return [code, Blockly.JavaScript.ORDER_NONE]; @@ -2155,7 +2155,7 @@ Blockly.Blocks['ugj_child_openjtalk'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("日本語音声合成プログラム「openJTalk」を使用してしゃべります。声の種類を選べます。"); this.setHelpUrl(""); } @@ -2189,7 +2189,7 @@ Blockly.Blocks['ugj_child_oledtext'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("I2C接続したSSD1306ディスプレイ(128x64)にテキストを描画します。最大4行。"); this.setHelpUrl(""); } @@ -2213,7 +2213,7 @@ Blockly.Blocks['ugj_child_fswebcam'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("fswebcam"); this.setHelpUrl(""); } @@ -2232,7 +2232,7 @@ Blockly.Blocks['ugj_child_julius'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("音声認識エンジン \"Julius\""); this.setHelpUrl(""); } @@ -2252,7 +2252,7 @@ Blockly.Blocks['ugj_child_irrecord'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("受信した赤外線リモコンの信号を文字列として取得します。"); this.setHelpUrl(""); } @@ -2276,7 +2276,7 @@ Blockly.Blocks['ugj_child_irplayback'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("学習済みの赤外線リモコンの信号を送信します。"); this.setHelpUrl(""); } @@ -2298,7 +2298,7 @@ Blockly.Blocks['ugj_child_irrcvr'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("受信した赤外線リモコンの信号からハッシュを生成します。"); this.setHelpUrl(""); } @@ -2318,7 +2318,7 @@ Blockly.JavaScript['ugj_child_irrcvr'] = function (block) { // this.setInputsInline(true); // this.setOutput(true, null); // this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); -// this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); +// this.setStyle('special_blocks') // this.setTooltip("opencv4nodejsによる顔認識"); // this.setHelpUrl(""); // } @@ -2335,7 +2335,7 @@ Blockly.Blocks['ugj_child_testpy'] = { .appendField("testpy"); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip(""); this.setHelpUrl(""); } @@ -2353,7 +2353,7 @@ Blockly.Blocks['ugj_child_testjs'] = { .appendField("testjs"); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip(""); this.setHelpUrl(""); } @@ -2376,7 +2376,7 @@ Blockly.Blocks['ugj_child_debug'] = { this.setInputsInline(true); this.setOutput(true, "shcmd"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("さわるなきけん"); this.setHelpUrl(""); } @@ -2397,7 +2397,7 @@ Blockly.Blocks['ugj_blackboard_show'] = { .appendField("黒板を表示"); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("文字を表示するための専用エリアを表示します。"); this.setHelpUrl(""); } @@ -2426,7 +2426,7 @@ Blockly.Blocks['ugj_blackboard_write'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("黒板に文字を表示します。次の行に追加する他、最後の行を書き換えることもできます。"); this.setHelpUrl(""); } @@ -2482,7 +2482,7 @@ Blockly.Blocks['ugj_clearblackboard'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("黒板をきれいにします。"); this.setHelpUrl(""); } @@ -2502,7 +2502,7 @@ Blockly.Blocks['ugj_blackboard_content'] = { this.setInputsInline(true); this.setOutput(true, "String"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("黒板の内容をプレーンテキストで取得します。"); this.setHelpUrl(""); } @@ -2524,7 +2524,7 @@ Blockly.Blocks['ugj_sleep'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("指定した秒数だけ処理を中断します。"); this.setHelpUrl(""); } @@ -2598,18 +2598,18 @@ Blockly.JavaScript['ugj_text_null'] = function (block) { /** Cursor */ /********* */ Blockly.Blocks['ugj_text_cursor'] = { - init: function() { + init: function () { this.appendDummyInput() - .appendField("カーソル"); + .appendField("カーソル"); this.setInputsInline(true); this.setOutput(true, "String"); this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND); this.setColour(Blockly.Msg.TEXTS_HUE); - this.setTooltip("特殊記号(カーソル)"); - this.setHelpUrl(""); + this.setTooltip("特殊記号(カーソル)"); + this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_text_cursor'] = function(block) { +Blockly.JavaScript['ugj_text_cursor'] = function (block) { var code = "'▋'"; return [code, Blockly.JavaScript.ORDER_ATOMIC]; }; @@ -2627,7 +2627,7 @@ Blockly.Blocks['ugj_set_interval'] = { .setCheck(null); this.setInputsInline(true); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("非同期で繰り返し処理を行います(停止ボタンまたは停止ブロックで停止)。"); this.setHelpUrl(""); } @@ -2653,7 +2653,7 @@ Blockly.Blocks['ugj_special_clearinterval'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("非同期の繰り返し処理を停止します。"); this.setHelpUrl(""); } @@ -2678,7 +2678,7 @@ Blockly.Blocks['ugj_set_timeout'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(false, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("指定した秒数だけ待ってから実行します。");//内側のブロック部を 外側下に接続したものは待たずに直ちに実行されます(非同期動作)。 this.setHelpUrl(""); } @@ -2701,7 +2701,7 @@ Blockly.Blocks['ugj_library_load'] = { .setCheck(null); this.setInputsInline(true); // this.setStartHat(true); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("ライブラリをロードします。"); this.setHelpUrl(""); } @@ -2746,7 +2746,7 @@ Blockly.Blocks['ugj_control_button'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_SPECIAL_HUE); + this.setStyle('special_blocks') this.setTooltip("ディスプレイカラムにボタンを作成し、クリックのイベントリスナを定義します。テキストデータをひとつ、\"title\"属性値として設定・取り出しが可能です。保存したデータはマウスオーバーで確認できます。"); this.setHelpUrl(""); } @@ -2815,7 +2815,7 @@ Blockly.Blocks['ugj_network_fetch'] = { .setCheck(null); this.setInputsInline(true); this.setPreviousStatement(true, null); - this.setColour(Blockly.Msg.UGJ_NETWORK_HUE); + this.setStyle('network_blocks') this.setTooltip(""); this.setHelpUrl(""); } @@ -2912,7 +2912,7 @@ Blockly.Blocks['ugj_serial_openclose'] = { this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.Msg.UGJ_GPIO_HUE); + this.setStyle('gpio_blocks') this.setTooltip("シリアルデバイスとの接続を開き、用事が終わったら閉じます。"); this.setHelpUrl(""); } @@ -2932,25 +2932,25 @@ Blockly.JavaScript['ugj_serial_openclose'] = function (block) { }; Blockly.Blocks['ugj_gpio_i2copenclose'] = { - init: function() { + init: function () { this.appendValueInput("i2c_addr") - .setCheck("String") - .appendField("アドレス"); + .setCheck("String") + .appendField("アドレス"); this.appendDummyInput() - .appendField("の I2C デバイスを開く"); + .appendField("の I2C デバイスを開く"); this.appendStatementInput("do") - .setCheck(null); + .setCheck(null); this.appendDummyInput() - .appendField("デバイスを閉じる"); + .appendField("デバイスを閉じる"); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setColour(230); - this.setTooltip("I2C接続されたデバイスと通信を行います。"); - this.setHelpUrl(""); + this.setTooltip("I2C接続されたデバイスと通信を行います。"); + this.setHelpUrl(""); } }; -Blockly.JavaScript['ugj_gpio_i2copenclose'] = function(block) { +Blockly.JavaScript['ugj_gpio_i2copenclose'] = function (block) { var value_i2c_addr = Blockly.JavaScript.valueToCode(block, 'i2c_addr', Blockly.JavaScript.ORDER_ATOMIC); var statements_do = Blockly.JavaScript.statementToCode(block, 'do'); // TODO: Assemble JavaScript into code variable.