@@ -51,6 +51,7 @@ void LooksBlocks::registerBlocks(IEngine *engine)
5151 engine->addCompileFunction (this , " looks_seteffectto" , &compileSetEffectTo);
5252 engine->addCompileFunction (this , " looks_cleargraphiceffects" , &compileClearGraphicEffects);
5353 engine->addCompileFunction (this , " looks_changesizeby" , &compileChangeSizeBy);
54+ engine->addCompileFunction (this , " looks_setsizeto" , &compileSetSizeTo);
5455}
5556
5657void LooksBlocks::onInit (IEngine *engine)
@@ -216,6 +217,16 @@ CompilerValue *LooksBlocks::compileChangeSizeBy(Compiler *compiler)
216217 return nullptr ;
217218}
218219
220+ CompilerValue *LooksBlocks::compileSetSizeTo (Compiler *compiler)
221+ {
222+ if (compiler->target ()->isStage ())
223+ return nullptr ;
224+
225+ auto size = compiler->addInput (" SIZE" );
226+ compiler->addTargetFunctionCall (" looks_setsizeto" , Compiler::StaticType::Void, { Compiler::StaticType::Number }, { size });
227+ return nullptr ;
228+ }
229+
219230extern " C" void looks_start_stack_timer (ExecutionContext *ctx, double duration)
220231{
221232 ctx->stackTimer ()->start (duration);
@@ -290,3 +301,8 @@ extern "C" void looks_changesizeby(Sprite *sprite, double change)
290301{
291302 sprite->setSize (sprite->size () + change);
292303}
304+
305+ extern " C" void looks_setsizeto (Sprite *sprite, double size)
306+ {
307+ sprite->setSize (size);
308+ }
0 commit comments