]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/Interface.hpp
glm backwards compatibility
[blank.git] / src / ui / Interface.hpp
index 0cffd762cc29ea79af24b2204a94f0d4299c9e29..bcc6c662ff1e0750937ff4c5e0750cda9fe0b77c 100644 (file)
@@ -1,43 +1,27 @@
 #ifndef BLANK_UI_INTERFACE_HPP_
 #define BLANK_UI_INTERFACE_HPP_
 
-#include "FixedText.hpp"
-#include "HUD.hpp"
-#include "MessageBox.hpp"
-#include "../app/FPSController.hpp"
-#include "../app/IntervalTimer.hpp"
-#include "../audio/Sound.hpp"
-#include "../model/geometry.hpp"
-#include "../model/OutlineModel.hpp"
-#include "../world/Block.hpp"
-
-#include <string>
-#include <glm/glm.hpp>
+#include "../app/Config.hpp"
+#include "../graphics/glm.hpp"
+
 #include <SDL.h>
 
 
 namespace blank {
 
-class Chunk;
-class Environment;
-class Viewport;
-class World;
+struct ClientController;
+class Keymap;
+struct PlayerController;
 
 class Interface {
 
 public:
-       struct Config {
-               float move_velocity = 0.005f;
-               float pitch_sensitivity = -0.0025f;
-               float yaw_sensitivity = -0.001f;
+       Interface(Config &, const Keymap &, PlayerController &, ClientController &);
 
-               bool keyboard_disabled = false;
-               bool mouse_disabled = false;
-               bool audio_disabled = false;
-               bool visual_disabled = false;
-       };
+       void SetInventorySlots(int num) { num_slots = num; }
 
-       Interface(const Config &, Environment &, World &);
+       void Lock();
+       void Unlock();
 
        void HandlePress(const SDL_KeyboardEvent &);
        void HandleRelease(const SDL_KeyboardEvent &);
@@ -46,74 +30,21 @@ public:
        void HandleRelease(const SDL_MouseButtonEvent &);
        void Handle(const SDL_MouseWheelEvent &);
 
-       void FaceBlock();
-       void TurnBlock();
-
-       void ToggleCollision();
-
-       void PickBlock();
-       void PlaceBlock();
-       void RemoveBlock() noexcept;
-
-       void PrintBlockInfo();
-       void PrintChunkInfo();
-       void PrintLightInfo();
-       void PrintSelectionInfo();
-       void Print(const Block &);
-
-       void SelectNext();
-       void SelectPrevious();
-
-       void ToggleAudio();
-       void ToggleVisual();
-
-       void ToggleDebug();
-       void UpdateCounter();
-       void UpdatePosition();
-
-       void PostMessage(const char *);
-       void PostMessage(const std::string &msg) {
-               PostMessage(msg.c_str());
-       }
-
-       void Update(int dt);
-
-       void Render(Viewport &) noexcept;
-
 private:
-       void CheckAim();
+       void UpdateMovement();
+       void InvAbs(int slot);
+       void InvRel(int delta);
 
 private:
-       Environment &env;
-       World &world;
-       FPSController ctrl;
-       HUD hud;
-
-       Ray aim;
-       Chunk *aim_chunk;
-       int aim_block;
-       glm::vec3 aim_normal;
-
-       OutlineModel outline;
-       glm::mat4 outline_transform;
-
-       FixedText counter_text;
-       FixedText position_text;
-       MessageBox messages;
-       IntervalTimer msg_timer;
-
-       Config config;
-
-       IntervalTimer place_timer;
-       IntervalTimer remove_timer;
-
-       Block remove;
-       Block selection;
-
-       Sound place_sound;
-       Sound remove_sound;
+       Config &config;
+       const Keymap &keymap;
+       PlayerController &player_ctrl;
+       ClientController &client_ctrl;
 
        glm::ivec3 fwd, rev;
+       int num_slots;
+
+       bool locked;
 
 };