]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/Interface.hpp
glm backwards compatibility
[blank.git] / src / ui / Interface.hpp
index 72db5d13eb94fbea290c434e8eae260234925cb3..bcc6c662ff1e0750937ff4c5e0750cda9fe0b77c 100644 (file)
@@ -1,50 +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 "../world/EntityCollision.hpp"
-#include "../world/Player.hpp"
-#include "../world/WorldCollision.hpp"
-
-#include <string>
-#include <glm/glm.hpp>
+#include "../app/Config.hpp"
+#include "../graphics/glm.hpp"
+
 #include <SDL.h>
 
 
 namespace blank {
 
-class Entity;
-class Environment;
-class Viewport;
-class World;
+struct ClientController;
+class Keymap;
+struct PlayerController;
 
 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;
-
-               bool keyboard_disabled = false;
-               bool mouse_disabled = false;
-               bool audio_disabled = false;
-               bool visual_disabled = false;
-       };
+       Interface(Config &, const Keymap &, PlayerController &, ClientController &);
 
-       Interface(const Config &, Environment &, World &, const Player &);
+       void SetInventorySlots(int num) { num_slots = num; }
 
-       const Player &GetPlayer() noexcept { return player; }
+       void Lock();
+       void Unlock();
 
        void HandlePress(const SDL_KeyboardEvent &);
        void HandleRelease(const SDL_KeyboardEvent &);
@@ -53,79 +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 SelectNext();
-       void SelectPrevious();
-
-       void ToggleAudio();
-       void ToggleVisual();
-
-       void ToggleDebug();
-       void UpdateCounter();
-       void UpdatePosition();
-       void UpdateOrientation();
-       void UpdateBlockInfo();
-       void UpdateEntityInfo();
-
-       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 UpdateOutline();
+       void UpdateMovement();
+       void InvAbs(int slot);
+       void InvRel(int delta);
 
 private:
-       Environment &env;
-       World &world;
-       Player player;
-       FPSController ctrl;
-       HUD hud;
-
-       Ray aim;
-       WorldCollision aim_world;
-       EntityCollision aim_entity;
-
-       OutlineModel outline;
-       glm::mat4 outline_transform;
-
-       FixedText counter_text;
-       FixedText position_text;
-       FixedText orientation_text;
-       FixedText block_text;
-       FixedText entity_text;
-       Block last_block;
-       Entity *last_entity;
-       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 debug;
+       bool locked;
 
 };