summaryrefslogtreecommitdiffstats
path: root/src/game/shared/entity/gravity.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/shared/entity/gravity.cc')
-rw-r--r--src/game/shared/entity/gravity.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/game/shared/entity/gravity.cc b/src/game/shared/entity/gravity.cc
new file mode 100644
index 0000000..f1708aa
--- /dev/null
+++ b/src/game/shared/entity/gravity.cc
@@ -0,0 +1,20 @@
+#include "shared/pch.hh"
+
+#include "shared/entity/gravity.hh"
+
+#include "shared/entity/stasis.hh"
+#include "shared/entity/velocity.hh"
+
+#include "shared/world/dimension.hh"
+
+#include "shared/globals.hh"
+
+void entity::Gravity::fixed_update(world::Dimension* dimension)
+{
+ auto fixed_acceleration = globals::fixed_frametime * dimension->get_gravity();
+ auto group = dimension->entities.group<entity::Gravity>(entt::get<entity::Velocity>, entt::exclude<entity::Stasis>);
+
+ for(auto [entity, velocity] : group.each()) {
+ velocity.value.y += fixed_acceleration;
+ }
+}