summaryrefslogtreecommitdiffstats
path: root/game/shared/entity/transform.hh
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/entity/transform.hh')
-rw-r--r--game/shared/entity/transform.hh34
1 files changed, 34 insertions, 0 deletions
diff --git a/game/shared/entity/transform.hh b/game/shared/entity/transform.hh
new file mode 100644
index 0000000..b1fdcf4
--- /dev/null
+++ b/game/shared/entity/transform.hh
@@ -0,0 +1,34 @@
+#ifndef SHARED_ENTITY_TRANSFORM_HH
+#define SHARED_ENTITY_TRANSFORM_HH 1
+#pragma once
+
+#include "shared/types.hh"
+
+namespace world
+{
+class Dimension;
+} // namespace world
+
+namespace entity
+{
+struct Transform {
+ chunk_pos chunk;
+ glm::fvec3 local;
+ glm::fvec3 angles;
+
+public:
+ // Updates entity::Transform values so that
+ // the local translation field is always within
+ // local coodrinates; [floating-point precision]
+ static void fixed_update(world::Dimension* dimension);
+};
+} // namespace entity
+
+namespace entity::client
+{
+// Client-side only - interpolated and previous transform
+struct TransformIntr final : public Transform {};
+struct TransformPrev final : public Transform {};
+} // namespace entity::client
+
+#endif // SHARED_ENTITY_TRANSFORM_HH