X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fui%2FInterface.hpp;h=72db5d13eb94fbea290c434e8eae260234925cb3;hb=38a4cffc0b6aa58e49d24c06aad7bee14cb6515d;hp=907f9c234a320e5434c0da1f21bd2244c397c958;hpb=b0c2d423138dfb4849c679b3fb93e4336dcf5845;p=blank.git diff --git a/src/ui/Interface.hpp b/src/ui/Interface.hpp index 907f9c2..72db5d1 100644 --- a/src/ui/Interface.hpp +++ b/src/ui/Interface.hpp @@ -10,6 +10,9 @@ #include "../model/geometry.hpp" #include "../model/OutlineModel.hpp" #include "../world/Block.hpp" +#include "../world/EntityCollision.hpp" +#include "../world/Player.hpp" +#include "../world/WorldCollision.hpp" #include #include @@ -18,7 +21,6 @@ namespace blank { -class Chunk; class Entity; class Environment; class Viewport; @@ -28,6 +30,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; @@ -38,7 +42,9 @@ public: bool visual_disabled = false; }; - Interface(const Config &, Environment &, World &); + Interface(const Config &, Environment &, World &, const Player &); + + const Player &GetPlayer() noexcept { return player; } void HandlePress(const SDL_KeyboardEvent &); void HandleRelease(const SDL_KeyboardEvent &); @@ -56,12 +62,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 +73,7 @@ public: void UpdatePosition(); void UpdateOrientation(); void UpdateBlockInfo(); + void UpdateEntityInfo(); void PostMessage(const char *); void PostMessage(const std::string &msg) { @@ -90,14 +91,13 @@ private: private: Environment &env; World &world; + Player player; FPSController ctrl; 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 +106,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;