@@ -82,11 +82,11 @@ Blockly.Blocks['led_toggle'] = {
8282} ;
8383
8484Blockly . Blocks [ 'led_intensity' ] = {
85- init : function ( ) {
85+ init : function ( ) {
8686 this . appendValueInput ( "intensity_" )
87- . setCheck ( "Number" )
88- . appendField ( new Blockly . FieldVariable ( "led" ) , "led_" )
89- . appendField ( Blockly . Msg . WEBDUINO_LED_INTENSITY , "強度 (0-1):" ) ;
87+ . setCheck ( "Number" )
88+ . appendField ( new Blockly . FieldVariable ( "led" ) , "led_" )
89+ . appendField ( Blockly . Msg . WEBDUINO_LED_INTENSITY , "強度 (0-1):" ) ;
9090 this . setPreviousStatement ( true ) ;
9191 this . setNextStatement ( true ) ;
9292 this . setTooltip ( '' ) ;
@@ -636,14 +636,14 @@ Blockly.Blocks['buzzer_play'] = {
636636Blockly . Blocks [ 'buzzer_event' ] = {
637637 init : function ( ) {
638638 this . appendDummyInput ( )
639- . appendField ( Blockly . Msg . WEBDUINO_BUZZER_LET , "讓" )
639+ . appendField ( Blockly . Msg . WEBDUINO_BUZZER_LET , "讓" )
640640 . appendField ( new Blockly . FieldVariable ( "buzzer" ) , "var_" )
641641 . appendField ( new Blockly . FieldDropdown ( [
642642 [ Blockly . Msg . WEBDUINO_BUZZER_EVENT_STOP , ".stop()" ] ,
643643 [ Blockly . Msg . WEBDUINO_BUZZER_EVENT_PAUSE , ".pause()" ] ,
644644 [ Blockly . Msg . WEBDUINO_BUZZER_EVENT_RESUMEPLAY , ".play()" ]
645645 ] ) , "event_" )
646- . appendField ( Blockly . Msg . WEBDUINO_BUZZER_EVENT_PLAY , "播放" ) ;
646+ . appendField ( Blockly . Msg . WEBDUINO_BUZZER_EVENT_PLAY , "播放" ) ;
647647 this . setPreviousStatement ( true ) ;
648648 this . setNextStatement ( true ) ;
649649 this . setTooltip ( '' ) ;
@@ -656,13 +656,13 @@ Blockly.Blocks['buzzer_event'] = {
656656Blockly . Blocks [ 'buzzer_state' ] = {
657657 init : function ( ) {
658658 this . appendDummyInput ( )
659- . appendField ( Blockly . Msg . WEBDUINO_BUZZER_CHECK , "判斷" )
659+ . appendField ( Blockly . Msg . WEBDUINO_BUZZER_CHECK , "判斷" )
660660 . appendField ( new Blockly . FieldVariable ( "buzzer" ) , "var_" )
661- . appendField ( Blockly . Msg . WEBDUINO_BUZZER_STATE , "的狀態為:" )
661+ . appendField ( Blockly . Msg . WEBDUINO_BUZZER_STATE , "的狀態為:" )
662662 . appendField ( new Blockly . FieldDropdown ( [
663- [ Blockly . Msg . WEBDUINO_BUZZER_STATE_STOP , "stopped" ] ,
664- [ Blockly . Msg . WEBDUINO_BUZZER_STATE_PAUSE , "paused" ] ,
665- [ Blockly . Msg . WEBDUINO_BUZZER_STATE_PLAYING , "playing" ]
663+ [ Blockly . Msg . WEBDUINO_BUZZER_STATE_STOP , "stopped" ] ,
664+ [ Blockly . Msg . WEBDUINO_BUZZER_STATE_PAUSE , "paused" ] ,
665+ [ Blockly . Msg . WEBDUINO_BUZZER_STATE_PLAYING , "playing" ]
666666 ] ) , "state_" ) ;
667667 this . setOutput ( true ) ;
668668 this . setTooltip ( '' ) ;
@@ -794,3 +794,78 @@ Blockly.Blocks['servo_angle_set'] = {
794794 this . setHelpUrl ( 'http://www.example.com/' ) ;
795795 }
796796} ;
797+
798+ // https://blockly-demo.appspot.com/static/demos/blockfactory/index.html#qyqz9n
799+ Blockly . Blocks [ 'data_firebase' ] = {
800+ init : function ( ) {
801+ this . appendValueInput ( "name_" )
802+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_NAME , "< Firebase > 名稱:" ) ;
803+ this . appendDummyInput ( )
804+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_URL , "網址:" )
805+ . appendField ( new Blockly . FieldTextInput ( "https://<YOUR-FIREBASE-APP>.firebaseio.com" ) , "url_" ) ;
806+ this . appendStatementInput ( "do_" )
807+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_DO , "執行:" ) ;
808+ this . setPreviousStatement ( true ) ;
809+ this . setNextStatement ( true ) ;
810+ this . setTooltip ( '' ) ;
811+ this . setColour ( 200 ) ;
812+ this . setHelpUrl ( 'http://www.example.com/' ) ;
813+ }
814+ } ;
815+
816+ Blockly . Blocks [ 'data_firebase_write' ] = {
817+ init : function ( ) {
818+ this . appendStatementInput ( "write_" )
819+ . appendField ( new Blockly . FieldVariable ( "myFirebase" ) , "var_" )
820+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_WRITE , "寫入" ) ;
821+ this . setPreviousStatement ( true ) ;
822+ this . setNextStatement ( true ) ;
823+ this . setTooltip ( '' ) ;
824+ this . setColour ( 160 ) ;
825+ this . setHelpUrl ( 'http://www.example.com/' ) ;
826+ }
827+ } ;
828+
829+ Blockly . Blocks [ 'data_firebase_data' ] = {
830+ init : function ( ) {
831+ this . appendValueInput ( "data_" )
832+ . appendField ( new Blockly . FieldTextInput ( "..." ) , "attr_" )
833+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_IS , "為" ) ;
834+ this . setPreviousStatement ( true ) ;
835+ this . setNextStatement ( true ) ;
836+ this . setTooltip ( '' ) ;
837+ this . setColour ( 100 ) ;
838+ this . setHelpUrl ( 'http://www.example.com/' ) ;
839+ }
840+ } ;
841+
842+ Blockly . Blocks [ 'data_firebase_read' ] = {
843+ init : function ( ) {
844+ this . appendValueInput ( "read_" )
845+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_READ , "取出" )
846+ . appendField ( new Blockly . FieldVariable ( "myFirebase" ) , "name_" )
847+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_ATTR , "的屬性" )
848+ . appendField ( new Blockly . FieldTextInput ( "..." ) , "attr_" )
849+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_TO , "到" ) ;
850+ this . appendStatementInput ( "do_" )
851+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_DO , "執行" ) ;
852+ this . setPreviousStatement ( true ) ;
853+ this . setNextStatement ( true ) ;
854+ this . setTooltip ( '' ) ;
855+ this . setColour ( 160 ) ;
856+ this . setHelpUrl ( 'http://www.example.com/' ) ;
857+ }
858+ } ;
859+
860+ Blockly . Blocks [ 'data_firebase_clear' ] = {
861+ init : function ( ) {
862+ this . appendDummyInput ( )
863+ . appendField ( Blockly . Msg . WEBDUINO_FIREBASE_CLEAR , "清空資料庫" )
864+ . appendField ( new Blockly . FieldVariable ( "myFirebase" ) , "name_" ) ;
865+ this . setPreviousStatement ( true ) ;
866+ this . setNextStatement ( true ) ;
867+ this . setTooltip ( '' ) ;
868+ this . setColour ( 160 ) ;
869+ this . setHelpUrl ( 'http://www.example.com/' ) ;
870+ }
871+ } ;
0 commit comments