aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/ScriptSystem.h
diff options
context:
space:
mode:
authorheavydemon21 <nielsstunnebrink1@gmail.com>2024-11-18 14:08:36 +0100
committerheavydemon21 <nielsstunnebrink1@gmail.com>2024-11-18 14:08:36 +0100
commit20fc8401083e23e414feae2a9a4d217b228b8f15 (patch)
tree08c9e9c4ddcde5438eb54f6b051895c0896f935b /src/crepe/system/ScriptSystem.h
parent60669b60e63532bc264ecd6d106bd15f0688a5b6 (diff)
parent121b64b1cb6cfead5814070c8b0185d3d7308095 (diff)
Merge remote-tracking branch 'origin/master' into niels/rendering_color
Diffstat (limited to 'src/crepe/system/ScriptSystem.h')
-rw-r--r--src/crepe/system/ScriptSystem.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/crepe/system/ScriptSystem.h b/src/crepe/system/ScriptSystem.h
index 4fa6141..deb89cb 100644
--- a/src/crepe/system/ScriptSystem.h
+++ b/src/crepe/system/ScriptSystem.h
@@ -8,13 +8,32 @@ namespace crepe {
class Script;
+/**
+ * \brief Script system
+ *
+ * The script system is responsible for all \c BehaviorScript components, and
+ * calls the methods on classes derived from \c Script.
+ */
class ScriptSystem : public System {
public:
- void update();
+ using System::System;
+ /**
+ * \brief Call Script::update() on all active \c BehaviorScript instances
+ *
+ * This routine updates all scripts sequentially using the Script::update()
+ * method. It also calls Script::init() if this has not been done before on
+ * the \c BehaviorScript instance.
+ */
+ void update() override;
private:
- // TODO: to forward_list<reference_wrapper>
- std::forward_list<Script *> get_scripts();
+ /**
+ * \brief Aggregate all active \c BehaviorScript components and return a list
+ * of references to their \c Script instances (utility)
+ *
+ * \returns List of active \c Script instances
+ */
+ std::forward_list<std::reference_wrapper<Script>> get_scripts() const;
};
} // namespace crepe