]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/Interface.hpp
fixed transmission control
[blank.git] / src / ui / Interface.hpp
index 907f9c234a320e5434c0da1f21bd2244c397c958..aab8b156596e5cdf42ba691bb8cbe8a381c46dc4 100644 (file)
@@ -10,6 +10,8 @@
 #include "../model/geometry.hpp"
 #include "../model/OutlineModel.hpp"
 #include "../world/Block.hpp"
+#include "../world/EntityCollision.hpp"
+#include "../world/WorldCollision.hpp"
 
 #include <string>
 #include <glm/glm.hpp>
@@ -18,8 +20,6 @@
 
 namespace blank {
 
-class Chunk;
-class Entity;
 class Environment;
 class Viewport;
 class World;
@@ -28,6 +28,8 @@ class Interface {
 
 public:
        struct Config {
+               std::string player_name = "default";
+
                float move_velocity = 0.005f;
                float pitch_sensitivity = -0.0025f;
                float yaw_sensitivity = -0.001f;
@@ -40,6 +42,9 @@ public:
 
        Interface(const Config &, Environment &, World &);
 
+       Entity &Player() noexcept { return ctrl.Controlled(); }
+       const Entity &Player() const noexcept { return ctrl.Controlled(); }
+
        void HandlePress(const SDL_KeyboardEvent &);
        void HandleRelease(const SDL_KeyboardEvent &);
        void Handle(const SDL_MouseMotionEvent &);
@@ -56,12 +61,6 @@ public:
        void PlaceBlock();
        void RemoveBlock() noexcept;
 
-       void PrintBlockInfo();
-       void PrintChunkInfo();
-       void PrintLightInfo();
-       void PrintSelectionInfo();
-       void Print(const Block &);
-
        void SelectNext();
        void SelectPrevious();
 
@@ -73,6 +72,7 @@ public:
        void UpdatePosition();
        void UpdateOrientation();
        void UpdateBlockInfo();
+       void UpdateEntityInfo();
 
        void PostMessage(const char *);
        void PostMessage(const std::string &msg) {
@@ -94,10 +94,8 @@ private:
        HUD hud;
 
        Ray aim;
-       Chunk *aim_chunk;
-       Entity *aim_entity;
-       int aim_block;
-       glm::vec3 aim_normal;
+       WorldCollision aim_world;
+       EntityCollision aim_entity;
 
        OutlineModel outline;
        glm::mat4 outline_transform;
@@ -106,7 +104,9 @@ private:
        FixedText position_text;
        FixedText orientation_text;
        FixedText block_text;
-       Block last_displayed;
+       FixedText entity_text;
+       Block last_block;
+       Entity *last_entity;
        MessageBox messages;
        IntervalTimer msg_timer;