summaryrefslogtreecommitdiff
path: root/src/camera.h
diff options
context:
space:
mode:
authorKahrl <kahrl@gmx.net>2014-11-02 03:47:43 +0100
committerKahrl <kahrl@gmx.net>2014-11-08 23:11:57 +0100
commit9b551d5cbcaf71a8c39bbf7e886290649aed4799 (patch)
tree8eb68e4c9a7a006ec6c406da4760403c6748848e /src/camera.h
parentcc8d7b86404f2830bcf09d04468e8041db276b98 (diff)
downloadminetest-9b551d5cbcaf71a8c39bbf7e886290649aed4799.tar.gz
minetest-9b551d5cbcaf71a8c39bbf7e886290649aed4799.tar.bz2
minetest-9b551d5cbcaf71a8c39bbf7e886290649aed4799.zip
Implement WieldMeshSceneNode which improves wield mesh rendering
- Don't create and cache an extruded mesh for every (non-node) item. Instead use a single one per image resolution. - For cubic nodes reuse a single wield mesh too - Improve lighting of the wielded item - Increase far value of wield mesh scene camera, fixes #1770 - Also includes some minor refactorings of Camera and GenericCAO.
Diffstat (limited to 'src/camera.h')
-rw-r--r--src/camera.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/camera.h b/src/camera.h
index 8831257cc..996be79b2 100644
--- a/src/camera.h
+++ b/src/camera.h
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class LocalPlayer;
struct MapDrawControl;
class IGameDef;
+class WieldMeshSceneNode;
enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT};
@@ -127,7 +128,7 @@ public:
void setDigging(s32 button);
// Replace the wielded item mesh
- void wield(const ItemStack &item, u16 playeritem);
+ void wield(const ItemStack &item);
// Draw the wielded tool.
// This has to happen *after* the main scene is drawn.
@@ -157,8 +158,8 @@ private:
scene::ICameraSceneNode* m_cameranode;
scene::ISceneManager* m_wieldmgr;
- scene::IMeshSceneNode* m_wieldnode;
- u8 m_wieldlight;
+ WieldMeshSceneNode* m_wieldnode;
+ scene::ILightSceneNode* m_wieldlightnode;
// draw control
MapDrawControl& m_draw_control;
@@ -203,14 +204,9 @@ private:
// If 1, right-click digging animation
s32 m_digging_button;
- //dummymesh for camera
- irr::scene::IAnimatedMesh* m_dummymesh;
-
// Animation when changing wielded item
f32 m_wield_change_timer;
- scene::IMesh *m_wield_mesh_next;
- u16 m_previous_playeritem;
- std::string m_previous_itemname;
+ ItemStack m_wield_item_next;
CameraMode m_camera_mode;
};