├── .gitignore
├── README.md
├── app-player-for-cordova
├── .gitignore
├── README.md
└── www
│ ├── css
│ └── index.css
│ ├── extension-worker.js
│ ├── extension-worker.js.map
│ ├── img
│ └── logo.png
│ ├── index.html
│ ├── js
│ └── index.js
│ ├── media
│ ├── 1x1.gif
│ ├── click.mp3
│ ├── click.ogg
│ ├── click.wav
│ ├── delete.mp3
│ ├── delete.ogg
│ ├── delete.wav
│ ├── dropdown-arrow-dark.svg
│ ├── dropdown-arrow.svg
│ ├── eyedropper.svg
│ ├── green-flag.svg
│ ├── handclosed.cur
│ ├── handdelete.cur
│ ├── handopen.cur
│ ├── icons
│ │ ├── arrow.svg
│ │ ├── control_forever.svg
│ │ ├── control_repeat.svg
│ │ ├── control_stop.svg
│ │ ├── control_wait.svg
│ │ ├── event_broadcast_blue.svg
│ │ ├── event_broadcast_coral.svg
│ │ ├── event_broadcast_green.svg
│ │ ├── event_broadcast_magenta.svg
│ │ ├── event_broadcast_orange.svg
│ │ ├── event_broadcast_purple.svg
│ │ ├── event_when-broadcast-received_blue.svg
│ │ ├── event_when-broadcast-received_coral.svg
│ │ ├── event_when-broadcast-received_green.svg
│ │ ├── event_when-broadcast-received_magenta.svg
│ │ ├── event_when-broadcast-received_orange.svg
│ │ ├── event_when-broadcast-received_purple.svg
│ │ ├── event_whenflagclicked.svg
│ │ ├── set-led_blue.svg
│ │ ├── set-led_coral.svg
│ │ ├── set-led_green.svg
│ │ ├── set-led_magenta.svg
│ │ ├── set-led_mystery.svg
│ │ ├── set-led_orange.svg
│ │ ├── set-led_purple.svg
│ │ ├── set-led_white.svg
│ │ ├── set-led_yellow.svg
│ │ ├── wedo_motor-clockwise.svg
│ │ ├── wedo_motor-counterclockwise.svg
│ │ ├── wedo_motor-speed_fast.svg
│ │ ├── wedo_motor-speed_med.svg
│ │ ├── wedo_motor-speed_slow.svg
│ │ ├── wedo_when-distance_close.svg
│ │ ├── wedo_when-tilt-backward.svg
│ │ ├── wedo_when-tilt-forward.svg
│ │ ├── wedo_when-tilt-left.svg
│ │ ├── wedo_when-tilt-right.svg
│ │ └── wedo_when-tilt.svg
│ ├── repeat.svg
│ ├── rotate-left.svg
│ ├── rotate-right.svg
│ ├── sprites.png
│ ├── sprites.svg
│ ├── zoom-in.svg
│ ├── zoom-out.svg
│ └── zoom-reset.svg
│ ├── playground.css
│ ├── playground.js
│ ├── scratch-storage.js
│ ├── scratch-storage.js.map
│ ├── scratch-storage.min.js
│ ├── scratch-storage.min.js.map
│ ├── scratch-vm.js
│ ├── scratch-vm.js.map
│ ├── scratch-vm.min.js
│ ├── scratch-vm.min.js.map
│ ├── vendor.js
│ ├── vendor.js.map
│ └── zenburn.css
├── babel01
├── package.json
├── src
│ └── index.js
└── webpack.config.js
├── blocky
├── blockly_accessible_compressed.js
├── blockly_compressed.js
├── blocks_compressed.js
├── dart_compressed.js
├── hello_01.html
├── hello_02_convert_and_run.html
├── javascript_compressed.js
└── msg
│ ├── js
│ ├── ab.js
│ ├── ar.js
│ ├── az.js
│ ├── ba.js
│ ├── bcc.js
│ ├── be-tarask.js
│ ├── be.js
│ ├── bg.js
│ ├── bn.js
│ ├── br.js
│ ├── ca.js
│ ├── cs.js
│ ├── da.js
│ ├── de.js
│ ├── diq.js
│ ├── el.js
│ ├── en-gb.js
│ ├── en.js
│ ├── eo.js
│ ├── es.js
│ ├── et.js
│ ├── fa.js
│ ├── fi.js
│ ├── fr.js
│ ├── he.js
│ ├── hi.js
│ ├── hrx.js
│ ├── hu.js
│ ├── ia.js
│ ├── id.js
│ ├── is.js
│ ├── it.js
│ ├── ja.js
│ ├── kab.js
│ ├── ko.js
│ ├── lb.js
│ ├── lki.js
│ ├── lrc.js
│ ├── lt.js
│ ├── lv.js
│ ├── mk.js
│ ├── ms.js
│ ├── nb.js
│ ├── nl.js
│ ├── oc.js
│ ├── pl.js
│ ├── pms.js
│ ├── pt-br.js
│ ├── pt.js
│ ├── ro.js
│ ├── ru.js
│ ├── sc.js
│ ├── sd.js
│ ├── shn.js
│ ├── sk.js
│ ├── sl.js
│ ├── sq.js
│ ├── sr.js
│ ├── sv.js
│ ├── ta.js
│ ├── tcy.js
│ ├── th.js
│ ├── tl.js
│ ├── tlh.js
│ ├── tr.js
│ ├── uk.js
│ ├── vi.js
│ ├── zh-hans.js
│ └── zh-hant.js
│ ├── json
│ ├── ab.json
│ ├── ar.json
│ ├── az.json
│ ├── ba.json
│ ├── bcc.json
│ ├── be-tarask.json
│ ├── be.json
│ ├── bg.json
│ ├── bn.json
│ ├── br.json
│ ├── ca.json
│ ├── constants.json
│ ├── cs.json
│ ├── da.json
│ ├── de.json
│ ├── diq.json
│ ├── el.json
│ ├── en-gb.json
│ ├── en.json
│ ├── eo.json
│ ├── es.json
│ ├── et.json
│ ├── eu.json
│ ├── fa.json
│ ├── fi.json
│ ├── fr.json
│ ├── he.json
│ ├── hi.json
│ ├── hrx.json
│ ├── hu.json
│ ├── ia.json
│ ├── id.json
│ ├── is.json
│ ├── it.json
│ ├── ja.json
│ ├── kab.json
│ ├── ko.json
│ ├── lb.json
│ ├── lki.json
│ ├── lrc.json
│ ├── lt.json
│ ├── lv.json
│ ├── mk.json
│ ├── ms.json
│ ├── nb.json
│ ├── nl.json
│ ├── oc.json
│ ├── pl.json
│ ├── pms.json
│ ├── pt-br.json
│ ├── pt.json
│ ├── qqq.json
│ ├── ro.json
│ ├── ru.json
│ ├── sc.json
│ ├── sd.json
│ ├── shn.json
│ ├── sk.json
│ ├── sl.json
│ ├── sq.json
│ ├── sr.json
│ ├── sv.json
│ ├── synonyms.json
│ ├── ta.json
│ ├── tcy.json
│ ├── th.json
│ ├── tl.json
│ ├── tlh.json
│ ├── tr.json
│ ├── uk.json
│ ├── vi.json
│ ├── zh-hans.json
│ └── zh-hant.json
│ └── messages.js
├── hello
├── hello
│ ├── icon.png
│ ├── index.html
│ ├── index02.html
│ ├── scratch-render.js
│ └── scratch-render.js.map
├── src
│ └── hello
│ │ ├── icon.png
│ │ ├── index.html
│ │ └── index02.html
└── webpack.config.js
├── package
├── hello-dev-server
│ ├── package.json
│ ├── src
│ │ ├── index.html
│ │ └── main.js
│ └── webpack.config.js
└── hello
│ └── package.json
├── scratch-block-test
├── package.json
├── src
│ ├── index.html
│ └── scratch-block-test.js
└── webpack.config.js
├── scratch-render-hello
├── hello
│ ├── icon.png
│ ├── index.html
│ └── scratch-render-hello.js
├── package.json
├── src
│ └── hello
│ │ ├── icon.png
│ │ ├── index.html
│ │ └── scratch-render-hello.js
└── webpack.config.js
├── scratch-serviceworker
├── README.md
├── package.json
├── src
│ └── hello
│ │ ├── icon.png
│ │ ├── index.html
│ │ ├── project
│ │ ├── 09dc888b0b7df19f70d81588ae73420e.svg
│ │ ├── 195233767.json
│ │ ├── 3696356a03a8d938318876a593572843.svg
│ │ ├── 5c81a336fab8be57adc039a8a2b33ca9.png
│ │ ├── 739b5e2a2435f6e1ec2993791b423146.png
│ │ ├── 83a9787d4cb6f3b7632b4ddfebf74367.wav
│ │ └── 83c36d806dc92327b9e7049a565c6bff.wav
│ │ ├── scratch-vm-hello.js
│ │ └── sw.js
└── webpack.config.js
├── scratch-storage-01
├── main.js
└── scratch-storage.js
├── scratch-vm-test
├── README.md
├── hello
│ ├── index.html
│ └── scratch-vm-hello.js
├── package.json
├── src
│ └── hello
│ │ ├── index.html
│ │ └── scratch-vm-hello.js
└── webpack.config.js
└── webpack01
├── package.json
├── src
├── character.js
├── index.js
├── inu.js
└── neko.js
└── webpack.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .buildlog
2 | .DS_Store
3 | .idea
4 | .packages
5 | .pub/
6 | build/
7 | packages
8 | pubspec.lock
9 | node_modules
10 | dist
11 | package-lock.json
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FireFireStyle : Scratch 3.0. Let's make your own machine!
2 |
3 | http://blogger.firefirestyle.net/2017/09/scratch30-0.html
4 |
--------------------------------------------------------------------------------
/app-player-for-cordova/.gitignore:
--------------------------------------------------------------------------------
1 | .buildlog
2 | .DS_Store
3 | .idea
4 | .packages
5 | .pub/
6 | build/
7 | packages
8 | pubspec.lock
9 |
--------------------------------------------------------------------------------
/app-player-for-cordova/README.md:
--------------------------------------------------------------------------------
1 | Scratch3 App Player
2 | now creating.
3 |
4 | # RUN
5 | ```
6 | npm install -g cordova
7 | cordova create MyApp
8 | cd MyApp cordova platform add browser
9 | cp -r {this www} ./www
10 | cordova run browser
11 | ```
12 |
13 | # FOR ANDROID
14 | ```
15 | cordova platform add android
16 | cordova build android
17 | cordova run android
18 | ```
19 |
20 |
21 | # REF
22 |
23 | - https://github.com/LLK/scratch-vm
24 | - https://cordova.apache.org/#getstarted
25 |
26 |
27 | # LICENSE
28 |
29 | Use following code in this repository.
30 |
31 | - https://github.com/LLK/scratch-vm
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/css/index.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | * {
20 | -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
21 | }
22 |
23 | body {
24 | -webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */
25 | -webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */
26 | -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
27 | background-color:#E4E4E4;
28 | background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
29 | background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
30 | background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
31 | background-image:-webkit-gradient(
32 | linear,
33 | left top,
34 | left bottom,
35 | color-stop(0, #A7A7A7),
36 | color-stop(0.51, #E4E4E4)
37 | );
38 | background-attachment:fixed;
39 | font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
40 | font-size:12px;
41 | height:100%;
42 | margin:0px;
43 | padding:0px;
44 | text-transform:uppercase;
45 | width:100%;
46 | }
47 |
48 | /* Portrait layout (default) */
49 | .app {
50 | background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */
51 | position:absolute; /* position in the center of the screen */
52 | left:50%;
53 | top:50%;
54 | height:50px; /* text area height */
55 | width:225px; /* text area width */
56 | text-align:center;
57 | padding:180px 0px 0px 0px; /* image height is 200px (bottom 20px are overlapped with text) */
58 | margin:-115px 0px 0px -112px; /* offset vertical: half of image height and text area height */
59 | /* offset horizontal: half of text area width */
60 | }
61 |
62 | /* Landscape layout (with min-width) */
63 | @media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
64 | .app {
65 | background-position:left center;
66 | padding:75px 0px 75px 170px; /* padding-top + padding-bottom + text area = image height */
67 | margin:-90px 0px 0px -198px; /* offset vertical: half of image height */
68 | /* offset horizontal: half of image width and text area width */
69 | }
70 | }
71 |
72 | h1 {
73 | font-size:24px;
74 | font-weight:normal;
75 | margin:0px;
76 | overflow:visible;
77 | padding:0px;
78 | text-align:center;
79 | }
80 |
81 | .event {
82 | border-radius:4px;
83 | -webkit-border-radius:4px;
84 | color:#FFFFFF;
85 | font-size:12px;
86 | margin:0px 30px;
87 | padding:2px 0px;
88 | }
89 |
90 | .event.listening {
91 | background-color:#333333;
92 | display:block;
93 | }
94 |
95 | .event.received {
96 | background-color:#4B946A;
97 | display:none;
98 | }
99 |
100 | @keyframes fade {
101 | from { opacity: 1.0; }
102 | 50% { opacity: 0.4; }
103 | to { opacity: 1.0; }
104 | }
105 |
106 | @-webkit-keyframes fade {
107 | from { opacity: 1.0; }
108 | 50% { opacity: 0.4; }
109 | to { opacity: 1.0; }
110 | }
111 |
112 | .blink {
113 | animation:fade 3000ms infinite;
114 | -webkit-animation:fade 3000ms infinite;
115 | }
116 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/img/logo.png
--------------------------------------------------------------------------------
/app-player-for-cordova/www/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Scratch VM Playground
7 |
8 |
9 |
10 |
11 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/js/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | var app = {
20 | // Application Constructor
21 | initialize: function() {
22 | document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
23 | },
24 |
25 | // deviceready Event Handler
26 | //
27 | // Bind any cordova events here. Common events are:
28 | // 'pause', 'resume', etc.
29 | onDeviceReady: function() {
30 | this.receivedEvent('deviceready');
31 | },
32 |
33 | // Update DOM on a Received Event
34 | receivedEvent: function(id) {
35 | var parentElement = document.getElementById(id);
36 | var listeningElement = parentElement.querySelector('.listening');
37 | var receivedElement = parentElement.querySelector('.received');
38 |
39 | listeningElement.setAttribute('style', 'display:none;');
40 | receivedElement.setAttribute('style', 'display:block;');
41 |
42 | console.log('Received Event: ' + id);
43 | }
44 | };
45 |
46 | app.initialize();
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/1x1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/1x1.gif
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/click.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/click.mp3
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/click.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/click.ogg
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/click.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/click.wav
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/delete.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/delete.mp3
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/delete.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/delete.ogg
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/delete.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/delete.wav
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/dropdown-arrow-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/dropdown-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/eyedropper.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/green-flag.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
18 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/handclosed.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/handclosed.cur
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/handdelete.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/handdelete.cur
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/handopen.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/handopen.cur
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
13 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/control_forever.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/control_repeat.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/control_stop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/control_wait.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_broadcast_blue.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_broadcast_coral.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_broadcast_green.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_broadcast_magenta.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_broadcast_orange.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_broadcast_purple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_when-broadcast-received_blue.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_when-broadcast-received_coral.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_when-broadcast-received_green.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_when-broadcast-received_magenta.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_when-broadcast-received_orange.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_when-broadcast-received_purple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/event_whenflagclicked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_blue.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_coral.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_green.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_magenta.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_mystery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_orange.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_purple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/set-led_yellow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_motor-clockwise.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_motor-counterclockwise.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_motor-speed_fast.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_motor-speed_med.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_motor-speed_slow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_when-distance_close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_when-tilt-backward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_when-tilt-forward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_when-tilt-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_when-tilt-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/icons/wedo_when-tilt.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/repeat.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/rotate-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/rotate-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/sprites.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/app-player-for-cordova/www/media/sprites.png
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/sprites.svg:
--------------------------------------------------------------------------------
1 |
2 |
75 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/zoom-in.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/zoom-out.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/media/zoom-reset.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/playground.css:
--------------------------------------------------------------------------------
1 | body {
2 | background: rgb(36,36,36);
3 | }
4 | a {
5 | color: rgb(217,217,217);
6 | }
7 | h2 {
8 | font-size: 1em;
9 | }
10 | #blocks {
11 | position: absolute;
12 | left: 40%;
13 | right: 0;
14 | top: 0;
15 | bottom: 0;
16 | font-family: "Helvetica Neue", Helvetica, sans-serif;
17 | }
18 | #vm-devtools {
19 | color: rgb(217,217,217);
20 | position: absolute;
21 | left: 1%;
22 | right: 60%;
23 | top: 1%;
24 | bottom: 0;
25 | width: 35%;
26 | }
27 | #blockexplorer, #threadexplorer, #importexport {
28 | position: absolute;
29 | height: 75%;
30 | overflow: scroll;
31 | border: 1px solid #fff;
32 | background: rgb(36,36,36);
33 | color: rgb(217,217,217);
34 | font-family: monospace;
35 | font-size: 10pt;
36 | width: 480px;
37 | height: 360px;
38 | }
39 | #tab-blockexplorer, #tab-threadexplorer, #tab-importexport {
40 | display: none;
41 | }
42 | #importExport {
43 | width: 480px;
44 | height: 360px;
45 | background: rgb(36,36,36);
46 | color: rgb(217,217,217);
47 | }
48 | #projectId {
49 | background: rgb(36,36,36);
50 | color: rgb(217,217,217);
51 | font-family: monospace;
52 | font-size: 10pt;
53 | }
54 | ul#playgroundLinks {
55 | display: block;
56 | list-style-type: none;
57 | margin: 0;
58 | padding: 0;
59 | overflow: hidden;
60 | background-color: #333;
61 | }
62 | #playgroundLinks li {
63 | float: left;
64 | }
65 | #playgroundLinks li a {
66 | display: block;
67 | color: white;
68 | text-align: center;
69 | padding: 5px 10px;
70 | }
71 | #playgroundLinks li a:hover {
72 | background-color: #111;
73 | }
74 |
--------------------------------------------------------------------------------
/app-player-for-cordova/www/scratch-storage.min.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"scratch-storage.min.js","sources":["webpack:///scratch-storage.min.js"],"mappings":"AAAA;;;;;;;;;AAguCA;;;;;;AA2qBA;;;;;;AAsgMA","sourceRoot":""}
--------------------------------------------------------------------------------
/app-player-for-cordova/www/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/babel01/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "babel01",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-core": "^6.26.0",
14 | "babel-eslint": "^8.0.3",
15 | "babel-loader": "^7.1.2",
16 | "babel-preset-es2015": "^6.24.1",
17 | "webpack": "^3.10.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/babel01/src/index.js:
--------------------------------------------------------------------------------
1 | class HelloWorld {
2 | hello() {
3 | console.log("Hello, World!!");
4 | }
5 | }
6 |
7 | var helloWorld = new HelloWorld();
8 | helloWorld.hello();
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/babel01/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | entry: './src/index.js',
5 | output: {
6 | filename: 'bundle.js',
7 | path: path.resolve(__dirname, 'dist')
8 | },
9 | module: {
10 | rules: [{
11 | loader: 'babel-loader',
12 | include: path.resolve(__dirname, 'src'),
13 | query: {
14 | presets: ['es2015']
15 | }
16 | }]
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/blocky/hello_01.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Blockly Demo: Fixed Blockly
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/blocky/hello_02_convert_and_run.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Blockly Demo: Fixed Blockly
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/blocky/msg/json/constants.json:
--------------------------------------------------------------------------------
1 | {"MATH_HUE": "230", "LOOPS_HUE": "120", "LISTS_HUE": "260", "LOGIC_HUE": "210", "VARIABLES_HUE": "330", "TEXTS_HUE": "160", "PROCEDURES_HUE": "290", "COLOUR_HUE": "20"}
--------------------------------------------------------------------------------
/blocky/msg/json/lb.json:
--------------------------------------------------------------------------------
1 | {
2 | "@metadata": {
3 | "authors": [
4 | "Robby",
5 | "Soued031",
6 | "Les Meloures"
7 | ]
8 | },
9 | "VARIABLES_DEFAULT_NAME": "Element",
10 | "TODAY": "Haut",
11 | "DUPLICATE_BLOCK": "Eng Kopie maachen",
12 | "ADD_COMMENT": "Bemierkung derbäisetzen",
13 | "REMOVE_COMMENT": "Bemierkung ewechhuelen",
14 | "DELETE_BLOCK": "Block läschen",
15 | "DELETE_X_BLOCKS": "%1 Bléck läschen",
16 | "CLEAN_UP": "Bléck opraumen",
17 | "COLLAPSE_BLOCK": "Block zesummeklappen",
18 | "COLLAPSE_ALL": "Bléck zesummeklappen",
19 | "EXPAND_BLOCK": "Block opklappen",
20 | "EXPAND_ALL": "Bléck opklappen",
21 | "DISABLE_BLOCK": "Block desaktivéieren",
22 | "ENABLE_BLOCK": "Block aktivéieren",
23 | "HELP": "Hëllef",
24 | "UNDO": "Réckgängeg maachen",
25 | "REDO": "Widderhuelen",
26 | "CHANGE_VALUE_TITLE": "Wäert änneren:",
27 | "RENAME_VARIABLE": "Variabel ëmbenennen...",
28 | "RENAME_VARIABLE_TITLE": "All '%1' Variabelen ëmbenennen op:",
29 | "NEW_VARIABLE": "Variabel uleeën...",
30 | "NEW_VARIABLE_TITLE": "Neie variabelen Numm:",
31 | "COLOUR_PICKER_TOOLTIP": "Sicht eng Faarf an der Palette eraus.",
32 | "COLOUR_RANDOM_TITLE": "zoufälleg Faarf",
33 | "COLOUR_RANDOM_TOOLTIP": "Eng zoufälleg Faarf eraussichen.",
34 | "COLOUR_RGB_TITLE": "fierwe mat",
35 | "COLOUR_RGB_RED": "rout",
36 | "COLOUR_RGB_GREEN": "gréng",
37 | "COLOUR_RGB_BLUE": "blo",
38 | "COLOUR_BLEND_TITLE": "mëschen",
39 | "COLOUR_BLEND_COLOUR1": "Faarf 1",
40 | "COLOUR_BLEND_COLOUR2": "Faarf 2",
41 | "COLOUR_BLEND_RATIO": "ratio",
42 | "CONTROLS_REPEAT_TITLE": "%1-mol widderhuelen",
43 | "CONTROLS_REPEAT_INPUT_DO": "maach",
44 | "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "Widderhuel soulaang",
45 | "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "widderhuele bis",
46 | "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Féiert d'Uweisungen aus, soulaang wéi de Wäert richteg ass",
47 | "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Féiert d'Uweisungen aus, soulaang wéi de Wäert falsch ass.",
48 | "CONTROLS_FOR_TITLE": "zielt mat %1 vun %2 bis %3 mat %4",
49 | "CONTROLS_FOREACH_TITLE": "fir all Element %1 an der Lëscht %2",
50 | "CONTROLS_IF_MSG_IF": "wann",
51 | "CONTROLS_IF_MSG_ELSE": "soss",
52 | "IOS_OK": "OK",
53 | "IOS_CANCEL": "Ofbriechen",
54 | "IOS_ERROR": "Feeler",
55 | "IOS_VARIABLES_ADD_VARIABLE": "+ Variabel derbäisetzen",
56 | "IOS_VARIABLES_ADD_BUTTON": "Derbäisetzen",
57 | "IOS_VARIABLES_RENAME_BUTTON": "Ëmbenennen",
58 | "IOS_VARIABLES_DELETE_BUTTON": "Läschen",
59 | "IOS_VARIABLES_VARIABLE_NAME": "Numm vun der Variabel",
60 | "IOS_VARIABLES_EMPTY_NAME_ERROR": "Dir kënnt keen eidelen Numm fir eng Variabel benotzen.",
61 | "LOGIC_OPERATION_AND": "an",
62 | "LOGIC_OPERATION_OR": "oder",
63 | "LOGIC_NEGATE_TITLE": "net %1",
64 | "LOGIC_BOOLEAN_TRUE": "wouer",
65 | "LOGIC_BOOLEAN_FALSE": "falsch",
66 | "LOGIC_BOOLEAN_TOOLTIP": "Schéckt entweder richteg oder falsch zréck.",
67 | "LOGIC_NULL": "null",
68 | "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:",
69 | "LOGIC_TERNARY_CONDITION": "Test",
70 | "LOGIC_TERNARY_IF_TRUE": "wa wouer",
71 | "LOGIC_TERNARY_IF_FALSE": "wa falsch",
72 | "MATH_NUMBER_TOOLTIP": "Eng Zuel.",
73 | "MATH_ARITHMETIC_TOOLTIP_ADD": "Den Total vun den zwou Zuelen zréckginn.",
74 | "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "D'Produkt vun den zwou Zuelen zréckginn.",
75 | "MATH_SINGLE_HELPURL": "https://lb.wikipedia.org/wiki/Racine carrée",
76 | "MATH_SINGLE_OP_ROOT": "Quadratwuerzel",
77 | "MATH_SINGLE_OP_ABSOLUTE": "absolut",
78 | "MATH_IS_EVEN": "ass gerued",
79 | "MATH_IS_ODD": "ass ongerued",
80 | "MATH_IS_PRIME": "ass eng Primzuel",
81 | "MATH_IS_WHOLE": "ass eng ganz Zuel",
82 | "MATH_IS_POSITIVE": "ass positiv",
83 | "MATH_IS_NEGATIVE": "ass negativ",
84 | "MATH_CHANGE_TITLE": "änneren %1 ëm %2",
85 | "MATH_ROUND_TOOLTIP": "Eng Zuel op- oder ofrënnen.",
86 | "MATH_ROUND_OPERATOR_ROUND": "opronnen",
87 | "MATH_ROUND_OPERATOR_ROUNDUP": "oprënnen",
88 | "MATH_ROUND_OPERATOR_ROUNDDOWN": "ofrënnen",
89 | "MATH_ONLIST_OPERATOR_MAX": "Maximum aus der Lëscht",
90 | "MATH_ONLIST_TOOLTIP_MAX": "Schéckt de gréisste Wäert aus enger Lëscht zréck.",
91 | "MATH_ONLIST_OPERATOR_AVERAGE": "Moyenne vun der Lëscht",
92 | "MATH_ONLIST_OPERATOR_RANDOM": "zoufällegt Element vun enger Lëscht",
93 | "MATH_MODULO_TITLE": "Rescht vu(n) %1 ÷ %2",
94 | "MATH_RANDOM_INT_TITLE": "zoufälleg ganz Zuel tëscht %1 a(n) %2",
95 | "TEXT_TEXT_TOOLTIP": "E Buschtaf, e Wuert oder eng Textzeil.",
96 | "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "En Element bei den Text derbäisetzen.",
97 | "TEXT_LENGTH_TITLE": "Längt vu(n) %1",
98 | "TEXT_ISEMPTY_TITLE": "%1 ass eidel",
99 | "TEXT_INDEXOF_TITLE": "am Text %1 %2 %3",
100 | "TEXT_CHARAT_TITLE": "am Text %1 %2",
101 | "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "am Text",
102 | "TEXT_GET_SUBSTRING_END_FROM_START": "bis bei de Buschtaf #",
103 | "TEXT_GET_SUBSTRING_END_LAST": "bis bei de leschte Buschtaw",
104 | "TEXT_PRINT_TITLE": "%1 drécken",
105 | "TEXT_PROMPT_TOOLTIP_TEXT": "Frot de Benotzer no engem Text.",
106 | "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings",
107 | "TEXT_REPLACE_MESSAGE0": "%1 duerch %2 a(n) %3 ersetzen",
108 | "TEXT_REPLACE_TOOLTIP": "All Kéiers wou e bestëmmten Text do ass duerch en aneren Text ersetzen.",
109 | "TEXT_REVERSE_TOOLTIP": "Dréint d'Reiefolleg vun den Zeechen am Text ëm.",
110 | "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "Lëscht",
111 | "LISTS_CREATE_WITH_ITEM_TOOLTIP": "En Element op d'Lëscht derbäisetzen.",
112 | "LISTS_LENGTH_TITLE": "Längt vu(n) %1",
113 | "LISTS_ISEMPTY_TITLE": "%1 ass eidel",
114 | "LISTS_INLIST": "an der Lëscht",
115 | "LISTS_GET_INDEX_REMOVE": "ewechhuelen",
116 | "LISTS_GET_INDEX_FROM_START": "#",
117 | "LISTS_GET_INDEX_FROM_END": "# vun hannen",
118 | "LISTS_GET_INDEX_FIRST": "éischt",
119 | "LISTS_GET_INDEX_LAST": "lescht",
120 | "LISTS_GET_INDEX_RANDOM": "Zoufall",
121 | "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ass dat éischt Element.",
122 | "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ass dat éischt Element.",
123 | "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Schéckt en zoufällegt Element aus enger Lëscht zréck.",
124 | "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Hëlt dat lescht Element aus enger Lëscht eraus.",
125 | "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Hëlt en zoufällegt Element aus enger Lëscht eraus.",
126 | "LISTS_SET_INDEX_INSERT": "asetzen op",
127 | "LISTS_SET_INDEX_INPUT_TO": "als",
128 | "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Setzt en zoufällegt Element an eng Lëscht.",
129 | "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Setzt d'Element um Enn vun enger Lëscht derbäi.",
130 | "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Setzt d'Element op eng zoufälleg Plaz an d'Lëscht derbäi.",
131 | "LISTS_SORT_TYPE_NUMERIC": "numeresch",
132 | "LISTS_SORT_TYPE_TEXT": "alphabetesch",
133 | "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list",
134 | "LISTS_REVERSE_MESSAGE0": "%1 ëmdréinen",
135 | "PROCEDURES_DEFNORETURN_PROCEDURE": "eppes maachen",
136 | "PROCEDURES_BEFORE_PARAMS": "mat:",
137 | "PROCEDURES_CALL_BEFORE_PARAMS": "mat:",
138 | "PROCEDURES_DEFNORETURN_COMMENT": "Dës Funktioun beschreiwen...",
139 | "PROCEDURES_DEFRETURN_RETURN": "zréck",
140 | "PROCEDURES_CREATE_DO": "'%1' uleeën"
141 | }
142 |
--------------------------------------------------------------------------------
/blocky/msg/json/lrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "@metadata": {
3 | "authors": [
4 | "Mogoeilor"
5 | ]
6 | },
7 | "VARIABLES_DEFAULT_NAME": "قلم",
8 | "TODAY": "ئمروٙ",
9 | "DUPLICATE_BLOCK": "کپی کردن",
10 | "ADD_COMMENT": "نظرتونه اضاف بکید",
11 | "REMOVE_COMMENT": "نظر جا وه جا کو",
12 | "EXTERNAL_INPUTS": "داده یا وه دری",
13 | "INLINE_INPUTS": "داده یا مئنجا",
14 | "DELETE_BLOCK": "پاکسا کردن برشت",
15 | "DELETE_X_BLOCKS": "پاکسا کردن%1 د برشتیا",
16 | "COLLAPSE_BLOCK": "کوچک کردن برشت",
17 | "COLLAPSE_ALL": "کوچک کردن برشتیا",
18 | "EXPAND_BLOCK": "گپ کردن برشت",
19 | "EXPAND_ALL": "گپ کردن برشتیا",
20 | "DISABLE_BLOCK": "ناکشتگر کردن برشت",
21 | "ENABLE_BLOCK": "کنشتگر کردن برشت",
22 | "HELP": "هومياری",
23 | "CHANGE_VALUE_TITLE": "ارزشت آلشت کو:",
24 | "RENAME_VARIABLE": "د نو نوم نیائن آلشتگر...",
25 | "RENAME_VARIABLE_TITLE": "د نو نوم نیائن %1 د تموم آلشتگریا د:",
26 | "NEW_VARIABLE": "آلشتگر تازه...",
27 | "NEW_VARIABLE_TITLE": "نوم آلشتگر تازه:",
28 | "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color",
29 | "COLOUR_PICKER_TOOLTIP": "یه رن د رنگ دو انتخاو بکید",
30 | "COLOUR_RANDOM_TITLE": "رن بختکی",
31 | "COLOUR_RANDOM_TOOLTIP": "یه رنگ بختکی انتخاو بکید",
32 | "COLOUR_RGB_TITLE": "رن وا",
33 | "COLOUR_RGB_RED": "سور",
34 | "COLOUR_RGB_GREEN": "سوز",
35 | "COLOUR_RGB_BLUE": "آوی",
36 | "COLOUR_BLEND_TITLE": "شیوسته",
37 | "COLOUR_BLEND_COLOUR1": "رن 1",
38 | "COLOUR_BLEND_COLOUR2": "رن 2",
39 | "COLOUR_BLEND_RATIO": "نسوت",
40 | "COLOUR_BLEND_TOOLTIP": "هر کوم د رنگیانه وا نسوت دائه بیه به شیون(0.0 - 1.0).",
41 | "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop",
42 | "CONTROLS_REPEAT_TITLE": "%1 تکرار کو چن بار",
43 | "CONTROLS_REPEAT_INPUT_DO": "انجوم بئه",
44 | "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تا تکرار کو",
45 | "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تا تکرار کو",
46 | "CONTROLS_FOR_TITLE": "اشماردن وا %1 د %2 سی %3 وا %4",
47 | "CONTROLS_FOREACH_TITLE": "سی هر قلم %1 د نوم گه %2",
48 | "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "حلقه نه خراو کو",
49 | "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "حلقه شومل بیه نه خراو کو",
50 | "CONTROLS_IF_MSG_IF": "ار",
51 | "CONTROLS_IF_MSG_ELSEIF": "هنی ار",
52 | "CONTROLS_IF_MSG_ELSE": "هنی",
53 | "LOGIC_OPERATION_AND": "و",
54 | "LOGIC_OPERATION_OR": "یا",
55 | "LOGIC_NEGATE_TITLE": "نه %1",
56 | "LOGIC_BOOLEAN_TRUE": "راست و دوروست",
57 | "LOGIC_BOOLEAN_FALSE": "غلط",
58 | "LOGIC_BOOLEAN_TOOLTIP": "هم غلط و هم راس ورگن",
59 | "LOGIC_NULL": "خمثی",
60 | "LOGIC_TERNARY_CONDITION": "آزماشت کردن",
61 | "LOGIC_TERNARY_IF_TRUE": "ار درس بی",
62 | "LOGIC_TERNARY_IF_FALSE": "ار غلط بی",
63 | "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number",
64 | "MATH_NUMBER_TOOLTIP": "یه شماره.",
65 | "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic",
66 | "MATH_ARITHMETIC_TOOLTIP_ADD": "وه انازه دو گل شماره ورگن.",
67 | "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root",
68 | "MATH_SINGLE_OP_ROOT": "چارسوک ریشه",
69 | "MATH_SINGLE_OP_ABSOLUTE": "تموم و کمال",
70 | "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions",
71 | "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant",
72 | "MATH_IS_EVEN": "همیشه هیئش",
73 | "MATH_IS_ODD": "تهنائه",
74 | "MATH_IS_PRIME": "وه اوله",
75 | "MATH_IS_WHOLE": "همشه",
76 | "MATH_IS_POSITIVE": "مثبته",
77 | "MATH_IS_NEGATIVE": "منفیه",
78 | "MATH_IS_DIVISIBLE_BY": "یه وا بهر بیه",
79 | "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter",
80 | "MATH_CHANGE_TITLE": "آلشت بكيد %1 وا %2",
81 | "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding",
82 | "MATH_ROUND_OPERATOR_ROUND": "گرد کردن",
83 | "MATH_ROUND_OPERATOR_ROUNDUP": "وه رو گرد کردن",
84 | "MATH_ROUND_OPERATOR_ROUNDDOWN": "وه هار گرد کردن",
85 | "MATH_ONLIST_OPERATOR_SUM": "جم کردن نومگه",
86 | "MATH_ONLIST_OPERATOR_MIN": "کمترونه د نومگه",
87 | "MATH_ONLIST_OPERATOR_MAX": "بیشترونه د نومگه",
88 | "MATH_ONLIST_OPERATOR_AVERAGE": "مینجاگه نوم گه",
89 | "MATH_ONLIST_OPERATOR_MEDIAN": "مینجا نوم گه",
90 | "MATH_ONLIST_OPERATOR_MODE": "بیشری د نومگه",
91 | "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation",
92 | "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation",
93 | "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation",
94 | "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)",
95 | "TEXT_JOIN_TITLE_CREATEWITH": "راس کردن متن وا",
96 | "TEXT_CREATE_JOIN_TITLE_JOIN": "پیوسن",
97 | "TEXT_ISEMPTY_TITLE": "%1 حالیه",
98 | "TEXT_INDEXOF_TITLE": "د متن %1 %2 %3",
99 | "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "د متن",
100 | "TEXT_GET_SUBSTRING_END_FROM_START": "سی واج#",
101 | "TEXT_GET_SUBSTRING_END_FROM_END": "سی واج# تا آخر",
102 | "TEXT_GET_SUBSTRING_END_LAST": "سی آخرین واج",
103 | "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "سی حرف گپ",
104 | "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "سی واج کؤچک",
105 | "LISTS_CREATE_EMPTY_TITLE": "یه گل نوم گه حالی راس بکیت",
106 | "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "نوم گه",
107 | "LISTS_ISEMPTY_TITLE": "%1 حالیه",
108 | "LISTS_INLIST": "د نوم گه",
109 | "LISTS_GET_INDEX_GET": "گرتن",
110 | "LISTS_GET_INDEX_GET_REMOVE": "گرتن و جاوه جا بیئن",
111 | "LISTS_GET_INDEX_REMOVE": "ؤرداشتن",
112 | "LISTS_GET_INDEX_FROM_END": "# تا آخر",
113 | "LISTS_GET_INDEX_FIRST": "اولی",
114 | "LISTS_GET_INDEX_LAST": "آخر",
115 | "LISTS_GET_INDEX_RANDOM": "بختكی",
116 | "LISTS_SET_INDEX_INSERT": "بنه د",
117 | "LISTS_SET_INDEX_INPUT_TO": "چی",
118 | "LISTS_GET_SUBLIST_END_FROM_START": "سی#",
119 | "LISTS_GET_SUBLIST_END_LAST": "سی آخر",
120 | "VARIABLES_SET": "میزوکاری %1 سی %2",
121 | "PROCEDURES_DEFNORETURN_TITLE": "سی",
122 | "PROCEDURES_DEFNORETURN_PROCEDURE": "یه کار انجوم بیئت",
123 | "PROCEDURES_BEFORE_PARAMS": "وا:",
124 | "PROCEDURES_CALL_BEFORE_PARAMS": "وا:",
125 | "PROCEDURES_DEFRETURN_RETURN": "ورگنیئن",
126 | "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",
127 | "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",
128 | "PROCEDURES_MUTATORCONTAINER_TITLE": "داده یا",
129 | "PROCEDURES_MUTATORARG_TITLE": "نوم داده:",
130 | "PROCEDURES_CREATE_DO": "راس کردن%1"
131 | }
132 |
--------------------------------------------------------------------------------
/blocky/msg/json/mk.json:
--------------------------------------------------------------------------------
1 | {
2 | "@metadata": {
3 | "authors": [
4 | "Bjankuloski06"
5 | ]
6 | },
7 | "VARIABLES_DEFAULT_NAME": "елемент",
8 | "DUPLICATE_BLOCK": "Ископирај",
9 | "ADD_COMMENT": "Додај коментар:",
10 | "REMOVE_COMMENT": "Отстрани коментар",
11 | "EXTERNAL_INPUTS": "Надворешен внос",
12 | "INLINE_INPUTS": "Внатрешен внос",
13 | "DELETE_BLOCK": "Избриши блок",
14 | "DELETE_X_BLOCKS": "Избриши %1 блока",
15 | "DELETE_ALL_BLOCKS": "Да ги избришам сите %1 блокчиња?",
16 | "COLLAPSE_BLOCK": "Собери блок",
17 | "COLLAPSE_ALL": "Собери блокови",
18 | "EXPAND_BLOCK": "Рашири го блокови",
19 | "EXPAND_ALL": "Рашири блокови",
20 | "DISABLE_BLOCK": "Исклучи блок",
21 | "ENABLE_BLOCK": "Вклучи блок",
22 | "HELP": "Помош",
23 | "CHANGE_VALUE_TITLE": "Смена на вредност:",
24 | "NEW_VARIABLE": "Нова променлива...",
25 | "NEW_VARIABLE_TITLE": "Назив на новата променлива:",
26 | "RENAME_VARIABLE": "Преименувај променлива...",
27 | "RENAME_VARIABLE_TITLE": "Преименувај ги сите променливи „%1“ во:",
28 | "COLOUR_PICKER_HELPURL": "https://mk.wikipedia.org/wiki/Боја",
29 | "COLOUR_PICKER_TOOLTIP": "Изберете боја од палетата.",
30 | "COLOUR_RANDOM_TITLE": "случајна боја",
31 | "COLOUR_RANDOM_TOOLTIP": "Избери боја на тепка.",
32 | "COLOUR_RGB_TITLE": "боја со",
33 | "COLOUR_RGB_RED": "црвена",
34 | "COLOUR_RGB_GREEN": "зелена",
35 | "COLOUR_RGB_BLUE": "сина",
36 | "COLOUR_RGB_TOOLTIP": "Создајте боја со укажаните износи на црвена, зелена и сина. Сите вредности мора да бидат помеѓу 0 и 100.",
37 | "COLOUR_BLEND_TITLE": "смешај",
38 | "COLOUR_BLEND_COLOUR1": "боја 1",
39 | "COLOUR_BLEND_COLOUR2": "боја 2",
40 | "COLOUR_BLEND_RATIO": "сооднос",
41 | "COLOUR_BLEND_TOOLTIP": "Меша две бои во даден сооднос (0.0 - 1.0).",
42 | "CONTROLS_REPEAT_HELPURL": "https://mk.wikipedia.org/wiki/For-јамка",
43 | "CONTROLS_REPEAT_TITLE": "повтори %1 пати",
44 | "CONTROLS_REPEAT_INPUT_DO": "исполни",
45 | "CONTROLS_REPEAT_TOOLTIP": "Исполнува наредби неколку пати.",
46 | "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "повторувај додека",
47 | "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "повторувај сè до",
48 | "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Додека вредноста е вистинита, исполнува наредби.",
49 | "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Додека вредноста е невистинита, исполнува наредби.",
50 | "CONTROLS_FOR_TOOLTIP": "Променливата \"%1\" да ги земе вредностите од почетниот до завршниот број, броејќи според укажаниот интервал и ги исполнува укажаните блокови.",
51 | "CONTROLS_FOR_TITLE": "број со %1 од %2 до %3 со %4",
52 | "CONTROLS_FOREACH_TITLE": "за секој елемент %1 на списокот %2",
53 | "CONTROLS_FOREACH_TOOLTIP": "Му ја задава променливата „%1“ на секој елемент на списокот, а потоа исполнува наредби.",
54 | "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "излези од јамката",
55 | "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "продолжи со следното повторување на јамката",
56 | "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Излези од содржечката јамка.",
57 | "CONTROLS_IF_MSG_IF": "ако",
58 | "CONTROLS_IF_MSG_ELSEIF": "инаку ако",
59 | "CONTROLS_IF_MSG_ELSE": "инаку",
60 | "CONTROLS_IF_IF_TOOLTIP": "Додава, отстранува или прередува делови за прераспоредување на овој блок „ако“.",
61 | "LOGIC_COMPARE_HELPURL": "https://mk.wikipedia.org/wiki/Неравенство",
62 | "LOGIC_COMPARE_TOOLTIP_EQ": "Дава вистина ако обата вноса се еднакви.",
63 | "LOGIC_COMPARE_TOOLTIP_NEQ": "Дава вистина ако обата вноса не се еднакви.",
64 | "LOGIC_COMPARE_TOOLTIP_LT": "Дава вистина ако првиот внос е помал од вториот.",
65 | "LOGIC_COMPARE_TOOLTIP_LTE": "Дава вистина ако првиот внос е помал или еднаков на вториот.",
66 | "LOGIC_COMPARE_TOOLTIP_GT": "Дава вистина ако првиот внос е поголем од вториот.",
67 | "LOGIC_COMPARE_TOOLTIP_GTE": "Дава вистина ако првиот внос е поголем или еднаков на вториот.",
68 | "LOGIC_OPERATION_TOOLTIP_AND": "Дава вистина ако обата вноса се вистинити.",
69 | "LOGIC_OPERATION_AND": "и",
70 | "LOGIC_OPERATION_TOOLTIP_OR": "Дава вистина ако барем еден од вносовите е вистинит.",
71 | "LOGIC_OPERATION_OR": "или",
72 | "LOGIC_NEGATE_TITLE": "не %1",
73 | "LOGIC_NEGATE_TOOLTIP": "Дава вистина ако вносот е невистинит. Дава невистина ако вносот е вистинит.",
74 | "LOGIC_BOOLEAN_TRUE": "вистина",
75 | "LOGIC_BOOLEAN_FALSE": "невистина",
76 | "LOGIC_BOOLEAN_TOOLTIP": "Дава или вистина или невистина.",
77 | "LOGIC_NULL": "ништо",
78 | "LOGIC_NULL_TOOLTIP": "Дава ништо.",
79 | "LOGIC_TERNARY_CONDITION": "испробај",
80 | "LOGIC_TERNARY_IF_TRUE": "ако е вистинито",
81 | "LOGIC_TERNARY_IF_FALSE": "ако е невистинито",
82 | "MATH_CONSTANT_HELPURL": "https://mk.wikipedia.org/wiki/Математичка_константа",
83 | "MATH_CONSTANT_TOOLTIP": "Дава една од вообичаените константи: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), или ∞ (бесконечност).",
84 | "MATH_IS_EVEN": "е парен",
85 | "MATH_IS_ODD": "е непарен",
86 | "MATH_IS_PRIME": "е прост",
87 | "MATH_IS_WHOLE": "е цел",
88 | "MATH_IS_POSITIVE": "е позитивен",
89 | "MATH_IS_NEGATIVE": "е негативен",
90 | "MATH_IS_DIVISIBLE_BY": "е делив со",
91 | "MATH_IS_TOOLTIP": "Проверува дали бројот е парен, непарен, прост, цел, позитивен, негативен или делив со некој број. Дава вистина или невистина.",
92 | "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter?uselang=mk",
93 | "MATH_CHANGE_TITLE": "повиши %1 за %2",
94 | "MATH_CHANGE_TOOLTIP": "Ѝ додава број на променливата „%1“.",
95 | "MATH_ROUND_HELPURL": "https://mk.wikipedia.org/wiki/Заокружување",
96 | "MATH_ROUND_TOOLTIP": "Го заокружува бројот на поголем или помал.",
97 | "MATH_ROUND_OPERATOR_ROUND": "заокружи",
98 | "MATH_ROUND_OPERATOR_ROUNDUP": "заокружи на поголемо",
99 | "MATH_ROUND_OPERATOR_ROUNDDOWN": "заокружи на помало",
100 | "MATH_ONLIST_OPERATOR_SUM": "збир од списокот",
101 | "MATH_ONLIST_TOOLTIP_SUM": "Дава збир од сите броеви на списокот.",
102 | "MATH_ONLIST_OPERATOR_MIN": "најмал на списокот",
103 | "MATH_ONLIST_TOOLTIP_MIN": "Го дава најмалиот број на списокот.",
104 | "MATH_ONLIST_OPERATOR_MAX": "најголем на списокот",
105 | "MATH_ONLIST_TOOLTIP_MAX": "Го дава најголемиот број на списокот.",
106 | "MATH_ONLIST_OPERATOR_AVERAGE": "просек на списокот",
107 | "MATH_ONLIST_TOOLTIP_AVERAGE": "Дава просек (аритметичка средина) од броевите на списокот.",
108 | "MATH_ONLIST_OPERATOR_MEDIAN": "медијана на списокот",
109 | "MATH_ONLIST_TOOLTIP_MEDIAN": "Дава медијана од броевите на списокот.",
110 | "MATH_ONLIST_OPERATOR_MODE": "модул на списокот",
111 | "MATH_ONLIST_TOOLTIP_MODE": "Дава список на најзастапен(и) елемент(и) на списокот."
112 | }
113 |
--------------------------------------------------------------------------------
/blocky/msg/json/oc.json:
--------------------------------------------------------------------------------
1 | {
2 | "@metadata": {
3 | "authors": [
4 | "Cedric31"
5 | ]
6 | },
7 | "VARIABLES_DEFAULT_NAME": "element",
8 | "TODAY": "Uèi",
9 | "DUPLICATE_BLOCK": "Duplicar",
10 | "ADD_COMMENT": "Apondre un comentari",
11 | "REMOVE_COMMENT": "Suprimir un comentari",
12 | "EXTERNAL_INPUTS": "Entradas extèrnas",
13 | "INLINE_INPUTS": "Entradas en linha",
14 | "DELETE_BLOCK": "Suprimir lo blòt",
15 | "DELETE_X_BLOCKS": "Suprimir %1 blòts",
16 | "DELETE_ALL_BLOCKS": "Suprimir totes los %1 blòts ?",
17 | "CLEAN_UP": "Netejar los blòts",
18 | "COLLAPSE_BLOCK": "Redusir lo blòt",
19 | "COLLAPSE_ALL": "Redusir los blòts",
20 | "EXPAND_BLOCK": "Desvolopar lo blòt",
21 | "EXPAND_ALL": "Desvolopar los blòts",
22 | "DISABLE_BLOCK": "Desactivar lo blòt",
23 | "ENABLE_BLOCK": "Activar lo blòt",
24 | "HELP": "Ajuda",
25 | "UNDO": "Anullar",
26 | "REDO": "Refar",
27 | "CHANGE_VALUE_TITLE": "Modificar la valor :",
28 | "RENAME_VARIABLE": "Renomenar la variabla…",
29 | "RENAME_VARIABLE_TITLE": "Renomenar totas las variablas « %1 » a :",
30 | "NEW_VARIABLE": "Crear una variabla...",
31 | "NEW_VARIABLE_TITLE": "Nom de la novèla variabla :",
32 | "COLOUR_PICKER_HELPURL": "https://oc.wikipedia.org/wiki/Color",
33 | "COLOUR_RANDOM_TITLE": "color aleatòria",
34 | "COLOUR_RANDOM_TOOLTIP": "Causir una color a l'azard.",
35 | "COLOUR_RGB_TITLE": "coloriar amb",
36 | "COLOUR_RGB_RED": "roge",
37 | "COLOUR_RGB_GREEN": "verd",
38 | "COLOUR_RGB_BLUE": "blau",
39 | "COLOUR_BLEND_TITLE": "mesclar",
40 | "COLOUR_BLEND_COLOUR1": "color 1",
41 | "COLOUR_BLEND_COLOUR2": "color 2",
42 | "COLOUR_BLEND_RATIO": "ratio",
43 | "CONTROLS_REPEAT_HELPURL": "https://oc.wikipedia.org/wiki/For_loop",
44 | "CONTROLS_REPEAT_TITLE": "repetir %1 còps",
45 | "CONTROLS_REPEAT_INPUT_DO": "far",
46 | "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetir tant que",
47 | "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repetir fins a",
48 | "CONTROLS_FOR_TITLE": "comptar amb %1 de %2 a %3 per %4",
49 | "CONTROLS_FOREACH_TITLE": "per cada element %1 dins la lista %2",
50 | "CONTROLS_IF_MSG_IF": "se",
51 | "CONTROLS_IF_MSG_ELSEIF": "siquenon se",
52 | "CONTROLS_IF_MSG_ELSE": "siquenon",
53 | "LOGIC_COMPARE_TOOLTIP_EQ": "Renviar verai se las doas entradas son egalas.",
54 | "LOGIC_COMPARE_TOOLTIP_NEQ": "Renviar verai se las doas entradas son diferentas.",
55 | "LOGIC_OPERATION_TOOLTIP_AND": "Renviar verai se las doas entradas son vertadièras.",
56 | "LOGIC_OPERATION_AND": "e",
57 | "LOGIC_OPERATION_OR": "o",
58 | "LOGIC_NEGATE_TITLE": "pas %1",
59 | "LOGIC_BOOLEAN_TRUE": "verai",
60 | "LOGIC_BOOLEAN_FALSE": "fals",
61 | "LOGIC_NULL": "nul",
62 | "LOGIC_NULL_TOOLTIP": "Renvia nul.",
63 | "LOGIC_TERNARY_CONDITION": "tèst",
64 | "LOGIC_TERNARY_IF_TRUE": "se verai",
65 | "LOGIC_TERNARY_IF_FALSE": "se fals",
66 | "MATH_NUMBER_HELPURL": "https://oc.wikipedia.org/wiki/Nombre",
67 | "MATH_NUMBER_TOOLTIP": "Un nombre.",
68 | "MATH_ARITHMETIC_HELPURL": "https://oc.wikipedia.org/wiki/Aritmetica",
69 | "MATH_SINGLE_OP_ROOT": "raiç carrada",
70 | "MATH_SINGLE_OP_ABSOLUTE": "absolut",
71 | "MATH_IS_EVEN": "es par",
72 | "MATH_IS_ODD": "es impar",
73 | "MATH_IS_PRIME": "es primièr",
74 | "MATH_IS_WHOLE": "es entièr",
75 | "MATH_IS_POSITIVE": "es positiu",
76 | "MATH_IS_NEGATIVE": "es negatiu",
77 | "MATH_IS_DIVISIBLE_BY": "es devesible per",
78 | "MATH_CHANGE_TITLE": "incrementar %1 per %2",
79 | "MATH_ROUND_OPERATOR_ROUND": "arredondir",
80 | "MATH_ROUND_OPERATOR_ROUNDUP": "arredondir al superior",
81 | "MATH_ROUND_OPERATOR_ROUNDDOWN": "arredondir a l’inferior",
82 | "MATH_ONLIST_OPERATOR_SUM": "soma de la lista",
83 | "MATH_ONLIST_OPERATOR_MIN": "minimum de la lista",
84 | "MATH_ONLIST_OPERATOR_MAX": "maximum de la lista",
85 | "MATH_ONLIST_OPERATOR_AVERAGE": "mejana de la lista",
86 | "MATH_ONLIST_OPERATOR_MEDIAN": "mediana de la lista",
87 | "TEXT_CREATE_JOIN_TITLE_JOIN": "jónher",
88 | "TEXT_APPEND_TITLE": "a %1 apondre lo tèxte %2",
89 | "TEXT_LENGTH_TITLE": "longor de %1",
90 | "TEXT_ISEMPTY_TITLE": "%1 es void",
91 | "TEXT_INDEXOF_TITLE": "dins lo tèxte %1 %2 %3",
92 | "TEXT_CHARAT_FROM_START": "obténer la letra #",
93 | "TEXT_CHARAT_FROM_END": "obténer la letra # dempuèi la fin",
94 | "TEXT_CHARAT_FIRST": "obténer la primièra letra",
95 | "TEXT_CHARAT_LAST": "obténer la darrièra letra",
96 | "TEXT_CHARAT_RANDOM": "obténer una letra a l'azard",
97 | "TEXT_CHARAT_TOOLTIP": "Renvia la letra a la posicion indicada.",
98 | "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "dins lo tèxte",
99 | "TEXT_GET_SUBSTRING_END_FROM_START": "fins a la letra #",
100 | "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "en MAJUSCULAS",
101 | "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "en minusculas",
102 | "TEXT_PRINT_TITLE": "afichar %1",
103 | "LISTS_CREATE_WITH_INPUT_WITH": "crear una lista amb",
104 | "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista",
105 | "LISTS_INLIST": "dins la lista",
106 | "LISTS_GET_INDEX_GET": "obténer",
107 | "LISTS_GET_INDEX_GET_REMOVE": "obténer e suprimir",
108 | "LISTS_GET_INDEX_REMOVE": "suprimit",
109 | "LISTS_GET_INDEX_FROM_END": "# dempuèi la fin",
110 | "LISTS_GET_INDEX_FIRST": "primièr",
111 | "LISTS_GET_INDEX_LAST": "darrièr",
112 | "LISTS_GET_INDEX_RANDOM": "aleatòri",
113 | "LISTS_SET_INDEX_SET": "metre",
114 | "LISTS_SET_INDEX_INSERT": "inserir en",
115 | "LISTS_SET_INDEX_INPUT_TO": "coma",
116 | "LISTS_GET_SUBLIST_END_FROM_START": "fins a #",
117 | "LISTS_GET_SUBLIST_END_FROM_END": "fins a # dempuèi la fin",
118 | "LISTS_GET_SUBLIST_END_LAST": "fins a la fin",
119 | "LISTS_SORT_ORDER_ASCENDING": "creissent",
120 | "LISTS_SORT_ORDER_DESCENDING": "descreissent",
121 | "LISTS_SORT_TYPE_NUMERIC": "numeric",
122 | "LISTS_SORT_TYPE_TEXT": "alfabetic",
123 | "LISTS_SPLIT_WITH_DELIMITER": "amb lo separador",
124 | "VARIABLES_GET_CREATE_SET": "Crear 'fixar %1'",
125 | "VARIABLES_SET": "fixar %1 a %2",
126 | "PROCEDURES_DEFNORETURN_TITLE": "a",
127 | "PROCEDURES_DEFNORETURN_PROCEDURE": "far quicòm",
128 | "PROCEDURES_BEFORE_PARAMS": "amb :",
129 | "PROCEDURES_CALL_BEFORE_PARAMS": "amb :",
130 | "PROCEDURES_DEFRETURN_RETURN": "retorn",
131 | "PROCEDURES_MUTATORCONTAINER_TITLE": "entradas",
132 | "PROCEDURES_MUTATORARG_TITLE": "nom de l’entrada :",
133 | "PROCEDURES_CREATE_DO": "Crear '%1'"
134 | }
135 |
--------------------------------------------------------------------------------
/blocky/msg/json/synonyms.json:
--------------------------------------------------------------------------------
1 | {"PROCEDURES_DEFRETURN_TITLE": "PROCEDURES_DEFNORETURN_TITLE", "CONTROLS_IF_IF_TITLE_IF": "CONTROLS_IF_MSG_IF", "CONTROLS_WHILEUNTIL_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_IF_MSG_THEN": "CONTROLS_REPEAT_INPUT_DO", "LISTS_GET_SUBLIST_INPUT_IN_LIST": "LISTS_INLIST", "CONTROLS_IF_ELSE_TITLE_ELSE": "CONTROLS_IF_MSG_ELSE", "PROCEDURES_DEFRETURN_PROCEDURE": "PROCEDURES_DEFNORETURN_PROCEDURE", "TEXT_CREATE_JOIN_ITEM_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "LISTS_GET_INDEX_INPUT_IN_LIST": "LISTS_INLIST", "PROCEDURES_DEFRETURN_COMMENT": "PROCEDURES_DEFNORETURN_COMMENT", "CONTROLS_IF_ELSEIF_TITLE_ELSEIF": "CONTROLS_IF_MSG_ELSEIF", "PROCEDURES_DEFRETURN_DO": "PROCEDURES_DEFNORETURN_DO", "CONTROLS_FOR_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "LISTS_GET_INDEX_HELPURL": "LISTS_INDEX_OF_HELPURL", "LISTS_INDEX_OF_INPUT_IN_LIST": "LISTS_INLIST", "CONTROLS_FOREACH_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "LISTS_CREATE_WITH_ITEM_TITLE": "VARIABLES_DEFAULT_NAME", "TEXT_APPEND_VARIABLE": "VARIABLES_DEFAULT_NAME", "MATH_CHANGE_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "LISTS_SET_INDEX_INPUT_IN_LIST": "LISTS_INLIST"}
--------------------------------------------------------------------------------
/hello/hello/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/hello/hello/icon.png
--------------------------------------------------------------------------------
/hello/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/hello/hello/index02.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
23 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/hello/src/hello/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/hello/src/hello/icon.png
--------------------------------------------------------------------------------
/hello/src/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/hello/src/hello/index02.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
23 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/hello/webpack.config.js:
--------------------------------------------------------------------------------
1 | const CopyWebpackPlugin = require('copy-webpack-plugin');
2 | const path = require('path');
3 | const webpack = require('webpack');
4 |
5 | const base = {
6 | devServer: {
7 | contentBase: false,
8 | host: '0.0.0.0',
9 | port: process.env.PORT || 8361
10 | },
11 | devtool: 'cheap-module-source-map',
12 | module: {
13 | rules: [
14 | {
15 | include: [
16 | path.resolve(__dirname, 'src')
17 | ],
18 | test: /\.js$/,
19 | loader: 'babel-loader',
20 | options: {
21 | presets: ['es2015']
22 | }
23 | },
24 | {
25 | test: /node_modules[\\/](linebreak|grapheme-breaker)[\\/].*\.js$/,
26 | loader: 'ify-loader'
27 | }
28 | ]
29 | },
30 | plugins: process.env.NODE_ENV === 'production' ? [
31 | new webpack.optimize.UglifyJsPlugin({
32 | include: /\.min\.js$/,
33 | minimize: true
34 | })
35 | ] : []
36 | };
37 |
38 | module.exports = [
39 | // Playground
40 | Object.assign({}, base, {
41 | target: 'web',
42 | entry: {
43 | 'scratch-render': './src/index-web.js'
44 | },
45 | output: {
46 | path: path.resolve(__dirname, 'playground'),
47 | filename: '[name].js'
48 | },
49 | plugins: base.plugins.concat([
50 | new CopyWebpackPlugin([
51 | {
52 | from: 'src/playground'
53 | }
54 | ])
55 | ])
56 | }),
57 | // Playground
58 | Object.assign({}, base, {
59 | target: 'web',
60 | entry: {
61 | 'scratch-render': './src/index-web.js'
62 | },
63 | output: {
64 | path: path.resolve(__dirname, 'hello'),
65 | filename: '[name].js'
66 | },
67 | plugins: base.plugins.concat([
68 | new CopyWebpackPlugin([
69 | {
70 | from: 'src/hello'
71 | }
72 | ])
73 | ])
74 | }),
75 | // Web-compatible
76 | Object.assign({}, base, {
77 | target: 'web',
78 | entry: {
79 | 'scratch-render': './src/index-web.js',
80 | 'scratch-render.min': './src/index-web.js'
81 | },
82 | output: {
83 | path: path.resolve(__dirname, 'dist/web'),
84 | filename: '[name].js'
85 | }
86 | }),
87 | // Node-compatible
88 | Object.assign({}, base, {
89 | target: 'node',
90 | entry: {
91 | 'scratch-render': './src/index.js'
92 | },
93 | output: {
94 | library: 'ScratchRender',
95 | libraryTarget: 'commonjs2',
96 | path: path.resolve(__dirname, 'dist/node'),
97 | filename: '[name].js'
98 | }
99 | })
100 | ];
101 |
--------------------------------------------------------------------------------
/package/hello-dev-server/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hello-dev-server",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start": "webpack-dev-server"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "ISC",
13 | "dependencies": {
14 | "webpack": "^3.10.0",
15 | "webpack-dev-server": "^2.9.6"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/package/hello-dev-server/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | hello
4 |
5 |
6 | Hello, World!!
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/package/hello-dev-server/src/main.js:
--------------------------------------------------------------------------------
1 | //dummy
2 |
3 |
4 |
--------------------------------------------------------------------------------
/package/hello-dev-server/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | entry: './src/main.js',
5 | devServer: {
6 | contentBase: path.resolve(__dirname, 'src'),
7 | port: 8085,
8 | }
9 | };
10 |
11 |
--------------------------------------------------------------------------------
/package/hello/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hello",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "webpack": "^3.10.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/scratch-block-test/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scratch-block-test",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-core": "^6.26.0",
14 | "babel-eslint": "^8.0.3",
15 | "babel-loader": "^7.1.2",
16 | "babel-preset-es2015": "^6.24.1",
17 | "babel-preset-es2016": "^6.24.1",
18 | "copy-webpack-plugin": "^4.3.0",
19 | "scratch-blocks": "0.1.0-prerelease.1513719016",
20 | "webpack": "^3.10.0",
21 | "webpack-dev-server": "^2.9.7"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/scratch-block-test/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hello, World!!
4 |
5 |
6 | Test
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/scratch-block-test/src/scratch-block-test.js:
--------------------------------------------------------------------------------
1 | const Blockly = require("scratch-blocks");
2 | class HelloWorld {
3 | hello() {
4 | console.log("Hello, World!!");
5 | }
6 | }
7 |
8 | var helloWorld = new HelloWorld();
9 | helloWorld.hello();
10 |
11 | // Instantiate scratch-blocks and attach it to the DOM.
12 | const workspace = Blockly.inject('blocks', {
13 | media: './media/',
14 | zoom: {
15 | controls: true,
16 | wheel: true,
17 | startScale: 0.75
18 | },
19 | colours: {
20 | workspace: '#334771',
21 | flyout: '#283856',
22 | scrollbar: '#24324D',
23 | scrollbarHover: '#0C111A',
24 | insertionMarker: '#FFFFFF',
25 | insertionMarkerOpacity: 0.3,
26 | fieldShadow: 'rgba(255, 255, 255, 0.3)',
27 | dragShadowOpacity: 0.6
28 | }
29 | });
--------------------------------------------------------------------------------
/scratch-block-test/webpack.config.js:
--------------------------------------------------------------------------------
1 | const CopyWebpackPlugin = require('copy-webpack-plugin');
2 | const path = require('path');
3 | const webpack = require('webpack');
4 |
5 |
6 | const base = {
7 | devServer: {
8 | contentBase: false,
9 | host: '0.0.0.0',
10 | port: process.env.PORT || 8362
11 | },
12 | output: {
13 | filename: 'bundle.js',
14 | path: path.resolve(__dirname, 'dist')
15 | },
16 | module: {
17 | rules: [{
18 | loader: 'babel-loader',
19 | include: path.resolve(__dirname, 'src'),
20 | query: {
21 | presets: ['es2015']
22 | }
23 | }]
24 | },
25 | plugins: process.env.NODE_ENV === 'production' ? [
26 | new webpack.optimize.UglifyJsPlugin({
27 | include: /\.min\.js$/,
28 | minimize: true
29 | })
30 | ] : []
31 | };
32 |
33 | module.exports = [
34 | Object.assign({}, base, {
35 | target: 'web',
36 | entry: {
37 | 'scratch-block-test': './src/scratch-block-test.js'
38 | },
39 | output: {
40 | path: path.resolve(__dirname, 'dist'),
41 | filename: '[name].js'
42 | },
43 | plugins: base.plugins.concat([
44 | new CopyWebpackPlugin([
45 | {
46 | from: 'src'
47 | }
48 | ])
49 | ])
50 | }),
51 | ];
52 |
--------------------------------------------------------------------------------
/scratch-render-hello/hello/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-render-hello/hello/icon.png
--------------------------------------------------------------------------------
/scratch-render-hello/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/scratch-render-hello/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scratch-render-hello",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-core": "^6.26.0",
14 | "babel-eslint": "^8.0.3",
15 | "babel-loader": "^7.1.2",
16 | "babel-preset-es2015": "^6.24.1",
17 | "copy-webpack-plugin": "^4.2.3",
18 | "scratch-render": "0.1.0-prerelease.1513022270",
19 | "webpack": "^3.10.0",
20 | "webpack-dev-server": "^2.9.7"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/scratch-render-hello/src/hello/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-render-hello/src/hello/icon.png
--------------------------------------------------------------------------------
/scratch-render-hello/src/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/scratch-render-hello/src/hello/scratch-render-hello.js:
--------------------------------------------------------------------------------
1 | const ScratchRender = require('scratch-render');
2 | class Chara {
3 | constructor(renderer, name, imageUrl, x=0, y=0) {
4 | this.x = x;
5 | this.y = y;
6 | this.name;
7 | this.drawableID = renderer.createDrawable();
8 | this.updateImage(renderer, this.drawableID, imageUrl);
9 | }
10 |
11 | updateImage(renderer, drawableID, imageUrl) {
12 | var image = new Image();
13 | image.crossOrigin = 'anonymous';
14 | image.src = imageUrl;
15 | image.onload = function () {
16 | var skinId = renderer.createBitmapSkin(image);
17 | console.log(""+drawableID);
18 | renderer.updateDrawableProperties(drawableID, {
19 | skinId: skinId
20 | });
21 | };
22 | }
23 | update(renderer) {
24 | renderer.updateDrawableProperties(this.drawableID, {
25 | position: [this.x, this.y],
26 | scale: [20, 20],
27 | direction: 90
28 | });
29 | }
30 | onKeyDown(keyCode) {}
31 | }
32 |
33 | class CharaA extends Chara {
34 | onKeyDown(keyCode) {
35 | switch(keyCode) {
36 | case 37: // left
37 | this.x -=10;
38 | break;
39 | case 39: // right
40 | this.x +=10;
41 | break;
42 | case 38: // up
43 | this.y +=10;
44 | break;
45 | case 40: // down
46 | this.y -=10;
47 | break;
48 | }
49 | }
50 | }
51 | class CharaB extends Chara {
52 | onKeyDown(keyCode) {
53 | switch(keyCode) {
54 | case 72: //h
55 | this.x -=10;
56 | break;
57 | case 76: //l
58 | this.x +=10;
59 | break;
60 | case 75: //k
61 | this.y +=10;
62 | break;
63 | case 74: //j
64 | this.y -=10;
65 | break;
66 | }
67 | }
68 | }
69 |
70 | var canvas = document.getElementById('scratch-stage');
71 | var renderer = new ScratchRender(canvas);
72 | var chara1 = new CharaA(renderer, "test", "icon.png", -50,0);
73 | var chara2 = new CharaB(renderer, "test", "icon.png", 50,0);
74 |
75 | document.onkeydown = function (ev) {
76 | chara1.onKeyDown(ev.keyCode);
77 | chara2.onKeyDown(ev.keyCode);
78 | };
79 |
80 |
81 | function drawStep() {
82 | chara1.update(renderer);
83 | chara2.update(renderer);
84 | renderer.draw();
85 | requestAnimationFrame(drawStep);
86 | }
87 | drawStep();
88 |
89 |
--------------------------------------------------------------------------------
/scratch-render-hello/webpack.config.js:
--------------------------------------------------------------------------------
1 | const CopyWebpackPlugin = require('copy-webpack-plugin');
2 | const path = require('path');
3 | const webpack = require('webpack');
4 |
5 | const base = {
6 | devServer: {
7 | contentBase: false,
8 | host: '0.0.0.0',
9 | port: process.env.PORT || 8362
10 | },
11 | module: {
12 | rules: [
13 | {
14 | include: [
15 | path.resolve(__dirname, 'src')
16 | ],
17 | loader: 'babel-loader',
18 | options: {
19 | presets: ['es2015']
20 | }
21 | },
22 | ]
23 | },
24 | plugins: process.env.NODE_ENV === 'production' ? [
25 | new webpack.optimize.UglifyJsPlugin({
26 | include: /\.min\.js$/,
27 | minimize: true
28 | })
29 | ] : []
30 | };
31 |
32 | module.exports = [
33 | Object.assign({}, base, {
34 | target: 'web',
35 | entry: {
36 | 'scratch-render-hello': './src/hello/scratch-render-hello.js'
37 | },
38 | output: {
39 | path: path.resolve(__dirname, 'hello'),
40 | filename: '[name].js'
41 | },
42 | plugins: base.plugins.concat([
43 | new CopyWebpackPlugin([
44 | {
45 | from: 'src/hello'
46 | }
47 | ])
48 | ])
49 | }),
50 | ];
51 |
--------------------------------------------------------------------------------
/scratch-serviceworker/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Scratch x ServiceWorker
3 |
4 | ```
5 | git clone https://github.com/kyorohiro/doc.advent.scratch30.git
6 | cd scratch-serviceworker
7 | npm install
8 | webpack-dev-server
9 | ```
10 |
11 |
12 | ## REF
13 | ```
14 | mkdir scratch-serviceworker
15 | cd scratch-serviceworker
16 | npm init -f
17 | npm install --save-dev webpack babel-core babel-loader babel-eslint babel-preset-es2015 babel-preset-es2016
18 | npm install --save-dev webpack web-dev-server copy-webpack-plugin
19 | ```
20 |
--------------------------------------------------------------------------------
/scratch-serviceworker/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scratch-serviceworker",
3 | "version": "1.0.0",
4 | "description": "mkdir scratch-serviceworker cd scratch-serviceworker npm init -f",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-core": "^6.26.0",
14 | "babel-eslint": "^8.0.3",
15 | "babel-loader": "^7.1.2",
16 | "babel-preset-es2015": "^6.24.1",
17 | "babel-preset-es2016": "^6.24.1",
18 | "copy-webpack-plugin": "^4.3.1",
19 | "scratch-audio": "0.1.0-prerelease.1513803406",
20 | "scratch-render": "0.1.0-prerelease.1513807417",
21 | "scratch-storage": "^0.3.0",
22 | "scratch-vm": "0.1.0-prerelease.1513889734-prerelease.1513889749",
23 | "web-dev-server": "^1.1.1",
24 | "webpack": "^3.10.0"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-serviceworker/src/hello/icon.png
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
26 |
27 |
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/09dc888b0b7df19f70d81588ae73420e.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/195233767.json:
--------------------------------------------------------------------------------
1 | {
2 | "objName": "Stage",
3 | "sounds": [{
4 | "soundName": "pop",
5 | "soundID": 1,
6 | "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav",
7 | "sampleCount": 258,
8 | "rate": 11025,
9 | "format": ""
10 | }],
11 | "costumes": [{
12 | "costumeName": "backdrop1",
13 | "baseLayerID": 3,
14 | "baseLayerMD5": "739b5e2a2435f6e1ec2993791b423146.png",
15 | "bitmapResolution": 1,
16 | "rotationCenterX": 240,
17 | "rotationCenterY": 180
18 | }],
19 | "currentCostumeIndex": 0,
20 | "penLayerMD5": "5c81a336fab8be57adc039a8a2b33ca9.png",
21 | "penLayerID": 0,
22 | "tempoBPM": 60,
23 | "videoAlpha": 0.5,
24 | "children": [{
25 | "objName": "Sprite1",
26 | "scripts": [[21, 98, [["whenGreenFlag"], ["doForever", [["forward:", 10], ["bounceOffEdge"]]]]]],
27 | "sounds": [{
28 | "soundName": "meow",
29 | "soundID": 0,
30 | "md5": "83c36d806dc92327b9e7049a565c6bff.wav",
31 | "sampleCount": 18688,
32 | "rate": 22050,
33 | "format": ""
34 | }],
35 | "costumes": [{
36 | "costumeName": "costume1",
37 | "baseLayerID": 1,
38 | "baseLayerMD5": "09dc888b0b7df19f70d81588ae73420e.svg",
39 | "bitmapResolution": 1,
40 | "rotationCenterX": 47,
41 | "rotationCenterY": 55
42 | },
43 | {
44 | "costumeName": "costume2",
45 | "baseLayerID": 2,
46 | "baseLayerMD5": "3696356a03a8d938318876a593572843.svg",
47 | "bitmapResolution": 1,
48 | "rotationCenterX": 47,
49 | "rotationCenterY": 55
50 | }],
51 | "currentCostumeIndex": 0,
52 | "scratchX": 9.796051836315172,
53 | "scratchY": -90.4037647507126,
54 | "scale": 1,
55 | "direction": 50.7105931374997,
56 | "rotationStyle": "normal",
57 | "isDraggable": false,
58 | "indexInLibrary": 1,
59 | "visible": true,
60 | "spriteInfo": {
61 | }
62 | }],
63 | "info": {
64 | "scriptCount": 1,
65 | "hasCloudData": false,
66 | "spriteCount": 1,
67 | "swfVersion": "v459.1",
68 | "videoOn": false,
69 | "flashVersion": "MAC 28,0,0,126",
70 | "projectID": "195233767",
71 | "userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/63.0.3239.84 Safari\/537.36"
72 | }
73 | }
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/3696356a03a8d938318876a593572843.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/5c81a336fab8be57adc039a8a2b33ca9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-serviceworker/src/hello/project/5c81a336fab8be57adc039a8a2b33ca9.png
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/739b5e2a2435f6e1ec2993791b423146.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-serviceworker/src/hello/project/739b5e2a2435f6e1ec2993791b423146.png
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/83a9787d4cb6f3b7632b4ddfebf74367.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-serviceworker/src/hello/project/83a9787d4cb6f3b7632b4ddfebf74367.wav
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/project/83c36d806dc92327b9e7049a565c6bff.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kyorohiro/doc.advent.scratch30/b269b4f56b213812bfebba2c0ca68074f2bb996f/scratch-serviceworker/src/hello/project/83c36d806dc92327b9e7049a565c6bff.wav
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/scratch-vm-hello.js:
--------------------------------------------------------------------------------
1 | const ScratchVM = require("scratch-vm");
2 | const ScratchRender = require("scratch-render");
3 | const ScratchStorage = require("scratch-storage");
4 | const ScratchAudio = require("scratch-audio");
5 |
6 |
7 | const canvas = document.getElementById('scratch-stage');
8 | const startButton = document.getElementById('start-button');
9 | const stopButton = document.getElementById('stop-button');
10 |
11 | const vm = new ScratchVM();
12 | const renderer = new ScratchRender(canvas);
13 | const storage = new ScratchStorage();
14 | const audioEngine = new ScratchAudio();
15 |
16 |
17 | //
18 | // Assets Setting
19 | //
20 | const ASSET_SERVER = '';
21 | const PROJECT_SERVER = '';
22 | const getProjectUrl = function (asset) {
23 | console.log(JSON.stringify(asset));
24 | const assetUrlParts = [PROJECT_SERVER, '/project/', asset.assetId, '.json'];
25 | return assetUrlParts.join('');
26 | };
27 |
28 | const getAssetUrl = function (asset) {
29 | console.log(JSON.stringify(asset));
30 | const assetUrlParts = [ASSET_SERVER, '/project/', asset.assetId, '.', asset.dataFormat];
31 | return assetUrlParts.join('');
32 | };
33 | storage.addWebSource([storage.AssetType.Project], getProjectUrl);
34 | storage.addWebSource([storage.AssetType.ImageVector, storage.AssetType.ImageBitmap, storage.AssetType.Sound], getAssetUrl);
35 | vm.attachStorage(storage);
36 |
37 |
38 | //
39 | // Render Setting
40 | //
41 | vm.attachRenderer(renderer);
42 |
43 |
44 | //
45 | // Audio Setting
46 | //
47 | vm.attachAudioEngine(audioEngine);
48 |
49 |
50 | //
51 | // START & Download
52 | //
53 | vm.start();
54 | vm.downloadProjectId("195233767");
55 |
56 | //
57 | // Button Action Setting
58 | //
59 | startButton.onclick = function() {
60 | vm.greenFlag();
61 | };
62 |
63 | stopButton.onclick = function() {
64 | vm.stopAll();
65 | };
66 |
67 |
68 |
--------------------------------------------------------------------------------
/scratch-serviceworker/src/hello/sw.js:
--------------------------------------------------------------------------------
1 | var CACHE_NAME = 'my-site-cache-v1';
2 | var urlsToCache = [
3 | '/',
4 | '/scratch-vm-hello.js',
5 | '/project/09dc888b0b7df19f70d81588ae73420e.svg',
6 | '/project/195233767.json',
7 | '/project/3696356a03a8d938318876a593572843.svg',
8 | '/project/5c81a336fab8be57adc039a8a2b33ca9.png',
9 | '/project/739b5e2a2435f6e1ec2993791b423146.png',
10 | '/project/83a9787d4cb6f3b7632b4ddfebf74367.wav',
11 | '/project/83c36d806dc92327b9e7049a565c6bff.wav'
12 | ];
13 | console.log("Hello, World 2!!");
14 | self.addEventListener('install', function(event) {
15 | console.log('install');
16 | // インストール処理
17 | event.waitUntil(
18 | caches.open(CACHE_NAME)
19 | .then(function(cache) {
20 | console.log('Opened cache');
21 | return cache.addAll(urlsToCache);
22 | })
23 | );
24 | });
25 | /*
26 | self.addEventListener('fetch', function(event) {
27 | event.respondWith(
28 | caches.match(event.request)
29 | .then(function(response) {
30 | console.log(JSON.stringify(response));
31 | // キャッシュがあったのでそのレスポンスを返す
32 | if (response) {
33 | return response;
34 | }
35 | return fetch(event.request);
36 | }
37 | )
38 | );
39 | });
40 | */
41 | self.addEventListener('fetch', function(event) {
42 | event.respondWith(
43 | caches.match(event.request)
44 | .then(function(response) {
45 | // キャッシュがあったのでレスポンスを返す
46 | if (response) {
47 | return response;
48 | }
49 |
50 | // 重要:リクエストを clone する。リクエストは Stream なので
51 | // 一度しか処理できない。ここではキャッシュ用、fetch 用と2回
52 | // 必要なので、リクエストは clone しないといけない
53 | var fetchRequest = event.request.clone();
54 |
55 | return fetch(fetchRequest).then(
56 | function(response) {
57 | // レスポンスが正しいかをチェック
58 | if(!response || response.status !== 200 || response.type !== 'basic') {
59 | return response;
60 | }
61 |
62 | // 重要:レスポンスを clone する。レスポンスは Stream で
63 | // ブラウザ用とキャッシュ用の2回必要。なので clone して
64 | // 2つの Stream があるようにする
65 | var responseToCache = response.clone();
66 |
67 | caches.open(CACHE_NAME)
68 | .then(function(cache) {
69 | cache.put(event.request, responseToCache);
70 | });
71 |
72 | return response;
73 | }
74 | );
75 | })
76 | );
77 | });
--------------------------------------------------------------------------------
/scratch-serviceworker/webpack.config.js:
--------------------------------------------------------------------------------
1 | const CopyWebpackPlugin = require('copy-webpack-plugin');
2 | const path = require('path');
3 | const webpack = require('webpack');
4 |
5 | const base = {
6 | devServer: {
7 | contentBase: false,
8 | host: '0.0.0.0',
9 | port: process.env.PORT || 8362
10 | },
11 | module: {
12 | rules: [
13 | {
14 | include: [
15 | path.resolve(__dirname, 'src')
16 | ],
17 | loader: 'babel-loader',
18 | options: {
19 | presets: ['es2015']
20 | }
21 | },
22 | ]
23 | },
24 | plugins: process.env.NODE_ENV === 'production' ? [
25 | new webpack.optimize.UglifyJsPlugin({
26 | include: /\.min\.js$/,
27 | minimize: true
28 | })
29 | ] : []
30 | };
31 |
32 | module.exports = [
33 | Object.assign({}, base, {
34 | target: 'web',
35 | entry: {
36 | 'scratch-vm-hello': './src/hello/scratch-vm-hello.js'
37 | },
38 | output: {
39 | path: path.resolve(__dirname, 'hello'),
40 | filename: '[name].js'
41 | },
42 | plugins: base.plugins.concat([
43 | new CopyWebpackPlugin([
44 | {
45 | from: 'src/hello'
46 | }
47 | ])
48 | ])
49 | }),
50 | ];
51 |
--------------------------------------------------------------------------------
/scratch-storage-01/main.js:
--------------------------------------------------------------------------------
1 | const storage = require('./scratch-storage.js');
2 |
3 | console.log(JSON.stringify(storage.AssetType.Project));
4 | var storageObj = new storage();
5 |
6 | //console.log(storageObj);
7 |
8 | const ASSET_SERVER = 'https://cdn.assets.scratch.mit.edu/';
9 | const PROJECT_SERVER = 'https://cdn.projects.scratch.mit.edu/';
10 |
11 | const getProjectUrl = function (asset) {
12 | const assetIdParts = asset.assetId.split('.');
13 | const assetUrlParts = [PROJECT_SERVER, 'internalapi/project/', assetIdParts[0], '/get/'];
14 | if (assetIdParts[1]) {
15 | assetUrlParts.push(assetIdParts[1]);
16 | }
17 | return assetUrlParts.join('');
18 | };
19 |
20 | const getAssetUrl = function (asset) {
21 | const assetUrlParts = [
22 | ASSET_SERVER,
23 | 'internalapi/asset/',
24 | asset.assetId,
25 | '.',
26 | asset.dataFormat,
27 | '/get/'
28 | ];
29 | return assetUrlParts.join('');
30 | };
31 |
32 | storageObj.addWebSource([storage.AssetType.Project], getProjectUrl);
33 | storageObj.addWebSource([storage.AssetType.ImageVector, storage.AssetType.ImageBitmap, storage.AssetType.Sound], getAssetUrl);
34 |
35 |
36 | var id = '119615668';
37 | const promise = storageObj.load(storage.AssetType.Project, id);
38 | promise.then(projectAsset => {
39 | return projectAsset.decodeText();
40 | }).then(jsonSrc =>{
41 | // console.log(jsonSrc);
42 | var jsonObj = JSON.parse(jsonSrc);
43 | console.log(JSON.stringify(jsonObj));
44 | /*
45 | for(var item in jsonObj) {
46 | console.log("# " + item);
47 | if(jsonObj.hasOwnProperty(item)) {
48 | for(var i in item) {
49 | console.log(item[i]);
50 | }
51 | }
52 | }*/
53 | });
54 |
--------------------------------------------------------------------------------
/scratch-vm-test/README.md:
--------------------------------------------------------------------------------
1 |
2 | # RUN
3 |
4 | ```
5 | npm install
6 | webpack-dev-server
7 | ```
8 |
9 |
10 | # REF
11 |
12 | ```
13 | mkdir scratch-vm-test
14 | cd scratch-vm-test/
15 | npm init -f
16 | npm install --save-dev webpack babel-core babel-loader babel-eslint babel-preset-es2015
17 | npm install --save-dev webpack web-dev-server copy-webpack-plugin
18 | npm install --save-dev scratch-vm scratch-storage scratch-render scratch-audio
19 | ```
20 |
--------------------------------------------------------------------------------
/scratch-vm-test/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/scratch-vm-test/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scratch-vm-test",
3 | "version": "1.0.0",
4 | "description": "mkdir scratch-vm-test cd scratch-vm-test/ npm init -f npm install --save-dev webpack babel-core babel-loader babel-eslint babel-preset-es2015 npm install --save-dev webpack web-dev-server copy-webpack-plugin npm install --save-dev scratch-vm",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-core": "^6.26.0",
14 | "babel-eslint": "^8.0.3",
15 | "babel-loader": "^7.1.2",
16 | "babel-preset-es2015": "^6.24.1",
17 | "copy-webpack-plugin": "^4.3.1",
18 | "scratch-audio": "0.1.0-prerelease.1513803406",
19 | "scratch-render": "0.1.0-prerelease.1513807417",
20 | "scratch-storage": "^0.3.0",
21 | "scratch-vm": "0.1.0-prerelease.1513889734-prerelease.1513889749",
22 | "web-dev-server": "^1.1.1",
23 | "webpack": "^3.10.0"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/scratch-vm-test/src/hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scratch WebGL rendering demo
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/scratch-vm-test/src/hello/scratch-vm-hello.js:
--------------------------------------------------------------------------------
1 | const ScratchVM = require("scratch-vm");
2 | const ScratchRender = require("scratch-render");
3 | const ScratchStorage = require("scratch-storage");
4 | const ScratchAudio = require("scratch-audio");
5 |
6 |
7 | const canvas = document.getElementById('scratch-stage');
8 | const startButton = document.getElementById('start-button');
9 | const stopButton = document.getElementById('stop-button');
10 |
11 | const vm = new ScratchVM();
12 | const renderer = new ScratchRender(canvas);
13 | const storage = new ScratchStorage();
14 | const audioEngine = new ScratchAudio();
15 |
16 |
17 | //
18 | // Assets Setting
19 | //
20 | const ASSET_SERVER = 'https://cdn.assets.scratch.mit.edu/';
21 | const PROJECT_SERVER = 'https://cdn.projects.scratch.mit.edu/';
22 | const getProjectUrl = function (asset) {
23 | const assetIdParts = asset.assetId.split('.');
24 | const assetUrlParts = [PROJECT_SERVER, 'internalapi/project/', assetIdParts[0], '/get/'];
25 | if (assetIdParts[1]) {
26 | assetUrlParts.push(assetIdParts[1]);
27 | }
28 | return assetUrlParts.join('');
29 | };
30 |
31 | const getAssetUrl = function (asset) {
32 | const assetUrlParts = [
33 | ASSET_SERVER,
34 | 'internalapi/asset/',
35 | asset.assetId,
36 | '.',
37 | asset.dataFormat,
38 | '/get/'
39 | ];
40 | return assetUrlParts.join('');
41 | };
42 | storage.addWebSource([storage.AssetType.Project], getProjectUrl);
43 | storage.addWebSource([storage.AssetType.ImageVector, storage.AssetType.ImageBitmap, storage.AssetType.Sound], getAssetUrl);
44 | vm.attachStorage(storage);
45 |
46 |
47 | //
48 | // Render Setting
49 | //
50 | vm.attachRenderer(renderer);
51 |
52 |
53 | //
54 | // Audio Setting
55 | //
56 | vm.attachAudioEngine(audioEngine);
57 |
58 |
59 | //
60 | // START & Download
61 | //
62 | vm.start();
63 | vm.downloadProjectId("119615668");
64 |
65 | //
66 | // Button Action Setting
67 | //
68 | startButton.onclick = function() {
69 | vm.greenFlag();
70 | };
71 |
72 | stopButton.onclick = function() {
73 | vm.stopAll();
74 | };
75 |
76 |
--------------------------------------------------------------------------------
/scratch-vm-test/webpack.config.js:
--------------------------------------------------------------------------------
1 | const CopyWebpackPlugin = require('copy-webpack-plugin');
2 | const path = require('path');
3 | const webpack = require('webpack');
4 |
5 | const base = {
6 | devServer: {
7 | contentBase: false,
8 | host: '0.0.0.0',
9 | port: process.env.PORT || 8362
10 | },
11 | module: {
12 | rules: [
13 | {
14 | include: [
15 | path.resolve(__dirname, 'src')
16 | ],
17 | loader: 'babel-loader',
18 | options: {
19 | presets: ['es2015']
20 | }
21 | },
22 | ]
23 | },
24 | plugins: process.env.NODE_ENV === 'production' ? [
25 | new webpack.optimize.UglifyJsPlugin({
26 | include: /\.min\.js$/,
27 | minimize: true
28 | })
29 | ] : []
30 | };
31 |
32 | module.exports = [
33 | Object.assign({}, base, {
34 | target: 'web',
35 | entry: {
36 | 'scratch-vm-hello': './src/hello/scratch-vm-hello.js'
37 | },
38 | output: {
39 | path: path.resolve(__dirname, 'hello'),
40 | filename: '[name].js'
41 | },
42 | plugins: base.plugins.concat([
43 | new CopyWebpackPlugin([
44 | {
45 | from: 'src/hello'
46 | }
47 | ])
48 | ])
49 | }),
50 | ];
51 |
--------------------------------------------------------------------------------
/webpack01/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hello",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "build": "webpack"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "ISC",
13 | "dependencies": {
14 | "webpack": "^3.10.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/webpack01/src/character.js:
--------------------------------------------------------------------------------
1 | exports.Character = function (name) {
2 | this.name = name;
3 | this.x = 0;
4 | this.y = 0;
5 | this.getX = function (){ return this.x; };
6 | this.getY = function (){ return this.y; };
7 | this.hello = function (){ return "Hello!! I'm " + this.name + "!!"; };
8 | this.move = function (x,y){ this.x+=x; this.y+=y;};
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/webpack01/src/index.js:
--------------------------------------------------------------------------------
1 | const n = require('./neko.js');
2 | const i = require('./inu.js');
3 |
4 |
5 | var chara = {};
6 | chara = new n.Neko("Tama");
7 | chara.move(1,2);
8 | console.log(chara.hello());
9 | console.log("x:"+chara.getX() + " ,y:" + chara.getY());
10 |
11 | chara = new i.Inu("Tarou");
12 | chara.move(2,3);
13 | console.log(chara.hello());
14 | console.log("x:"+chara.getX() + " ,y:" + chara.getY());
--------------------------------------------------------------------------------
/webpack01/src/inu.js:
--------------------------------------------------------------------------------
1 | const _ = require('./character.js');
2 |
3 | exports.Inu = function(name) {
4 | this.parent = new _.Character(name);
5 | this.hello = function (){return "Wan Wan!! I'm " + this.parent.name + "!!";};
6 | this.move = function(x,y){return this.parent.move(x,y);}
7 | this.getX = function (){ return this.parent.getX(); };
8 | this.getY = function (){ return this.parent.getY(); };
9 | }
10 |
--------------------------------------------------------------------------------
/webpack01/src/neko.js:
--------------------------------------------------------------------------------
1 | const _ = require('./character.js');
2 |
3 | exports.Neko = function(name) {
4 | this.parent = new _.Character(name);
5 | this.hello = function (){return "Nyaa!! I'm " + this.parent.name + "!!";};
6 | this.move = function(x,y){return this.parent.move(x,y);}
7 | this.getX = function (){ return this.parent.getX(); };
8 | this.getY = function (){ return this.parent.getY(); };
9 | }
10 |
--------------------------------------------------------------------------------
/webpack01/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | entry: './src/index.js',
5 | output: {
6 | filename: 'bundle.js',
7 | path: path.resolve(__dirname, 'dist')
8 | }
9 | };
10 |
--------------------------------------------------------------------------------