From 3a23e41255af0de3c5c7f5d9df981c8b205e291f Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 13 Dec 2024 17:42:34 +0100 Subject: add timer functionality to script --- src/crepe/api/Script.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/crepe/api/Script.h') diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h index 668e5d1..3569b4a 100644 --- a/src/crepe/api/Script.h +++ b/src/crepe/api/Script.h @@ -2,6 +2,7 @@ #include +#include "../manager/LoopTimerManager.h" #include "../manager/EventManager.h" #include "../manager/Mediator.h" #include "../system/CollisionSystem.h" @@ -46,9 +47,17 @@ protected: /** * \brief Script update function (empty by default) * + * \param delta_time Time since last fixed update + * * This function is called during the ScriptSystem::update() routine if the \c BehaviorScript * component holding this script instance is active. */ + virtual void update(duration_t delta_time) { return this->update(); } + /** + * \brief Fallback script update function (empty by default) + * + * Allows the game programmer to ignore parameters passed to \c update() + */ virtual void update() {} //! \} @@ -135,6 +144,9 @@ protected: //! Retrieve SaveManager reference SaveManager & get_save_manager() const; + //! Retrieve LoopTimerManager reference + LoopTimerManager & get_loop_timer() const; + //! \} private: -- cgit v1.2.3 From ae80ecde90ea6ab3305deed899bbec1560b93a6f Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 13 Dec 2024 18:05:56 +0100 Subject: `make format` --- src/crepe/api/Script.h | 2 +- src/test/ScriptTest.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src/crepe/api/Script.h') diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h index 3569b4a..1429108 100644 --- a/src/crepe/api/Script.h +++ b/src/crepe/api/Script.h @@ -2,8 +2,8 @@ #include -#include "../manager/LoopTimerManager.h" #include "../manager/EventManager.h" +#include "../manager/LoopTimerManager.h" #include "../manager/Mediator.h" #include "../system/CollisionSystem.h" #include "../types.h" diff --git a/src/test/ScriptTest.cpp b/src/test/ScriptTest.cpp index 2aee0fd..499be5a 100644 --- a/src/test/ScriptTest.cpp +++ b/src/test/ScriptTest.cpp @@ -85,4 +85,3 @@ TEST_F(ScriptTest, LoopTimerManager) { EXPECT_EQ(&script.get_loop_timer(), &this->loop_timer); } - -- cgit v1.2.3 From 1d182abe4278b6bf4410cb25a9ae41f501833990 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 18 Dec 2024 13:31:06 +0100 Subject: process feedback --- src/crepe/api/Script.h | 8 +------- src/example/game.cpp | 2 +- src/test/ScriptTest.cpp | 10 +++++----- src/test/ScriptTest.h | 2 +- 4 files changed, 8 insertions(+), 14 deletions(-) (limited to 'src/crepe/api/Script.h') diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h index 0ec3476..a87af4e 100644 --- a/src/crepe/api/Script.h +++ b/src/crepe/api/Script.h @@ -53,13 +53,7 @@ protected: * This function is called during the ScriptSystem::update() routine if the \c BehaviorScript * component holding this script instance is active. */ - virtual void update(duration_t delta_time) { return this->update(); } - /** - * \brief Fallback script update function (empty by default) - * - * Allows the game programmer to ignore parameters passed to \c update() - */ - virtual void update() {} + virtual void update(duration_t delta_time) {} //! \} //! ScriptSystem calls \c init() and \c update() diff --git a/src/example/game.cpp b/src/example/game.cpp index 22effd2..3975650 100644 --- a/src/example/game.cpp +++ b/src/example/game.cpp @@ -86,7 +86,7 @@ class MyScript1 : public Script { subscribe( [this](const KeyPressEvent & ev) -> bool { return this->keypressed(ev); }); } - void update() { + void update(duration_t) { Rigidbody & tf = this->get_component(); Log::logf("linear_velocity.x {}", tf.data.linear_velocity.x); Log::logf("linear_velocity.y {}", tf.data.linear_velocity.y); diff --git a/src/test/ScriptTest.cpp b/src/test/ScriptTest.cpp index 499be5a..846e398 100644 --- a/src/test/ScriptTest.cpp +++ b/src/test/ScriptTest.cpp @@ -28,7 +28,7 @@ void ScriptTest::SetUp() { TEST_F(ScriptTest, Default) { MyScript & script = this->script; EXPECT_CALL(script, init()).Times(0); - EXPECT_CALL(script, update()).Times(0); + EXPECT_CALL(script, update(_)).Times(0); } TEST_F(ScriptTest, UpdateOnce) { @@ -38,7 +38,7 @@ TEST_F(ScriptTest, UpdateOnce) { InSequence seq; EXPECT_CALL(script, init()).Times(1); - EXPECT_CALL(script, update()).Times(1); + EXPECT_CALL(script, update(_)).Times(1); system.update(); } @@ -46,7 +46,7 @@ TEST_F(ScriptTest, UpdateOnce) { InSequence seq; EXPECT_CALL(script, init()).Times(0); - EXPECT_CALL(script, update()).Times(1); + EXPECT_CALL(script, update(_)).Times(1); system.update(); } } @@ -59,7 +59,7 @@ TEST_F(ScriptTest, UpdateInactive) { InSequence seq; EXPECT_CALL(script, init()).Times(0); - EXPECT_CALL(script, update()).Times(0); + EXPECT_CALL(script, update(_)).Times(0); behaviorscript.active = false; system.update(); } @@ -68,7 +68,7 @@ TEST_F(ScriptTest, UpdateInactive) { InSequence seq; EXPECT_CALL(script, init()).Times(1); - EXPECT_CALL(script, update()).Times(1); + EXPECT_CALL(script, update(_)).Times(1); behaviorscript.active = true; system.update(); } diff --git a/src/test/ScriptTest.h b/src/test/ScriptTest.h index 537169d..f3dbda4 100644 --- a/src/test/ScriptTest.h +++ b/src/test/ScriptTest.h @@ -29,7 +29,7 @@ public: public: MOCK_METHOD(void, init, (), (override)); - MOCK_METHOD(void, update, (), (override)); + MOCK_METHOD(void, update, (crepe::duration_t), (override)); }; crepe::OptionalRef behaviorscript; -- cgit v1.2.3