@@ -31,6 +31,7 @@ void SensingBlocks::registerBlocks(IEngine *engine)
3131{
3232 // Blocks
3333 engine->addCompileFunction (this , " sensing_touchingobject" , &compileTouchingObject);
34+ engine->addCompileFunction (this , " sensing_touchingcolor" , &compileTouchingColor);
3435 engine->addCompileFunction (this , " sensing_distanceto" , &compileDistanceTo);
3536 engine->addCompileFunction (this , " sensing_askandwait" , &compileAskAndWait);
3637 engine->addCompileFunction (this , " sensing_answer" , &compileAnswer);
@@ -58,6 +59,7 @@ void SensingBlocks::registerBlocks(IEngine *engine)
5859
5960 // Inputs
6061 engine->addInput (this , " TOUCHINGOBJECTMENU" , TOUCHINGOBJECTMENU);
62+ engine->addInput (this , " COLOR" , COLOR);
6163 engine->addInput (this , " DISTANCETOMENU" , DISTANCETOMENU);
6264 engine->addInput (this , " QUESTION" , QUESTION);
6365 engine->addInput (this , " KEY_OPTION" , KEY_OPTION);
@@ -116,6 +118,12 @@ void SensingBlocks::compileTouchingObject(Compiler *compiler)
116118 }
117119}
118120
121+ void SensingBlocks::compileTouchingColor (Compiler *compiler)
122+ {
123+ compiler->addInput (COLOR);
124+ compiler->addFunctionCall (&touchingColor);
125+ }
126+
119127void SensingBlocks::compileDistanceTo (Compiler *compiler)
120128{
121129 Input *input = compiler->input (DISTANCETOMENU);
@@ -495,6 +503,12 @@ unsigned int SensingBlocks::touchingEdge(VirtualMachine *vm)
495503 return 0 ;
496504}
497505
506+ unsigned int SensingBlocks::touchingColor (VirtualMachine *vm)
507+ {
508+ vm->replaceReturnValue (vm->target ()->touchingColor (*vm->getInput (0 , 1 )), 1 );
509+ return 0 ;
510+ }
511+
498512unsigned int SensingBlocks::keyPressed (VirtualMachine *vm)
499513{
500514 vm->replaceReturnValue (vm->engine ()->keyPressed (vm->getInput (0 , 1 )->toString ()), 1 );
0 commit comments