Wielded tool updates, leaves and glass work now
parent
02726f0003
commit
ab42549b1e
|
@ -54,7 +54,10 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control):
|
||||||
|
|
||||||
m_view_bobbing_anim(0),
|
m_view_bobbing_anim(0),
|
||||||
m_view_bobbing_state(0),
|
m_view_bobbing_state(0),
|
||||||
m_view_bobbing_speed(0)
|
m_view_bobbing_speed(0),
|
||||||
|
|
||||||
|
m_digging_anim(0),
|
||||||
|
m_digging_speed(0)
|
||||||
{
|
{
|
||||||
//dstream<<__FUNCTION_NAME<<std::endl;
|
//dstream<<__FUNCTION_NAME<<std::endl;
|
||||||
|
|
||||||
|
@ -64,8 +67,7 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control):
|
||||||
m_headnode = smgr->addEmptySceneNode(m_playernode);
|
m_headnode = smgr->addEmptySceneNode(m_playernode);
|
||||||
m_cameranode = smgr->addCameraSceneNode(smgr->getRootSceneNode());
|
m_cameranode = smgr->addCameraSceneNode(smgr->getRootSceneNode());
|
||||||
m_cameranode->bindTargetAndRotation(true);
|
m_cameranode->bindTargetAndRotation(true);
|
||||||
m_wieldnode = new ExtrudedSpriteSceneNode(smgr->getRootSceneNode(), smgr, -1, v3f(0, 120, 10), v3f(0, 0, 0), v3f(100, 100, 100));
|
m_wieldnode = new ExtrudedSpriteSceneNode(m_headnode, smgr, -1, v3f(1.3, -1, 2), v3f(-20, -100, 20), v3f(1));
|
||||||
//m_wieldnode = new ExtrudedSpriteSceneNode(smgr->getRootSceneNode(), smgr, -1);
|
|
||||||
|
|
||||||
updateSettings();
|
updateSettings();
|
||||||
}
|
}
|
||||||
|
@ -356,9 +358,10 @@ void Camera::wield(const InventoryItem* item)
|
||||||
// A block-type material
|
// A block-type material
|
||||||
MaterialItem* mat_item = (MaterialItem*) item;
|
MaterialItem* mat_item = (MaterialItem*) item;
|
||||||
content_t content = mat_item->getMaterial();
|
content_t content = mat_item->getMaterial();
|
||||||
if (content_features(content).solidness)
|
if (content_features(content).solidness || content_features(content).visual_solidness)
|
||||||
{
|
{
|
||||||
m_wieldnode->setCube(content_features(content).tiles);
|
m_wieldnode->setCube(content_features(content).tiles);
|
||||||
|
m_wieldnode->setScale(v3f(0.9));
|
||||||
isCube = true;
|
isCube = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -367,6 +370,7 @@ void Camera::wield(const InventoryItem* item)
|
||||||
if (!isCube)
|
if (!isCube)
|
||||||
{
|
{
|
||||||
m_wieldnode->setSprite(item->getImageRaw());
|
m_wieldnode->setSprite(item->getImageRaw());
|
||||||
|
m_wieldnode->setScale(v3f(1.2));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_wieldnode->setVisible(true);
|
m_wieldnode->setVisible(true);
|
||||||
|
@ -458,17 +462,9 @@ void ExtrudedSpriteSceneNode::setCube(const TileSpec tiles[6])
|
||||||
for (int i = 0; i < 6; ++i)
|
for (int i = 0; i < 6; ++i)
|
||||||
{
|
{
|
||||||
// Get the tile texture and atlas transformation
|
// Get the tile texture and atlas transformation
|
||||||
u32 texture_id = tiles[i].texture.id;
|
video::ITexture* atlas = tiles[i].texture.atlas;
|
||||||
video::ITexture* atlas = NULL;
|
v2f pos = tiles[i].texture.pos;
|
||||||
v2f pos(0,0);
|
v2f size = tiles[i].texture.size;
|
||||||
v2f size(1,1);
|
|
||||||
if (g_texturesource)
|
|
||||||
{
|
|
||||||
AtlasPointer ap = g_texturesource->getTexture(texture_id);
|
|
||||||
atlas = ap.atlas;
|
|
||||||
pos = ap.pos;
|
|
||||||
size = ap.size;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set material flags and texture
|
// Set material flags and texture
|
||||||
video::SMaterial& material = m_meshnode->getMaterial(i);
|
video::SMaterial& material = m_meshnode->getMaterial(i);
|
||||||
|
|
|
@ -166,6 +166,11 @@ private:
|
||||||
s32 m_view_bobbing_state;
|
s32 m_view_bobbing_state;
|
||||||
// Speed of view bobbing animation
|
// Speed of view bobbing animation
|
||||||
f32 m_view_bobbing_speed;
|
f32 m_view_bobbing_speed;
|
||||||
|
|
||||||
|
// Digging animation
|
||||||
|
s32 m_digging_anim;
|
||||||
|
// Speed of digging animation
|
||||||
|
s32 m_digging_speed;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -187,7 +192,7 @@ public:
|
||||||
s32 id = -1,
|
s32 id = -1,
|
||||||
const v3f& position = v3f(0,0,0),
|
const v3f& position = v3f(0,0,0),
|
||||||
const v3f& rotation = v3f(0,0,0),
|
const v3f& rotation = v3f(0,0,0),
|
||||||
const v3f& scale = v3f(0,0,0));
|
const v3f& scale = v3f(1,1,1));
|
||||||
~ExtrudedSpriteSceneNode();
|
~ExtrudedSpriteSceneNode();
|
||||||
|
|
||||||
void setSprite(video::ITexture* texture);
|
void setSprite(video::ITexture* texture);
|
||||||
|
|
|
@ -236,6 +236,8 @@ void content_mapnode_init()
|
||||||
if(new_style_leaves)
|
if(new_style_leaves)
|
||||||
{
|
{
|
||||||
f->solidness = 0; // drawn separately, makes no faces
|
f->solidness = 0; // drawn separately, makes no faces
|
||||||
|
f->visual_solidness = 1;
|
||||||
|
f->setAllTextures("leaves.png");
|
||||||
f->setInventoryTextureCube("leaves.png", "leaves.png", "leaves.png");
|
f->setInventoryTextureCube("leaves.png", "leaves.png", "leaves.png");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -287,6 +289,8 @@ void content_mapnode_init()
|
||||||
f->is_ground_content = true;
|
f->is_ground_content = true;
|
||||||
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
||||||
f->solidness = 0; // drawn separately, makes no faces
|
f->solidness = 0; // drawn separately, makes no faces
|
||||||
|
f->visual_solidness = 1;
|
||||||
|
f->setAllTextures("glass.png");
|
||||||
f->setInventoryTextureCube("glass.png", "glass.png", "glass.png");
|
f->setInventoryTextureCube("glass.png", "glass.png", "glass.png");
|
||||||
setWoodLikeDiggingProperties(f->digging_properties, 0.15);
|
setWoodLikeDiggingProperties(f->digging_properties, 0.15);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue