mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add wielded (and CAOs) shader
This commit is contained in:
parent
5b0c719171
commit
60350699c7
11 changed files with 224 additions and 40 deletions
|
@ -92,10 +92,9 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
|
|||
// all other 3D scene nodes and before the GUI.
|
||||
m_wieldmgr = smgr->createNewSceneManager();
|
||||
m_wieldmgr->addCameraSceneNode();
|
||||
m_wieldnode = new WieldMeshSceneNode(m_wieldmgr->getRootSceneNode(), m_wieldmgr, -1, true);
|
||||
m_wieldnode = new WieldMeshSceneNode(m_wieldmgr->getRootSceneNode(), m_wieldmgr, -1, false);
|
||||
m_wieldnode->setItem(ItemStack(), m_gamedef);
|
||||
m_wieldnode->drop(); // m_wieldmgr grabbed it
|
||||
m_wieldlightnode = m_wieldmgr->addLightSceneNode(NULL, v3f(0.0, 50.0, 0.0));
|
||||
|
||||
/* TODO: Add a callback function so these can be updated when a setting
|
||||
* changes. At this point in time it doesn't matter (e.g. /set
|
||||
|
@ -451,11 +450,7 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime,
|
|||
m_wieldnode->setPosition(wield_position);
|
||||
m_wieldnode->setRotation(wield_rotation);
|
||||
|
||||
// Shine light upon the wield mesh
|
||||
video::SColor black(255,0,0,0);
|
||||
m_wieldmgr->setAmbientLight(player->light_color.getInterpolated(black, 0.7));
|
||||
m_wieldlightnode->getLightData().DiffuseColor = player->light_color.getInterpolated(black, 0.3);
|
||||
m_wieldlightnode->setPosition(v3f(30+5*sin(2*player->getYaw()*M_PI/180), -50, 0));
|
||||
m_wieldnode->setColor(player->light_color);
|
||||
|
||||
// Render distance feedback loop
|
||||
updateViewingRange(frametime, busytime);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue