@@ -14,12 +14,11 @@ const spriteCall = function (name) {
14
14
return `sprite("${ name . toString ( ) } ")` ;
15
15
} ;
16
16
const SpriteCallRe = / ^ s p r i t e \( " ( .* ) " \) $ / ;
17
- const getSpriteName = function ( block ) {
18
- if ( ! this . _isBlock ( block ) || block . opcode !== 'ruby_expression' ) {
19
- return null ;
17
+ const getSpriteName = function ( code ) {
18
+ if ( code !== null ) {
19
+ return SpriteCallRe . exec ( code ) [ 1 ] ;
20
20
}
21
- const textBlock = this . _context . blocks [ block . inputs . EXPRESSION . block ] ;
22
- return SpriteCallRe . exec ( textBlock . fields . TEXT . value ) [ 1 ] ;
21
+ return null ;
23
22
} ;
24
23
25
24
const Stage = 'stage' ;
@@ -242,7 +241,7 @@ const SensingConverter = {
242
241
break ;
243
242
}
244
243
if ( property ) {
245
- const spriteName = getSpriteName . call ( this , receiver ) ;
244
+ const spriteName = getSpriteName ( this . _getRubyExpression ( receiver ) ) ;
246
245
247
246
block = this . _changeBlock ( receiver , 'sensing_of' , 'value' ) ;
248
247
delete this . _context . blocks [ receiver . inputs . EXPRESSION . block ] ;
@@ -252,7 +251,7 @@ const SensingConverter = {
252
251
this . _addFieldInput ( block , 'OBJECT' , 'sensing_of_object_menu' , 'OBJECT' , spriteName ) ;
253
252
}
254
253
} else if ( args . length === 1 && name === 'variable' && this . _isString ( args [ 0 ] ) ) {
255
- const spriteName = getSpriteName . call ( this , receiver ) ;
254
+ const spriteName = getSpriteName ( this . _getRubyExpression ( receiver ) ) ;
256
255
257
256
block = this . _changeBlock ( receiver , 'sensing_of' , 'value' ) ;
258
257
delete this . _context . blocks [ receiver . inputs . EXPRESSION . block ] ;
0 commit comments