· 4 years ago · Jun 03, 2021, 01:22 AM
1Entry.staticBlocks = [
2{
3category: 'start',
4blocks: [
5'when_run_button_click',
6'when_some_key_pressed',
7'mouse_clicked',
8'mouse_click_cancled',
9'when_object_click',
10'when_object_click_canceled',
11'when_message_cast',
12'message_cast',
13'message_cast_wait',
14'when_scene_start',
15'start_scene',
16'start_neighbor_scene',
17'check_object_property',
18'check_block_execution',
19'switch_scope',
20'is_answer_submited',
21'check_lecture_goal',
22'check_variable_by_name',
23'show_prompt',
24'check_goal_success',
25'positive_number',
26'negative_number',
27'wildcard_string',
28'wildcard_boolean',
29'register_score',
30],
31},
32{
33category: 'flow',
34blocks: [
35'wait_second',
36'repeat_basic',
37'repeat_inf',
38'repeat_while_true',
39'stop_repeat',
40'_if',
41'if_else',
42'wait_until_true',
43'stop_object',
44'restart_project',
45'when_clone_start',
46'create_clone',
47'delete_clone',
48'remove_all_clones',
49],
50},
51{
52category: 'moving',
53blocks: [
54'move_direction',
55'bounce_wall',
56'move_x',
57'move_y',
58'move_xy_time',
59'locate_x',
60'locate_y',
61'locate_xy',
62'locate_xy_time',
63'locate',
64'locate_object_time',
65'rotate_relative',
66'direction_relative',
67'rotate_by_time',
68'direction_relative_duration',
69'rotate_absolute',
70'direction_absolute',
71'see_angle_object',
72'move_to_angle',
73],
74},
75{
76category: 'looks',
77blocks: [
78'show',
79'hide',
80'dialog_time',
81'dialog',
82'remove_dialog',
83'change_to_some_shape',
84'change_to_next_shape',
85'add_effect_amount',
86'change_effect_amount',
87'erase_all_effects',
88'change_scale_size',
89'set_scale_size',
90'flip_x',
91'flip_y',
92'change_object_index',
93],
94},
95{
96category: 'brush',
97blocks: [
98'brush_stamp',
99'start_drawing',
100'stop_drawing',
101'set_color',
102'set_random_color',
103'change_thickness',
104'set_thickness',
105'change_brush_transparency',
106'set_brush_tranparency',
107'brush_erase_all',
108],
109},
110{
111category: 'text',
112blocks: ['text_blue', 'text_orange', 'text_Yello', 'text_gray ', 'text_flush'],
113},
114{
115category: 'sound',
116blocks: [
117'sound_something_with_block',
118'sound_something_second_with_block',
119'sound_from_to',
120'sound_something_wait_with_block',
121'sound_something_second_wait_with_block',
122'sound_from_to_and_wait',
123'sound_volume_change',
124'sound_volume_set',
125'sound_silent_all',
126],
127},
128{
129category: 'judgement',
130blocks: [
131'is_clicked',
132'is_press_some_key',
133'reach_something',
134'boolean_basic_operator',
135'boolean_and_or',
136'boolean_not',
137],
138},
139{
140category: 'calc',
141blocks: [
142'calc_basic',
143'calc_rand',
144'coordinate_mouse',
145'coordinate_object',
146'get_sound_volume',
147'quotient_and_mod',
148'calc_operation',
149'get_project_timer_value',
150'choose_project_timer_action',
151'set_visible_project_timer',
152'get_date',
153'distance_something',
154'get_sound_duration',
155'get_user_name',
156'length_of_string',
157'combine_something',
158'char_at',
159'substring',
160'index_of_string',
161'replace_string',
162'change_string_case',
163],
164},
165{
166category: 'variable',
167blocks: [
168'variableAddButton',
169'listAddButton',
170'ask_and_wait',
171'get_canvas_input_value',
172'set_visible_answer',
173'get_variable',
174'change_variable',
175'set_variable',
176'show_variable',
177'hide_variable',
178'value_of_index_from_list',
179'add_value_to_list',
180'remove_value_from_list',
181'insert_value_to_list',
182'change_value_list_index',
183'length_of_list',
184'is_included_in_list',
185'show_list',
186'hide_list',
187],
188},
189{
190category: 'func',
191blocks: ['functionAddButton'],
192},
193{
194category: 'analysis',
195blocks: [
196'analizyDataAddButton',
197'append_row_to_table',
198'insert_row_to_table',
199'delete_row_from_table',
200'set_value_from_table',
201'get_table_count',
202'get_value_from_table',
203'calc_values_from_table',
204'open_table_chart',
205'close_table_chart',
206],
207},
208{
209category: 'ai_utilize',
210blocks: [
211'aiUtilizeBlockAddButton',
212'aiUtilizeModelTrainButton',
213'audio_title',
214'check_microphone',
215'speech_to_text_convert',
216'speech_to_text_get_value',
217'get_microphone_volume',
218'tts_title',
219'read_text',
220'read_text_wait_with_block',
221'set_tts_property',
222'translate_title',
223'get_translated_string',
224'check_language',
225'video_title',
226'video_draw_webcam',
227'video_check_webcam',
228'video_flip_camera',
229'video_set_camera_opacity_option',
230'video_motion_value',
231'video_toggle_model',
232'video_is_model_loaded',
233'video_number_detect',
234'video_toggle_ind',
235'video_body_part_coord',
236'video_face_part_coord',
237'video_detected_face_info',
238],
239},
240{
241category: 'expansion',
242blocks: [
243'expansionBlockAddButton',
244'weather_title',
245'check_weather',
246'check_finedust',
247'get_weather_data',
248'get_current_weather_data',
249'get_today_temperature',
250'check_city_weather',
251'check_city_finedust',
252'get_city_weather_data',
253'get_current_city_weather_data',
254'get_today_city_temperature',
255'festival_title',
256'count_festival',
257'get_festival_info',
258'behaviorConductDisaster_title',
259'count_disaster_behavior',
260'get_disaster_behavior',
261'behaviorConductLifeSafety_title',
262'count_lifeSafety_behavior',
263'get_lifeSafety_behavior',
264],
265},
266{
267category: 'arduino',
268blocks: [
269'arduino_reconnect',
270'arduino_open',
271'arduino_cloud_pc_open',
272'arduino_connect',
273'arduino_download_connector',
274'download_guide',
275'arduino_download_source',
276'arduino_noti',
277].concat(EntryStatic.DynamicHardwareBlocks),
278}
279];
280EntryStatic.getAllBlocks = () => {
281return Entry.staticBlocks;
282}
283const updateCategory = (category, options) => {
284Entry.playground.mainWorkspace.blockMenu._generateCategoryView([
285{ category: 'start', visible: true },
286{ category: 'flow', visible: true },
287{ category: 'moving', visible: true },
288{ category: 'looks', visible: true },
289{ category: 'brush', visible: true },
290{ category: 'text', visible: true },
291{ category: 'sound', visible: true },
292{ category: 'judgement', visible: true },
293{ category: 'calc', visible: true },
294{ category: 'variable', visible: true },
295{ category: 'func', visible: true },
296{ category: 'analysis', visible: true },
297{ category: 'ai_utilize', visible: true },
298{ category: 'expansion', visible: true },
299{ category: 'arduino', visible: false }, { category: category, visible: true }
300]);
301for (let i = 0; i < $('.entryCategoryElementWorkspace').length; i++) {
302if (!($($('.entryCategoryElementWorkspace')[i]).attr('id') == 'entryCategorytext')) {
303$($('.entryCategoryElementWorkspace')[i]).attr('class', 'entryCategoryElementWorkspace');
304}
305}
306Entry.playground.blockMenu._categoryData = EntryStatic.getAllBlocks();
307Entry.playground.blockMenu._generateCategoryCode(category);
308if (options) {
309if (options.background) {
310$(`#entryCategory${category}`).css('background-image', 'url(' + options.background + ')');
311$(`#entryCategory${category}`).css('background-repeat', 'no-repeat');
312if (options.backgroundSize) {
313$(`#entryCategory${category}`).css('background-size', options.backgroundSize + 'px');
314}
315}
316if (options.name) {
317$(`#entryCategory${category}`)[0].innerText = options.name
318}
319}
320}
321const addBlock = (blockname, template, color, params, _class, func, skeleton = 'basic') => {
322Entry.block[blockname] = {
323color: color.color,
324outerLine: color.outerline,
325skeleton: skeleton,
326statement: [],
327params: params.params,
328events: {},
329def: {
330params: params.def,
331type: blockname
332},
333paramsKeyMap: params.map,
334class: _class ? _class : 'default',
335func: func,
336template: template
337}
338} // 블록 추가 시작
339
340//////////0.1/
341addBlock('fetch', '%1 가져오기', {
342color: EntryStatic.colorSet.block.default.HARDWAR,
343outerLine: EntryStatic.colorSet.block.darken.HARDWAR
344}, {
345params: [
346{
347type: 'Block',
348accept: 'string'
349}
350],
351def: [
352{
353type: 'text',
354params: ['https://playentry.org/api/discuss/findNotice']
355}
356],
357map: {
358APIURL: 0
359}
360}, 'text', async (sprite, script) => {
361let res = await fetch(script.getValue('APIURL', script))
362let data = await res.json()
363return data
364}, 'basic_string_field')
365////////////////////
366
367////////////////////
368addBlock('array_number', '배열 %1 의 %2 번째 항목', {
369color: EntryStatic.colorSet.block.default.HARDWAR,
370outerLine: EntryStatic.colorSet.block.darken.HARDWAR
371}, {
372params: [
373{
374type: 'Block',
375accept: 'string'
376},
377{
378type: 'Block',
379accept: 'string'
380}
381],
382def: [
383{
384type: 'text',
385params: [`['1', '2']`]
386},
387{
388type: 'text',
389params: ['1']
390}
391],
392map: {
393ARRAY: 0,
394NUM: 1
395}
396}, 'text', (sprite, script) => {
397let array = eval(script.getValue('ARRAY', script))
398let done = array[script.getValue('NUM', script) - 1]
399return done
400}, 'basic_string_field');
401////////////////////
402
403////////////////////
404addBlock('json_length', 'JSON %1 의 항목 수', {
405color: EntryStatic.colorSet.block.default.HARDWAR,
406outerLine: EntryStatic.colorSet.block.darken.HARDWAR
407}, {
408params: [
409{
410type: 'Block',
411accept: 'string'
412},
413{
414type: 'Block',
415accept: 'string'
416}
417],
418def: [
419{
420type: 'text',
421params: [`{ 'title': 'Hello, world!' }`]
422},
423{
424type: 'text',
425params: ['title']
426}
427],
428map: {
429JSON: 0
430}
431}, 'text', (sprite, script) => {
432let done = Object.keys(JSON.parse(script.getValue('JSON', script))).length
433return done
434}, 'basic_string_field')
435////////////////////
436
437////////////////////
438addBlock('json_key', 'JSON %1 의 %2 항목', {
439color: EntryStatic.colorSet.block.default.HARDWAR,
440outerLine: EntryStatic.colorSet.block.darken.HARDWAR
441}, {
442params: [
443{
444type: 'Block',
445accept: 'string'
446},
447{
448type: 'Block',
449accept: 'string'
450}
451],
452def: [
453{
454type: 'text',
455params: [`{ 'title': 'Hello, world!' }`]
456},
457{
458type: 'text',
459params: ['title']
460}
461],
462map: {
463JSON: 0,
464KEY: 1
465}
466}, 'text', (sprite, script) => {
467let array = eval(script.getValue('JSON', script))
468let done = array[script.getValue('KEY', script)]
469return done
470}, 'basic_string_field')
471////////////////////
472
473////////////////////
474addBlock('array_length', '배열 %1 의 항목 수', {
475color: EntryStatic.colorSet.block.default.HARDWAR,
476outerLine: EntryStatic.colorSet.block.darken.HARDWAR
477}, {
478params: [
479{
480type: 'Block',
481accept: 'string'
482}
483],
484def: [
485{
486type: 'text',
487params: [`['1', '2']`]
488}
489],
490map: {
491ARRAY: 0
492}
493}, 'text', (sprite, script) => {
494let done = eval(script.getValue('ARRAY', script)).length
495return done
496}, 'basic_string_field')
497////////////////////
498
499////////////////////
500addBlock('toast', '%1 제목과 %2 내용의 %3 경고를 %4 출력하기%5', {
501color: EntryStatic.colorSet.block.default.HARDWAR,
502outerLine: EntryStatic.colorSet.block.darken.HARDWAR
503}, {
504params: [
505{
506type: 'Block',
507accept: 'string'
508},
509{
510type: 'Block',
511accept: 'string'
512},
513{
514type: 'Dropdown',
515options: [
516['성공했을때뜨는일종의경고', 'success'],
517['잘못된블럭을섰을때나오는경고', 'warning'],
518['오류가발생했을때나오는경고', 'alert']
519],
520fontSize: 11,
521arrowColor: '#FFD974',
522value: 'success'
523},
524{
525type: 'Dropdown',
526options: [
527['사라지지않게', 'true'],
528['잠시 뒤 사라지게', 'false']
529],
530fontSize: 11,
531arrowColor: '#FFD974',
532value: 'true'
533},
534{
535type: 'Indicator',
536img: 'block_icon/hardware_icon.svg',
537size: 11,
538}
539],
540def: [
541{
542type: 'text',
543params: [`스폐셜`]
544},
545{
546type: 'text',
547params: [`블럭`]
548},
549null,
550null,
551null
552],
553map: {
554TITLE: 0,
555CONTENT: 1,
556TYPE: 2,
557HIDE: 3
558}
559}, 'text', (sprite, script) => {
560let hide
561if (script.getValue('HIDE', script) == 'true') {
562hide = true
563} else {
564hide = false
565}
566eval(`Entry.toast.${script.getValue('TYPE', script)}('${script.getValue('TITLE', script)}', '${script.getValue('CONTENT', script)}', ${hide})`)
567return script.callReturn()
568})
569////////////////////
570
571////////////////////
572addBlock('console', '%1 내용을 이컴퓨터(브라우저) 콘솔에 %2 하기%3', {
573color: EntryStatic.colorSet.block.default.HARDWAR,
574outerLine: EntryStatic.colorSet.block.darken.HARDWAR
575}, {
576params: [
577{
578type: 'Block',
579accept: 'string'
580},
581{
582type: 'Dropdown',
583options: [
584['log', 'log'],
585['warn', 'warn'],
586['error', 'error'],
587['info', 'info']
588],
589fontSize: 11,
590arrowColor: '#FFD974',
591value: 'log'
592},
593{
594type: 'Indicator',
595img: 'block_icon/hardware_icon.svg',
596size: 11,
597}
598],
599def: [
600{
601type: 'text',
602params: [`엔트리`]
603},
604null,
605null
606],
607map: {
608CONTENT: 0,
609TYPE: 1
610}
611}, 'text', (sprite, script) => {
612eval(`console.${script.getValue('TYPE', script)}('${script.getValue('CONTENT', script)}')`)
613return script.callReturn()
614});
615////////////////////
616
617////////////////////
618addBlock('console_clear', '이컴퓨터(브라우저) 콘솔 모두 지우기%1', {
619color: EntryStatic.colorSet.block.default.HARDWAR,
620outerLine: EntryStatic.colorSet.block.darken.HARDWAR
621}, {
622params: [
623{
624type: 'Indicator',
625img: 'block_icon/hardware_icon.svg',
626size: 11,
627}
628],
629def: [
630null
631],
632map: {}
633}, 'text', (sprite, script) => {
634console.clear()
635return script.callReturn()
636})
637////////////////////
638
639////////////////////
640addBlock('entry_console', '%1 내용을 엔트리 콘솔에 출력하기%2', {
641color: EntryStatic.colorSet.block.default.HARDWAR,
642outerLine: EntryStatic.colorSet.block.darken.HARDWAR
643}, {
644params: [
645{
646type: 'Block',
647accept: 'string'
648},
649{
650type: 'Indicator',
651img: 'block_icon/hardware_icon.svg',
652size: 11,
653}
654],
655def: [
656{
657type: 'text',
658params: [`엔트리`]
659},
660null
661],
662map: {
663CONTENT: 0
664}
665}, 'text', (sprite, script) => {
666Entry.console.print(script.getValue('CONTENT', script))
667return script.callReturn()
668})
669////////////////////
670
671////////////////////
672addBlock('entry_console_clear', '엔트리 콘솔 모두 지우기%1', {
673color: EntryStatic.colorSet.block.default.HARDWAR,
674outerLine: EntryStatic.colorSet.block.darken.HARDWAR
675}, {
676params: [
677{
678type: 'Indicator',
679img: 'block_icon/hardware_icon.svg',
680size: 11,
681}
682],
683def: [
684null
685],
686map: {}
687}, 'text', (sprite, script) => {
688Entry.console.clear()
689return script.callReturn()
690})
691////////////////////
692
693////////////////////
694addBlock('get_browser', '컴퓨터이름(브라우저이름)', {
695color: EntryStatic.colorSet.block.default.HARDWAR,
696outerLine: EntryStatic.colorSet.block.darken.HARDWAR
697}, {
698params: [],
699def: [],
700map: {}
701}, 'text', (sprite, script) => {
702return Entry.userAgent
703}, 'basic_string_field')
704////////////////////
705
706////////////////////
707addBlock('change_var', '%1 값을 %2 으로 변경%3', {
708color: EntryStatic.colorSet.block.default.HARDWAR,
709outerLine: EntryStatic.colorSet.block.darken.HARDWAR
710}, {
711params: [
712{
713type: 'Block',
714accept: 'string'
715},
716{
717type: 'Block',
718accept: 'string'
719},
720{
721type: 'Indicator',
722img: 'block_icon/hardware_icon.svg',
723size: 11,
724}
725],
726def: [
727{
728type: 'text',
729params: [`user.username`]
730},
731{
732type: 'text',
733params: ['entry']
734},
735null
736],
737map: {
738VARNAME: 0,
739VALUE: 1
740}
741}, 'text', (sprite, script) => {
742eval(`${script.getValue('VARNAME', script)} = '${script.getValue('VALUE', script)}'`)
743return script.callReturn()
744});
745
746addBlock('entry_console_writing', '%1 를 엔트리 콘솔에 입력하기', {
747color: EntryStatic.colorSet.block.default.HARDWAR,
748outerLine: EntryStatic.colorSet.block.darken.HARDWAR
749}, {
750params: [
751{
752type: 'Block',
753accept: 'string'
754}
755],
756def: [
757{
758type: "text",
759params: ['예시로, 제비,라이브 엔트리 자동설치!']
760}
761],
762_class: 'box_',
763map: {
764VALUE: 0
765},
766}, 'text', (sprite, script) => {
767const value = script.getValue('VALUE', script);
768eval(value)
769})
770addBlock('finish', '오류 발생시켜서 정지시키기%1', {
771color: EntryStatic.colorSet.block.default.HARDWAR,
772outerLine: EntryStatic.colorSet.block.darken.HARDWAR
773}, {
774params: [
775{
776type: 'Indicator',
777img: 'block_icon/hardware_icon.svg',
778size: 11,
779}
780],
781def: [
782null
783],
784map: {}
785}, 'text', (sprite, script) => {
786finish()
787return script.callReturn()
788})
789///////////////0.5///
790
791////////////////////
792addBlock('likeList', '이 작품 좋아요 목록%3', {
793color: EntryStatic.colorSet.block.default.HARDWAR,
794outerLine: EntryStatic.colorSet.block.darken.HARDWAR
795}, {
796params: [
797{
798type: 'Block',
799accept: 'string'
800},
801{
802type: 'Block',
803accept: 'string'
804},
805{
806type: 'Indicator',
807img: 'block_icon/hardware_icon.svg',
808size: 11,
809}
810],
811def: [
812{
813type: 'text',
814params: [`user.username`]
815},
816{
817type: 'text',
818params: ['entry']
819},
820null
821],
822map: {
823VARNAME: 0,
824VALUE: 1
825}
826}, 'text', async (sprite, script) => {
827let res = await fetch(`https://playentry.org/api/project/likes/${Entry.projectId}?noCache=1587602931964&rows=99999999&targetSubject=project&targetType=individual`)
828let data = await res.json()
829return data
830}, 'basic_string_field'); ///////////0.5
831////////////////
832addBlock('boost_mode', '부스트모드가 켜져있는가? ', {
833color: EntryStatic.colorSet.block.default.HARDWAR,
834outerLine: EntryStatic.colorSet.block.darken.HARDWAR
835}, {
836params: [
837],
838def: [],
839map: {}
840}, 'text', (sprite, script) => {
841if (useWebGL == true) {
842return true;
843} else {
844return false;
845}
846}, 'basic_boolean_field') ////////////0.5
847////////////////
848addBlock('mouse', '마우스 우클릭을 했는가? ', {
849color: EntryStatic.colorSet.block.default.HARDWAR,
850outerLine: EntryStatic.colorSet.block.darken.HARDWAR
851}, {
852params: [
853],
854def: [],
855map: {}
856}, 'text', (sprite, script) => {
857$("html").on("mousedown",function(e){
858var E=e.originalEvent
859if(E.button){
860return true;
861}else{
862return false;
863}
864})
865}, 'basic_boolean_field') ///////////////////////////////////////////////0.6!!!//////////////////
866addBlock('didScroll', '스크롤을 하였는가? ', {
867}, {
868params: [
869],
870def: [],
871map: {},
872class: 'scroll'
873}, 'text', (sprite, script) => {
874var didScroll;
875$(window).scroll(function(event){
876didScroll = true;
877});
878setInterval(function() {
879if (didScroll) {
880hasScrolled();
881didScroll = false;
882}
883}, 250);
884function hasScrolled() {
885return true;
886}
887}, 'basic_boolean_field')
888
889//////////////////////////////////////////////////////////////////
890addBlock('scrollHandle', '스크롤 방향(위,아래)', {
891}, {
892params: [],
893def: [],
894map: {},
895class: 'day'
896}, 'text', (sprite, script) => {
897if (window.addEventListener)
898window.addEventListener('DOMMouseScroll', wheel, false);
899window.onmousewheel = document.onmousewheel = wheel;
900
901function handle(delta) {
902var s = delta + ": ";
903if (delta < 0) {
904return('아래');
905}
906else {
907return('위');
908}
909}
910
911
912function wheel(event){
913var delta = 0;
914if (!event) event = window.event;
915if (event.wheelDelta) {
916delta = event.wheelDelta/120;
917if (window.opera) delta = -delta;
918} else if (event.detail) delta = -event.detail/3;
919if (delta) handle(delta);
920}
921
922}, 'basic_string_field');
923///////////////////////////////
924//////////////////////////////
925addBlock('alert', '%1제목의 alert(경고창) 띄우기 ', {
926}, {
927params: [
928{
929type: 'Block',
930accept: 'string'
931},
932{
933type: 'Indicator',
934size: 11,
935}
936],
937def: [
938{
939type: "text",
940params: ['스페셜블럭~']
941},
942],
943_class: 'box_',
944map: {
945VALUE: 0
946},
947}, 'text', (sprite, script) => {
948const value = script.getValue('VALUE', script);
949alert(value);
950})
951///////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////
952
953addBlock('stop_button(click)_start', '%1정지하기 버튼을 클릭했을 때%2', {
954color: EntryStatic.colorSet.block.default.HARDWAR,
955outerLine: EntryStatic.colorSet.block.darken.HARDWAR
956}, {
957params: [
958{
959type: 'Indicator',
960img: 'block_icon/start_icon_play.svg',
961size: 14,
962position: {
963x: 0,
964y: -2,
965},
966},
967{
968type: 'Indicator',
969size: 11,
970}
971],
972def: [null, null],
973class: 'when_stop_button_click'
974}, 'text', (sprite, script) => {
975Entry.events_.stop.push(function(){
976});
977}, 'basic_event')
978
979////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
980addBlock('open_win', '%1창열기(기타블럭참고안한블럭)', {
981color: EntryStatic.colorSet.block.default.HARDWAR,
982outerLine: EntryStatic.colorSet.block.darken.HARDWAR
983}, {
984params: [
985{
986type: 'Block',
987accept: 'string'
988}
989],
990def: [
991{
992type: "text",
993params: ['https://playentry.org/ws#!/']
994}
995],
996_class: 'box_',
997map: {
998VALUE: 0
999},
1000}, 'text', (sprite, script) => { const value = script.getValue('VALUE', script);
1001if (confirm("이 작품이 이창을열려고합니다..\n허용하시겠습니까?\n\n코드 내용: "+value) == true) {
1002open(value)
1003} else {
1004alert("작업이 취소되었습니다.")
1005}
1006})
1007////////////////////
1008addBlock('pc', '컴퓨터인가? ', {
1009color: EntryStatic.colorSet.block.default.HARDWAR,
1010outerLine: EntryStatic.colorSet.block.darken.HARDWAR
1011}, {
1012params: [
1013],
1014def: [],
1015map: {}
1016}, 'text', (sprite, script) => {
1017var filter = "win16|win32|win64|mac|macintel";
1018if ( navigator.platform ) {
1019if ( filter.indexOf( navigator.platform.toLowerCase() ) < 0 ) {
1020return false;
1021} else {
1022return true;
1023}
1024} }, 'basic_boolean_field') //////////////////////////////////////////////////////////////////////
1025addBlock('PromptConfirm', '%1제목의 %2 띄우기 ', {
1026color: EntryStatic.colorSet.block.default.EX,
1027outerLine: EntryStatic.colorSet.block.darken.EX
1028}, {
1029params: [
1030{
1031type: "Block",
1032accept: "string"
1033},
1034{
1035type: "Dropdown",
1036options: [
1037['confirm(선택창)', '1'],
1038['prompt(입력창)', '2']
1039],
1040fontSize: 11,
1041value: 'confirm(선택창)'
1042},
1043],
1044def: [
1045{
1046type: 'text',
1047params: [`스페셜블럭`]
1048},
1049null
1050],
1051_class: 'box_',
1052map: {
1053LEFTHAND: 0,
1054RIGHTHAND: 1
1055},
1056}, 'text', (sprite, script) => {
1057const leftValue = script.getValue('LEFTHAND', script);
1058const rightValue = script.getField('RIGHTHAND', script);
1059
1060if (rightValue == '1') {
1061let choose = confirm(leftValue);
1062return choose;
1063} else if (rightValue == '2') {
1064let enter = prompt(leftValue);
1065return enter;
1066}
1067}) ////////////////0.5////
1068
1069////////////////////
1070addBlock('user.username', '사용자이름값을%1으로바꾸기', {
1071color: EntryStatic.colorSet.block.default.HARDWAR,
1072outerLine: EntryStatic.colorSet.block.darken.HARDWAR
1073}, {
1074params: [
1075{
1076type: 'Block',
1077accept: 'string'
1078}
1079],
1080def: [
1081{
1082type: "text",
1083params: ['john0817']
1084}
1085],
1086_class: 'box_',
1087map: {
1088VALUE: 0
1089},
1090}, 'text', (sprite, script) => { const value = script.getValue('VALUE', script);
1091user.username=value
1092return script.callReturn()
1093}) ////////////////0.5////
1094
1095////////////////////
1096addBlock('change(X)', 'X좌표를%1으로바꾸기', {
1097color: EntryStatic.colorSet.block.default.HARDWAR,
1098outerLine: EntryStatic.colorSet.block.darken.HARDWAR
1099}, {
1100params: [
1101{
1102type: 'Block',
1103accept: 'string'
1104}
1105],
1106def: [
1107{
1108type: "text",
1109params: ['10']
1110}
1111],
1112_class: 'box_',
1113map: {
1114VALUE: 0
1115},
1116}, 'text', (sprite, script) => { const value = script.getValue('VALUE', script);
1117X:value;
1118return script.callReturn()
1119}) ////////////////에이션블럭참고안한블럭////
1120
1121////////////////////
1122addBlock('mypage', '%1유저의 마이페이지열기', {
1123color: EntryStatic.colorSet.block.default.HARDWAR,
1124outerLine: EntryStatic.colorSet.block.darken.HARDWAR
1125}, {
1126params: [
1127{
1128type: 'Block',
1129accept: 'string'
1130}
1131],
1132def: [
1133{
1134type: "text",
1135params: ['john0817']
1136}
1137],
1138_class: 'box_',
1139map: {
1140VALUE: 0
1141},
1142}, 'text', (sprite, script) => { const value = script.getValue('VALUE', script);
1143open(value)
1144return script.callReturn()
1145}) ////////////////////
1146
1147////////////////////
1148addBlock('change', '변수%1을%2로바꾸기', {
1149color: EntryStatic.colorSet.block.default.HARDWAR,
1150outerLine: EntryStatic.colorSet.block.darken.HARDWAR
1151}, {
1152params: [
1153{
1154type: 'Block',
1155accept: 'string'
1156},
1157{
1158type: 'Block',
1159accept: 'string'
1160},
1161{
1162type: 'Indicator',
1163img: 'block_icon/hardware_icon.svg',
1164size: 11,
1165}
1166],
1167def: [
1168{
1169type: 'text',
1170params: [`변수 이름을 입력해주세요(없는 변수입력시오류남)`]
1171},
1172{
1173type: 'text',
1174params: [`바꾸고 싶은 변수 내용을 입력해주세요`]
1175},
1176null
1177],
1178map: {
1179TITLE: 0,
1180CONTENT: 1
1181}
1182}, 'text', (sprite, script) => {
1183Entry.variableContainer.getVariableByName(sprite).value_=script
1184return script.callReturn()
1185})
1186////////////////////
1187// 블록 추가 끝
1188
1189
1190Entry.staticBlocks.push({
1191category: 'API', blocks: [
1192'fetch',
1193'array_number',
1194'array_length',
1195'json_key',
1196'json_length',
1197'post_commu',
1198'post_qna',
1199'get_browser',
1200'toast',
1201'console',
1202'console_clear',
1203'entry_console',
1204'entry_console_clear',
1205'change_var', 'entry_console_writing', 'finish',
1206'likeList', 'boost_mode', 'mouse','didScroll','scrollHandle','box','stop_button(click)_start','open_win','pc','PromptConfirm','user.username','change(X)','mypage'
1207]
1208});
1209
1210
1211updateCategory('API')
1212
1213$('head').append(`
1214<style>
1215#entryCategoryAPI {
1216background-image: url(/lib/entry-js/images/hardware.svg);
1217background-repeat: no-repeat;
1218border-bottom-right-radius: 6px;
1219border-bottom-left-radius: 6px;
1220margin-bottom: 1px;
1221}
1222.entrySelectedCategory#entryCategoryAPI {
1223background-image: url(/lib/entry-js/images/hardware_on.svg);
1224background-color: #000;
1225border-color: #000;
1226color: #ffff;
1227}
1228</style>
1229`)
1230