22class ScriptBuilderPrivate;
33 void addBlock(std::shared_ptr<Block> block);
34 void addBlock(
const std::string &opcode);
40 void addObscuredInput(
const std::string &name, std::shared_ptr<Block> valueBlock);
43 void addDropdownInput(
const std::string &name,
const std::string &selectedValue);
44 void addDropdownField(
const std::string &name,
const std::string &selectedValue);
47 void addEntityField(
const std::string &name, std::shared_ptr<Entity> entity);
57 static void buildMultiple(
const std::vector<ScriptBuilder *> &builders);
60 void addBlockToList(std::shared_ptr<Block> block);
61 void build(std::shared_ptr<Target> target);
64 static void addBlocksToTarget(
Target *target,
const std::vector<std::shared_ptr<Block>> &blocks);
65 static void addTargetToEngine(
IEngine *engine, std::shared_ptr<Target> target);
67 spimpl::unique_impl_ptr<ScriptBuilderPrivate> impl;
The Block class represents a Scratch block.
Definition block.h:24
The IEngine interface provides an API for running Scratch projects.
Definition iengine.h:41
The IExtension class is an interface for extensions.
Definition iextension.h:18
The List class represents a Scratch list.
Definition list.h:27
The Target class is the Stage or a Sprite.
Definition target.h:28
The Value class represents a Scratch value.
Definition value.h:22
void run()
Definition scriptbuilder.cpp:278
void addNullObscuredInput(const std::string &name)
Definition scriptbuilder.cpp:135
ScriptBuilder(const ScriptBuilder &)=delete
void addEntityInput(const std::string &name, const std::string &entityName, InputValue::Type entityType, std::shared_ptr< Entity > entity)
Definition scriptbuilder.cpp:177
void captureBlockReturnValue()
Definition scriptbuilder.cpp:73
Block * currentBlock()
Definition scriptbuilder.cpp:226
void addNullInput(const std::string &name)
Definition scriptbuilder.cpp:95
void build()
Definition scriptbuilder.cpp:272
List * capturedValues() const
Definition scriptbuilder.cpp:288
void addBlock(std::shared_ptr< Block > block)
Definition scriptbuilder.cpp:59
std::shared_ptr< Block > takeBlock()
Definition scriptbuilder.cpp:253
void addValueInput(const std::string &name, const Value &value)
Definition scriptbuilder.cpp:84
void addDropdownInput(const std::string &name, const std::string &selectedValue)
Definition scriptbuilder.cpp:149
ScriptBuilder(IExtension *extension, IEngine *engine, std::shared_ptr< Target > target, bool createHatBlock=true)
Definition scriptbuilder.cpp:27
void addObscuredInput(const std::string &name, std::shared_ptr< Block > valueBlock)
Definition scriptbuilder.cpp:105
static void buildMultiple(const std::vector< ScriptBuilder * > &builders)
Definition scriptbuilder.cpp:298
void addEntityField(const std::string &name, std::shared_ptr< Entity > entity)
Definition scriptbuilder.cpp:195
void addDropdownField(const std::string &name, const std::string &selectedValue)
Definition scriptbuilder.cpp:167
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
Definition scriptbuilder.h:20
The main namespace of the library.
Definition asset.h:10