]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/clientenvironment.h
Cleanup various headers to reduce compilation times (#6255)
[dragonfireclient.git] / src / clientenvironment.h
index 2906553f0427632e53fec234a34046ebf92cc318..35dca5718c411c1222c0a3571fccee30f8b5a3c7 100644 (file)
@@ -20,10 +20,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifndef CLIENT_ENVIRONMENT_HEADER
 #define CLIENT_ENVIRONMENT_HEADER
 
-#include <IrrlichtDevice.h>
 #include <ISceneManager.h>
 #include "environment.h"
 #include "clientobject.h"
+#include "util/numeric.h"
 
 class ClientSimpleObject;
 class ClientMap;
@@ -31,7 +31,6 @@ class ClientScripting;
 class ClientActiveObject;
 class GenericCAO;
 class LocalPlayer;
-struct PointedThing;
 
 /*
        The client-side environment.
@@ -68,9 +67,7 @@ typedef std::unordered_map<u16, ClientActiveObject*> ClientActiveObjectMap;
 class ClientEnvironment : public Environment
 {
 public:
-       ClientEnvironment(ClientMap *map, scene::ISceneManager *smgr,
-               ITextureSource *texturesource, Client *client,
-               IrrlichtDevice *device);
+       ClientEnvironment(ClientMap *map, ITextureSource *texturesource, Client *client);
        ~ClientEnvironment();
 
        Map & getMap();
@@ -128,44 +125,15 @@ class ClientEnvironment : public Environment
                std::vector<DistanceSortedActiveObject> &dest);
 
        bool hasClientEnvEvents() const { return !m_client_event_queue.empty(); }
+
        // Get event from queue. If queue is empty, it triggers an assertion failure.
        ClientEnvEvent getClientEnvEvent();
 
-       /*!
-        * Gets closest object pointed by the shootline.
-        * Returns NULL if not found.
-        *
-        * \param[in]  shootline_on_map    the shootline for
-        * the test in world coordinates
-        * \param[out] intersection_point  the first point where
-        * the shootline meets the object. Valid only if
-        * not NULL is returned.
-        * \param[out] intersection_normal the normal vector of
-        * the intersection, pointing outwards. Zero vector if
-        * the shootline starts in an active object.
-        * Valid only if not NULL is returned.
-        */
-       ClientActiveObject * getSelectedActiveObject(
+       virtual void getSelectedActiveObjects(
                const core::line3d<f32> &shootline_on_map,
-               v3f *intersection_point,
-               v3s16 *intersection_normal
+               std::vector<PointedThing> &objects
        );
 
-       /*!
-        * Performs a raycast on the world.
-        * Returns the first thing the shootline meets.
-        *
-        * @param[in]  shootline         the shootline, starting from
-        * the camera position. This also gives the maximal distance
-        * of the search.
-        * @param[in]  liquids_pointable if false, liquids are ignored
-        * @param[in]  look_for_object   if false, objects are ignored
-        */
-       PointedThing getPointedThing(
-               core::line3d<f32> shootline,
-               bool liquids_pointable,
-               bool look_for_object);
-
        u16 attachement_parent_ids[USHRT_MAX + 1];
 
        const std::list<std::string> &getPlayerNames() { return m_player_names; }
@@ -176,12 +144,10 @@ class ClientEnvironment : public Environment
        v3s16 getCameraOffset() const { return m_camera_offset; }
 private:
        ClientMap *m_map;
-       LocalPlayer *m_local_player;
-       scene::ISceneManager *m_smgr;
+       LocalPlayer *m_local_player = nullptr;
        ITextureSource *m_texturesource;
        Client *m_client;
-       ClientScripting *m_script;
-       IrrlichtDevice *m_irr;
+       ClientScripting *m_script = nullptr;
        ClientActiveObjectMap m_active_objects;
        std::vector<ClientSimpleObject*> m_simple_objects;
        std::queue<ClientEnvEvent> m_client_event_queue;