mirror of
https://github.com/MadeOfJelly/MushMachine.git
synced 2025-08-23 07:56:40 +02:00
remove simple scene and disable most stuff that used it. TODO: replace with organizer
This commit is contained in:
@@ -4,12 +4,13 @@
|
||||
|
||||
#include <mm/components/velocity2d.hpp>
|
||||
#include <mm/components/transform2d.hpp>
|
||||
#include <mm/components/time_delta.hpp>
|
||||
|
||||
#include <mm/services/scene_service_interface.hpp>
|
||||
|
||||
namespace MM::Systems {
|
||||
inline void SimpleVelocity(Scene& scene, float delta) {
|
||||
scene.view<MM::Components::Transform2D, MM::Components::Velocity2D>().each([delta](auto, auto& t, auto& v) {
|
||||
inline void simple_velocity(entt::view<entt::exclude_t<>, Components::Transform2D, const Components::Velocity2D> view, const Components::TimeDelta& td) {
|
||||
view.each([delta = td.tickDelta](auto, auto& t, auto& v) {
|
||||
t.position += v.velocity * delta;
|
||||
t.rotation += v.rotation * delta;
|
||||
}
|
||||
|
@@ -6,7 +6,6 @@ target_include_directories(simple_velocity_test PRIVATE ".")
|
||||
|
||||
target_link_libraries(simple_velocity_test
|
||||
simple_velocity_system
|
||||
simple_scene
|
||||
gtest_main
|
||||
)
|
||||
|
||||
|
@@ -3,6 +3,7 @@
|
||||
#include <mm/engine_fwd.hpp>
|
||||
|
||||
#include <entt/entity/registry.hpp>
|
||||
#include <entt/entity/organizer.hpp>
|
||||
|
||||
#include <mm/systems/simple_velocity_system2d.hpp>
|
||||
|
||||
@@ -10,8 +11,15 @@ TEST(simple_velocity_2d, basic_run) {
|
||||
MM::Scene scene;
|
||||
|
||||
// setup v system
|
||||
MM::AddSystemToScene(scene, MM::Systems::SimpleVelocity);
|
||||
auto& org = scene.set<entt::organizer>();
|
||||
org.emplace<&MM::Systems::simple_velocity>("simple_velocity");
|
||||
auto graph = org.graph();
|
||||
|
||||
// setup delta
|
||||
auto& time_ctx = scene.ctx_or_set<MM::Components::TimeDelta>(1.f/60.f, 1.f);
|
||||
time_ctx.tickDelta = 1.f/60.f * time_ctx.deltaFactor;
|
||||
|
||||
// setup test entity
|
||||
auto e = scene.create();
|
||||
auto& t = scene.emplace<MM::Components::Transform2D>(e);
|
||||
auto& v = scene.emplace<MM::Components::Velocity2D>(e);
|
||||
@@ -21,9 +29,10 @@ TEST(simple_velocity_2d, basic_run) {
|
||||
v.velocity = { 1.f, 1.f };
|
||||
v.rotation = 0.f;
|
||||
|
||||
::MM::EachSystemInScene(scene, [&](::MM::Scene& s, ::MM::System& fn) {
|
||||
fn(s, 1.f/60.f);
|
||||
});
|
||||
// run all systems
|
||||
for (auto&& vert : graph) {
|
||||
vert.callback()(vert.data(), scene);
|
||||
}
|
||||
|
||||
ASSERT_EQ(t.position.x, 1.f * 1.f/60.f);
|
||||
}
|
||||
|
Reference in New Issue
Block a user